From 41d85c3ea1704a358d19020e1d39be4129a4efe5 Mon Sep 17 00:00:00 2001 From: Eugene Susla Date: Wed, 24 Feb 2021 17:38:44 -0800 Subject: [PATCH] Address CDM API feedback Fixes: 181175212 Test: atest CompanionDeviceManagerTest Change-Id: I33c5b2ddaedd09a9f4fae29b247f42e2351b1a0f --- core/api/current.txt | 2 +- .../android/companion/DeviceNotAssociatedException.java | 2 +- .../server/companion/CompanionDeviceManagerService.java | 9 +++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/core/api/current.txt b/core/api/current.txt index ef1899966a4e2..b87e92128679a 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -9734,7 +9734,7 @@ package android.companion { public interface DeviceFilter extends android.os.Parcelable { } - public class DeviceNotAssociatedException extends java.lang.Exception { + public class DeviceNotAssociatedException extends java.lang.RuntimeException { } public final class WifiDeviceFilter implements android.companion.DeviceFilter { diff --git a/core/java/android/companion/DeviceNotAssociatedException.java b/core/java/android/companion/DeviceNotAssociatedException.java index bebb6c9ff7eba..f8a7a7cdeffef 100644 --- a/core/java/android/companion/DeviceNotAssociatedException.java +++ b/core/java/android/companion/DeviceNotAssociatedException.java @@ -23,7 +23,7 @@ import android.annotation.Nullable; * An exception for a case when a given device was not * {@link CompanionDeviceManager#associate associated} to the calling app. */ -public class DeviceNotAssociatedException extends Exception { +public class DeviceNotAssociatedException extends RuntimeException { /** @hide */ public DeviceNotAssociatedException(@Nullable String deviceName) { super("Device not associated with the current app: " + deviceName); diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java index 01055beea4f8f..14bf9b9b9e083 100644 --- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java +++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java @@ -747,6 +747,15 @@ public class CompanionDeviceManagerService extends SystemService implements Bind } } } + + if (association.isNotifyOnDeviceNearby()) { + ServiceConnector serviceConnector = + mDeviceListenerServiceConnectors.forUser(association.getUserId()) + .get(association.getPackageName()); + if (serviceConnector != null) { + serviceConnector.unbind(); + } + } } private void updateSpecialAccessPermissionForAssociatedPackage(Association association) {