Merge "Should call deviceGone for all the association" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
3dcb756060
@@ -346,31 +346,31 @@ public class CompanionApplicationController {
|
||||
// Make sure do not schedule rebind for the case ServiceConnector still gets callback after
|
||||
// app is uninstalled.
|
||||
boolean stillAssociated = false;
|
||||
// Make sure to clean up the state for all the associations
|
||||
// that associate with this package.
|
||||
boolean shouldScheduleRebind = false;
|
||||
|
||||
for (AssociationInfo ai :
|
||||
mAssociationStore.getAssociationsForPackage(userId, packageName)) {
|
||||
final int associationId = ai.getId();
|
||||
stillAssociated = true;
|
||||
|
||||
if (ai.isSelfManaged()) {
|
||||
// Do not rebind if primary one is died for selfManaged application.
|
||||
if (isPrimary
|
||||
&& mDevicePresenceMonitor.isDevicePresent(associationId)) {
|
||||
mDevicePresenceMonitor.onSelfManagedDeviceReporterBinderDied(associationId);
|
||||
return false;
|
||||
shouldScheduleRebind = false;
|
||||
}
|
||||
// Do not rebind if both primary and secondary services are died for
|
||||
// selfManaged application.
|
||||
if (!isCompanionApplicationBound(userId, packageName)) {
|
||||
return false;
|
||||
}
|
||||
shouldScheduleRebind = isCompanionApplicationBound(userId, packageName);
|
||||
} else if (ai.isNotifyOnDeviceNearby()) {
|
||||
// Always rebind for non-selfManaged devices.
|
||||
return true;
|
||||
shouldScheduleRebind = true;
|
||||
}
|
||||
}
|
||||
|
||||
return stillAssociated;
|
||||
return stillAssociated && shouldScheduleRebind;
|
||||
}
|
||||
|
||||
private class CompanionServicesRegister extends PerUser<Map<String, List<ComponentName>>> {
|
||||
|
||||
@@ -232,11 +232,14 @@ public class CompanionDevicePresenceMonitor implements AssociationStore.OnChange
|
||||
}
|
||||
|
||||
final boolean alreadyPresent = isDevicePresent(newDeviceAssociationId);
|
||||
if (DEBUG && alreadyPresent) Log.i(TAG, "Device is already present.");
|
||||
if (alreadyPresent) {
|
||||
Log.i(TAG, "Device" + "id (" + newDeviceAssociationId + ") already present.");
|
||||
}
|
||||
|
||||
final boolean added = presentDevicesForSource.add(newDeviceAssociationId);
|
||||
if (DEBUG && !added) {
|
||||
Log.w(TAG, "Association with id " + newDeviceAssociationId + " is ALREADY reported as "
|
||||
if (!added) {
|
||||
Log.w(TAG, "Association with id "
|
||||
+ newDeviceAssociationId + " is ALREADY reported as "
|
||||
+ "present by this source (" + sourceLoggingTag + ")");
|
||||
}
|
||||
|
||||
@@ -256,16 +259,17 @@ public class CompanionDevicePresenceMonitor implements AssociationStore.OnChange
|
||||
|
||||
final boolean removed = presentDevicesForSource.remove(goneDeviceAssociationId);
|
||||
if (!removed) {
|
||||
if (DEBUG) {
|
||||
Log.w(TAG, "Association with id " + goneDeviceAssociationId + " was NOT reported "
|
||||
+ "as present by this source (" + sourceLoggingTag + ")");
|
||||
}
|
||||
Log.w(TAG, "Association with id " + goneDeviceAssociationId + " was NOT reported "
|
||||
+ "as present by this source (" + sourceLoggingTag + ")");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
final boolean stillPresent = isDevicePresent(goneDeviceAssociationId);
|
||||
if (stillPresent) {
|
||||
if (DEBUG) Log.i(TAG, " Device is still present.");
|
||||
if (DEBUG) {
|
||||
Log.i(TAG, " Device id (" + goneDeviceAssociationId + ") is still present.");
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user