summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRemi NGUYEN VAN <reminv@google.com>2020-06-03 04:08:41 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-06-03 04:08:41 +0000
commitb4167ae242b6bfa0b4032b321b007a54cc476edc (patch)
tree0257acac677f9dd64080597ca12ed9ef0358b36a /src
parent10039a4753b2436984a40291c73e916ab21fe852 (diff)
parent3f5206b726944271f5a58759e8a348fe810c15cd (diff)
Merge "Fix venue info notification not displaying" into rvc-dev
Diffstat (limited to 'src')
-rw-r--r--src/com/android/networkstack/NetworkStackNotifier.java22
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) {