Issue:
"
Reproduction Steps:
- Flash the latest product build and boot to system
- Send a skype call from DUT2 to DUT1, check DUT1 LED
- Wait for the alarm to ring on both UUTs and dismiss after alarm rings, check DUTs LED
- Add one event in calendar and wait it trigger out of downtime, check DUTs LED
- Send a test mail to DUT1 from DUT2, check DUT2 LED
- Start transferring files via Bluetooth, check DUTs LED
- Receive an unread message, check DUTs LED
- Notification LED doesn't work ==>Problem
"
Solution:
"Solution: Modify the default parameters so that the LED can blink."
1.overlay里新增字段:
device/zebra/common/overlay_gms/frameworks/base/core/res/res/values/config.xml
device/zebra/common/overlay/frameworks/base/core/res/res/values/config.xml
diff
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index 4a5f02d..6562f8e 100644
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -228,5 +228,6 @@
<item>screenshot</item>
<item>bugreport</item>
</string-array>
-
+ <!--BSPA-193784 enable notification led-->
+ <bool name="config_intrusiveNotificationLed">true</bool>
</resources>
diff --git a/overlay_gms/frameworks/base/core/res/res/values/config.xml b/overlay_gms/frameworks/base/core/res/res/values/config.xml
index 200c934..1ddf702 100644
--- a/overlay_gms/frameworks/base/core/res/res/values/config.xml
+++ b/overlay_gms/frameworks/base/core/res/res/values/config.xml
@@ -243,5 +243,6 @@
<item>screenshot</item>
<item>bugreport</item>
</string-array>
-
+ <!--BSPA-193784 enable notification led-->
+ <bool name="config_intrusiveNotificationLed">true</bool>
</resources>
2.frameworks/base/services/core/java/com/android/server/notification/NotificationManagerService.java
diff
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 93528d4..4028c2a 100644
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -1,6 +1,6 @@
/*
* Copyright (C) 2007 The Android Open Source Project
- * Copyright (C) 2021 XXX Technologies Corporation and/or its affiliates.All rights reserved.
+ * Copyright (C) 2021-2022 XXX Technologies Corporation and/or its affiliates. All rights reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1576,7 +1576,8 @@
cancelAllNotificationsInt(MY_UID, MY_PID, null, null, 0, 0, true, userHandle,
REASON_PROFILE_TURNED_OFF, null);
}
- } else if (action.equals(Intent.ACTION_USER_PRESENT)) {
+ //BSPA-193784 not to turn off LED when user passes through lock screen
+ } else if (action.equals(Intent.ACTION_USER_PRESENT) && (!XXXUtils.isXXX().orElse(false))) {
// turn off LED when user passes through lock screen
if (mNotificationLight != null) {
mNotificationLight.turnOff();
@@ -7105,14 +7106,20 @@
// Suppressed because it's a silent update
final Notification notification = record.getNotification();
if (record.isUpdate && (notification.flags & FLAG_ONLY_ALERT_ONCE) != 0) {
- return false;
+ //BSPA-193784 not feedback 'false' if it is zebra's porject.
+ return XXXUtils.isXXX().orElse(false);
}
// Suppressed because another notification in its group handles alerting
if (record.getSbn().isGroup() && record.getNotification().suppressAlertingDueToGrouping()) {
return false;
}
// not if in call or the screen's on
- if (isInCall() || mScreenOn) {
+ //BSPA-193784 The light can be on when the screen is on[XXX projcet].
+ if (XXXUtils.isXXX().orElse(false)) {
+ if (isInCall()) {
+ return true;
+ }
+ } else if (isInCall() || mScreenOn) {
return false;
}
@@ -8336,8 +8343,15 @@
}
}
- // Don't flash while we are in a call or screen is on
- if (ledNotification == null || isInCall() || mScreenOn) {
+ // Don't flash while we are in a call
+ //BSPA-193784 The light can be on when the screen is on[xxx projcet].
+ boolean isXXXNotification = false;
+ if(ZebraUtils.isZebra().orElse(false)) {
+ isXXXNotification = (ledNotification == null || isInCall());
+ } else {
+ isXXXNotification = (ledNotification == null || isInCall() || mScreenOn);
+ }
+ if (isXXXNotification) {
mNotificationLight.turnOff();
} else {
NotificationRecord.Light light = ledNotification.getLight();
@@ -8345,6 +8359,9 @@
// pulse repeatedly
mNotificationLight.setFlashing(light.color, LogicalLight.LIGHT_FLASH_TIMED,
light.onMs, light.offMs);
+ } else if (XXXUtils.isZebra().orElse(false) && light != null && !mNotificationPulseEnabled){
+ mNotificationLight.turnOff();
+ Log.d(TAG, "mNotificationLight.turnOff if Blink light is turned off : ");
}
}
}