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

Commit 4908c0c7 authored by Android Build Merger (Role)'s avatar Android Build Merger (Role) Committed by Android (Google) Code Review
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
parents 6f66d168 2a74a015
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();