Add scene mode preference in camera.
Change-Id: I56fe3a1fc942f18faefbbc06d0fdac013c791ed6
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index d4b2912..9232449 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -145,4 +145,36 @@
<item>blue-tint</item>
<item>green-tint</item>
</string-array>
+
+ <!-- Camera Preferences Scene Mode dialog box entries -->
+ <string-array name="pref_camera_scenemode_entries" translatable="fasle">
+ <item>@string/pref_camera_scenemode_entry_auto</item>
+ <item>@string/pref_camera_scenemode_entry_action</item>
+ <item>@string/pref_camera_scenemode_entry_portrait</item>
+ <item>@string/pref_camera_scenemode_entry_landscape</item>
+ <item>@string/pref_camera_scenemode_entry_night</item>
+ <item>@string/pref_camera_scenemode_entry_night_portrait</item>
+ <item>@string/pref_camera_scenemode_entry_theatre</item>
+ <item>@string/pref_camera_scenemode_entry_beach</item>
+ <item>@string/pref_camera_scenemode_entry_snow</item>
+ <item>@string/pref_camera_scenemode_entry_sunset</item>
+ <item>@string/pref_camera_scenemode_entry_steadyphoto</item>
+ <item>@string/pref_camera_scenemode_entry_fireworks</item>
+ </string-array>
+
+ <!-- Do not localize entryvalues -->
+ <string-array name="pref_camera_scenemode_entryvalues" translatable="false">
+ <item>auto</item>
+ <item>action</item>
+ <item>portrait</item>
+ <item>landscape</item>
+ <item>night</item>
+ <item>night-portrait</item>
+ <item>theatre</item>
+ <item>beach</item>
+ <item>snow</item>
+ <item>sunset</item>
+ <item>steadyphoto</item>
+ <item>fireworks</item>
+ </string-array>
</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 7b6c566..9eee607 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -459,6 +459,29 @@
<string name="pref_camera_coloreffect_entry_bluetint">Blue Tint</string>
<string name="pref_camera_coloreffect_entry_greentint">Green Tint</string>
+ <!-- Default scene mode setting. Do not translate. -->
+ <string name="pref_camera_scenemode_default" translatable="false">auto</string>
+
+ <!-- Settings screen, Select Scene mode -->
+ <string name="pref_camera_scenemode_title">Scene mode</string>
+
+ <!-- Settings screen, Select Scene mode -->
+ <string name="pref_camera_scenemode_dialogtitle">Scene mode</string>
+
+ <!-- Settings menu, scene mode choices -->
+ <string name="pref_camera_scenemode_entry_auto">Auto</string>
+ <string name="pref_camera_scenemode_entry_action">Action</string>
+ <string name="pref_camera_scenemode_entry_portrait">Portrait</string>
+ <string name="pref_camera_scenemode_entry_landscape">Landscape</string>
+ <string name="pref_camera_scenemode_entry_night">Night</string>
+ <string name="pref_camera_scenemode_entry_night_portrait">Night Portrait</string>
+ <string name="pref_camera_scenemode_entry_theatre">Theatre</string>
+ <string name="pref_camera_scenemode_entry_beach">Beach</string>
+ <string name="pref_camera_scenemode_entry_snow">Snow</string>
+ <string name="pref_camera_scenemode_entry_sunset">Sunset</string>
+ <string name="pref_camera_scenemode_entry_steadyphoto">Steady Photo</string>
+ <string name="pref_camera_scenemode_entry_fireworks">Fireworks</string>
+
<!-- Menu item to go to the settings screen -->
<string name="camerasettings">Settings</string>
diff --git a/res/xml/camera_preferences.xml b/res/xml/camera_preferences.xml
index 432c80b..2dd4ff3 100644
--- a/res/xml/camera_preferences.xml
+++ b/res/xml/camera_preferences.xml
@@ -89,6 +89,13 @@
android:entries="@array/pref_camera_coloreffect_entries"
android:entryValues="@array/pref_camera_coloreffect_entryvalues"
android:dialogTitle="@string/pref_camera_coloreffect_dialogtitle" />
- </PreferenceCategory>
+ <ListPreference
+ android:key="pref_camera_scenemode_key"
+ android:defaultValue="@string/pref_camera_scenemode_default"
+ android:title="@string/pref_camera_scenemode_title"
+ android:entries="@array/pref_camera_scenemode_entries"
+ android:entryValues="@array/pref_camera_scenemode_entryvalues"
+ android:dialogTitle="@string/pref_camera_scenemode_dialogtitle" />
+ </PreferenceCategory>
</PreferenceScreen>
diff --git a/src/com/android/camera/CameraSettings.java b/src/com/android/camera/CameraSettings.java
index 6cf6892..7ed5461 100644
--- a/src/com/android/camera/CameraSettings.java
+++ b/src/com/android/camera/CameraSettings.java
@@ -49,6 +49,8 @@
public static final String KEY_WHITE_BALANCE =
"pref_camera_whitebalance_key";
public static final String KEY_COLOR_EFFECT = "pref_camera_coloreffect_key";
+ public static final String KEY_SCENE_MODE = "pref_camera_scenemode_key";
+
public static final boolean DEFAULT_VIDEO_QUALITY_VALUE = true;
// MMS video length
@@ -65,6 +67,7 @@
private ListPreference mFocusMode;
private ListPreference mWhiteBalance;
private ListPreference mColorEffect;
+ private ListPreference mSceneMode;
private Parameters mParameters;
@Override
@@ -86,6 +89,7 @@
updateFocusModeSummary();
updateWhiteBalanceSummary();
updateEffectSummary();
+ updateSceneModeSummary();
}
private ArrayList<String> sizeToStr(List<Size> sizes) {
@@ -106,6 +110,7 @@
mFocusMode = (ListPreference) findPreference(KEY_FOCUS_MODE);
mWhiteBalance = (ListPreference) findPreference(KEY_WHITE_BALANCE);
mColorEffect = (ListPreference) findPreference(KEY_COLOR_EFFECT);
+ mSceneMode = (ListPreference) findPreference(KEY_SCENE_MODE);
SharedPreferences pref = getPreferenceScreen().getSharedPreferences();
upgradePreferences(pref);
@@ -136,6 +141,9 @@
// Create color effect settings.
createSettings(mColorEffect, mParameters.getSupportedColorEffects());
+ // Create scene mode settings.
+ createSettings(mSceneMode, mParameters.getSupportedSceneModes());
+
// Modify video duration settings.
// The first entry is for MMS video duration, and we need to fill in the
// device-dependent value (in seconds).
@@ -224,6 +232,10 @@
mWhiteBalance.setSummary(mWhiteBalance.getEntry());
}
+ private void updateSceneModeSummary() {
+ mSceneMode.setSummary(mSceneMode.getEntry());
+ }
+
private void updateFocusModeSummary() {
mFocusMode.setSummary(mFocusMode.getEntry());
}
@@ -248,6 +260,8 @@
updateWhiteBalanceSummary();
} else if (key.equals(KEY_COLOR_EFFECT)) {
updateEffectSummary();
+ } else if (key.equals(KEY_SCENE_MODE)) {
+ updateSceneModeSummary();
}
}
diff --git a/src/com/android/camera/CameraSettingsHelper.java b/src/com/android/camera/CameraSettingsHelper.java
index f0c8191..d7135d7 100644
--- a/src/com/android/camera/CameraSettingsHelper.java
+++ b/src/com/android/camera/CameraSettingsHelper.java
@@ -31,6 +31,7 @@
public static final String KEY_COLOR_EFFECT = "pref_camera_coloreffect_key";
public static final String KEY_WHITE_BALANCE =
"pref_camera_whitebalance_key";
+ public static final String KEY_SCENE_MODE = "pref_camera_scenemode_key";
// max mms video duration in seconds.
public static final int MMS_VIDEO_DURATION =
@@ -77,6 +78,8 @@
(ListPreference) screen.findPreference(KEY_WHITE_BALANCE);
ListPreference colorEffect =
(ListPreference) screen.findPreference(KEY_COLOR_EFFECT);
+ ListPreference sceneMode =
+ (ListPreference) screen.findPreference(KEY_SCENE_MODE);
// Modify video duration settings.
// The first entry is for MMS video duration, and we need to fill in the
@@ -91,6 +94,8 @@
whiteBalance, mParameters.getSupportedWhiteBalance());
filterUnsupportedOptions(screen,
colorEffect, mParameters.getSupportedColorEffects());
+ filterUnsupportedOptions(screen,
+ sceneMode, mParameters.getSupportedSceneModes());
setDefaultIfNull(
KEY_JPEG_QUALITY, R.string.pref_camera_jpegquality_default);