Loading services/core/java/com/android/server/notification/NotificationManagerService.java +20 −5 Original line number Diff line number Diff line Loading @@ -9567,12 +9567,16 @@ public class NotificationManagerService extends SystemService { } private void scheduleListenerHintsChanged(int state) { if (!Flags.notificationReduceMessagequeueUsage()) { mHandler.removeMessages(MESSAGE_LISTENER_HINTS_CHANGED); } mHandler.obtainMessage(MESSAGE_LISTENER_HINTS_CHANGED, state, 0).sendToTarget(); } private void scheduleInterruptionFilterChanged(int listenerInterruptionFilter) { if (!Flags.notificationReduceMessagequeueUsage()) { mHandler.removeMessages(MESSAGE_LISTENER_NOTIFICATION_FILTER_CHANGED); } mHandler.obtainMessage( MESSAGE_LISTENER_NOTIFICATION_FILTER_CHANGED, listenerInterruptionFilter, Loading Loading @@ -9652,17 +9656,26 @@ public class NotificationManagerService extends SystemService { } protected void scheduleSendRankingUpdate() { if (Flags.notificationReduceMessagequeueUsage()) { Message m = Message.obtain(this, MESSAGE_SEND_RANKING_UPDATE); sendMessage(m); } else { if (!hasMessages(MESSAGE_SEND_RANKING_UPDATE)) { Message m = Message.obtain(this, MESSAGE_SEND_RANKING_UPDATE); sendMessage(m); } } } protected void scheduleCancelNotification(CancelNotificationRunnable cancelRunnable) { if (Flags.notificationReduceMessagequeueUsage()) { sendMessage(Message.obtain(this, cancelRunnable)); } else { if (!hasCallbacks(cancelRunnable)) { sendMessage(Message.obtain(this, cancelRunnable)); } } } protected void scheduleOnPackageChanged(boolean removingPackage, int changeUserId, String[] pkgList, int[] uidList) { Loading Loading @@ -9694,7 +9707,9 @@ public class NotificationManagerService extends SystemService { } public void requestSort() { if (!Flags.notificationReduceMessagequeueUsage()) { removeMessages(MESSAGE_RANKING_SORT); } Message msg = Message.obtain(); msg.what = MESSAGE_RANKING_SORT; sendMessage(msg); Loading services/core/java/com/android/server/notification/flags.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -50,3 +50,10 @@ flag { # Referenced in WM where WM starts before DeviceConfig is_fixed_read_only: true } flag { name: "notification_reduce_messagequeue_usage" namespace: "systemui" description: "When this flag is on, NMS will no longer call removeMessage() and hasCallbacks() on Handler" bug: "311051285" } No newline at end of file Loading
services/core/java/com/android/server/notification/NotificationManagerService.java +20 −5 Original line number Diff line number Diff line Loading @@ -9567,12 +9567,16 @@ public class NotificationManagerService extends SystemService { } private void scheduleListenerHintsChanged(int state) { if (!Flags.notificationReduceMessagequeueUsage()) { mHandler.removeMessages(MESSAGE_LISTENER_HINTS_CHANGED); } mHandler.obtainMessage(MESSAGE_LISTENER_HINTS_CHANGED, state, 0).sendToTarget(); } private void scheduleInterruptionFilterChanged(int listenerInterruptionFilter) { if (!Flags.notificationReduceMessagequeueUsage()) { mHandler.removeMessages(MESSAGE_LISTENER_NOTIFICATION_FILTER_CHANGED); } mHandler.obtainMessage( MESSAGE_LISTENER_NOTIFICATION_FILTER_CHANGED, listenerInterruptionFilter, Loading Loading @@ -9652,17 +9656,26 @@ public class NotificationManagerService extends SystemService { } protected void scheduleSendRankingUpdate() { if (Flags.notificationReduceMessagequeueUsage()) { Message m = Message.obtain(this, MESSAGE_SEND_RANKING_UPDATE); sendMessage(m); } else { if (!hasMessages(MESSAGE_SEND_RANKING_UPDATE)) { Message m = Message.obtain(this, MESSAGE_SEND_RANKING_UPDATE); sendMessage(m); } } } protected void scheduleCancelNotification(CancelNotificationRunnable cancelRunnable) { if (Flags.notificationReduceMessagequeueUsage()) { sendMessage(Message.obtain(this, cancelRunnable)); } else { if (!hasCallbacks(cancelRunnable)) { sendMessage(Message.obtain(this, cancelRunnable)); } } } protected void scheduleOnPackageChanged(boolean removingPackage, int changeUserId, String[] pkgList, int[] uidList) { Loading Loading @@ -9694,7 +9707,9 @@ public class NotificationManagerService extends SystemService { } public void requestSort() { if (!Flags.notificationReduceMessagequeueUsage()) { removeMessages(MESSAGE_RANKING_SORT); } Message msg = Message.obtain(); msg.what = MESSAGE_RANKING_SORT; sendMessage(msg); Loading
services/core/java/com/android/server/notification/flags.aconfig +7 −0 Original line number Diff line number Diff line Loading @@ -50,3 +50,10 @@ flag { # Referenced in WM where WM starts before DeviceConfig is_fixed_read_only: true } flag { name: "notification_reduce_messagequeue_usage" namespace: "systemui" description: "When this flag is on, NMS will no longer call removeMessage() and hasCallbacks() on Handler" bug: "311051285" } No newline at end of file