summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera
diff options
context:
space:
mode:
authorSascha Haeberling <haeberling@google.com>2013-04-22 14:27:36 -0700
committerSascha Haeberling <haeberling@google.com>2013-04-22 14:29:41 -0700
commitc7965e2bc8f69006de09b4be6fad61c4d2313e07 (patch)
tree962025c1ed0fbff62dad78908ea99f74e506d58d /src/com/android/camera
parent37c006fc72a6a3f849545587ad85c82466862bc4 (diff)
downloadandroid_packages_apps_Snap-c7965e2bc8f69006de09b4be6fad61c4d2313e07.tar.gz
android_packages_apps_Snap-c7965e2bc8f69006de09b4be6fad61c4d2313e07.tar.bz2
android_packages_apps_Snap-c7965e2bc8f69006de09b4be6fad61c4d2313e07.zip
Refactor the methods for changing the on-screen indicators.
Bug: 8609355 This will be used in PanoramaModule to set the indicators to their default values when the module is initialized. Change-Id: I02f230fb222cbbc184b9265aac75f4a3f17b4cd6
Diffstat (limited to 'src/com/android/camera')
-rw-r--r--src/com/android/camera/OnScreenIndicators.java168
-rw-r--r--src/com/android/camera/PhotoUI.java98
2 files changed, 177 insertions, 89 deletions
diff --git a/src/com/android/camera/OnScreenIndicators.java b/src/com/android/camera/OnScreenIndicators.java
new file mode 100644
index 000000000..478c25019
--- /dev/null
+++ b/src/com/android/camera/OnScreenIndicators.java
@@ -0,0 +1,168 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.camera;
+
+import android.hardware.Camera;
+import android.hardware.Camera.Parameters;
+import android.view.View;
+import android.widget.ImageView;
+
+import com.android.gallery3d.R;
+
+/**
+ * The on-screen indicators of the pie menu button. They show the camera
+ * settings in the viewfinder.
+ */
+public class OnScreenIndicators {
+ private final View mOnScreenIndicators;
+ private final ImageView mExposureIndicator;
+ private final ImageView mFlashIndicator;
+ private final ImageView mSceneIndicator;
+ private final ImageView mHdrIndicator;
+
+ public OnScreenIndicators(View onScreenIndicatorsView) {
+ mOnScreenIndicators = onScreenIndicatorsView;
+ mExposureIndicator = (ImageView) onScreenIndicatorsView.findViewById(
+ R.id.menu_exposure_indicator);
+ mFlashIndicator = (ImageView) onScreenIndicatorsView.findViewById(
+ R.id.menu_flash_indicator);
+ mSceneIndicator = (ImageView) onScreenIndicatorsView.findViewById(
+ R.id.menu_scenemode_indicator);
+ mHdrIndicator = (ImageView) onScreenIndicatorsView.findViewById(R.id.menu_hdr_indicator);
+ }
+
+ /**
+ * Resets all indicators to show the default values.
+ */
+ public void resetToDefault() {
+ updateExposureOnScreenIndicator(0);
+ updateFlashOnScreenIndicator(Parameters.FLASH_MODE_OFF);
+ updateSceneOnScreenIndicator(Parameters.SCENE_MODE_AUTO);
+ updateHdrOnScreenIndicator(Parameters.SCENE_MODE_AUTO);
+ }
+
+ /**
+ * Sets the exposure indicator using exposure compensations step rounding.
+ */
+ public void updateExposureOnScreenIndicator(Camera.Parameters params, int value) {
+ if (mExposureIndicator == null) {
+ return;
+ }
+ float step = params.getExposureCompensationStep();
+ value = Math.round(value * step);
+ updateExposureOnScreenIndicator(value);
+ }
+
+ /**
+ * Set the exposure indicator to the given value.
+ *
+ * @param value Value between -3 and 3. If outside this range, 0 is used by
+ * default.
+ */
+ public void updateExposureOnScreenIndicator(int value) {
+ int id = 0;
+ switch(value) {
+ case -3:
+ id = R.drawable.ic_indicator_ev_n3;
+ break;
+ case -2:
+ id = R.drawable.ic_indicator_ev_n2;
+ break;
+ case -1:
+ id = R.drawable.ic_indicator_ev_n1;
+ break;
+ case 0:
+ id = R.drawable.ic_indicator_ev_0;
+ break;
+ case 1:
+ id = R.drawable.ic_indicator_ev_p1;
+ break;
+ case 2:
+ id = R.drawable.ic_indicator_ev_p2;
+ break;
+ case 3:
+ id = R.drawable.ic_indicator_ev_p3;
+ break;
+ }
+ mExposureIndicator.setImageResource(id);
+ }
+
+ /**
+ * Set the flash indicator to the given value.
+ *
+ * @param value One of Parameters.FLASH_MODE_OFF,
+ * Parameters.FLASH_MODE_AUTO, Parameters.FLASH_MODE_ON.
+ */
+ public void updateFlashOnScreenIndicator(String value) {
+ if (mFlashIndicator == null) {
+ return;
+ }
+ if (value == null || Parameters.FLASH_MODE_OFF.equals(value)) {
+ mFlashIndicator.setImageResource(R.drawable.ic_indicator_flash_off);
+ } else {
+ if (Parameters.FLASH_MODE_AUTO.equals(value)) {
+ mFlashIndicator.setImageResource(R.drawable.ic_indicator_flash_auto);
+ } else if (Parameters.FLASH_MODE_ON.equals(value)) {
+ mFlashIndicator.setImageResource(R.drawable.ic_indicator_flash_on);
+ } else {
+ mFlashIndicator.setImageResource(R.drawable.ic_indicator_flash_off);
+ }
+ }
+ }
+
+ /**
+ * Set the scene indicator depending on the given scene mode.
+ *
+ * @param value the current Parameters.SCENE_MODE_* value.
+ */
+ public void updateSceneOnScreenIndicator(String value) {
+ if (mSceneIndicator == null) {
+ return;
+ }
+ if ((value == null) || Parameters.SCENE_MODE_AUTO.equals(value)
+ || Parameters.SCENE_MODE_HDR.equals(value)) {
+ mSceneIndicator.setImageResource(R.drawable.ic_indicator_sce_off);
+ } else {
+ mSceneIndicator.setImageResource(R.drawable.ic_indicator_sce_on);
+ }
+ }
+
+ /**
+ * Sets the scene indicator to show whether HDR is on or off.
+ *
+ * @param value the current Parameters.SCENE_MODE_* value.
+ */
+ public void updateHdrOnScreenIndicator(String value) {
+ if (mHdrIndicator == null) {
+ return;
+ }
+ if ((value != null) && Parameters.SCENE_MODE_HDR.equals(value)) {
+ mHdrIndicator.setImageResource(R.drawable.ic_indicator_hdr_on);
+ } else {
+ mHdrIndicator.setImageResource(R.drawable.ic_indicator_hdr_off);
+ }
+ }
+
+ /**
+ * Sets the visibility of all indicators.
+ *
+ * @param visibility View.VISIBLE, View.GONE etc.
+ */
+ public void setVisibility(int visibility) {
+ mOnScreenIndicators.setVisibility(visibility);
+ }
+}
diff --git a/src/com/android/camera/PhotoUI.java b/src/com/android/camera/PhotoUI.java
index fd148bad7..ea1cb9036 100644
--- a/src/com/android/camera/PhotoUI.java
+++ b/src/com/android/camera/PhotoUI.java
@@ -20,7 +20,6 @@ package com.android.camera;
import android.hardware.Camera;
import android.hardware.Camera.Face;
import android.hardware.Camera.FaceDetectionListener;
-import android.hardware.Camera.Parameters;
import android.util.Log;
import android.view.Gravity;
import android.view.MotionEvent;
@@ -32,7 +31,6 @@ import android.view.ViewGroup;
import android.view.ViewStub;
import android.widget.FrameLayout;
import android.widget.FrameLayout.LayoutParams;
-import android.widget.ImageView;
import android.widget.Toast;
import com.android.camera.CameraPreference.OnPreferenceChangedListener;
@@ -83,13 +81,7 @@ public class PhotoUI implements PieListener,
private View mBlocker;
private PhotoMenu mMenu;
- // Small indicators which show the camera settings in the viewfinder.
- private ImageView mExposureIndicator;
- private ImageView mFlashIndicator;
- private ImageView mSceneIndicator;
- private ImageView mHdrIndicator;
- // A view group that contains all the small indicators.
- private View mOnScreenIndicators;
+ private OnScreenIndicators mOnScreenIndicators;
private PieRenderer mPieRenderer;
private ZoomRenderer mZoomRenderer;
@@ -151,11 +143,8 @@ public class PhotoUI implements PieListener,
}
private void initIndicators() {
- mOnScreenIndicators = mActivity.findViewById(R.id.on_screen_indicators);
- mExposureIndicator = (ImageView) mOnScreenIndicators.findViewById(R.id.menu_exposure_indicator);
- mFlashIndicator = (ImageView) mOnScreenIndicators.findViewById(R.id.menu_flash_indicator);
- mSceneIndicator = (ImageView) mOnScreenIndicators.findViewById(R.id.menu_scenemode_indicator);
- mHdrIndicator = (ImageView) mOnScreenIndicators.findViewById(R.id.menu_hdr_indicator);
+ mOnScreenIndicators = new OnScreenIndicators(
+ mActivity.findViewById(R.id.on_screen_indicators));
}
public void onCameraOpened(PreferenceGroup prefGroup, ComboPreferences prefs,
@@ -294,8 +283,10 @@ public class PhotoUI implements PieListener,
}
}
+ @Override
public void showGpsOnScreenIndicator(boolean hasSignal) { }
+ @Override
public void hideGpsOnScreenIndicator() { }
public void overrideSettings(final String ... keyvalues) {
@@ -305,85 +296,14 @@ public class PhotoUI implements PieListener,
public void updateOnScreenIndicators(Camera.Parameters params,
ComboPreferences prefs) {
if (params == null) return;
- updateSceneOnScreenIndicator(params.getSceneMode());
- updateExposureOnScreenIndicator(params,
+ mOnScreenIndicators.updateSceneOnScreenIndicator(params.getSceneMode());
+ mOnScreenIndicators.updateExposureOnScreenIndicator(params,
CameraSettings.readExposure(prefs));
- updateFlashOnScreenIndicator(params.getFlashMode());
- updateHdrOnScreenIndicator(params.getSceneMode());
- }
-
- private void updateExposureOnScreenIndicator(Camera.Parameters params, int value) {
- if (mExposureIndicator == null) {
- return;
- }
- int id = 0;
- float step = params.getExposureCompensationStep();
- value = (int) Math.round(value * step);
- switch(value) {
- case -3:
- id = R.drawable.ic_indicator_ev_n3;
- break;
- case -2:
- id = R.drawable.ic_indicator_ev_n2;
- break;
- case -1:
- id = R.drawable.ic_indicator_ev_n1;
- break;
- case 0:
- id = R.drawable.ic_indicator_ev_0;
- break;
- case 1:
- id = R.drawable.ic_indicator_ev_p1;
- break;
- case 2:
- id = R.drawable.ic_indicator_ev_p2;
- break;
- case 3:
- id = R.drawable.ic_indicator_ev_p3;
- break;
- }
- mExposureIndicator.setImageResource(id);
- }
-
- private void updateFlashOnScreenIndicator(String value) {
- if (mFlashIndicator == null) {
- return;
- }
- if (value == null || Parameters.FLASH_MODE_OFF.equals(value)) {
- mFlashIndicator.setImageResource(R.drawable.ic_indicator_flash_off);
- } else {
- if (Parameters.FLASH_MODE_AUTO.equals(value)) {
- mFlashIndicator.setImageResource(R.drawable.ic_indicator_flash_auto);
- } else if (Parameters.FLASH_MODE_ON.equals(value)) {
- mFlashIndicator.setImageResource(R.drawable.ic_indicator_flash_on);
- } else {
- mFlashIndicator.setImageResource(R.drawable.ic_indicator_flash_off);
- }
- }
+ mOnScreenIndicators.updateFlashOnScreenIndicator(params.getFlashMode());
+ mOnScreenIndicators.updateHdrOnScreenIndicator(params.getSceneMode());
}
- private void updateSceneOnScreenIndicator(String value) {
- if (mSceneIndicator == null) {
- return;
- }
- if ((value == null) || Parameters.SCENE_MODE_AUTO.equals(value)
- || Parameters.SCENE_MODE_HDR.equals(value)) {
- mSceneIndicator.setImageResource(R.drawable.ic_indicator_sce_off);
- } else {
- mSceneIndicator.setImageResource(R.drawable.ic_indicator_sce_on);
- }
- }
- private void updateHdrOnScreenIndicator(String value) {
- if (mHdrIndicator == null) {
- return;
- }
- if ((value != null) && Parameters.SCENE_MODE_HDR.equals(value)) {
- mHdrIndicator.setImageResource(R.drawable.ic_indicator_hdr_on);
- } else {
- mHdrIndicator.setImageResource(R.drawable.ic_indicator_hdr_off);
- }
- }
public void setCameraState(int state) {
}