diff --git a/vector/src/main/java/im/vector/app/features/call/VectorCallActivity.kt b/vector/src/main/java/im/vector/app/features/call/VectorCallActivity.kt index aefde07214..348983d431 100644 --- a/vector/src/main/java/im/vector/app/features/call/VectorCallActivity.kt +++ b/vector/src/main/java/im/vector/app/features/call/VectorCallActivity.kt @@ -22,7 +22,6 @@ import android.app.PictureInPictureParams import android.content.Context import android.content.Intent import android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP -import android.content.res.Configuration import android.graphics.Color import android.media.projection.MediaProjection import android.media.projection.MediaProjectionManager @@ -35,8 +34,10 @@ import android.view.View import android.view.WindowManager import androidx.activity.result.ActivityResult import androidx.annotation.StringRes +import androidx.core.app.PictureInPictureModeChangedInfo import androidx.core.content.ContextCompat import androidx.core.content.getSystemService +import androidx.core.util.Consumer import androidx.core.view.isInvisible import androidx.core.view.isVisible import com.airbnb.mvrx.Fail @@ -128,6 +129,7 @@ class VectorCallActivity : VectorBaseActivity(), CallContro window.statusBarColor = Color.TRANSPARENT window.navigationBarColor = Color.BLACK super.onCreate(savedInstanceState) + addOnPictureInPictureModeChangedListener(pictureInPictureModeChangedInfoConsumer) Timber.tag(loggerTag.value).v("EXTRA_MODE is ${intent.getStringExtra(EXTRA_MODE)}") if (intent.getStringExtra(EXTRA_MODE) == INCOMING_RINGING) { @@ -210,8 +212,10 @@ class VectorCallActivity : VectorBaseActivity(), CallContro return Build.VERSION.SDK_INT >= Build.VERSION_CODES.N && isInPictureInPictureMode } - override fun onPictureInPictureModeChanged(isInPictureInPictureMode: Boolean, newConfig: Configuration) = withState(callViewModel) { - renderState(it) + private val pictureInPictureModeChangedInfoConsumer = Consumer { + withState(callViewModel) { + renderState(it) + } } override fun handleMenuItemSelected(item: MenuItem): Boolean { @@ -232,6 +236,7 @@ class VectorCallActivity : VectorBaseActivity(), CallContro override fun onDestroy() { detachRenderersIfNeeded() turnScreenOffAndKeyguardOn() + removeOnPictureInPictureModeChangedListener(pictureInPictureModeChangedInfoConsumer) super.onDestroy() } diff --git a/vector/src/main/java/im/vector/app/features/call/conference/VectorJitsiActivity.kt b/vector/src/main/java/im/vector/app/features/call/conference/VectorJitsiActivity.kt index 86136eab15..5bf05d353c 100644 --- a/vector/src/main/java/im/vector/app/features/call/conference/VectorJitsiActivity.kt +++ b/vector/src/main/java/im/vector/app/features/call/conference/VectorJitsiActivity.kt @@ -19,12 +19,13 @@ package im.vector.app.features.call.conference import android.content.Context import android.content.Intent import android.content.pm.PackageManager -import android.content.res.Configuration import android.os.Build import android.os.Bundle import android.os.Parcelable import android.widget.FrameLayout import android.widget.Toast +import androidx.core.app.PictureInPictureModeChangedInfo +import androidx.core.util.Consumer import androidx.core.view.isVisible import androidx.lifecycle.Lifecycle import com.airbnb.mvrx.Fail @@ -66,6 +67,7 @@ class VectorJitsiActivity : VectorBaseActivity(), JitsiMee override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + addOnPictureInPictureModeChangedListener(pictureInPictureModeChangedInfoConsumer) jitsiViewModel.onEach { renderState(it) @@ -109,6 +111,7 @@ class VectorJitsiActivity : VectorBaseActivity(), JitsiMee ConferenceEventEmitter(this).emitConferenceEnded() } JitsiMeetActivityDelegate.onHostDestroy(this) + removeOnPictureInPictureModeChangedListener(pictureInPictureModeChangedInfoConsumer) super.onDestroy() } @@ -138,13 +141,9 @@ class VectorJitsiActivity : VectorBaseActivity(), JitsiMee .show() } - override fun onPictureInPictureModeChanged( - isInPictureInPictureMode: Boolean, - newConfig: Configuration - ) { - super.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig) + private val pictureInPictureModeChangedInfoConsumer = Consumer { checkIfActivityShouldBeFinished() - Timber.w("onPictureInPictureModeChanged($isInPictureInPictureMode)") + Timber.w("onPictureInPictureModeChanged(${it.isInPictureInPictureMode})") } private fun checkIfActivityShouldBeFinished() { diff --git a/vector/src/main/java/im/vector/app/features/reactions/EmojiReactionPickerActivity.kt b/vector/src/main/java/im/vector/app/features/reactions/EmojiReactionPickerActivity.kt index 4296a7a3b5..6a7914b6b5 100644 --- a/vector/src/main/java/im/vector/app/features/reactions/EmojiReactionPickerActivity.kt +++ b/vector/src/main/java/im/vector/app/features/reactions/EmojiReactionPickerActivity.kt @@ -21,7 +21,6 @@ import android.content.Intent import android.graphics.Typeface import android.util.TypedValue import android.view.Menu -import android.view.MenuInflater import android.view.MenuItem import android.widget.SearchView import androidx.core.view.isVisible