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

Commit 5c9b9769 authored by Evan Chen's avatar Evan Chen Committed by Automerger Merge Worker
Browse files

Merge "Only update the current connected set for selfManaged only" into tm-dev...

Merge "Only update the current connected set for selfManaged only" into tm-dev am: 5547ff26 am: a6520065 am: be259712

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



Change-Id: I38c5639fa2e4c20d7afe52078ed9e8cc73506302
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents e892fc4b be259712
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -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;
+10 −11
Original line number Diff line number Diff line
@@ -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");
@@ -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)}
@@ -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