Aperture: Move data classes and enum classes to models package

Matches Glimpse, also looks cleaner

Change-Id: I3551bd9cabd973e6cecfa6894f46729dd3540dc7
diff --git a/app/src/main/java/org/lineageos/aperture/CameraActivity.kt b/app/src/main/java/org/lineageos/aperture/CameraActivity.kt
index 2ecad87..894484d 100644
--- a/app/src/main/java/org/lineageos/aperture/CameraActivity.kt
+++ b/app/src/main/java/org/lineageos/aperture/CameraActivity.kt
@@ -91,24 +91,30 @@
 import coil.size.Scale
 import com.google.android.material.snackbar.Snackbar
 import kotlinx.coroutines.sync.Mutex
-import org.lineageos.aperture.camera.CameraFacing
 import org.lineageos.aperture.camera.CameraManager
-import org.lineageos.aperture.camera.CameraMode
-import org.lineageos.aperture.camera.CameraState
 import org.lineageos.aperture.camera.CameraViewModel
-import org.lineageos.aperture.camera.ColorCorrectionAberrationMode
-import org.lineageos.aperture.camera.DistortionCorrectionMode
-import org.lineageos.aperture.camera.EdgeMode
-import org.lineageos.aperture.camera.FlashMode
-import org.lineageos.aperture.camera.FrameRate
-import org.lineageos.aperture.camera.HotPixelMode
-import org.lineageos.aperture.camera.NoiseReductionMode
-import org.lineageos.aperture.camera.ShadingMode
-import org.lineageos.aperture.camera.VideoDynamicRange
-import org.lineageos.aperture.camera.VideoMirrorMode
-import org.lineageos.aperture.camera.VideoQualityInfo
-import org.lineageos.aperture.camera.VideoStabilizationMode
 import org.lineageos.aperture.ext.*
+import org.lineageos.aperture.models.AssistantIntent
+import org.lineageos.aperture.models.CameraFacing
+import org.lineageos.aperture.models.CameraMode
+import org.lineageos.aperture.models.CameraState
+import org.lineageos.aperture.models.ColorCorrectionAberrationMode
+import org.lineageos.aperture.models.DistortionCorrectionMode
+import org.lineageos.aperture.models.EdgeMode
+import org.lineageos.aperture.models.FlashMode
+import org.lineageos.aperture.models.FrameRate
+import org.lineageos.aperture.models.GestureActions
+import org.lineageos.aperture.models.GridMode
+import org.lineageos.aperture.models.HotPixelMode
+import org.lineageos.aperture.models.MediaType
+import org.lineageos.aperture.models.NoiseReductionMode
+import org.lineageos.aperture.models.Rotation
+import org.lineageos.aperture.models.ShadingMode
+import org.lineageos.aperture.models.TimerMode
+import org.lineageos.aperture.models.VideoDynamicRange
+import org.lineageos.aperture.models.VideoMirrorMode
+import org.lineageos.aperture.models.VideoQualityInfo
+import org.lineageos.aperture.models.VideoStabilizationMode
 import org.lineageos.aperture.qr.QrImageAnalyzer
 import org.lineageos.aperture.ui.CameraModeSelectorLayout
 import org.lineageos.aperture.ui.CapturePreviewLayout
@@ -121,20 +127,14 @@
 import org.lineageos.aperture.ui.LocationPermissionsDialog
 import org.lineageos.aperture.ui.PreviewBlurView
 import org.lineageos.aperture.ui.VerticalSlider
-import org.lineageos.aperture.utils.AssistantIntent
 import org.lineageos.aperture.utils.BroadcastUtils
 import org.lineageos.aperture.utils.CameraSoundsUtils
 import org.lineageos.aperture.utils.ExifUtils
-import org.lineageos.aperture.utils.GestureActions
 import org.lineageos.aperture.utils.GoogleLensUtils
-import org.lineageos.aperture.utils.GridMode
 import org.lineageos.aperture.utils.MediaStoreUtils
-import org.lineageos.aperture.utils.MediaType
 import org.lineageos.aperture.utils.PermissionsUtils
-import org.lineageos.aperture.utils.Rotation
 import org.lineageos.aperture.utils.ShortcutsUtils
 import org.lineageos.aperture.utils.StorageUtils
-import org.lineageos.aperture.utils.TimerMode
 import java.io.ByteArrayInputStream
 import java.io.ByteArrayOutputStream
 import java.io.FileNotFoundException
