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

Commit 68faa93c authored by Anton Philippov's avatar Anton Philippov
Browse files

Fix BackupManagerMonitor wrapping in RestoreSession

Do not wrap a null monitor, pass a null wrapper instead.
BackupManagerService expects null monitor wrapper, so this
will prevent extra work for BMS and potential NPEs.

Bug: 36470662
Test: manual
Change-Id: Ia45375049101f757542960bc7f1fd640fc9c3fb7
parent 92b32428
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -54,7 +54,9 @@ public class RestoreSession {
    public int getAvailableRestoreSets(RestoreObserver observer, BackupManagerMonitor monitor) {
        int err = -1;
        RestoreObserverWrapper obsWrapper = new RestoreObserverWrapper(mContext, observer);
        BackupManagerMonitorWrapper monitorWrapper = new BackupManagerMonitorWrapper(monitor);
        BackupManagerMonitorWrapper monitorWrapper = monitor == null
                ? null
                : new BackupManagerMonitorWrapper(monitor);
        try {
            err = mBinder.getAvailableRestoreSets(obsWrapper, monitorWrapper);
        } catch (RemoteException e) {
@@ -99,7 +101,9 @@ public class RestoreSession {
            return -1;
        }
        mObserver = new RestoreObserverWrapper(mContext, observer);
        BackupManagerMonitorWrapper monitorWrapper = new BackupManagerMonitorWrapper(monitor);
        BackupManagerMonitorWrapper monitorWrapper = monitor == null
                ? null
                : new BackupManagerMonitorWrapper(monitor);
        try {
            err = mBinder.restoreAll(token, mObserver, monitorWrapper);
        } catch (RemoteException e) {
@@ -154,7 +158,9 @@ public class RestoreSession {
            return -1;
        }
        mObserver = new RestoreObserverWrapper(mContext, observer);
        BackupManagerMonitorWrapper monitorWrapper = new BackupManagerMonitorWrapper(monitor);
        BackupManagerMonitorWrapper monitorWrapper = monitor == null
                ? null
                : new BackupManagerMonitorWrapper(monitor);
        try {
            err = mBinder.restoreSome(token, mObserver, monitorWrapper, packages);
        } catch (RemoteException e) {
@@ -212,8 +218,9 @@ public class RestoreSession {
            return -1;
        }
        mObserver = new RestoreObserverWrapper(mContext, observer);
        BackupManagerMonitorWrapper monitorWrapper = new BackupManagerMonitorWrapper(monitor);

        BackupManagerMonitorWrapper monitorWrapper = monitor == null
                ? null
                : new BackupManagerMonitorWrapper(monitor);
        try {
            err = mBinder.restorePackage(packageName, mObserver, monitorWrapper);
        } catch (RemoteException e) {