diff --git a/app/src/main/java/app/grapheneos/camera/CamConfig.kt b/app/src/main/java/app/grapheneos/camera/CamConfig.kt index 65f83e0f5..663fe6a3e 100644 --- a/app/src/main/java/app/grapheneos/camera/CamConfig.kt +++ b/app/src/main/java/app/grapheneos/camera/CamConfig.kt @@ -441,7 +441,7 @@ class CamConfig(private val mActivity: MainActivity) { var enableEIS: Boolean get() { - return isStabilizationSupported() && mActivity.settingsDialog.enableEISToggle.isChecked + return isVideoStabilizationSupported() && mActivity.settingsDialog.enableEISToggle.isChecked } set(value) { val editor = commonPref.edit() @@ -557,7 +557,16 @@ class CamConfig(private val mActivity: MainActivity) { camera!!.cameraInfo.isZslSupported } - fun isStabilizationSupported() : Boolean { + fun isVideoStabilizationSupported() : Boolean { + return isRecorderStabilizationSupported() + } + + private fun isPreviewStabilizationSupported() : Boolean { + return Preview.getPreviewCapabilities(getCurrentCameraInfo()).isStabilizationSupported + } + + + private fun isRecorderStabilizationSupported() : Boolean { return Recorder.getVideoCapabilities(getCurrentCameraInfo()).isStabilizationSupported } @@ -1196,7 +1205,7 @@ class CamConfig(private val mActivity: MainActivity) { ResolutionSelector.Builder().setAspectRatioStrategy(aspectRatioStrategy).build() ) - if (isVideoMode) { + if (isVideoMode && isPreviewStabilizationSupported()) { previewBuilder.setPreviewStabilizationEnabled(enableEIS) } diff --git a/app/src/main/java/app/grapheneos/camera/ui/SettingsDialog.kt b/app/src/main/java/app/grapheneos/camera/ui/SettingsDialog.kt index bf6df8ed1..be8649c47 100644 --- a/app/src/main/java/app/grapheneos/camera/ui/SettingsDialog.kt +++ b/app/src/main/java/app/grapheneos/camera/ui/SettingsDialog.kt @@ -400,7 +400,7 @@ class SettingsDialog(val mActivity: MainActivity) : includeAudioSetting.visibility = View.VISIBLE enableEISSetting.visibility = View.GONE videoQualitySetting.visibility = View.VISIBLE - enableEISSetting.visibility = if (camConfig.isStabilizationSupported()) { + enableEISSetting.visibility = if (camConfig.isVideoStabilizationSupported()) { View.VISIBLE } else { View.GONE