Loading services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java +5 −6 Original line number Diff line number Diff line Loading @@ -292,14 +292,13 @@ public class CompanionDeviceManagerService extends SystemService { private boolean onCompanionApplicationBindingDiedInternal( @UserIdInt int userId, @NonNull String packageName) { // Update the current connected devices sets when binderDied, so that application is able // to call notifyDeviceAppeared after re-launch the application. for (AssociationInfo ai : mAssociationStore.getAssociationsForPackage(userId, packageName)) { int id = ai.getId(); Slog.i(TAG, "Removing association id: " + id + " for package: " + packageName + " due to binderDied."); mDevicePresenceMonitor.removeDeviceFromMonitoring(id); final int associationId = ai.getId(); if (ai.isSelfManaged() && mDevicePresenceMonitor.isDevicePresent(associationId)) { mDevicePresenceMonitor.onSelfManagedDeviceReporterBinderDied(associationId); } } // TODO(b/218613015): implement. return false; Loading services/companion/java/com/android/server/companion/presence/CompanionDevicePresenceMonitor.java +10 −11 Original line number Diff line number Diff line Loading @@ -149,6 +149,13 @@ public class CompanionDevicePresenceMonitor implements AssociationStore.OnChange onDeviceGone(mReportedSelfManagedDevices, associationId, "application-reported"); } /** * Marks a "self-managed" device as disconnected when binderDied. */ public void onSelfManagedDeviceReporterBinderDied(int associationId) { onDeviceGone(mReportedSelfManagedDevices, associationId, "application-reported"); } @Override public void onBluetoothCompanionDeviceConnected(int associationId) { onDevicePresent(mConnectedBtDevices, associationId, /* sourceLoggingTag */ "bt"); Loading Loading @@ -258,16 +265,6 @@ public class CompanionDevicePresenceMonitor implements AssociationStore.OnChange mCallback.onDeviceDisappeared(goneDeviceAssociationId); } /** * Remove the current connected devices by associationId. */ public void removeDeviceFromMonitoring(int associationId) { mConnectedBtDevices.remove(associationId); mNearbyBleDevices.remove(associationId); mReportedSelfManagedDevices.remove(associationId); mSimulated.remove(associationId); } /** * Implements * {@link AssociationStore.OnChangeListener#onAssociationRemoved(AssociationInfo)} Loading @@ -280,7 +277,9 @@ public class CompanionDevicePresenceMonitor implements AssociationStore.OnChange Log.d(TAG, " > association=" + association); } removeDeviceFromMonitoring(id); mConnectedBtDevices.remove(id); mNearbyBleDevices.remove(id); mReportedSelfManagedDevices.remove(id); // Do NOT call mCallback.onDeviceDisappeared()! // CompanionDeviceManagerService will know that the association is removed, and will do Loading Loading
services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java +5 −6 Original line number Diff line number Diff line Loading @@ -292,14 +292,13 @@ public class CompanionDeviceManagerService extends SystemService { private boolean onCompanionApplicationBindingDiedInternal( @UserIdInt int userId, @NonNull String packageName) { // Update the current connected devices sets when binderDied, so that application is able // to call notifyDeviceAppeared after re-launch the application. for (AssociationInfo ai : mAssociationStore.getAssociationsForPackage(userId, packageName)) { int id = ai.getId(); Slog.i(TAG, "Removing association id: " + id + " for package: " + packageName + " due to binderDied."); mDevicePresenceMonitor.removeDeviceFromMonitoring(id); final int associationId = ai.getId(); if (ai.isSelfManaged() && mDevicePresenceMonitor.isDevicePresent(associationId)) { mDevicePresenceMonitor.onSelfManagedDeviceReporterBinderDied(associationId); } } // TODO(b/218613015): implement. return false; Loading
services/companion/java/com/android/server/companion/presence/CompanionDevicePresenceMonitor.java +10 −11 Original line number Diff line number Diff line Loading @@ -149,6 +149,13 @@ public class CompanionDevicePresenceMonitor implements AssociationStore.OnChange onDeviceGone(mReportedSelfManagedDevices, associationId, "application-reported"); } /** * Marks a "self-managed" device as disconnected when binderDied. */ public void onSelfManagedDeviceReporterBinderDied(int associationId) { onDeviceGone(mReportedSelfManagedDevices, associationId, "application-reported"); } @Override public void onBluetoothCompanionDeviceConnected(int associationId) { onDevicePresent(mConnectedBtDevices, associationId, /* sourceLoggingTag */ "bt"); Loading Loading @@ -258,16 +265,6 @@ public class CompanionDevicePresenceMonitor implements AssociationStore.OnChange mCallback.onDeviceDisappeared(goneDeviceAssociationId); } /** * Remove the current connected devices by associationId. */ public void removeDeviceFromMonitoring(int associationId) { mConnectedBtDevices.remove(associationId); mNearbyBleDevices.remove(associationId); mReportedSelfManagedDevices.remove(associationId); mSimulated.remove(associationId); } /** * Implements * {@link AssociationStore.OnChangeListener#onAssociationRemoved(AssociationInfo)} Loading @@ -280,7 +277,9 @@ public class CompanionDevicePresenceMonitor implements AssociationStore.OnChange Log.d(TAG, " > association=" + association); } removeDeviceFromMonitoring(id); mConnectedBtDevices.remove(id); mNearbyBleDevices.remove(id); mReportedSelfManagedDevices.remove(id); // Do NOT call mCallback.onDeviceDisappeared()! // CompanionDeviceManagerService will know that the association is removed, and will do Loading