summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/SettingsManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/camera/SettingsManager.java')
-rw-r--r--src/com/android/camera/SettingsManager.java42
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);