diff options
author | Remi NGUYEN VAN <reminv@google.com> | 2020-06-03 04:08:41 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-06-03 04:08:41 +0000 |
commit | b4167ae242b6bfa0b4032b321b007a54cc476edc (patch) | |
tree | 0257acac677f9dd64080597ca12ed9ef0358b36a /src | |
parent | 10039a4753b2436984a40291c73e916ab21fe852 (diff) | |
parent | 3f5206b726944271f5a58759e8a348fe810c15cd (diff) |
Merge "Fix venue info notification not displaying" into rvc-dev
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/networkstack/NetworkStackNotifier.java | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/com/android/networkstack/NetworkStackNotifier.java b/src/com/android/networkstack/NetworkStackNotifier.java index a330c70..872834a 100644 --- a/src/com/android/networkstack/NetworkStackNotifier.java +++ b/src/com/android/networkstack/NetworkStackNotifier.java @@ -16,6 +16,8 @@ package com.android.networkstack; +import static android.app.NotificationManager.IMPORTANCE_NONE; + import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; @@ -142,7 +144,19 @@ public class NetworkStackNotifier { resources.getString(title), importance); channel.setDescription(resources.getString(description)); - mNotificationManager.createNotificationChannel(channel); + getNotificationManagerForChannels().createNotificationChannel(channel); + } + + /** + * Get the NotificationManager to use to query channels, as opposed to posting notifications. + * + * Although notifications are posted as USER_ALL, notification channels are always created + * based on the UID calling NotificationManager, regardless of the context UserHandle. + * When querying notification channels, using a USER_ALL context would return no channel: the + * default context (as UserHandle 0 for NetworkStack) must be used. + */ + private NotificationManager getNotificationManagerForChannels() { + return mContext.getSystemService(NotificationManager.class); } /** @@ -284,7 +298,11 @@ public class NetworkStackNotifier { } private boolean isVenueInfoNotificationEnabled() { - return mNotificationManager.getNotificationChannel(CHANNEL_VENUE_INFO) != null; + final NotificationChannel channel = getNotificationManagerForChannels() + .getNotificationChannel(CHANNEL_VENUE_INFO); + if (channel == null) return false; + + return channel.getImportance() != IMPORTANCE_NONE; } private static String getNotificationTag(@NonNull Network network) { |