From 43d625bd851d1927d5d7e0bd915178c8da265578 Mon Sep 17 00:00:00 2001 From: Loic Dal Zotto Date: Wed, 14 Aug 2024 15:53:56 +0200 Subject: [PATCH 1/2] Fix: clear orientation listener on close --- .../java/com/mrousavy/camera/core/CameraSession.kt | 1 + .../com/mrousavy/camera/core/OrientationManager.kt | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/package/android/src/main/java/com/mrousavy/camera/core/CameraSession.kt b/package/android/src/main/java/com/mrousavy/camera/core/CameraSession.kt index a557016061..f7ef066bbd 100644 --- a/package/android/src/main/java/com/mrousavy/camera/core/CameraSession.kt +++ b/package/android/src/main/java/com/mrousavy/camera/core/CameraSession.kt @@ -84,6 +84,7 @@ class CameraSession(internal val context: Context, internal val callback: Callba override fun close() { Log.i(TAG, "Closing CameraSession...") isDestroyed = true + orientationManager.clearListeners() runOnUiThread { lifecycleRegistry.currentState = Lifecycle.State.DESTROYED } diff --git a/package/android/src/main/java/com/mrousavy/camera/core/OrientationManager.kt b/package/android/src/main/java/com/mrousavy/camera/core/OrientationManager.kt index 4254452b61..a23da9f060 100644 --- a/package/android/src/main/java/com/mrousavy/camera/core/OrientationManager.kt +++ b/package/android/src/main/java/com/mrousavy/camera/core/OrientationManager.kt @@ -67,13 +67,17 @@ class OrientationManager(private val context: Context, private val callback: Cal } } + // remove previous listeners if attached + fun clearListeners() { + displayManager.unregisterDisplayListener(displayListener) + orientationListener.disable() + } + fun setTargetOutputOrientation(targetOrientation: OutputOrientation) { Log.i(TAG, "Target Orientation changed $targetOutputOrientation -> $targetOrientation!") targetOutputOrientation = targetOrientation - // remove previous listeners if attached - displayManager.unregisterDisplayListener(displayListener) - orientationListener.disable() + clearListeners() when (targetOrientation) { OutputOrientation.DEVICE -> { From cd73f15040472a46810faea4f8542fa7e22e4cda Mon Sep 17 00:00:00 2001 From: Marc Rousavy Date: Tue, 20 Aug 2024 23:35:52 +0200 Subject: [PATCH 2/2] fix: Rename and move comment --- .../src/main/java/com/mrousavy/camera/core/CameraSession.kt | 2 +- .../java/com/mrousavy/camera/core/OrientationManager.kt | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package/android/src/main/java/com/mrousavy/camera/core/CameraSession.kt b/package/android/src/main/java/com/mrousavy/camera/core/CameraSession.kt index f7ef066bbd..862c03a146 100644 --- a/package/android/src/main/java/com/mrousavy/camera/core/CameraSession.kt +++ b/package/android/src/main/java/com/mrousavy/camera/core/CameraSession.kt @@ -84,7 +84,7 @@ class CameraSession(internal val context: Context, internal val callback: Callba override fun close() { Log.i(TAG, "Closing CameraSession...") isDestroyed = true - orientationManager.clearListeners() + orientationManager.stopOrientationUpdates() runOnUiThread { lifecycleRegistry.currentState = Lifecycle.State.DESTROYED } diff --git a/package/android/src/main/java/com/mrousavy/camera/core/OrientationManager.kt b/package/android/src/main/java/com/mrousavy/camera/core/OrientationManager.kt index a23da9f060..f01d82b899 100644 --- a/package/android/src/main/java/com/mrousavy/camera/core/OrientationManager.kt +++ b/package/android/src/main/java/com/mrousavy/camera/core/OrientationManager.kt @@ -67,8 +67,7 @@ class OrientationManager(private val context: Context, private val callback: Cal } } - // remove previous listeners if attached - fun clearListeners() { + fun stopOrientationUpdates() { displayManager.unregisterDisplayListener(displayListener) orientationListener.disable() } @@ -77,7 +76,8 @@ class OrientationManager(private val context: Context, private val callback: Cal Log.i(TAG, "Target Orientation changed $targetOutputOrientation -> $targetOrientation!") targetOutputOrientation = targetOrientation - clearListeners() + // remove previous listeners if we have any + stopOrientationUpdates() when (targetOrientation) { OutputOrientation.DEVICE -> {