diff --git a/app/src/main/java/org/lineageos/aperture/QrScannerActivity.kt b/app/src/main/java/org/lineageos/aperture/QrScannerActivity.kt
index 0c402fe..0059dc6 100644
--- a/app/src/main/java/org/lineageos/aperture/QrScannerActivity.kt
+++ b/app/src/main/java/org/lineageos/aperture/QrScannerActivity.kt
@@ -5,7 +5,7 @@
 
 package org.lineageos.aperture
 
-import org.lineageos.aperture.camera.CameraMode
+import org.lineageos.aperture.models.CameraMode
 
 @androidx.camera.camera2.interop.ExperimentalCamera2Interop
 @androidx.camera.core.ExperimentalZeroShutterLag
diff --git a/app/src/main/java/org/lineageos/aperture/camera/Camera.kt b/app/src/main/java/org/lineageos/aperture/camera/Camera.kt
index 7b78127..bc662f0 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/Camera.kt
+++ b/app/src/main/java/org/lineageos/aperture/camera/Camera.kt
@@ -13,6 +13,18 @@
 import androidx.camera.core.CameraSelector
 import androidx.camera.video.Recorder
 import org.lineageos.aperture.ext.*
+import org.lineageos.aperture.models.CameraFacing
+import org.lineageos.aperture.models.CameraMode
+import org.lineageos.aperture.models.ColorCorrectionAberrationMode
+import org.lineageos.aperture.models.DistortionCorrectionMode
+import org.lineageos.aperture.models.EdgeMode
+import org.lineageos.aperture.models.FrameRate
+import org.lineageos.aperture.models.HotPixelMode
+import org.lineageos.aperture.models.NoiseReductionMode
+import org.lineageos.aperture.models.ShadingMode
+import org.lineageos.aperture.models.VideoDynamicRange
+import org.lineageos.aperture.models.VideoQualityInfo
+import org.lineageos.aperture.models.VideoStabilizationMode
 import kotlin.reflect.safeCast
 
 /**
diff --git a/app/src/main/java/org/lineageos/aperture/camera/CameraManager.kt b/app/src/main/java/org/lineageos/aperture/camera/CameraManager.kt
index c8c5f9c..7b68c8d 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/CameraManager.kt
+++ b/app/src/main/java/org/lineageos/aperture/camera/CameraManager.kt
@@ -12,6 +12,10 @@
 import androidx.camera.view.LifecycleCameraController
 import org.lineageos.aperture.R
 import org.lineageos.aperture.ext.*
+import org.lineageos.aperture.models.CameraFacing
+import org.lineageos.aperture.models.CameraMode
+import org.lineageos.aperture.models.CameraType
+import org.lineageos.aperture.models.FrameRate
 import java.util.concurrent.ExecutorService
 import java.util.concurrent.Executors
 
diff --git a/app/src/main/java/org/lineageos/aperture/camera/CameraViewModel.kt b/app/src/main/java/org/lineageos/aperture/camera/CameraViewModel.kt
index 6e279c6..c3bd4a9 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/CameraViewModel.kt
+++ b/app/src/main/java/org/lineageos/aperture/camera/CameraViewModel.kt
@@ -9,9 +9,14 @@
 import androidx.camera.video.Recording
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
-import org.lineageos.aperture.utils.GridMode
-import org.lineageos.aperture.utils.Rotation
-import org.lineageos.aperture.utils.TimerMode
+import org.lineageos.aperture.models.CameraMode
+import org.lineageos.aperture.models.CameraState
+import org.lineageos.aperture.models.FlashMode
+import org.lineageos.aperture.models.FrameRate
+import org.lineageos.aperture.models.GridMode
+import org.lineageos.aperture.models.Rotation
+import org.lineageos.aperture.models.TimerMode
+import org.lineageos.aperture.models.VideoDynamicRange
 
 /**
  * [ViewModel] representing a camera session. This data is used to receive
diff --git a/app/src/main/java/org/lineageos/aperture/ext/Bitmap.kt b/app/src/main/java/org/lineageos/aperture/ext/Bitmap.kt
index e8849fb..38a557d 100644
--- a/app/src/main/java/org/lineageos/aperture/ext/Bitmap.kt
+++ b/app/src/main/java/org/lineageos/aperture/ext/Bitmap.kt
@@ -7,7 +7,7 @@
 
 import android.graphics.Bitmap
 import androidx.core.graphics.scale
-import org.lineageos.aperture.utils.ExifUtils.Transform
+import org.lineageos.aperture.models.Transform
 import kotlin.math.abs
 import kotlin.math.max
 import kotlin.math.min
diff --git a/app/src/main/java/org/lineageos/aperture/ext/CameraController.kt b/app/src/main/java/org/lineageos/aperture/ext/CameraController.kt
index cec0209..bd1d451 100644
--- a/app/src/main/java/org/lineageos/aperture/ext/CameraController.kt
+++ b/app/src/main/java/org/lineageos/aperture/ext/CameraController.kt
@@ -9,7 +9,7 @@
 import androidx.camera.core.ImageCapture
 import androidx.camera.core.TorchState
 import androidx.camera.view.CameraController
-import org.lineageos.aperture.camera.FlashMode
+import org.lineageos.aperture.models.FlashMode
 
 var CameraController.flashMode: FlashMode
     get() = when (torchState.value) {
diff --git a/app/src/main/java/org/lineageos/aperture/ext/CaptureRequestOptionsBuilder.kt b/app/src/main/java/org/lineageos/aperture/ext/CaptureRequestOptionsBuilder.kt
index 5f1f905..ba844bc 100644
--- a/app/src/main/java/org/lineageos/aperture/ext/CaptureRequestOptionsBuilder.kt
+++ b/app/src/main/java/org/lineageos/aperture/ext/CaptureRequestOptionsBuilder.kt
@@ -10,14 +10,14 @@
 import android.os.Build
 import androidx.annotation.RequiresApi
 import androidx.camera.camera2.interop.CaptureRequestOptions
-import org.lineageos.aperture.camera.ColorCorrectionAberrationMode
-import org.lineageos.aperture.camera.DistortionCorrectionMode
-import org.lineageos.aperture.camera.EdgeMode
-import org.lineageos.aperture.camera.FrameRate
-import org.lineageos.aperture.camera.HotPixelMode
-import org.lineageos.aperture.camera.NoiseReductionMode
-import org.lineageos.aperture.camera.ShadingMode
-import org.lineageos.aperture.camera.VideoStabilizationMode
+import org.lineageos.aperture.models.ColorCorrectionAberrationMode
+import org.lineageos.aperture.models.DistortionCorrectionMode
+import org.lineageos.aperture.models.EdgeMode
+import org.lineageos.aperture.models.FrameRate
+import org.lineageos.aperture.models.HotPixelMode
+import org.lineageos.aperture.models.NoiseReductionMode
+import org.lineageos.aperture.models.ShadingMode
+import org.lineageos.aperture.models.VideoStabilizationMode
 
 @androidx.camera.camera2.interop.ExperimentalCamera2Interop
 fun CaptureRequestOptions.Builder.setFrameRate(frameRate: FrameRate?) {
diff --git a/app/src/main/java/org/lineageos/aperture/ext/SharedPreferences.kt b/app/src/main/java/org/lineageos/aperture/ext/SharedPreferences.kt
index bb3c284..209e811 100644
--- a/app/src/main/java/org/lineageos/aperture/ext/SharedPreferences.kt
+++ b/app/src/main/java/org/lineageos/aperture/ext/SharedPreferences.kt
@@ -12,21 +12,21 @@
 import androidx.camera.extensions.ExtensionMode
 import androidx.camera.video.Quality
 import androidx.core.content.edit
-import org.lineageos.aperture.camera.CameraFacing
-import org.lineageos.aperture.camera.CameraMode
-import org.lineageos.aperture.camera.ColorCorrectionAberrationMode
-import org.lineageos.aperture.camera.DistortionCorrectionMode
-import org.lineageos.aperture.camera.EdgeMode
-import org.lineageos.aperture.camera.FlashMode
-import org.lineageos.aperture.camera.FrameRate
-import org.lineageos.aperture.camera.HotPixelMode
-import org.lineageos.aperture.camera.NoiseReductionMode
-import org.lineageos.aperture.camera.ShadingMode
-import org.lineageos.aperture.camera.VideoDynamicRange
-import org.lineageos.aperture.camera.VideoMirrorMode
-import org.lineageos.aperture.utils.GestureActions
-import org.lineageos.aperture.utils.GridMode
-import org.lineageos.aperture.utils.TimerMode
+import org.lineageos.aperture.models.CameraFacing
+import org.lineageos.aperture.models.CameraMode
+import org.lineageos.aperture.models.ColorCorrectionAberrationMode
+import org.lineageos.aperture.models.DistortionCorrectionMode
+import org.lineageos.aperture.models.EdgeMode
+import org.lineageos.aperture.models.FlashMode
+import org.lineageos.aperture.models.FrameRate
+import org.lineageos.aperture.models.GestureActions
+import org.lineageos.aperture.models.GridMode
+import org.lineageos.aperture.models.HotPixelMode
+import org.lineageos.aperture.models.NoiseReductionMode
+import org.lineageos.aperture.models.ShadingMode
+import org.lineageos.aperture.models.TimerMode
+import org.lineageos.aperture.models.VideoDynamicRange
+import org.lineageos.aperture.models.VideoMirrorMode
 
 // Helpers
 internal fun SharedPreferences.getBoolean(key: String): Boolean? {
diff --git a/app/src/main/java/org/lineageos/aperture/ext/View.kt b/app/src/main/java/org/lineageos/aperture/ext/View.kt
index 88678d2..eae909c 100644
--- a/app/src/main/java/org/lineageos/aperture/ext/View.kt
+++ b/app/src/main/java/org/lineageos/aperture/ext/View.kt
@@ -11,7 +11,7 @@
 import android.view.animation.AnimationSet
 import android.view.animation.TranslateAnimation
 import androidx.core.view.isVisible
-import org.lineageos.aperture.utils.Rotation
+import org.lineageos.aperture.models.Rotation
 
 internal fun View.setPadding(value: Int) {
     setPadding(value, value, value, value)
diff --git a/app/src/main/java/org/lineageos/aperture/utils/AssistantIntent.kt b/app/src/main/java/org/lineageos/aperture/models/AssistantIntent.kt
similarity index 97%
rename from app/src/main/java/org/lineageos/aperture/utils/AssistantIntent.kt
rename to app/src/main/java/org/lineageos/aperture/models/AssistantIntent.kt
index 9e939e8..6018aa8 100644
--- a/app/src/main/java/org/lineageos/aperture/utils/AssistantIntent.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/AssistantIntent.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.utils
+package org.lineageos.aperture.models
 
 import android.content.Intent
 
diff --git a/app/src/main/java/org/lineageos/aperture/camera/CameraFacing.kt b/app/src/main/java/org/lineageos/aperture/models/CameraFacing.kt
similarity index 90%
rename from app/src/main/java/org/lineageos/aperture/camera/CameraFacing.kt
rename to app/src/main/java/org/lineageos/aperture/models/CameraFacing.kt
index 7af40eb..2c01a11 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/CameraFacing.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/CameraFacing.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.camera
+package org.lineageos.aperture.models
 
 enum class CameraFacing(
     val cameraType: CameraType,
diff --git a/app/src/main/java/org/lineageos/aperture/camera/CameraMode.kt b/app/src/main/java/org/lineageos/aperture/models/CameraMode.kt
similarity index 89%
rename from app/src/main/java/org/lineageos/aperture/camera/CameraMode.kt
rename to app/src/main/java/org/lineageos/aperture/models/CameraMode.kt
index de5a43f..950e579 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/CameraMode.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/CameraMode.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.camera
+package org.lineageos.aperture.models
 
 import androidx.annotation.StringRes
 import org.lineageos.aperture.R
diff --git a/app/src/main/java/org/lineageos/aperture/camera/CameraState.kt b/app/src/main/java/org/lineageos/aperture/models/CameraState.kt
similarity index 88%
rename from app/src/main/java/org/lineageos/aperture/camera/CameraState.kt
rename to app/src/main/java/org/lineageos/aperture/models/CameraState.kt
index 02ebfe9..8d32621 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/CameraState.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/CameraState.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.camera
+package org.lineageos.aperture.models
 
 enum class CameraState(
     val isRecordingVideo: Boolean = false,
diff --git a/app/src/main/java/org/lineageos/aperture/camera/CameraType.kt b/app/src/main/java/org/lineageos/aperture/models/CameraType.kt
similarity index 89%
rename from app/src/main/java/org/lineageos/aperture/camera/CameraType.kt
rename to app/src/main/java/org/lineageos/aperture/models/CameraType.kt
index c64bd56..a876a3f 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/CameraType.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/CameraType.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.camera
+package org.lineageos.aperture.models
 
 /**
  * [Camera] type.
diff --git a/app/src/main/java/org/lineageos/aperture/camera/ColorCorrectionAberrationMode.kt b/app/src/main/java/org/lineageos/aperture/models/ColorCorrectionAberrationMode.kt
similarity index 95%
rename from app/src/main/java/org/lineageos/aperture/camera/ColorCorrectionAberrationMode.kt
rename to app/src/main/java/org/lineageos/aperture/models/ColorCorrectionAberrationMode.kt
index 34f57ed..d593bdf 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/ColorCorrectionAberrationMode.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/ColorCorrectionAberrationMode.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.camera
+package org.lineageos.aperture.models
 
 enum class ColorCorrectionAberrationMode {
     OFF,
diff --git a/app/src/main/java/org/lineageos/aperture/camera/DistortionCorrectionMode.kt b/app/src/main/java/org/lineageos/aperture/models/DistortionCorrectionMode.kt
similarity index 95%
rename from app/src/main/java/org/lineageos/aperture/camera/DistortionCorrectionMode.kt
rename to app/src/main/java/org/lineageos/aperture/models/DistortionCorrectionMode.kt
index 3b17c80..78f6b0c 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/DistortionCorrectionMode.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/DistortionCorrectionMode.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.camera
+package org.lineageos.aperture.models
 
 enum class DistortionCorrectionMode {
     OFF,
diff --git a/app/src/main/java/org/lineageos/aperture/camera/EdgeMode.kt b/app/src/main/java/org/lineageos/aperture/models/EdgeMode.kt
similarity index 95%
rename from app/src/main/java/org/lineageos/aperture/camera/EdgeMode.kt
rename to app/src/main/java/org/lineageos/aperture/models/EdgeMode.kt
index 4c94da0..4a65a8d 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/EdgeMode.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/EdgeMode.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.camera
+package org.lineageos.aperture.models
 
 enum class EdgeMode {
     OFF,
diff --git a/app/src/main/java/org/lineageos/aperture/camera/FlashMode.kt b/app/src/main/java/org/lineageos/aperture/models/FlashMode.kt
similarity index 95%
rename from app/src/main/java/org/lineageos/aperture/camera/FlashMode.kt
rename to app/src/main/java/org/lineageos/aperture/models/FlashMode.kt
index 80adf8c..d0317ab 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/FlashMode.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/FlashMode.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.camera
+package org.lineageos.aperture.models
 
 enum class FlashMode {
     /**
diff --git a/app/src/main/java/org/lineageos/aperture/camera/FrameRate.kt b/app/src/main/java/org/lineageos/aperture/models/FrameRate.kt
similarity index 95%
rename from app/src/main/java/org/lineageos/aperture/camera/FrameRate.kt
rename to app/src/main/java/org/lineageos/aperture/models/FrameRate.kt
index d066ba6..e07cd93 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/FrameRate.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/FrameRate.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.camera
+package org.lineageos.aperture.models
 
 import android.util.Range
 
diff --git a/app/src/main/java/org/lineageos/aperture/utils/GestureActions.kt b/app/src/main/java/org/lineageos/aperture/models/GestureActions.kt
similarity index 85%
rename from app/src/main/java/org/lineageos/aperture/utils/GestureActions.kt
rename to app/src/main/java/org/lineageos/aperture/models/GestureActions.kt
index 09ab8d7..8ec998a 100644
--- a/app/src/main/java/org/lineageos/aperture/utils/GestureActions.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/GestureActions.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.utils
+package org.lineageos.aperture.models
 
 /**
  * Available gesture actions.
diff --git a/app/src/main/java/org/lineageos/aperture/utils/GridMode.kt b/app/src/main/java/org/lineageos/aperture/models/GridMode.kt
similarity index 82%
rename from app/src/main/java/org/lineageos/aperture/utils/GridMode.kt
rename to app/src/main/java/org/lineageos/aperture/models/GridMode.kt
index 5342f67..abfddde 100644
--- a/app/src/main/java/org/lineageos/aperture/utils/GridMode.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/GridMode.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.utils
+package org.lineageos.aperture.models
 
 enum class GridMode {
     OFF,
diff --git a/app/src/main/java/org/lineageos/aperture/camera/HotPixelMode.kt b/app/src/main/java/org/lineageos/aperture/models/HotPixelMode.kt
similarity index 95%
rename from app/src/main/java/org/lineageos/aperture/camera/HotPixelMode.kt
rename to app/src/main/java/org/lineageos/aperture/models/HotPixelMode.kt
index df772d1..6269e5f 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/HotPixelMode.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/HotPixelMode.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.camera
+package org.lineageos.aperture.models
 
 enum class HotPixelMode {
     OFF,
diff --git a/app/src/main/java/org/lineageos/aperture/utils/MediaType.kt b/app/src/main/java/org/lineageos/aperture/models/MediaType.kt
similarity index 79%
rename from app/src/main/java/org/lineageos/aperture/utils/MediaType.kt
rename to app/src/main/java/org/lineageos/aperture/models/MediaType.kt
index 491291c..9cc9577 100644
--- a/app/src/main/java/org/lineageos/aperture/utils/MediaType.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/MediaType.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.utils
+package org.lineageos.aperture.models
 
 enum class MediaType {
     PHOTO,
diff --git a/app/src/main/java/org/lineageos/aperture/camera/NoiseReductionMode.kt b/app/src/main/java/org/lineageos/aperture/models/NoiseReductionMode.kt
similarity index 95%
rename from app/src/main/java/org/lineageos/aperture/camera/NoiseReductionMode.kt
rename to app/src/main/java/org/lineageos/aperture/models/NoiseReductionMode.kt
index 9044e40..720bf8a 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/NoiseReductionMode.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/NoiseReductionMode.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.camera
+package org.lineageos.aperture.models
 
 enum class NoiseReductionMode {
     OFF,
diff --git a/app/src/main/java/org/lineageos/aperture/utils/Rotation.kt b/app/src/main/java/org/lineageos/aperture/models/Rotation.kt
similarity index 97%
rename from app/src/main/java/org/lineageos/aperture/utils/Rotation.kt
rename to app/src/main/java/org/lineageos/aperture/models/Rotation.kt
index 0291baa..11c5b97 100644
--- a/app/src/main/java/org/lineageos/aperture/utils/Rotation.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/Rotation.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.utils
+package org.lineageos.aperture.models
 
 /**
  * Rotation utils.
diff --git a/app/src/main/java/org/lineageos/aperture/camera/ShadingMode.kt b/app/src/main/java/org/lineageos/aperture/models/ShadingMode.kt
similarity index 95%
rename from app/src/main/java/org/lineageos/aperture/camera/ShadingMode.kt
rename to app/src/main/java/org/lineageos/aperture/models/ShadingMode.kt
index 00d9393..0bbdcd1 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/ShadingMode.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/ShadingMode.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.camera
+package org.lineageos.aperture.models
 
 enum class ShadingMode {
     OFF,
diff --git a/app/src/main/java/org/lineageos/aperture/utils/TimerMode.kt b/app/src/main/java/org/lineageos/aperture/models/TimerMode.kt
similarity index 88%
rename from app/src/main/java/org/lineageos/aperture/utils/TimerMode.kt
rename to app/src/main/java/org/lineageos/aperture/models/TimerMode.kt
index 204aee4..898bc47 100644
--- a/app/src/main/java/org/lineageos/aperture/utils/TimerMode.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/TimerMode.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.utils
+package org.lineageos.aperture.models
 
 enum class TimerMode(val seconds: Int) {
     OFF(0),
diff --git a/app/src/main/java/org/lineageos/aperture/models/Transform.kt b/app/src/main/java/org/lineageos/aperture/models/Transform.kt
new file mode 100644
index 0000000..65838b6
--- /dev/null
+++ b/app/src/main/java/org/lineageos/aperture/models/Transform.kt
@@ -0,0 +1,22 @@
+/*
+ * SPDX-FileCopyrightText: 2023 The LineageOS Project
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+package org.lineageos.aperture.models
+
+import android.graphics.Matrix
+
+data class Transform(val rotation: Rotation, val mirror: Boolean) {
+    fun toMatrix() = Matrix().apply {
+        if (mirror) {
+            postScale(-1f, 1f)
+        }
+
+        postRotate(rotation.offset.toFloat())
+    }
+
+    companion object {
+        val DEFAULT = Transform(Rotation.ROTATION_0, false)
+    }
+}
diff --git a/app/src/main/java/org/lineageos/aperture/camera/VideoDynamicRange.kt b/app/src/main/java/org/lineageos/aperture/models/VideoDynamicRange.kt
similarity index 97%
rename from app/src/main/java/org/lineageos/aperture/camera/VideoDynamicRange.kt
rename to app/src/main/java/org/lineageos/aperture/models/VideoDynamicRange.kt
index 4f2779b..e4541b4 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/VideoDynamicRange.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/VideoDynamicRange.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.camera
+package org.lineageos.aperture.models
 
 import androidx.annotation.DrawableRes
 import androidx.annotation.StringRes
diff --git a/app/src/main/java/org/lineageos/aperture/camera/VideoMirrorMode.kt b/app/src/main/java/org/lineageos/aperture/models/VideoMirrorMode.kt
similarity index 84%
rename from app/src/main/java/org/lineageos/aperture/camera/VideoMirrorMode.kt
rename to app/src/main/java/org/lineageos/aperture/models/VideoMirrorMode.kt
index e823997..d618cba 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/VideoMirrorMode.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/VideoMirrorMode.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.camera
+package org.lineageos.aperture.models
 
 /**
  * Video mirror mode.
diff --git a/app/src/main/java/org/lineageos/aperture/camera/VideoQualityInfo.kt b/app/src/main/java/org/lineageos/aperture/models/VideoQualityInfo.kt
similarity index 92%
rename from app/src/main/java/org/lineageos/aperture/camera/VideoQualityInfo.kt
rename to app/src/main/java/org/lineageos/aperture/models/VideoQualityInfo.kt
index b2b9d53..bd017ae 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/VideoQualityInfo.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/VideoQualityInfo.kt
@@ -3,7 +3,7 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.camera
+package org.lineageos.aperture.models
 
 import androidx.camera.video.Quality
 
diff --git a/app/src/main/java/org/lineageos/aperture/camera/VideoStabilizationMode.kt b/app/src/main/java/org/lineageos/aperture/models/VideoStabilizationMode.kt
similarity index 83%
rename from app/src/main/java/org/lineageos/aperture/camera/VideoStabilizationMode.kt
rename to app/src/main/java/org/lineageos/aperture/models/VideoStabilizationMode.kt
index 9f832ea..13de65c 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/VideoStabilizationMode.kt
+++ b/app/src/main/java/org/lineageos/aperture/models/VideoStabilizationMode.kt
@@ -3,7 +3,9 @@
  * SPDX-License-Identifier: Apache-2.0
  */
 
