Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e68540ac authored by Eugene Susla's avatar Eugene Susla Committed by Automerger Merge Worker
Browse files

Merge "Fix CDM device disconnected callback immediately triggering "device...

Merge "Fix CDM device disconnected callback immediately triggering "device disappeared"" into sc-dev am: 4fd08954

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13819012

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Icf76c516165eb9b8b85bb46d6cfb366f162d2730
parents 9d6d67c2 4fd08954
Loading
Loading
Loading
Loading
+12 −4
Original line number Diff line number Diff line
@@ -804,6 +804,7 @@ public class CompanionDeviceManagerService extends SystemService implements Bind
                            .get(association.getPackageName());
            if (serviceConnector != null) {
                serviceConnector.unbind();
                restartBleScan();
            }
        }
    }
@@ -1106,12 +1107,20 @@ 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);

        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(
            Association a) {
@@ -1211,8 +1220,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();