@@ -105,6 +105,10 @@ class CamConfig(private val mActivity: MainActivity) {
105105
106106 const val REMOVE_EXIF_AFTER_CAPTURE = " remove_exif_after_capture"
107107
108+ const val PERSIST_EXPOSURE_LEVEL = " persist_exposure_level"
109+
110+ const val EXPOSURE_LEVEL = " exposure_level"
111+
108112 const val GYROSCOPE_SUGGESTIONS = " gyroscope_suggestions"
109113
110114 const val CAMERA_SOUNDS = " camera_sounds"
@@ -150,6 +154,10 @@ class CamConfig(private val mActivity: MainActivity) {
150154
151155 const val REMOVE_EXIF_AFTER_CAPTURE = true
152156
157+ const val PERSIST_EXPOSURE_LEVEL = false
158+
159+ const val EXPOSURE_LEVEL = 0
160+
153161 const val GYROSCOPE_SUGGESTIONS = false
154162
155163 const val CAMERA_SOUNDS = true
@@ -539,6 +547,50 @@ class CamConfig(private val mActivity: MainActivity) {
539547 editor.apply ()
540548 }
541549
550+ var persistExposureLevel: Boolean
551+ get() {
552+ return commonPref.getBoolean(
553+ SettingValues .Key .PERSIST_EXPOSURE_LEVEL ,
554+ SettingValues .Default .PERSIST_EXPOSURE_LEVEL
555+ )
556+ }
557+ set(value) {
558+ val editor = commonPref.edit()
559+ editor.putBoolean(
560+ SettingValues .Key .PERSIST_EXPOSURE_LEVEL ,
561+ value
562+ )
563+ editor.apply ()
564+ }
565+
566+ private val exposureLevelKey: String
567+ get() {
568+
569+ val pf = if (lensFacing == CameraSelector .LENS_FACING_FRONT ) {
570+ " FRONT"
571+ } else {
572+ " BACK"
573+ }
574+
575+ return " ${SettingValues .Key .EXPOSURE_LEVEL } _$pf "
576+ }
577+
578+ var exposureLevel: Int
579+ get() {
580+ return modePref.getInt(
581+ exposureLevelKey,
582+ SettingValues .Default .EXPOSURE_LEVEL ,
583+ )
584+ }
585+ set(value) {
586+ val editor = modePref.edit()
587+ editor.putInt(
588+ exposureLevelKey,
589+ value
590+ )
591+ editor.apply ()
592+ }
593+
542594 var gSuggestions: Boolean
543595 get() {
544596 return commonPref.getBoolean(
@@ -1262,6 +1314,10 @@ class CamConfig(private val mActivity: MainActivity) {
12621314
12631315 mActivity.zoomBar.updateThumb(false )
12641316
1317+ if (persistExposureLevel) {
1318+ camera?.cameraControl?.setExposureCompensationIndex(exposureLevel)
1319+ }
1320+
12651321 camera?.cameraInfo?.exposureState?.let { mActivity.exposureBar.setExposureConfig(it) }
12661322
12671323 mActivity.settingsDialog.torchToggle.isChecked = false
0 commit comments