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

Commit 5e357b09 authored by Alex Buynytskyy's avatar Alex Buynytskyy
Browse files

Additional callback on binder's death.

Bug: 180970738
Fixes: 180970738
Test: atest PackageManagerShellCommandTest PackageManagerShellCommandIncrementalTest IncrementalServiceTest PackageManagerServiceTest ChecksumsTest
Change-Id: I1f0ce57a6dd0c3da847c0c858d9243fea7aa2a1f
parent aa88510b
Loading
Loading
Loading
Loading
+15 −1
Original line number Original line Diff line number Diff line
@@ -171,7 +171,7 @@ public class DataLoaderManagerService extends SystemService {
        }
        }
    }
    }


    private class DataLoaderServiceConnection implements ServiceConnection {
    private class DataLoaderServiceConnection implements ServiceConnection, IBinder.DeathRecipient {
        final int mId;
        final int mId;
        final IDataLoaderStatusListener mListener;
        final IDataLoaderStatusListener mListener;
        IDataLoader mDataLoader;
        IDataLoader mDataLoader;
@@ -194,6 +194,13 @@ public class DataLoaderManagerService extends SystemService {
                mContext.unbindService(this);
                mContext.unbindService(this);
                return;
                return;
            }
            }
            try {
                service.linkToDeath(this, /*flags=*/0);
            } catch (RemoteException e) {
                Slog.e(TAG, "Failed to link to DataLoader's death: " + mId, e);
                onBindingDied(className);
                return;
            }
            callListener(IDataLoaderStatusListener.DATA_LOADER_BOUND);
            callListener(IDataLoaderStatusListener.DATA_LOADER_BOUND);
        }
        }


@@ -218,6 +225,13 @@ public class DataLoaderManagerService extends SystemService {
            destroy();
            destroy();
        }
        }


        @Override
        public void binderDied() {
            Slog.i(TAG, "DataLoader " + mId + " died");
            callListener(IDataLoaderStatusListener.DATA_LOADER_DESTROYED);
            destroy();
        }

        IDataLoader getDataLoader() {
        IDataLoader getDataLoader() {
            return mDataLoader;
            return mDataLoader;
        }
        }