PowerManagerService: Ensure that recent changes do not effect the hardware ALS case.

Change-Id: I42d2d1331c2a6234dfbdaa99f0cc8ab249f7ce22
Signed-off-by: Mike Lockwood <lockwood@android.com>
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java
index 45d03e6..aad576f 100644
--- a/services/java/com/android/server/PowerManagerService.java
+++ b/services/java/com/android/server/PowerManagerService.java
@@ -478,7 +478,7 @@
         // And explicitly do the initial update of our cached settings
         updateGservicesValues();
 
-        if (mAutoBrightessEnabled) {
+        if (mAutoBrightessEnabled && !mHasHardwareAutoBrightness) {
             // turn the screen on
             setPowerState(SCREEN_BRIGHT);
         } else {
@@ -580,7 +580,11 @@
             switch (wl.flags & LOCK_MASK)
             {
                 case PowerManager.FULL_WAKE_LOCK:
-                    wl.minState = SCREEN_BRIGHT;
+                    if (mAutoBrightessEnabled && !mHasHardwareAutoBrightness) {
+                        wl.minState = SCREEN_BRIGHT;
+                    } else {
+                        wl.minState = (mKeyboardVisible ? ALL_BRIGHT : SCREEN_BUTTON_BRIGHT);
+                    }
                     break;
                 case PowerManager.SCREEN_BRIGHT_WAKE_LOCK:
                     wl.minState = SCREEN_BRIGHT;
@@ -1332,8 +1336,8 @@
             if (newState == mPowerState) {
                 return;
             }
-            
-            if (!mDoneBooting && !mAutoBrightessEnabled) {
+
+            if (!mDoneBooting && !(mAutoBrightessEnabled && !mHasHardwareAutoBrightness)) {
                 newState |= ALL_BRIGHT;
             }
 
@@ -1757,7 +1761,7 @@
         try {
             if (mScreenBrightnessOverride >= 0) {
                 return mScreenBrightnessOverride;
-            } else if (mLightSensorBrightness >= 0) {
+            } else if (mLightSensorBrightness >= 0 && !mHasHardwareAutoBrightness) {
                 return mLightSensorBrightness;
             }
             final int brightness = Settings.System.getInt(mContext.getContentResolver(),
@@ -1846,7 +1850,8 @@
                 if ((mUserActivityAllowed && !mProximitySensorActive) || force) {
                     // Only turn on button backlights if a button was pressed
                     // and auto brightness is disabled
-                    if (eventType == BUTTON_EVENT && !mAutoBrightessEnabled) {
+                    if (eventType == BUTTON_EVENT &&
+                            !(mAutoBrightessEnabled && !mHasHardwareAutoBrightness)) {
                         mUserState = (mKeyboardVisible ? ALL_BRIGHT : SCREEN_BUTTON_BRIGHT);
                     } else {
                         // don't clear button/keyboard backlights when the screen is touched.
@@ -1904,6 +1909,8 @@
             Log.d(TAG, "lightSensorChangedLocked " + value);
         }
 
+        if (mHasHardwareAutoBrightness) return;
+
         if (mLightSensorValue != value) {
             mLightSensorValue = value;
             if ((mPowerState & BATTERY_LOW_BIT) == 0) {