Log remote exceptions in NotifCollection

Followup from ag/10056177

Also cleans up a few small nits.

Test: atest
Change-Id: I116b8f70df62b7c37c02325d54660624aa7bd78b
This commit is contained in:
Ned Burns
2020-02-06 19:38:00 -05:00
parent b909557790
commit a5c6f2e07a
2 changed files with 25 additions and 5 deletions

View File

@@ -237,6 +237,7 @@ public class NotifCollection implements Dumpable {
stats.notificationVisibility);
} catch (RemoteException e) {
// system process is dead if we're here.
mLogger.logRemoteExceptionOnNotificationClear(entry.getKey(), e);
}
}
}
@@ -251,8 +252,7 @@ public class NotifCollection implements Dumpable {
public void dismissNotification(
NotificationEntry entry,
@NonNull DismissedByUserStats stats) {
dismissNotifications(List.of(
new Pair<NotificationEntry, DismissedByUserStats>(entry, stats)));
dismissNotifications(List.of(new Pair<>(entry, stats)));
}
/**
@@ -266,9 +266,10 @@ public class NotifCollection implements Dumpable {
mStatusBarService.onClearAllNotifications(userId);
} catch (RemoteException e) {
// system process is dead if we're here.
mLogger.logRemoteExceptionOnClearAllNotifications(e);
}
final List<NotificationEntry> entries = new ArrayList(getActiveNotifs());
final List<NotificationEntry> entries = new ArrayList<>(getActiveNotifs());
for (int i = entries.size() - 1; i >= 0; i--) {
NotificationEntry entry = entries.get(i);
if (!shouldDismissOnClearAll(entry, userId)) {
@@ -777,6 +778,6 @@ public class NotifCollection implements Dumpable {
@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;
}

View File

@@ -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 @@ class NotifCollectionLogger @Inject constructor(
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"
private const val TAG = "NotifCollection"