diff options
Diffstat (limited to 'src/com/android/camera/SettingsManager.java')
-rw-r--r-- | src/com/android/camera/SettingsManager.java | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java index c1c6442dd..6adbcfb64 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) { @@ -1076,6 +1101,11 @@ public class SettingsManager implements ListMenu.SettingsListener { return mCharacteristics.get(cameraId).get(CameraCharacteristics.FLASH_INFO_AVAILABLE); } + public StreamConfigurationMap getStreamConfigurationMap(int cameraId){ + return mCharacteristics.get(cameraId) + .get(CameraCharacteristics.SCALER_STREAM_CONFIGURATION_MAP); + } + public List<String> getSupportedColorEffects(int cameraId) { int[] flashModes = mCharacteristics.get(cameraId).get(CameraCharacteristics .CONTROL_AVAILABLE_EFFECTS); |