From 156f3e5b41cd2049230b1423c455763d31738693 Mon Sep 17 00:00:00 2001 From: Spike Sprague Date: Thu, 15 May 2014 15:32:49 -0700 Subject: fix some lingering exposure comp value calculation errors hide exposure comp button if not supported in hardware bug: 13967706 Change-Id: I6aa6963929c00ed06122fa2e2dfd778844bcc280 --- src/com/android/camera/ButtonManager.java | 24 ++++++++++++++++++---- src/com/android/camera/app/CameraAppUI.java | 1 + .../camera/widget/IndicatorIconController.java | 7 ++++--- 3 files changed, 25 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/com/android/camera/ButtonManager.java b/src/com/android/camera/ButtonManager.java index f9b8340f2..c5a6f2edc 100644 --- a/src/com/android/camera/ButtonManager.java +++ b/src/com/android/camera/ButtonManager.java @@ -499,14 +499,30 @@ public class ButtonManager implements SettingsManager.OnSettingChangedListener { mMinExposureCompensation = min; mExposureCompensationStep = step; - mExposureN2.setEnabled(Math.round(min * step) <= -2); - mExposureN1.setEnabled(Math.round(min * step) <= -1); - mExposureP1.setEnabled(Math.round(max * step) >= 1); - mExposureP1.setEnabled(Math.round(max * step) >= 2); + + setVisible(mExposureN2, (Math.round(min * step) <= -2)); + setVisible(mExposureN1, (Math.round(min * step) <= -1)); + setVisible(mExposureP1, (Math.round(max * step) >= 1)); + setVisible(mExposureP2, (Math.round(max * step) >= 2)); updateExposureButtons(); } + private static void setVisible(View v, boolean visible) { + if (visible) { + v.setVisibility(View.VISIBLE); + } else { + v.setVisibility(View.INVISIBLE); + } + } + + /** + * @return The exposure compensation step value. + **/ + public float getExposureCompensationStep() { + return mExposureCompensationStep; + } + /** * Check if a button is enabled with the given button id.. */ diff --git a/src/com/android/camera/app/CameraAppUI.java b/src/com/android/camera/app/CameraAppUI.java index 4691cf8ac..ee3ac6ad1 100644 --- a/src/com/android/camera/app/CameraAppUI.java +++ b/src/com/android/camera/app/CameraAppUI.java @@ -1689,6 +1689,7 @@ public class CameraAppUI implements ModeListView.ModeSwitchListener, } boolean enableExposureCompensation = bottomBarSpec.enableExposureCompensation && + !(bottomBarSpec.minExposureCompensation == 0 && bottomBarSpec.maxExposureCompensation == 0) && mController.getSettingsManager() .getBoolean(SettingsManager.SETTING_EXPOSURE_COMPENSATION_ENABLED); if (enableExposureCompensation) { diff --git a/src/com/android/camera/widget/IndicatorIconController.java b/src/com/android/camera/widget/IndicatorIconController.java index d7e98b969..610d9c71d 100644 --- a/src/com/android/camera/widget/IndicatorIconController.java +++ b/src/com/android/camera/widget/IndicatorIconController.java @@ -241,10 +241,11 @@ public class IndicatorIconController String compString = mController.getSettingsManager().get( SettingsManager.SETTING_EXPOSURE_COMPENSATION_VALUE); - int comp = Integer.parseInt(compString); + int comp = Math.round( + Integer.parseInt(compString) * buttonManager.getExposureCompensationStep()); + // Turn on the appropriate indicator. - // Each integer compensation represent 1/6 of a stop. - switch (comp / 6) { + switch (comp) { case -2: changeVisibility(mExposureIndicatorN2, View.VISIBLE); break; -- cgit v1.2.3