From 0a3ef8e78933fcb85eb00ffb9998afed6066b129 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 21 Sep 2020 11:40:55 +0200 Subject: [PATCH] Prevent screen rotation while incoming call if screen is locked --- README.md | 2 ++ .../main/java/org/linphone/activities/GenericActivity.kt | 6 ++++-- .../org/linphone/activities/call/IncomingCallActivity.kt | 5 +++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e43df2309..750df043c 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,8 @@ LinphoneSdkBuildDir=/home//linphone-sdk/build/ If you encounter the `couldn't find "libc++_shared.so"` crash when the app starts, simply clean the project in Android Studio (under Build menu) and build again. +If during the build you have `DataBinderMapperImpl.java error: cannot find symbol`, try building again. + When submitting an issue, please attach the matching library logs. To enable them, go to Settings -> Advanced and toggle "Debug Mode". Then restart the app, reproduce the issue and upload the logs using the "Upload logs" button on the About page. diff --git a/app/src/main/java/org/linphone/activities/GenericActivity.kt b/app/src/main/java/org/linphone/activities/GenericActivity.kt index 7fcb66220..557f46042 100644 --- a/app/src/main/java/org/linphone/activities/GenericActivity.kt +++ b/app/src/main/java/org/linphone/activities/GenericActivity.kt @@ -48,8 +48,10 @@ abstract class GenericActivity : AppCompatActivity() { ensureCoreExists(applicationContext) hideSystemUI() - if (corePreferences.forcePortrait) { - requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT + requestedOrientation = if (corePreferences.forcePortrait) { + ActivityInfo.SCREEN_ORIENTATION_PORTRAIT + } else { + ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED } val nightMode = resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK diff --git a/app/src/main/java/org/linphone/activities/call/IncomingCallActivity.kt b/app/src/main/java/org/linphone/activities/call/IncomingCallActivity.kt index dbfb9489f..e818e0bb0 100644 --- a/app/src/main/java/org/linphone/activities/call/IncomingCallActivity.kt +++ b/app/src/main/java/org/linphone/activities/call/IncomingCallActivity.kt @@ -23,6 +23,7 @@ import android.Manifest import android.annotation.TargetApi import android.app.KeyguardManager import android.content.Context +import android.content.pm.ActivityInfo import android.content.pm.PackageManager import android.os.Bundle import androidx.databinding.DataBindingUtil @@ -84,6 +85,10 @@ class IncomingCallActivity : GenericActivity() { val keyguardManager = getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager val keyguardLocked = keyguardManager.isKeyguardLocked viewModel.screenLocked.value = keyguardLocked + if (keyguardLocked) { + // Forbid screen rotation to prevent keyguard to show up above incoming call view + requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LOCKED + } binding.buttons.setViewModel(viewModel)