Aperture: Make the supported quality list an unordered map
Change-Id: Ib803dd67f777d2d22e8a577d62e0919b1346c1ee
diff --git a/app/src/main/java/org/lineageos/aperture/CameraActivity.kt b/app/src/main/java/org/lineageos/aperture/CameraActivity.kt
index 0c314be..664516e 100644
--- a/app/src/main/java/org/lineageos/aperture/CameraActivity.kt
+++ b/app/src/main/java/org/lineageos/aperture/CameraActivity.kt
@@ -205,8 +205,8 @@
get() = field!!
// Video
- private val supportedVideoQualities: List<Quality>
- get() = camera.supportedVideoQualities.keys.toList()
+ private val supportedVideoQualities: Set<Quality>
+ get() = camera.supportedVideoQualities.keys
private val supportedVideoFrameRates: Set<FrameRate>
get() = camera.supportedVideoQualities.getOrDefault(
sharedPreferences.videoQuality, setOf()
@@ -1347,7 +1347,11 @@
}
val currentVideoQuality = sharedPreferences.videoQuality
- val newVideoQuality = supportedVideoQualities.next(currentVideoQuality)
+ val newVideoQuality = supportedVideoQualities.toList().sortedWith { a, b ->
+ listOf(Quality.SD, Quality.HD, Quality.FHD, Quality.UHD).let {
+ it.indexOf(a) - it.indexOf(b)
+ }
+ }.next(currentVideoQuality)
if (newVideoQuality == currentVideoQuality) {
return
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 731373a..15b9f31 100644
--- a/app/src/main/java/org/lineageos/aperture/camera/Camera.kt
+++ b/app/src/main/java/org/lineageos/aperture/camera/Camera.kt
@@ -12,7 +12,6 @@
import androidx.camera.core.CameraInfo
import androidx.camera.core.CameraSelector
import androidx.camera.core.DynamicRange
-import androidx.camera.video.Quality
import androidx.camera.video.Recorder
import org.lineageos.aperture.ext.*
import kotlin.reflect.safeCast
@@ -52,11 +51,7 @@
Recorder.getVideoCapabilities(cameraInfo).getSupportedQualities(DynamicRange.SDR)
.associateWith {
supportedVideoFrameRates + cameraManager.getAdditionalVideoFrameRates(cameraId, it)
- }.toSortedMap { a, b ->
- listOf(Quality.SD, Quality.HD, Quality.FHD, Quality.UHD).let {
- it.indexOf(a) - it.indexOf(b)
- }
- }
+ }.toMap()
val supportsVideoRecording = supportedVideoQualities.isNotEmpty()
val supportedExtensionModes = cameraManager.extensionsManager.getSupportedModes(cameraSelector)