diff options
| author | 2023-10-19 11:16:35 +0000 | |
|---|---|---|
| committer | 2023-10-19 11:28:03 +0000 | |
| commit | 8f23a617d5d1d5f67c6c30b95f8fa08e1218cc9f (patch) | |
| tree | 920918e24af71d341b8ff5a090e4da95178559cd | |
| parent | 7de813b23f3c4d334425185acb334067f1133aeb (diff) | |
Log removeRemoteInput apply skip
We observe a stale last updated remote input active value. This logs will surface the cases when we skip system level remote input active due to entry based limitation.
Previous log CLs also helps us uncover the reason why the system has stale data.
Bug: 290068526
Test: We havent reproduce this case yet. We want to get this case from BR Logs.
Change-Id: Icdce15e47b76f69ccd70e106c86b23d333dec469
2 files changed, 28 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputController.java b/packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputController.java index 17da015789ea..ffde8c03682f 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/RemoteInputController.java @@ -118,16 +118,27 @@ public class RemoteInputController { // If the view is being removed, this may be called even though we're not active boolean remoteInputActiveForEntry = isRemoteInputActive(entry); + boolean remoteInputActive = isRemoteInputActive(); mLogger.logRemoveRemoteInput( entry.getKey() /* entryKey */, entry.mRemoteEditImeVisible /* remoteEditImeVisible */, entry.mRemoteEditImeAnimatingAway /* remoteEditImeAnimatingAway */, remoteInputActiveForEntry /* isRemoteInputActiveForEntry */, - isRemoteInputActive()/* isRemoteInputActive */, + remoteInputActive/* isRemoteInputActive */, reason/* reason */, entry.getNotificationStyle()/* notificationStyle */); - if (!remoteInputActiveForEntry) return; + if (!remoteInputActiveForEntry) { + if (mLastAppliedRemoteInputActive != null + && mLastAppliedRemoteInputActive + && !remoteInputActive) { + mLogger.logRemoteInputApplySkipped( + entry.getKey() /* entryKey */, + reason/* reason */, + entry.getNotificationStyle()/* notificationStyle */); + } + return; + } pruneWeakThenRemoveAndContains(null /* contains */, entry /* remove */, token); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/RemoteInputControllerLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/RemoteInputControllerLogger.kt index ff89c62ab496..23f87ba9dcc9 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/RemoteInputControllerLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/RemoteInputControllerLogger.kt @@ -83,6 +83,21 @@ constructor(@NotificationRemoteInputLog private val logBuffer: LogBuffer) { } ) + fun logRemoteInputApplySkipped(entryKey: String, reason: String, notificationStyle: String) = + logBuffer.log( + TAG, + DEBUG, + { + str1 = entryKey + str2 = reason + str3 = notificationStyle + }, + { + "removeRemoteInput[apply is skipped] reason: $str2" + + "for entry: $str1, style: $str3 " + } + ) + private companion object { private const val TAG = "RemoteInputControllerLog" } |