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

Commit 81fc2a94 authored by Jeff Sharkey's avatar Jeff Sharkey Committed by android-build-merger
Browse files

Merge "Merge "Fix StorageManagerService linkToDeath more than one time when...

Merge "Merge "Fix StorageManagerService linkToDeath more than one time when vold/storaged died." am: d7f82d57 am: c80ad354 am: a92cb756" into qt-r1-dev-plus-aosp am: 4908c0c7
am: f286dbde

Change-Id: I009328493faae891b32baddb3147a32f319ac8bc
parents dfa44e17 f286dbde
Loading
Loading
Loading
Loading
+18 −7
Original line number Diff line number Diff line
@@ -1557,10 +1557,11 @@ class StorageManagerService extends IStorageManager.Stub
    }

    private void start() {
        connect();
        connectStoraged();
        connectVold();
    }

    private void connect() {
    private void connectStoraged() {
        IBinder binder = ServiceManager.getService("storaged");
        if (binder != null) {
            try {
@@ -1569,7 +1570,7 @@ class StorageManagerService extends IStorageManager.Stub
                    public void binderDied() {
                        Slog.w(TAG, "storaged died; reconnecting");
                        mStoraged = null;
                        connect();
                        connectStoraged();
                    }
                }, 0);
            } catch (RemoteException e) {
@@ -1583,7 +1584,17 @@ class StorageManagerService extends IStorageManager.Stub
            Slog.w(TAG, "storaged not found; trying again");
        }

        binder = ServiceManager.getService("vold");
        if (mStoraged == null) {
            BackgroundThread.getHandler().postDelayed(() -> {
                connectStoraged();
            }, DateUtils.SECOND_IN_MILLIS);
        } else {
            onDaemonConnected();
        }
    }

    private void connectVold() {
        IBinder binder = ServiceManager.getService("vold");
        if (binder != null) {
            try {
                binder.linkToDeath(new DeathRecipient() {
@@ -1591,7 +1602,7 @@ class StorageManagerService extends IStorageManager.Stub
                    public void binderDied() {
                        Slog.w(TAG, "vold died; reconnecting");
                        mVold = null;
                        connect();
                        connectVold();
                    }
                }, 0);
            } catch (RemoteException e) {
@@ -1611,9 +1622,9 @@ class StorageManagerService extends IStorageManager.Stub
            Slog.w(TAG, "vold not found; trying again");
        }

        if (mStoraged == null || mVold == null) {
        if (mVold == null) {
            BackgroundThread.getHandler().postDelayed(() -> {
                connect();
                connectVold();
            }, DateUtils.SECOND_IN_MILLIS);
        } else {
            onDaemonConnected();