diff options
author | Michael Kolb <kolby@google.com> | 2013-04-26 11:09:29 -0700 |
---|---|---|
committer | Michael Kolb <kolby@google.com> | 2013-04-26 15:47:00 -0700 |
commit | eb8adc1754fc668435ee57d1be2235b80fc8c009 (patch) | |
tree | e40cfd262e853a5d186c31662ad6fac789b17926 /src/com/android/camera/OnScreenIndicators.java | |
parent | abd5efe72de6b571aada1b69633a4d02aced5616 (diff) | |
download | android_packages_apps_Snap-eb8adc1754fc668435ee57d1be2235b80fc8c009.tar.gz android_packages_apps_Snap-eb8adc1754fc668435ee57d1be2235b80fc8c009.tar.bz2 android_packages_apps_Snap-eb8adc1754fc668435ee57d1be2235b80fc8c009.zip |
Add new indicators
Bug: 8640131
Change-Id: I9e567ddafa130e84af4d56a69ba7e389e64e3456
Diffstat (limited to 'src/com/android/camera/OnScreenIndicators.java')
-rw-r--r-- | src/com/android/camera/OnScreenIndicators.java | 65 |
1 files changed, 43 insertions, 22 deletions
diff --git a/src/com/android/camera/OnScreenIndicators.java b/src/com/android/camera/OnScreenIndicators.java index 6c3819a3d..77c8fafc0 100644 --- a/src/com/android/camera/OnScreenIndicators.java +++ b/src/com/android/camera/OnScreenIndicators.java @@ -16,6 +16,8 @@ package com.android.camera; +import android.content.Context; +import android.content.res.TypedArray; import android.hardware.Camera; import android.hardware.Camera.Parameters; import android.view.View; @@ -28,13 +30,23 @@ import com.android.gallery3d.R; * settings in the viewfinder. */ public class OnScreenIndicators { + private final int[] mWBArray; private final View mOnScreenIndicators; private final ImageView mExposureIndicator; private final ImageView mFlashIndicator; private final ImageView mSceneIndicator; - private final ImageView mHdrIndicator; + private final ImageView mLocationIndicator; + private final ImageView mTimerIndicator; + private final ImageView mWBIndicator; - public OnScreenIndicators(View onScreenIndicatorsView) { + public OnScreenIndicators(Context ctx, View onScreenIndicatorsView) { + TypedArray iconIds = ctx.getResources().obtainTypedArray( + R.array.camera_wb_indicators); + final int n = iconIds.length(); + mWBArray = new int[n]; + for (int i = 0; i < n; i++) { + mWBArray[i] = iconIds.getResourceId(i, R.drawable.ic_indicator_wb_off); + } mOnScreenIndicators = onScreenIndicatorsView; mExposureIndicator = (ImageView) onScreenIndicatorsView.findViewById( R.id.menu_exposure_indicator); @@ -42,7 +54,12 @@ public class OnScreenIndicators { R.id.menu_flash_indicator); mSceneIndicator = (ImageView) onScreenIndicatorsView.findViewById( R.id.menu_scenemode_indicator); - mHdrIndicator = (ImageView) onScreenIndicatorsView.findViewById(R.id.menu_hdr_indicator); + mLocationIndicator = (ImageView) onScreenIndicatorsView.findViewById( + R.id.menu_location_indicator); + mTimerIndicator = (ImageView) onScreenIndicatorsView.findViewById( + R.id.menu_timer_indicator); + mWBIndicator = (ImageView) onScreenIndicatorsView.findViewById( + R.id.menu_wb_indicator); } /** @@ -52,7 +69,9 @@ public class OnScreenIndicators { updateExposureOnScreenIndicator(0); updateFlashOnScreenIndicator(Parameters.FLASH_MODE_OFF); updateSceneOnScreenIndicator(Parameters.SCENE_MODE_AUTO); - updateHdrOnScreenIndicator(Parameters.SCENE_MODE_AUTO); + updateWBIndicator(2); + updateTimerIndicator(false); + updateLocationIndicator(false); } /** @@ -101,6 +120,23 @@ public class OnScreenIndicators { mExposureIndicator.setImageResource(id); } + public void updateWBIndicator(int wbIndex) { + if (mWBIndicator == null) return; + mWBIndicator.setImageResource(mWBArray[wbIndex]); + } + + public void updateTimerIndicator(boolean on) { + if (mTimerIndicator == null) return; + mTimerIndicator.setImageResource(on ? R.drawable.ic_indicator_timer_on + : R.drawable.ic_indicator_timer_off); + } + + public void updateLocationIndicator(boolean on) { + if (mLocationIndicator == null) return; + mLocationIndicator.setImageResource(on ? R.drawable.ic_indicator_loc_on + : R.drawable.ic_indicator_loc_off); + } + /** * Set the flash indicator to the given value. * @@ -134,31 +170,16 @@ public class OnScreenIndicators { if (mSceneIndicator == null) { return; } - if ((value == null) || Parameters.SCENE_MODE_AUTO.equals(value) - || Parameters.SCENE_MODE_HDR.equals(value)) { + if ((value == null) || Parameters.SCENE_MODE_AUTO.equals(value)) { mSceneIndicator.setImageResource(R.drawable.ic_indicator_sce_off); + } else if (Parameters.SCENE_MODE_HDR.equals(value)) { + mSceneIndicator.setImageResource(R.drawable.ic_indicator_sce_hdr); } 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. |