summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/notification/NotificationManagerService.java12
-rw-r--r--services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java15
2 files changed, 25 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 2c7a61b0318e..d8e7e7d5fb2e 100644
--- a/services/core/java/com/android/server/notification/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -4663,8 +4663,11 @@ public class NotificationManagerService extends SystemService {
boolean hasCompanionDevice(ManagedServiceInfo info) {
if (mCompanionManager == null) {
- mCompanionManager = ICompanionDeviceManager.Stub.asInterface(
- ServiceManager.getService(Context.COMPANION_DEVICE_SERVICE));
+ mCompanionManager = getCompanionManager();
+ }
+ // Companion mgr doesn't exist on all device types
+ if (mCompanionManager == null) {
+ return false;
}
long identity = Binder.clearCallingIdentity();
try {
@@ -4685,6 +4688,11 @@ public class NotificationManagerService extends SystemService {
return false;
}
+ protected ICompanionDeviceManager getCompanionManager() {
+ return ICompanionDeviceManager.Stub.asInterface(
+ ServiceManager.getService(Context.COMPANION_DEVICE_SERVICE));
+ }
+
private boolean isVisibleToListener(StatusBarNotification sbn, ManagedServiceInfo listener) {
if (!listener.enabledAndUserMatches(sbn.getUserId())) {
return false;
diff --git a/services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java b/services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java
index 07e4bb831d41..f666727ec1d1 100644
--- a/services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java
+++ b/services/tests/notification/src/com/android/server/notification/NotificationManagerServiceTest.java
@@ -19,6 +19,7 @@ package com.android.server.notification;
import static android.app.NotificationManager.IMPORTANCE_LOW;
import static junit.framework.Assert.assertEquals;
+import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
import static junit.framework.Assert.fail;
@@ -99,6 +100,11 @@ public class NotificationManagerServiceTest {
protected boolean isCallerSystem() {
return true;
}
+
+ @Override
+ protected ICompanionDeviceManager getCompanionManager() {
+ return null;
+ }
}
@Before
@@ -644,4 +650,13 @@ public class NotificationManagerServiceTest {
new IllegalArgumentException());
mNotificationManagerService.hasCompanionDevice(mListener);
}
+
+ @Test
+ @UiThreadTest
+ public void testHasCompanionDevice_noService() throws Exception {
+ mNotificationManagerService = new TestableNotificationManagerService(mContext);
+
+ assertFalse(mNotificationManagerService.hasCompanionDevice(mListener));
+ }
+
}