diff --git a/app/src/main/java/org/lineageos/aperture/CameraActivity.kt b/app/src/main/java/org/lineageos/aperture/CameraActivity.kt
index 4722b3f..cbd6684 100644
--- a/app/src/main/java/org/lineageos/aperture/CameraActivity.kt
+++ b/app/src/main/java/org/lineageos/aperture/CameraActivity.kt
@@ -528,6 +528,10 @@
         cameraMode = overrideInitialCameraMode() ?: sharedPreferences.lastCameraMode
         initialCameraFacing = sharedPreferences.lastCameraFacing
 
+        // Pass the view model to the views
+        capturePreviewLayout.cameraViewModel = model
+        countDownView.cameraViewModel = model
+
         // Restore settings from shared preferences
         gridMode = sharedPreferences.lastGridMode
         timerMode = sharedPreferences.timerMode
@@ -2011,12 +2015,6 @@
         exposureLevel.screenRotation = screenRotation
         zoomLevel.screenRotation = screenRotation
 
-        // Rotate countdown
-        countDownView.screenRotation = screenRotation
-
-        // Rotate capture preview buttons
-        capturePreviewLayout.screenRotation = screenRotation
-
         // Rotate secondary top bar buttons
         ConstraintLayout::class.safeCast(
             secondaryTopBarLayout.getChildAt(0)
diff --git a/app/src/main/java/org/lineageos/aperture/ui/CapturePreviewLayout.kt b/app/src/main/java/org/lineageos/aperture/ui/CapturePreviewLayout.kt
index 4f0fc3b..6799fc2 100644
--- a/app/src/main/java/org/lineageos/aperture/ui/CapturePreviewLayout.kt
+++ b/app/src/main/java/org/lineageos/aperture/ui/CapturePreviewLayout.kt
@@ -13,10 +13,12 @@
 import android.widget.ImageView
 import androidx.constraintlayout.widget.ConstraintLayout
 import androidx.core.view.isVisible
+import androidx.lifecycle.findViewTreeLifecycleOwner
 import androidx.media3.common.MediaItem
 import androidx.media3.exoplayer.ExoPlayer
 import androidx.media3.ui.PlayerView
 import org.lineageos.aperture.R
+import org.lineageos.aperture.camera.CameraViewModel
 import org.lineageos.aperture.ext.*
 import org.lineageos.aperture.utils.ExifUtils
 import org.lineageos.aperture.utils.MediaType
@@ -46,11 +48,25 @@
      */
     internal var onChoiceCallback: (input: Any?) -> Unit = {}
 
-    internal var screenRotation = Rotation.ROTATION_0
+    internal var cameraViewModel: CameraViewModel? = null
         set(value) {
+            val lifecycleOwner = findViewTreeLifecycleOwner() ?: return
+
+            // Unregister
+            field?.screenRotation?.removeObservers(lifecycleOwner)
+
             field = value
-            updateViewsRotation()
+
+            value?.let { cameraViewModel ->
+                cameraViewModel.screenRotation.observe(lifecycleOwner) {
+                    val screenRotation = it ?: return@observe
+
+                    updateViewsRotation(screenRotation)
+                }
+            }
         }
+    private val screenRotation
+        get() = cameraViewModel?.screenRotation?.value ?: Rotation.ROTATION_0
 
     override fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int) {
         super.onLayout(changed, left, top, right, bottom)
@@ -133,7 +149,7 @@
         }
     }
 
-    private fun updateViewsRotation() {
+    private fun updateViewsRotation(screenRotation: Rotation) {
         val compensationValue = screenRotation.compensationValue.toFloat()
 
         cancelButton.smoothRotate(compensationValue)
diff --git a/app/src/main/java/org/lineageos/aperture/ui/CountDownView.kt b/app/src/main/java/org/lineageos/aperture/ui/CountDownView.kt
index 05f3c6b..5f04e17 100644
--- a/app/src/main/java/org/lineageos/aperture/ui/CountDownView.kt
+++ b/app/src/main/java/org/lineageos/aperture/ui/CountDownView.kt
@@ -17,7 +17,9 @@
 import androidx.annotation.IntRange
 import androidx.core.view.isInvisible
 import androidx.core.view.isVisible
+import androidx.lifecycle.findViewTreeLifecycleOwner
 import org.lineageos.aperture.R
+import org.lineageos.aperture.camera.CameraViewModel
 import org.lineageos.aperture.ext.*
 import org.lineageos.aperture.utils.Rotation
 
@@ -49,10 +51,22 @@
     private val isCountingDown: Boolean
         get() = remainingSeconds > 0
 
-    internal var screenRotation = Rotation.ROTATION_0
+    internal var cameraViewModel: CameraViewModel? = null
         set(value) {
+            val lifecycleOwner = findViewTreeLifecycleOwner() ?: return
+
+            // Unregister
+            field?.screenRotation?.removeObservers(lifecycleOwner)
+
             field = value
-            updateViewsRotation()
+
+            value?.let { cameraViewModel ->
+                cameraViewModel.screenRotation.observe(lifecycleOwner) {
+                    val screenRotation = it ?: return@observe
+
+                    updateViewsRotation(screenRotation)
+                }
+            }
         }
 
     /**
@@ -125,7 +139,7 @@
         return false
     }
 
-    private fun updateViewsRotation() {
+    private fun updateViewsRotation(screenRotation: Rotation) {
         val compensationValue = screenRotation.compensationValue.toFloat()
 
         remainingSecondsView.smoothRotate(compensationValue)
