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

Commit c173a866 authored by Isaac Katzenelson's avatar Isaac Katzenelson
Browse files

Fix endless loop in calling registerCallback/unregisterCallback

Bug: 268740192
Test: atest SharedConnectivityManagerTest
Change-Id: I388c3cee8b2877fe7e4f254e33ad13a5d2f616c2
parent b08c0e05
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -101,13 +101,13 @@ public abstract class SharedConnectivityService extends Service {
            @Override
            public void registerCallback(ISharedConnectivityCallback callback) {
                checkPermissions();
                mHandler.post(() -> registerCallback(callback));
                mHandler.post(() -> onRegisterCallback(callback));
            }

            @Override
            public void unregisterCallback(ISharedConnectivityCallback callback) {
                checkPermissions();
                mHandler.post(() -> unregisterCallback(callback));
                mHandler.post(() -> onUnregisterCallback(callback));
            }

            @Override
@@ -147,7 +147,7 @@ public abstract class SharedConnectivityService extends Service {
        };
    }

    private void registerCallback(ISharedConnectivityCallback callback) {
    private void onRegisterCallback(ISharedConnectivityCallback callback) {
        // Listener gets triggered on first register using cashed data
        if (!notifyTetherNetworkUpdate(callback) || !notifyKnownNetworkUpdate(callback)
                || !notifySettingsStateUpdate(callback)
@@ -167,7 +167,7 @@ public abstract class SharedConnectivityService extends Service {
        }
    }

    private void unregisterCallback(ISharedConnectivityCallback callback) {
    private void onUnregisterCallback(ISharedConnectivityCallback callback) {
        DeathRecipient deathRecipient = mDeathRecipientMap.get(callback);
        if (deathRecipient != null) {
            callback.asBinder().unlinkToDeath(deathRecipient, 0);