summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Eugene Susla <eugenesusla@google.com> 2021-03-10 20:42:31 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2021-03-10 20:42:31 +0000
commit4fd089549ee3359eff3b7d9da003ab981e5389c9 (patch)
tree5a23908d19e0f37cdf93625e257a2b7479f54ef9
parentb19e9f88acb6bcdecce9049482be542d46ef4117 (diff)
parentc140dee3e919ca6f0b0a59eb4f54f7af589d4a96 (diff)
Merge "Fix CDM device disconnected callback immediately triggering "device disappeared"" into sc-dev
-rw-r--r--services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java16
1 files changed, 12 insertions, 4 deletions
diff --git a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
index 52237c934797..4b5684511757 100644
--- a/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
+++ b/services/companion/java/com/android/server/companion/CompanionDeviceManagerService.java
@@ -766,6 +766,7 @@ public class CompanionDeviceManagerService extends SystemService implements Bind
.get(association.getPackageName());
if (serviceConnector != null) {
serviceConnector.unbind();
+ restartBleScan();
}
}
}
@@ -1067,11 +1068,19 @@ public class CompanionDeviceManagerService extends SystemService implements Bind
}
void onDeviceDisconnected(String address) {
- Slog.d(LOG_TAG, "onDeviceConnected(address = " + address + ")");
+ Slog.d(LOG_TAG, "onDeviceDisconnected(address = " + address + ")");
mCurrentlyConnectedDevices.remove(address);
- onDeviceDisappeared(address);
+ Date lastSeen = mDevicesLastNearby.get(address);
+ if (isDeviceDisappeared(lastSeen)) {
+ onDeviceDisappeared(address);
+ }
+ }
+
+ private boolean isDeviceDisappeared(Date lastSeen) {
+ return lastSeen == null || System.currentTimeMillis() - lastSeen.getTime()
+ >= DEVICE_DISAPPEARED_UNBIND_TIMEOUT_MS;
}
private ServiceConnector<ICompanionDeviceService> getDeviceListenerServiceConnector(
@@ -1172,8 +1181,7 @@ public class CompanionDeviceManagerService extends SystemService implements Bind
String address = mDevicesLastNearby.keyAt(i);
Date lastNearby = mDevicesLastNearby.valueAt(i);
- if (System.currentTimeMillis() - lastNearby.getTime()
- >= DEVICE_DISAPPEARED_UNBIND_TIMEOUT_MS) {
+ if (isDeviceDisappeared(lastNearby)) {
for (Association association : getAllAssociations(address)) {
if (association.isNotifyOnDeviceNearby()) {
getDeviceListenerServiceConnector(association).unbind();