Move flash settings from on-scren control to preference settings.
Change-Id: Id45c7321c1e60cc7e29a7e9c601082624d93c9e8
diff --git a/res/layout/camera.xml b/res/layout/camera.xml
index d6fa9a9..64ad273 100644
--- a/res/layout/camera.xml
+++ b/res/layout/camera.xml
@@ -57,15 +57,6 @@
android:focusable="false"
android:layout_marginLeft="5dp"
android:layout_marginTop="5dp"/>
- <com.android.camera.FlashButton
- android:id="@+id/flash_button"
- android:layout_width="64dp"
- android:layout_height="64dp"
- android:layout_gravity="left|bottom"
- android:visibility="invisible"
- android:clickable="true"
- android:focusable="false"
- android:layout_marginBottom="5dp"/>
</FrameLayout>
</LinearLayout>
</RelativeLayout>
diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index a12b51f..0b7c9e0 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -79,6 +79,19 @@
<item>@string/pref_camera_focusmode_value_infinity</item>
</string-array>
+ <!-- Camera Preferences flash mode dialog box entries -->
+ <string-array name="pref_camera_flashmode_entries" translatable="false">
+ <item>@string/pref_camera_flashmode_entry_auto</item>
+ <item>@string/pref_camera_flashmode_entry_on</item>
+ <item>@string/pref_camera_flashmode_entry_off</item>
+ </string-array>
+
+ <string-array name="pref_camera_flashmode_entryvalues" translatable="false">
+ <item>@string/pref_camera_flashmode_value_auto</item>
+ <item>@string/pref_camera_flashmode_value_on</item>
+ <item>@string/pref_camera_flashmode_value_off</item>
+ </string-array>
+
<!-- Camera Preferences White Balance dialog box entries -->
<string-array name="pref_camera_whitebalance_entries" translatable="false">
<item>@string/pref_camera_whitebalance_entry_auto</item>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index eb12c3e..7ba4664 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -402,6 +402,25 @@
<!-- Settings screen, focus mode dialog title -->
<string name="pref_camera_focusmode_dialogtitle">Focus mode</string>
+ <!-- Default flash mode setting.-->
+ <string name="pref_camera_flashmode_default" translatable="false">auto</string>
+
+ <!-- Settings screen, Flash mode title -->
+ <string name="pref_camera_flashmode_title">Flash mode</string>
+
+ <!-- Settings screen, Focue mode dialog radio button choices -->
+ <string name="pref_camera_flashmode_entry_auto">Auto</string>
+ <string name="pref_camera_flashmode_entry_on">On</string>
+ <string name="pref_camera_flashmode_entry_off">Off</string>
+
+ <!-- Flash mode entry values.-->
+ <string name="pref_camera_flashmode_value_auto" translatable="false">auto</string>
+ <string name="pref_camera_flashmode_value_on" translatable="false">on</string>
+ <string name="pref_camera_flashmode_value_off" translatable="false">off</string>
+
+ <!-- Settings screen, flash mode dialog title -->
+ <string name="pref_camera_flashmode_dialogtitle">Flash mode</string>
+
<!-- Default white balance setting. -->
<string name="pref_camera_whitebalance_default" translatable="false">auto</string>
diff --git a/res/xml/camera_preferences.xml b/res/xml/camera_preferences.xml
index 92ade83..7531df3 100644
--- a/res/xml/camera_preferences.xml
+++ b/res/xml/camera_preferences.xml
@@ -23,6 +23,13 @@
android:summary="@string/pref_camera_recordlocation_summary"
android:defaultValue="false"/>
<ListPreference
+ android:key="pref_camera_flashmode_key"
+ android:defaultValue="@string/pref_camera_flashmode_default"
+ android:title="@string/pref_camera_flashmode_title"
+ android:entries="@array/pref_camera_flashmode_entries"
+ android:entryValues="@array/pref_camera_flashmode_entryvalues"
+ android:dialogTitle="@string/pref_camera_flashmode_dialogtitle" />
+ <ListPreference
android:key="pref_camera_scenemode_key"
android:defaultValue="@string/pref_camera_scenemode_default"
android:title="@string/pref_camera_scenemode_title"
diff --git a/src/com/android/camera/Camera.java b/src/com/android/camera/Camera.java
index 96d735b..23ec351 100644
--- a/src/com/android/camera/Camera.java
+++ b/src/com/android/camera/Camera.java
@@ -84,8 +84,7 @@
*/
public class Camera extends Activity implements View.OnClickListener,
ShutterButton.OnShutterButtonListener, SurfaceHolder.Callback,
- Switcher.OnSwitchListener, FlashButton.ModeChangeListener,
- OnScreenSettings.OnVisibilityChangedListener,
+ Switcher.OnSwitchListener, OnScreenSettings.OnVisibilityChangedListener,
OnSharedPreferenceChangeListener {
private static final String TAG = "camera";
@@ -136,7 +135,6 @@
private SurfaceHolder mSurfaceHolder = null;
private ShutterButton mShutterButton;
private FocusRectangle mFocusRectangle;
- private FlashButton mFlashButton;
private ImageView mGpsIndicator;
private ToneGenerator mFocusToneGenerator;
private ZoomButtonsController mZoomButtons;
@@ -289,16 +287,6 @@
mFocusRectangle = (FocusRectangle) findViewById(R.id.focus_rectangle);
updateFocusIndicator();
- // Initialize flash button
- if (mParameters.getSupportedFlashModes() != null) {
- mFlashButton = (FlashButton) findViewById(R.id.flash_button);
- String flashMode = mPreferences.getString(
- CameraSettings.KEY_FLASH_MODE, "auto");
- mFlashButton.setMode(flashMode);
- mFlashButton.setVisibility(View.VISIBLE);
- mFlashButton.setListener(this);
- }
-
// Initialize GPS indicator.
mGpsIndicator = (ImageView) findViewById(R.id.gps_indicator);
mGpsIndicator.setImageResource(R.drawable.ic_camera_sym_gps);
@@ -1823,16 +1811,6 @@
return true;
}
- public void onFlashModeChanged(String modeString) {
- SharedPreferences.Editor editor = mPreferences.edit();
- editor.putString(CameraSettings.KEY_FLASH_MODE, modeString);
- editor.commit();
- if (!mPausing) {
- mParameters.setFlashMode(modeString);
- mCameraDevice.setParameters(mParameters);
- }
- }
-
private void setCameraPictureSizeIfSupported(String sizeString) {
List<Size> pictureSizes = mParameters.getSupportedPictureSizes();
if (pictureSizes != null) {
@@ -1941,70 +1919,3 @@
setBackgroundDrawable(null);
}
}
-
-// FlashButton changes state every time it is clicked.
-// The ModeChangeListener notifies that event.
-class FlashButton extends ImageView implements View.OnClickListener {
- private static final String TAG = "FlashButton";
-
- private static final int MODE_OFF = 0;
- private static final int MODE_ON = 1;
- private static final int MODE_AUTO = 2;
-
- private static final String[] MODE_STRINGS = new String[] {
- "off", "on", "auto"
- };
-
- private static final int[] FLASH_IMAGES = new int[] {
- R.drawable.flash_off,
- R.drawable.flash_on,
- R.drawable.flash_auto
- };
-
- private int mCurrentMode;
- private ModeChangeListener mListener;
-
- public interface ModeChangeListener {
- public void onFlashModeChanged(String modeString);
- }
- public FlashButton(Context context, AttributeSet attrs) {
- super(context, attrs);
- updateMode(MODE_AUTO);
- setOnClickListener(this);
- }
-
- public void setMode(String modeString) {
- for (int i = 0; i < MODE_STRINGS.length; i++) {
- if (MODE_STRINGS[i].equals(modeString)) {
- updateModeIfNecessary(i);
- return;
- }
- }
- Log.w(TAG, "Unknown mode: " + modeString);
- }
-
- public void setListener(ModeChangeListener listener) {
- mListener = listener;
- }
-
- public void onClick(View v) {
- int nextMode = (mCurrentMode + 1) % FLASH_IMAGES.length;
- updateMode(nextMode);
- }
-
- private void updateModeIfNecessary(int mode) {
- if (mode == mCurrentMode) return;
- if (mode < 0 || mode >= FLASH_IMAGES.length) {
- return;
- }
- updateMode(mode);
- }
-
- private void updateMode(int mode) {
- mCurrentMode = mode;
- setImageResource(FLASH_IMAGES[mode]);
- if (mListener != null) {
- mListener.onFlashModeChanged(MODE_STRINGS[mode]);
- }
- }
-}