diff options
author | mingwax <mingwax@codeaurora.org> | 2016-12-07 11:25:01 +0800 |
---|---|---|
committer | qimengp <qimengp@codeaurora.org> | 2016-12-13 19:32:44 +0800 |
commit | b07761c05719ec203f41d729c9874d14072a76c2 (patch) | |
tree | 33dac39f1eb3da2f51b3c2d08cef38b7151f4ba2 /src/com | |
parent | 4020c7043ba2bae1aee5666498216bf2c66a8d97 (diff) | |
download | android_packages_apps_Snap-b07761c05719ec203f41d729c9874d14072a76c2.tar.gz android_packages_apps_Snap-b07761c05719ec203f41d729c9874d14072a76c2.tar.bz2 android_packages_apps_Snap-b07761c05719ec203f41d729c9874d14072a76c2.zip |
SnapdragonCamera: Fix don`t save the value about focus distance
Don`t save the focus distance value when the user change the value.
Add code for saving the value in xml when the user change the value.
CRs-Fixed: 1095942
Change-Id: Ic2b88d67d068c17afcc12546028e99454070b8ab
Diffstat (limited to 'src/com')
-rw-r--r--[-rwxr-xr-x] | src/com/android/camera/CaptureModule.java | 22 | ||||
-rw-r--r-- | src/com/android/camera/ComboPreferences.java | 2 | ||||
-rw-r--r-- | src/com/android/camera/SettingsManager.java | 37 | ||||
-rw-r--r-- | src/com/android/camera/ui/ProMode.java | 4 |
4 files changed, 49 insertions, 16 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java index b75c4aae1..b78e52d06 100755..100644 --- a/src/com/android/camera/CaptureModule.java +++ b/src/com/android/camera/CaptureModule.java @@ -1928,6 +1928,7 @@ public class CaptureModule implements CameraModule, PhotoController, mFirstPreviewLoaded = false; stopBackgroundThread(); mLastJpegData = null; + setProModeVisible(); } @Override @@ -2142,14 +2143,9 @@ public class CaptureModule implements CameraModule, PhotoController, }); mUI.enableShutter(true); mUI.enableVideo(true); - String scene = mSettingsManager.getValue(SettingsManager.KEY_SCENE_MODE); - boolean promode = false; - if (scene != null) { - int mode = Integer.parseInt(scene); - if (mode == SettingsManager.SCENE_MODE_PROMODE_INT) promode = true; - } - mUI.initializeProMode(promode); + setProModeVisible(); + String scene = mSettingsManager.getValue(SettingsManager.KEY_SCENE_MODE); if(isPanoSetting(scene)) { mActivity.onModuleSelected(ModuleSwitcher.PANOCAPTURE_MODULE_INDEX); } @@ -4204,4 +4200,16 @@ public class CaptureModule implements CameraModule, PhotoController, mHandler.removeMessages(CLEAR_SCREEN_DELAY); mActivity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); } + + private void setProModeVisible() { + String scene = mSettingsManager.getValue(SettingsManager.KEY_SCENE_MODE); + boolean promode = false; + if (scene != null) { + int mode = Integer.parseInt(scene); + if (mode == SettingsManager.SCENE_MODE_PROMODE_INT) { + promode = true; + } + } + mUI.initializeProMode(!mPaused && promode); + } } diff --git a/src/com/android/camera/ComboPreferences.java b/src/com/android/camera/ComboPreferences.java index a30dd9448..401289fc3 100644 --- a/src/com/android/camera/ComboPreferences.java +++ b/src/com/android/camera/ComboPreferences.java @@ -68,7 +68,7 @@ public class ComboPreferences implements } } - private static String getLocalSharedPreferencesName( + public static String getLocalSharedPreferencesName( Context context, int cameraId) { return context.getPackageName() + "_preferences_" + cameraId; } diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java index c1c6442dd..3e2c7873d 100644 --- a/src/com/android/camera/SettingsManager.java +++ b/src/com/android/camera/SettingsManager.java @@ -451,6 +451,28 @@ public class SettingsManager implements ListMenu.SettingsListener { return pref.findIndexOfValue(value); } + private boolean setFocusValue(String key, float value) { + boolean result = false; + String prefName = ComboPreferences.getLocalSharedPreferencesName(mContext, mCameraId); + SharedPreferences sharedPreferences = mContext.getSharedPreferences(prefName, + Context.MODE_PRIVATE); + float prefValue = sharedPreferences.getFloat(key, 0.5f); + if (prefValue != value) { + SharedPreferences.Editor editor = sharedPreferences.edit(); + editor.putFloat(key, value); + editor.apply(); + result = true; + } + return result; + } + + public float getFocusValue(String key) { + String prefName = ComboPreferences.getLocalSharedPreferencesName(mContext, mCameraId); + SharedPreferences sharedPreferences = mContext.getSharedPreferences(prefName, + Context.MODE_PRIVATE); + return sharedPreferences.getFloat(key, 0.5f); + } + public boolean isOverriden(String key) { Values values = mValuesMap.get(key); return values.overriddenValue != null; @@ -479,12 +501,15 @@ public class SettingsManager implements ListMenu.SettingsListener { } } - public void setFocusDistance(float value) { - List<SettingState> list = new ArrayList<>(); - Values values = new Values("" + value, null); - SettingState ss = new SettingState(KEY_FOCUS_DISTANCE, values); - list.add(ss); - notifyListeners(list); + public void setFocusDistance(String key, float value, float minFocus) { + boolean isSuccess = setFocusValue(key, value); + if (isSuccess) { + List<SettingState> list = new ArrayList<>(); + Values values = new Values("" + value * minFocus, null); + SettingState ss = new SettingState(KEY_FOCUS_DISTANCE, values); + list.add(ss); + notifyListeners(list); + } } private void updateMapAndNotify(ListPreference pref) { diff --git a/src/com/android/camera/ui/ProMode.java b/src/com/android/camera/ui/ProMode.java index 876dff323..b55d0c425 100644 --- a/src/com/android/camera/ui/ProMode.java +++ b/src/com/android/camera/ui/ProMode.java @@ -203,7 +203,7 @@ public class ProMode extends View { if (mMode == MANUAL_MODE) { minFocus = mSettingsManager .getMinimumFocusDistance(mSettingsManager.getCurrentCameraId()); - float value = 0.5f; + float value = mSettingsManager.getFocusValue(SettingsManager.KEY_FOCUS_DISTANCE); setSlider(value); int stride = mCurveRight - mCurveLeft; for (int i = 0; i < 2; i++) { @@ -292,7 +292,7 @@ public class ProMode extends View { public void setSlider(float slider) { mSlider = slider; - mSettingsManager.setFocusDistance(mSlider * minFocus); + mSettingsManager.setFocusDistance(SettingsManager.KEY_FOCUS_DISTANCE, mSlider, minFocus); mUI.updateProModeText(mMode, "Manual"); invalidate(); } |