Device收到通知时,通知指示灯不闪烁的问题

Issue:

"
Reproduction Steps:

  1. Flash the latest product build and boot to system
  2. Send a skype call from DUT2 to DUT1, check DUT1 LED
  3. Wait for the alarm to ring on both UUTs and dismiss after alarm rings, check DUTs LED
  4. Add one event in calendar and wait it trigger out of downtime, check DUTs LED
  5. Send a test mail to DUT1 from DUT2, check DUT2 LED
  6. Start transferring files via Bluetooth, check DUTs LED
  7. Receive an unread message, check DUTs LED
  8. 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 : ");
             }
         }
     }
相关推荐
pedestrian_h1 小时前
操作系统-线程
android·java·开发语言
gfdgd xi2 小时前
GXDE 内核管理器 1.0.1——修复bug、支持loong64
android·linux·运维·python·ubuntu·bug
美狐美颜sdk2 小时前
跨平台直播美颜sdk集成攻略:Android、iOS与Web的统一方案
android·前端·ios
❀͜͡傀儡师3 小时前
二维码/条码识别、身份证识别、银行卡识别、车牌识别、图片文字识别、黄图识别、驾驶证(驾照)识别
android·scanner
生莫甲鲁浪戴4 小时前
Android Studio新手开发第三十五天
android·ide·android studio
qq_717410014 小时前
FAQ20472:相机录像镜像功能实现
android
非专业程序员Ping6 小时前
HarfBuzz 实战:五大核心API 实例详解【附iOS/Swift实战示例】
android·ios·swift
流星魂小七6 小时前
颜色选择器
android·着色器·环形颜色选择器·圆形颜色选择器·colorpicker·colorwheelview
cdming7 小时前
LIUNX 与手机安卓的文件互传 的常用方法
android·智能手机
雨白8 小时前
Flow 的异常处理与执行控制
android·kotlin