summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2017-07-14 20:23:26 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-07-14 20:23:26 +0000
commit542bbca313aeb2a0e9d90b296ab771b9720081ad (patch)
tree77ebc14937dedcdbef50d135b101766244a55122
parent52ff3258410fc66a389e3448a487625f4a895117 (diff)
parentf423f0a6d440836e968f112e295d85eae8f146ca (diff)
downloadandroid_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.java19
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;
}