Merge "DO NOT MERGE Log remote exceptions in NotifCollection" into rvc-dev
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java
index b90cfa8..c9cc670 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java
@@ -249,6 +249,7 @@
                             stats.notificationVisibility);
                 } catch (RemoteException e) {
                     // system process is dead if we're here.
+                    mLogger.logRemoteExceptionOnNotificationClear(entry.getKey(), e);
                 }
             }
         }
@@ -277,6 +278,7 @@
             mStatusBarService.onClearAllNotifications(userId);
         } catch (RemoteException e) {
             // system process is dead if we're here.
+            mLogger.logRemoteExceptionOnClearAllNotifications(e);
         }
 
         final List<NotificationEntry> entries = new ArrayList<>(getAllNotifs());
@@ -743,6 +745,6 @@
     @Retention(RetentionPolicy.SOURCE)
     public @interface CancellationReason {}
 
-    public static final int REASON_NOT_CANCELED = -1;
+    static final int REASON_NOT_CANCELED = -1;
     public static final int REASON_UNKNOWN = 0;
 }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt
index 8675cca..ef302f6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt
@@ -16,11 +16,13 @@
 
 package com.android.systemui.statusbar.notification.collection.notifcollection
 
+import android.os.RemoteException
 import android.service.notification.NotificationListenerService.RankingMap
 import com.android.systemui.log.LogBuffer
 import com.android.systemui.log.LogLevel.DEBUG
 import com.android.systemui.log.LogLevel.INFO
 import com.android.systemui.log.LogLevel.WARNING
+import com.android.systemui.log.LogLevel.WTF
 import com.android.systemui.log.dagger.NotificationLog
 import javax.inject.Inject
 
@@ -92,6 +94,23 @@
             buffer.log(TAG, DEBUG, { str1 = entry }, { "  $str1" })
         }
     }
+
+    fun logRemoteExceptionOnNotificationClear(key: String, e: RemoteException) {
+        buffer.log(TAG, WTF, {
+            str1 = key
+            str2 = e.toString()
+        }, {
+            "RemoteException while attempting to clear $str1:\n$str2"
+        })
+    }
+
+    fun logRemoteExceptionOnClearAllNotifications(e: RemoteException) {
+        buffer.log(TAG, WTF, {
+            str1 = e.toString()
+        }, {
+            "RemoteException while attempting to clear all notifications:\n$str1"
+        })
+    }
 }
 
-private const val TAG = "NotifCollection"
\ No newline at end of file
+private const val TAG = "NotifCollection"