-package org.lineageos.aperture.camera
+package org.lineageos.aperture.models
+
+import org.lineageos.aperture.camera.Camera
 
 enum class VideoStabilizationMode {
     OFF,
diff --git a/app/src/main/java/org/lineageos/aperture/ui/CameraModeSelectorLayout.kt b/app/src/main/java/org/lineageos/aperture/ui/CameraModeSelectorLayout.kt
index d00c5d4..c61207a 100644
--- a/app/src/main/java/org/lineageos/aperture/ui/CameraModeSelectorLayout.kt
+++ b/app/src/main/java/org/lineageos/aperture/ui/CameraModeSelectorLayout.kt
@@ -18,10 +18,10 @@
 import androidx.lifecycle.findViewTreeLifecycleOwner
 import com.google.android.material.button.MaterialButton
 import org.lineageos.aperture.R
-import org.lineageos.aperture.camera.CameraMode
-import org.lineageos.aperture.camera.CameraState
 import org.lineageos.aperture.camera.CameraViewModel
 import org.lineageos.aperture.ext.px
+import org.lineageos.aperture.models.CameraMode
+import org.lineageos.aperture.models.CameraState
 import org.lineageos.aperture.utils.TimeUtils
 import kotlin.reflect.cast
 
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 7b96b54..1c42e1c 100644
--- a/app/src/main/java/org/lineageos/aperture/ui/CapturePreviewLayout.kt
+++ b/app/src/main/java/org/lineageos/aperture/ui/CapturePreviewLayout.kt
@@ -21,9 +21,9 @@
 import org.lineageos.aperture.R
 import org.lineageos.aperture.camera.CameraViewModel
 import org.lineageos.aperture.ext.*
+import org.lineageos.aperture.models.MediaType
+import org.lineageos.aperture.models.Rotation
 import org.lineageos.aperture.utils.ExifUtils
-import org.lineageos.aperture.utils.MediaType
-import org.lineageos.aperture.utils.Rotation
 import java.io.InputStream
 
 /**
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 3f11ea7..fd3ec1e 100644
--- a/app/src/main/java/org/lineageos/aperture/ui/CountDownView.kt
+++ b/app/src/main/java/org/lineageos/aperture/ui/CountDownView.kt
@@ -23,7 +23,7 @@
 import org.lineageos.aperture.R
 import org.lineageos.aperture.camera.CameraViewModel
 import org.lineageos.aperture.ext.*
-import org.lineageos.aperture.utils.Rotation
+import org.lineageos.aperture.models.Rotation
 
 /**
  * This class manages the looks of the countdown.
diff --git a/app/src/main/java/org/lineageos/aperture/ui/GridView.kt b/app/src/main/java/org/lineageos/aperture/ui/GridView.kt
index bab6e0a..fd1884a 100644
--- a/app/src/main/java/org/lineageos/aperture/ui/GridView.kt
+++ b/app/src/main/java/org/lineageos/aperture/ui/GridView.kt
@@ -14,7 +14,7 @@
 import android.view.View
 import androidx.camera.view.PreviewView
 import androidx.core.view.children
-import org.lineageos.aperture.utils.GridMode
+import org.lineageos.aperture.models.GridMode
 import kotlin.math.roundToInt
 
 /**
diff --git a/app/src/main/java/org/lineageos/aperture/ui/InfoChipView.kt b/app/src/main/java/org/lineageos/aperture/ui/InfoChipView.kt
index c28b5af..bc278f9 100644
--- a/app/src/main/java/org/lineageos/aperture/ui/InfoChipView.kt
+++ b/app/src/main/java/org/lineageos/aperture/ui/InfoChipView.kt
@@ -19,9 +19,9 @@
 import androidx.lifecycle.Observer
 import androidx.lifecycle.findViewTreeLifecycleOwner
 import org.lineageos.aperture.R
-import org.lineageos.aperture.camera.CameraMode
 import org.lineageos.aperture.camera.CameraViewModel
-import org.lineageos.aperture.utils.Rotation
+import org.lineageos.aperture.models.CameraMode
+import org.lineageos.aperture.models.Rotation
 import kotlin.math.roundToInt
 
 class InfoChipView @JvmOverloads constructor(
diff --git a/app/src/main/java/org/lineageos/aperture/ui/LensSelectorLayout.kt b/app/src/main/java/org/lineageos/aperture/ui/LensSelectorLayout.kt
index 9149d7a..7958ecf 100644
--- a/app/src/main/java/org/lineageos/aperture/ui/LensSelectorLayout.kt
+++ b/app/src/main/java/org/lineageos/aperture/ui/LensSelectorLayout.kt
@@ -18,10 +18,10 @@
 import androidx.lifecycle.findViewTreeLifecycleOwner
 import org.lineageos.aperture.R
 import org.lineageos.aperture.camera.Camera
-import org.lineageos.aperture.camera.CameraState
 import org.lineageos.aperture.camera.CameraViewModel
 import org.lineageos.aperture.ext.*
-import org.lineageos.aperture.utils.Rotation
+import org.lineageos.aperture.models.CameraState
+import org.lineageos.aperture.models.Rotation
 import java.util.Locale
 
 @androidx.camera.camera2.interop.ExperimentalCamera2Interop
diff --git a/app/src/main/java/org/lineageos/aperture/ui/Slider.kt b/app/src/main/java/org/lineageos/aperture/ui/Slider.kt
index 6b44210..c1abfe1 100644
--- a/app/src/main/java/org/lineageos/aperture/ui/Slider.kt
+++ b/app/src/main/java/org/lineageos/aperture/ui/Slider.kt
@@ -19,7 +19,7 @@
 import android.view.View
 import org.lineageos.aperture.R
 import org.lineageos.aperture.ext.*
-import org.lineageos.aperture.utils.Rotation
+import org.lineageos.aperture.models.Rotation
 
 @Suppress("PrivateResource")
 abstract class Slider @JvmOverloads constructor(
diff --git a/app/src/main/java/org/lineageos/aperture/utils/ExifUtils.kt b/app/src/main/java/org/lineageos/aperture/utils/ExifUtils.kt
index 4e6cf07..a0d040d 100644
--- a/app/src/main/java/org/lineageos/aperture/utils/ExifUtils.kt
+++ b/app/src/main/java/org/lineageos/aperture/utils/ExifUtils.kt
@@ -5,26 +5,12 @@
 
 package org.lineageos.aperture.utils
 
-import android.graphics.Matrix
 import androidx.exifinterface.media.ExifInterface
+import org.lineageos.aperture.models.Rotation
+import org.lineageos.aperture.models.Transform
 import java.io.InputStream
 
 class ExifUtils {
-    data class Transform(val rotation: Rotation, val mirror: Boolean) {
-        fun toMatrix(): Matrix {
-            return Matrix().apply {
-                if (mirror) {
-                    postScale(-1f, 1f)
-                }
-                postRotate(rotation.offset.toFloat())
-            }
-        }
-
-        companion object {
-            val DEFAULT = Transform(Rotation.ROTATION_0, false)
-        }
-    }
-
     companion object {
         private val orientationMap = mapOf(
             ExifInterface.ORIENTATION_UNDEFINED to Transform.DEFAULT,