Merge "Companion device mgr doesn't always exist" into oc-dev
am: 3d6225b4e2
Change-Id: I10420e5cf8fdb6359c8191d0626cd71ecab395aa
diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
index 2c7a61b..d8e7e7d 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 @@
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 @@
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 07e4bb8..f666727 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 @@
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 @@
protected boolean isCallerSystem() {
return true;
}
+
+ @Override
+ protected ICompanionDeviceManager getCompanionManager() {
+ return null;
+ }
}
@Before
@@ -644,4 +650,13 @@
new IllegalArgumentException());
mNotificationManagerService.hasCompanionDevice(mListener);
}
+
+ @Test
+ @UiThreadTest
+ public void testHasCompanionDevice_noService() throws Exception {
+ mNotificationManagerService = new TestableNotificationManagerService(mContext);
+
+ assertFalse(mNotificationManagerService.hasCompanionDevice(mListener));
+ }
+
}