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

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

Merge "Gracefully handle "needs init" transport errors at finish"

parents 882ed374 e659fb92
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -1966,6 +1966,9 @@ class BackupManagerService extends IBackupManager.Stub {
            synchronized (mQueueLock) {
                mBackupRunning = false;
                if (mStatus == BackupConstants.TRANSPORT_NOT_INITIALIZED) {
                    // Make sure we back up everything and perform the one-time init
                    clearMetadata();
                    if (DEBUG) Slog.d(TAG, "Server requires init; rerunning");
                    backupNow();
                }
            }
@@ -1975,6 +1978,12 @@ class BackupManagerService extends IBackupManager.Stub {
            mWakelock.release();
        }

        // Remove the PM metadata state. This will generate an init on the next pass.
        void clearMetadata() {
            final File pmState = new File(mStateDir, PACKAGE_MANAGER_SENTINEL);
            if (pmState.exists()) pmState.delete();
        }

        // Invoke an agent's doBackup() and start a timeout message spinning on the main
        // handler in case it doesn't get back to us.
        int invokeAgentForBackup(String packageName, IBackupAgent agent,