Disable the attention light on devices that do not have it.

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
This commit is contained in:
Chris Wren
2014-06-04 15:59:50 -04:00
parent a344656a01
commit 5116a821b9
3 changed files with 10 additions and 1 deletions

View File

@@ -364,6 +364,9 @@
<!-- 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>

View File

@@ -1456,6 +1456,7 @@
<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" />

View 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();
}