From 2884cc97a29db1130df8374fdc6700337d2c83c4 Mon Sep 17 00:00:00 2001 From: gladiuscode Date: Wed, 17 Dec 2025 19:23:05 +0100 Subject: [PATCH 1/6] fix: initial device computation breaking sensor usages --- .../implementation/OrientationDirectorModuleImpl.kt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt b/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt index a85e6fb..10e738c 100644 --- a/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt +++ b/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt @@ -36,16 +36,19 @@ class OrientationDirectorModuleImpl internal constructor(private val context: Re checkInterfaceOrientation(false) } + // NOTE(1.init): This is needed to compute the initial device orientation + mOrientationSensorsEventListener.enable() + context.addLifecycleEventListener(mLifecycleListener) mLifecycleListener.setOnHostResumeCallback { - if (!didComputeInitialDeviceOrientation || areOrientationSensorsEnabled) { + if (areOrientationSensorsEnabled) { mOrientationSensorsEventListener.enable() + mAutoRotationObserver.enable() } - mAutoRotationObserver.enable() mBroadcastReceiver.register() } mLifecycleListener.setOnHostPauseCallback { - if (initialized && areOrientationSensorsEnabled) { + if (areOrientationSensorsEnabled) { mOrientationSensorsEventListener.disable() mAutoRotationObserver.disable() } @@ -163,7 +166,9 @@ class OrientationDirectorModuleImpl internal constructor(private val context: Re checkInterfaceOrientation() - if (!didComputeInitialDeviceOrientation) { + // NOTE(2.init): This is needed to disable sensors if they were needed just for the initial + // device computation. + if (!didComputeInitialDeviceOrientation && !areOrientationSensorsEnabled) { didComputeInitialDeviceOrientation = true mOrientationSensorsEventListener.disable() } From c8862ab0bd030dcccc82ab65904a61e3b02df5fd Mon Sep 17 00:00:00 2001 From: gladiuscode Date: Wed, 17 Dec 2025 19:28:56 +0100 Subject: [PATCH 2/6] fix: pr issue --- .../implementation/OrientationDirectorModuleImpl.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt b/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt index 10e738c..c504f45 100644 --- a/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt +++ b/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt @@ -43,22 +43,22 @@ class OrientationDirectorModuleImpl internal constructor(private val context: Re mLifecycleListener.setOnHostResumeCallback { if (areOrientationSensorsEnabled) { mOrientationSensorsEventListener.enable() - mAutoRotationObserver.enable() } + mAutoRotationObserver.enable() mBroadcastReceiver.register() } mLifecycleListener.setOnHostPauseCallback { if (areOrientationSensorsEnabled) { mOrientationSensorsEventListener.disable() - mAutoRotationObserver.disable() } + mAutoRotationObserver.disable() mBroadcastReceiver.unregister() } mLifecycleListener.setOnHostDestroyCallback { if (areOrientationSensorsEnabled) { mOrientationSensorsEventListener.disable() - mAutoRotationObserver.disable() } + mAutoRotationObserver.disable() mBroadcastReceiver.unregister() } From e1b1cedb6ee757b5cec03c74dc3d18b81e2501d8 Mon Sep 17 00:00:00 2001 From: gladiuscode Date: Wed, 17 Dec 2025 19:48:40 +0100 Subject: [PATCH 3/6] fix: pr issue --- .../implementation/OrientationDirectorModuleImpl.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt b/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt index c504f45..6075335 100644 --- a/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt +++ b/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt @@ -41,21 +41,21 @@ class OrientationDirectorModuleImpl internal constructor(private val context: Re context.addLifecycleEventListener(mLifecycleListener) mLifecycleListener.setOnHostResumeCallback { - if (areOrientationSensorsEnabled) { + if (areOrientationSensorsEnabled || !didComputeInitialDeviceOrientation) { mOrientationSensorsEventListener.enable() } mAutoRotationObserver.enable() mBroadcastReceiver.register() } mLifecycleListener.setOnHostPauseCallback { - if (areOrientationSensorsEnabled) { + if (areOrientationSensorsEnabled || !didComputeInitialDeviceOrientation) { mOrientationSensorsEventListener.disable() } mAutoRotationObserver.disable() mBroadcastReceiver.unregister() } mLifecycleListener.setOnHostDestroyCallback { - if (areOrientationSensorsEnabled) { + if (areOrientationSensorsEnabled || !didComputeInitialDeviceOrientation) { mOrientationSensorsEventListener.disable() } mAutoRotationObserver.disable() From 1074c0377822fd3ad705cc00162d259270ffc01c Mon Sep 17 00:00:00 2001 From: gladiuscode Date: Wed, 17 Dec 2025 19:55:08 +0100 Subject: [PATCH 4/6] refactor: useless code change --- .../implementation/OrientationDirectorModuleImpl.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt b/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt index 6075335..77f52d5 100644 --- a/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt +++ b/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt @@ -41,7 +41,7 @@ class OrientationDirectorModuleImpl internal constructor(private val context: Re context.addLifecycleEventListener(mLifecycleListener) mLifecycleListener.setOnHostResumeCallback { - if (areOrientationSensorsEnabled || !didComputeInitialDeviceOrientation) { + if (!didComputeInitialDeviceOrientation || areOrientationSensorsEnabled) { mOrientationSensorsEventListener.enable() } mAutoRotationObserver.enable() From 71d55b04f1faa24d362d912ee26bdb8c4458da19 Mon Sep 17 00:00:00 2001 From: gladiuscode Date: Wed, 17 Dec 2025 19:55:48 +0100 Subject: [PATCH 5/6] refactor: code structure --- .../implementation/OrientationDirectorModuleImpl.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt b/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt index 77f52d5..ec05865 100644 --- a/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt +++ b/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt @@ -48,14 +48,14 @@ class OrientationDirectorModuleImpl internal constructor(private val context: Re mBroadcastReceiver.register() } mLifecycleListener.setOnHostPauseCallback { - if (areOrientationSensorsEnabled || !didComputeInitialDeviceOrientation) { + if (!didComputeInitialDeviceOrientation || areOrientationSensorsEnabled) { mOrientationSensorsEventListener.disable() } mAutoRotationObserver.disable() mBroadcastReceiver.unregister() } mLifecycleListener.setOnHostDestroyCallback { - if (areOrientationSensorsEnabled || !didComputeInitialDeviceOrientation) { + if (!didComputeInitialDeviceOrientation || areOrientationSensorsEnabled) { mOrientationSensorsEventListener.disable() } mAutoRotationObserver.disable() From 1542be2a3f7035797b7e94cbccecc0d59f127889 Mon Sep 17 00:00:00 2001 From: gladiuscode Date: Wed, 17 Dec 2025 19:58:06 +0100 Subject: [PATCH 6/6] fix: code readability and small issue --- .../implementation/OrientationDirectorModuleImpl.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt b/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt index ec05865..113d2cf 100644 --- a/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt +++ b/android/src/main/java/com/orientationdirector/implementation/OrientationDirectorModuleImpl.kt @@ -168,8 +168,12 @@ class OrientationDirectorModuleImpl internal constructor(private val context: Re // NOTE(2.init): This is needed to disable sensors if they were needed just for the initial // device computation. - if (!didComputeInitialDeviceOrientation && !areOrientationSensorsEnabled) { - didComputeInitialDeviceOrientation = true + if (didComputeInitialDeviceOrientation) { + return + } + didComputeInitialDeviceOrientation = true + + if (!areOrientationSensorsEnabled) { mOrientationSensorsEventListener.disable() } }