Fixed display issue when going or leaving PiP mode in conference

This commit is contained in:
Sylvain Berfini 2022-11-23 16:12:07 +01:00
parent 80c0e6df36
commit edb55fdf6b
3 changed files with 19 additions and 2 deletions

View file

@ -81,6 +81,10 @@ class CallActivity : ProximitySensorActivity() {
statsViewModel = ViewModelProvider(navControllerStoreOwner)[StatisticsListViewModel::class.java]
val isInPipMode = Compatibility.isInPictureInPictureMode(this)
Log.i("[Call Activity] onPostCreate: is in PiP mode? $isInPipMode")
controlsViewModel.pipMode.value = isInPipMode
controlsViewModel.askPermissionEvent.observe(
this
) {
@ -193,12 +197,13 @@ class CallActivity : ProximitySensorActivity() {
isInPictureInPictureMode: Boolean,
newConfig: Configuration
) {
Log.i("[Call Activity] Is in PiP mode? $isInPictureInPictureMode")
super.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig)
Log.i("[Call Activity] onPictureInPictureModeChanged: is in PiP mode? $isInPictureInPictureMode")
if (::controlsViewModel.isInitialized) {
// To hide UI except for TextureViews
controlsViewModel.pipMode.value = isInPictureInPictureMode
}
super.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig)
}
override fun onResume() {

View file

@ -21,6 +21,7 @@ package org.linphone.compatibility
import android.annotation.SuppressLint
import android.annotation.TargetApi
import android.app.Activity
import android.bluetooth.BluetoothAdapter
import android.content.Context
import android.os.Build
@ -49,5 +50,9 @@ class Api25Compatibility {
}
return name
}
fun isInPictureInPictureMode(activity: Activity): Boolean {
return activity.isInPictureInPictureMode
}
}
}

View file

@ -270,6 +270,13 @@ class Compatibility {
return Api23Compatibility.canDrawOverlay(context)
}
fun isInPictureInPictureMode(activity: Activity): Boolean {
if (Version.sdkAboveOrEqual(Version.API25_NOUGAT_71)) {
return Api25Compatibility.isInPictureInPictureMode(activity)
}
return false
}
fun enterPipMode(activity: Activity, conference: Boolean) {
if (Version.sdkStrictlyBelow(Version.API31_ANDROID_12) && Version.sdkAboveOrEqual(Version.API26_O_80)) {
Api26Compatibility.enterPipMode(activity, conference)