Fixed camera not turning on during call when granting permission + minor UI fix for history detail while in landscape
This commit is contained in:
parent
07b37f03f6
commit
f0b455eb8f
4 changed files with 39 additions and 9 deletions
|
@ -106,7 +106,16 @@ class OutgoingCallActivity : ProximitySensorActivity() {
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
controlsViewModel.askPermissionEvent.observe(
|
controlsViewModel.askAudioRecordPermissionEvent.observe(
|
||||||
|
this,
|
||||||
|
{
|
||||||
|
it.consume { permission ->
|
||||||
|
requestPermissions(arrayOf(permission), 0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
controlsViewModel.askCameraPermissionEvent.observe(
|
||||||
this,
|
this,
|
||||||
{
|
{
|
||||||
it.consume { permission ->
|
it.consume { permission ->
|
||||||
|
|
|
@ -113,7 +113,7 @@ class ControlsFragment : GenericFragment<CallControlsFragmentBinding>() {
|
||||||
it.consume {
|
it.consume {
|
||||||
if (!PermissionHelper.get().hasWriteExternalStoragePermission()) {
|
if (!PermissionHelper.get().hasWriteExternalStoragePermission()) {
|
||||||
Log.i("[Controls Fragment] Asking for WRITE_EXTERNAL_STORAGE permission")
|
Log.i("[Controls Fragment] Asking for WRITE_EXTERNAL_STORAGE permission")
|
||||||
requestPermissions(arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), 1)
|
requestPermissions(arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), 2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -179,7 +179,7 @@ class ControlsFragment : GenericFragment<CallControlsFragmentBinding>() {
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
controlsViewModel.askPermissionEvent.observe(
|
controlsViewModel.askAudioRecordPermissionEvent.observe(
|
||||||
viewLifecycleOwner,
|
viewLifecycleOwner,
|
||||||
{
|
{
|
||||||
it.consume { permission ->
|
it.consume { permission ->
|
||||||
|
@ -189,6 +189,16 @@ class ControlsFragment : GenericFragment<CallControlsFragmentBinding>() {
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
controlsViewModel.askCameraPermissionEvent.observe(
|
||||||
|
viewLifecycleOwner,
|
||||||
|
{
|
||||||
|
it.consume { permission ->
|
||||||
|
Log.i("[Controls Fragment] Asking for $permission permission")
|
||||||
|
requestPermissions(arrayOf(permission), 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
controlsViewModel.toggleNumpadEvent.observe(
|
controlsViewModel.toggleNumpadEvent.observe(
|
||||||
viewLifecycleOwner,
|
viewLifecycleOwner,
|
||||||
{
|
{
|
||||||
|
@ -251,7 +261,13 @@ class ControlsFragment : GenericFragment<CallControlsFragmentBinding>() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (requestCode == 1 && grantResults.isNotEmpty() && grantResults[0] == PERMISSION_GRANTED) {
|
} else if (requestCode == 1) {
|
||||||
|
if (grantResults.isNotEmpty() && grantResults[0] == PERMISSION_GRANTED) {
|
||||||
|
Log.i("[Controls Fragment] CAMERA permission has been granted")
|
||||||
|
coreContext.core.reloadVideoDevices()
|
||||||
|
controlsViewModel.toggleVideo()
|
||||||
|
}
|
||||||
|
} else if (requestCode == 2 && grantResults.isNotEmpty() && grantResults[0] == PERMISSION_GRANTED) {
|
||||||
callsViewModel.takeScreenshot()
|
callsViewModel.takeScreenshot()
|
||||||
}
|
}
|
||||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
||||||
|
|
|
@ -87,7 +87,11 @@ class ControlsViewModel : ViewModel() {
|
||||||
MutableLiveData<Event<Boolean>>()
|
MutableLiveData<Event<Boolean>>()
|
||||||
}
|
}
|
||||||
|
|
||||||
val askPermissionEvent: MutableLiveData<Event<String>> by lazy {
|
val askAudioRecordPermissionEvent: MutableLiveData<Event<String>> by lazy {
|
||||||
|
MutableLiveData<Event<String>>()
|
||||||
|
}
|
||||||
|
|
||||||
|
val askCameraPermissionEvent: MutableLiveData<Event<String>> by lazy {
|
||||||
MutableLiveData<Event<String>>()
|
MutableLiveData<Event<String>>()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -176,7 +180,7 @@ class ControlsViewModel : ViewModel() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (coreContext.isVideoCallOrConferenceActive() && !PermissionHelper.get().hasCameraPermission()) {
|
if (coreContext.isVideoCallOrConferenceActive() && !PermissionHelper.get().hasCameraPermission()) {
|
||||||
askPermissionEvent.value = Event(Manifest.permission.CAMERA)
|
askCameraPermissionEvent.value = Event(Manifest.permission.CAMERA)
|
||||||
}
|
}
|
||||||
|
|
||||||
updateUI()
|
updateUI()
|
||||||
|
@ -244,7 +248,7 @@ class ControlsViewModel : ViewModel() {
|
||||||
|
|
||||||
fun toggleMuteMicrophone() {
|
fun toggleMuteMicrophone() {
|
||||||
if (!PermissionHelper.get().hasRecordAudioPermission()) {
|
if (!PermissionHelper.get().hasRecordAudioPermission()) {
|
||||||
askPermissionEvent.value = Event(Manifest.permission.RECORD_AUDIO)
|
askAudioRecordPermissionEvent.value = Event(Manifest.permission.RECORD_AUDIO)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -279,7 +283,7 @@ class ControlsViewModel : ViewModel() {
|
||||||
|
|
||||||
fun toggleVideo() {
|
fun toggleVideo() {
|
||||||
if (!PermissionHelper.get().hasCameraPermission()) {
|
if (!PermissionHelper.get().hasCameraPermission()) {
|
||||||
askPermissionEvent.value = Event(Manifest.permission.CAMERA)
|
askCameraPermissionEvent.value = Event(Manifest.permission.CAMERA)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -80,7 +80,7 @@
|
||||||
android:layout_below="@id/top_bar"
|
android:layout_below="@id/top_bar"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:paddingTop="20dp"
|
android:paddingTop="10dp"
|
||||||
android:paddingBottom="5dp">
|
android:paddingBottom="5dp">
|
||||||
|
|
||||||
<org.linphone.contact.BigContactAvatarView
|
<org.linphone.contact.BigContactAvatarView
|
||||||
|
@ -88,6 +88,7 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="100dp"
|
android:layout_height="100dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
|
android:layout_marginTop="10dp"
|
||||||
bind:layout="@layout/contact_avatar_big"
|
bind:layout="@layout/contact_avatar_big"
|
||||||
app:viewModel="@{viewModel}"/>
|
app:viewModel="@{viewModel}"/>
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue