OSDN Git Service

Disable the attention light on devices that do not have it.
authorChris Wren <cwren@android.com>
Wed, 4 Jun 2014 19:59:50 +0000 (15:59 -0400)
committerChris Wren <cwren@android.com>
Thu, 5 Jun 2014 16:38:13 +0000 (12:38 -0400)
If the attention and notificaiton light are mapped to the same
physical LED, then pulsing the attention light can turn off the
notification light. See bug for detailed discussion.

Bug: 12900389
Change-Id: I2703af23f50ecc3e92140b9843aaf340d520bce5

core/res/res/values/config.xml
core/res/res/values/symbols.xml
services/core/java/com/android/server/notification/NotificationManagerService.java

index 8af45db..865d92a 100644 (file)
     <!-- If this is true, the screen will come on when you unplug usb/power/whatever. -->
     <bool name="config_unplugTurnsOnScreen">false</bool>
 
+    <!-- Set this true only if the device has separate attention and notification lights. -->
+    <bool name="config_useAttentionLight">false</bool>
+
     <!-- If this is true, the screen will fade off. -->
     <bool name="config_animateScreenLights">true</bool>
 
index 6a032e2..61b6a0d 100644 (file)
   <java-symbol type="array" name="config_defaultNotificationVibePattern" />
   <java-symbol type="array" name="config_notificationFallbackVibePattern" />
   <java-symbol type="array" name="config_onlySingleDcAllowed" />
+  <java-symbol type="bool" name="config_useAttentionLight" />
   <java-symbol type="bool" name="config_animateScreenLights" />
   <java-symbol type="bool" name="config_automatic_brightness_available" />
   <java-symbol type="bool" name="config_enableFusedLocationOverlay" />
index 027b669..386402b 100644 (file)
@@ -163,6 +163,7 @@ public class NotificationManagerService extends SystemService {
     private long[] mDefaultVibrationPattern;
 
     private long[] mFallbackVibrationPattern;
+    private boolean mUseAttentionLight;
     boolean mSystemReady;
 
     private boolean mDisableNotificationAlerts;
@@ -797,6 +798,8 @@ public class NotificationManagerService extends SystemService {
                 VIBRATE_PATTERN_MAXLEN,
                 DEFAULT_VIBRATE_PATTERN);
 
+        mUseAttentionLight = resources.getBoolean(R.bool.config_useAttentionLight);
+
         // Don't start allowing notifications until the setup wizard has run once.
         // After that, including subsequent boots, init with notifications turned on.
         // This works on the first boot because the setup wizard will toggle this
@@ -1742,7 +1745,9 @@ public class NotificationManagerService extends SystemService {
         if ((notification.flags & Notification.FLAG_SHOW_LIGHTS) != 0 && canInterrupt) {
             mLights.add(record.getKey());
             updateLightsLocked();
-            mAttentionLight.pulse();
+            if (mUseAttentionLight) {
+                mAttentionLight.pulse();
+            }
         } else if (wasShowLights) {
             updateLightsLocked();
         }