diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2017-07-14 20:23:26 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-07-14 20:23:26 +0000 |
commit | 542bbca313aeb2a0e9d90b296ab771b9720081ad (patch) | |
tree | 77ebc14937dedcdbef50d135b101766244a55122 | |
parent | 52ff3258410fc66a389e3448a487625f4a895117 (diff) | |
parent | f423f0a6d440836e968f112e295d85eae8f146ca (diff) | |
download | android_packages_apps_Trebuchet-542bbca313aeb2a0e9d90b296ab771b9720081ad.tar.gz android_packages_apps_Trebuchet-542bbca313aeb2a0e9d90b296ab771b9720081ad.tar.bz2 android_packages_apps_Trebuchet-542bbca313aeb2a0e9d90b296ab771b9720081ad.zip |
Merge "Catch SecurityException from NoMan to workaround possible race condition" into ub-launcher3-dorval-polish
-rw-r--r-- | src/com/android/launcher3/notification/NotificationListener.java | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/com/android/launcher3/notification/NotificationListener.java b/src/com/android/launcher3/notification/NotificationListener.java index 8121fd55f..73d89aa18 100644 --- a/src/com/android/launcher3/notification/NotificationListener.java +++ b/src/com/android/launcher3/notification/NotificationListener.java @@ -28,6 +28,7 @@ import android.service.notification.StatusBarNotification; import android.support.annotation.Nullable; import android.text.TextUtils; import android.util.ArraySet; +import android.util.Log; import android.util.Pair; import com.android.launcher3.LauncherModel; import com.android.launcher3.config.FeatureFlags; @@ -47,6 +48,8 @@ import java.util.Set; @TargetApi(Build.VERSION_CODES.O) public class NotificationListener extends NotificationListenerService { + public static final String TAG = "NotificationListener"; + private static final int MSG_NOTIFICATION_POSTED = 1; private static final int MSG_NOTIFICATION_REMOVED = 2; private static final int MSG_NOTIFICATION_FULL_REFRESH = 3; @@ -71,9 +74,19 @@ public class NotificationListener extends NotificationListenerService { mUiHandler.obtainMessage(message.what, message.obj).sendToTarget(); break; case MSG_NOTIFICATION_FULL_REFRESH: - final List<StatusBarNotification> activeNotifications = sIsConnected - ? filterNotifications(getActiveNotifications()) - : new ArrayList<StatusBarNotification>(); + List<StatusBarNotification> activeNotifications; + if (sIsConnected) { + try { + activeNotifications = filterNotifications(getActiveNotifications()); + } catch (SecurityException ex) { + Log.e(TAG, "SecurityException: failed to fetch notifications"); + activeNotifications = new ArrayList<StatusBarNotification>(); + + } + } else { + activeNotifications = new ArrayList<StatusBarNotification>(); + } + mUiHandler.obtainMessage(message.what, activeNotifications).sendToTarget(); break; } |