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

Commit 0a251cd5 authored by Christopher Tate's avatar Christopher Tate Committed by Android (Google) Code Review
Browse files

Merge "Don't ack/nak backup redundantly at exit"

parents ba4b2faa ec5d4a0f
Loading
Loading
Loading
Loading
+16 −15
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ public class BackupRestoreConfirmation extends Activity {
    IBackupManager mBackupManager;
    FullObserver mObserver;
    int mToken;
    boolean mDidAcknowledge;

    TextView mStatusView;
    Button mAllowButton;
@@ -70,6 +71,7 @@ public class BackupRestoreConfirmation extends Activity {
        Context mContext;
        ObserverHandler(Context context) {
            mContext = context;
            mDidAcknowledge = false;
        }

        @Override
@@ -157,11 +159,7 @@ public class BackupRestoreConfirmation extends Activity {
        mAllowButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    mBackupManager.acknowledgeFullBackupOrRestore(mToken, true, mObserver);
                } catch (RemoteException e) {
                    // TODO: bail gracefully if we can't contact the backup manager
                }
                sendAcknowledgement(mToken, true, mObserver);
                mAllowButton.setEnabled(false);
                mDenyButton.setEnabled(false);
            }
@@ -170,11 +168,7 @@ public class BackupRestoreConfirmation extends Activity {
        mDenyButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    mBackupManager.acknowledgeFullBackupOrRestore(mToken, false, mObserver);
                } catch (RemoteException e) {
                    // TODO: bail gracefully if we can't contact the backup manager
                }
                sendAcknowledgement(mToken, false, mObserver);
                mAllowButton.setEnabled(false);
                mDenyButton.setEnabled(false);
            }
@@ -187,12 +181,19 @@ public class BackupRestoreConfirmation extends Activity {

        // We explicitly equate departure from the UI with refusal.  This includes the
        // implicit configuration-changed stop/restart cycle.
        sendAcknowledgement(mToken, false, null);
        finish();
    }

    void sendAcknowledgement(int token, boolean allow, IFullBackupRestoreObserver observer) {
        if (!mDidAcknowledge) {
            mDidAcknowledge = true;
            try {
            mBackupManager.acknowledgeFullBackupOrRestore(mToken, false, null);
                mBackupManager.acknowledgeFullBackupOrRestore(mToken, true, mObserver);
            } catch (RemoteException e) {
            // if this fails we'll still time out with no acknowledgment
                // TODO: bail gracefully if we can't contact the backup manager
            }
        }
        finish();
    }

    /**