From b4a5d9bf448f6911d700fc801bb16907216698b4 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 28 Sep 2020 16:38:47 +0200 Subject: [PATCH] Added back video preview on call activity while in PiP mode + added setting to keep previous behavior even if not recommended --- app/src/main/AndroidManifest.xml | 1 + .../java/org/linphone/activities/call/CallActivity.kt | 8 +++++++- .../activities/call/viewmodels/ControlsFadingViewModel.kt | 2 ++ app/src/main/java/org/linphone/core/CorePreferences.kt | 7 ++++++- app/src/main/java/org/linphone/utils/DataBindingUtils.kt | 6 ++++++ app/src/main/res/layout/call_activity.xml | 3 ++- app/src/main/res/values/dimen.xml | 2 ++ 7 files changed, 26 insertions(+), 3 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d9d6b5bb2..15ca34981 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -102,6 +102,7 @@ () val isVideoPreviewHidden = MutableLiveData() + val isVideoPreviewResizedForPip = MutableLiveData() private val videoEnabled = MutableLiveData() private val nonEarpieceOutputAudioDevice = MutableLiveData() @@ -78,6 +79,7 @@ class ControlsFadingViewModel : ViewModel() { areControlsHidden.value = false isVideoPreviewHidden.value = false + isVideoPreviewResizedForPip.value = false nonEarpieceOutputAudioDevice.value = coreContext.core.outputAudioDevice?.type != AudioDevice.Type.Earpiece val isVideoCall = coreContext.isVideoCallOrConferenceActive() diff --git a/app/src/main/java/org/linphone/core/CorePreferences.kt b/app/src/main/java/org/linphone/core/CorePreferences.kt index a7490b65a..1282872eb 100644 --- a/app/src/main/java/org/linphone/core/CorePreferences.kt +++ b/app/src/main/java/org/linphone/core/CorePreferences.kt @@ -235,7 +235,7 @@ class CorePreferences constructor(private val context: Context) { config.setInt("app", "version_check_url_last_timestamp", value) } - /* Read only application settings previously in non_localizable_custom */ + /* Read only application settings, some were previously in non_localizable_custom */ val defaultDomain: String get() = config.getString("app", "default_domain", "sip.linphone.org")!! @@ -279,6 +279,11 @@ class CorePreferences constructor(private val context: Context) { val showIncomingChatMessagesDeliveryStatus: Boolean get() = config.getBool("app", "show_incoming_messages_delivery_status", false) + // If enabled, this will cause the video to "freeze" on your correspondent screen + // as you won't send video packets anymore + val hideCameraPreviewInPipMode: Boolean + get() = config.getBool("app", "hide_camera_preview_in_pip_mode", false) + /* Tabs */ val showHistory: Boolean diff --git a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt index 740fa2fee..bf640f56b 100644 --- a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt +++ b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt @@ -81,6 +81,12 @@ fun View.setLayoutHeight(dimension: Float) { this.layoutParams.height = dimension.toInt() } +@BindingAdapter("android:layout_size") +fun View.setLayoutSize(dimension: Float) { + this.layoutParams.height = dimension.toInt() + this.layoutParams.width = dimension.toInt() +} + @BindingAdapter("android:background") fun LinearLayout.setBackground(resource: Int) { this.setBackgroundResource(resource) diff --git a/app/src/main/res/layout/call_activity.xml b/app/src/main/res/layout/call_activity.xml index 0335fff6d..874cccc0a 100644 --- a/app/src/main/res/layout/call_activity.xml +++ b/app/src/main/res/layout/call_activity.xml @@ -30,8 +30,9 @@ 45dp 200dp 100dp + 200dp + 50dp \ No newline at end of file