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

Commit b9c1b1a1 authored by Chandan Nath's avatar Chandan Nath Committed by android-build-merger
Browse files

Merge "Unsubscribe listeners when stopping UserBackupManagerService" into qt-r1-dev am: 66e67676

am: 768b6bba

Change-Id: Ie215b22cedacae164b610ecef1ccff052f97cc96
parents f7b43be5 768b6bba
Loading
Loading
Loading
Loading
+19 −10
Original line number Diff line number Diff line
@@ -367,6 +367,9 @@ public class UserBackupManagerService {
    private long mCurrentToken = 0;
    @Nullable private File mAncestralSerialNumberFile;

    private final ContentObserver mSetupObserver;
    private final BroadcastReceiver mRunBackupReceiver;
    private final BroadcastReceiver mRunInitReceiver;

    /**
     * Creates an instance of {@link UserBackupManagerService} and initializes state for it. This
@@ -493,11 +496,11 @@ public class UserBackupManagerService {
        mAutoRestore = Settings.Secure.getIntForUser(resolver,
                Settings.Secure.BACKUP_AUTO_RESTORE, 1, userId) != 0;

        ContentObserver setupObserver = new SetupObserver(this, mBackupHandler);
        mSetupObserver = new SetupObserver(this, mBackupHandler);
        resolver.registerContentObserver(
                Settings.Secure.getUriFor(Settings.Secure.USER_SETUP_COMPLETE),
                /* notifyForDescendents */ false,
                setupObserver,
                mSetupObserver,
                mUserId);

        mBaseStateDir = checkNotNull(baseStateDir, "baseStateDir cannot be null");
@@ -516,21 +519,21 @@ public class UserBackupManagerService {
        mBackupPasswordManager = new BackupPasswordManager(mContext, mBaseStateDir, mRng);

        // Receivers for scheduled backups and transport initialization operations.
        BroadcastReceiver runBackupReceiver = new RunBackupReceiver(this);
        mRunBackupReceiver = new RunBackupReceiver(this);
        IntentFilter filter = new IntentFilter();
        filter.addAction(RUN_BACKUP_ACTION);
        context.registerReceiverAsUser(
                runBackupReceiver,
                mRunBackupReceiver,
                UserHandle.of(userId),
                filter,
                android.Manifest.permission.BACKUP,
                /* scheduler */ null);

        BroadcastReceiver runInitReceiver = new RunInitializeReceiver(this);
        mRunInitReceiver = new RunInitializeReceiver(this);
        filter = new IntentFilter();
        filter.addAction(RUN_INITIALIZE_ACTION);
        context.registerReceiverAsUser(
                runInitReceiver,
                mRunInitReceiver,
                UserHandle.of(userId),
                filter,
                android.Manifest.permission.BACKUP,
@@ -599,6 +602,12 @@ public class UserBackupManagerService {

    /** Cleans up state when the user of this service is stopped. */
    void tearDownService() {
        mAgentTimeoutParameters.stop();
        mConstants.stop();
        mContext.getContentResolver().unregisterContentObserver(mSetupObserver);
        mContext.unregisterReceiver(mRunBackupReceiver);
        mContext.unregisterReceiver(mRunInitReceiver);
        mContext.unregisterReceiver(mPackageTrackingReceiver);
        mUserBackupThread.quit();
    }

@@ -747,7 +756,7 @@ public class UserBackupManagerService {

    @VisibleForTesting
    BroadcastReceiver getPackageTrackingReceiver() {
        return mBroadcastReceiver;
        return mPackageTrackingReceiver;
    }

    @Nullable
@@ -874,7 +883,7 @@ public class UserBackupManagerService {
        filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
        filter.addDataScheme("package");
        mContext.registerReceiverAsUser(
                mBroadcastReceiver,
                mPackageTrackingReceiver,
                UserHandle.of(mUserId),
                filter,
                /* broadcastPermission */ null,
@@ -885,7 +894,7 @@ public class UserBackupManagerService {
        sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE);
        sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE);
        mContext.registerReceiverAsUser(
                mBroadcastReceiver,
                mPackageTrackingReceiver,
                UserHandle.of(mUserId),
                sdFilter,
                /* broadcastPermission */ null,
@@ -1158,7 +1167,7 @@ public class UserBackupManagerService {
     * A {@link BroadcastReceiver} tracking changes to packages and sd cards in order to update our
     * internal bookkeeping.
     */
    private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
    private BroadcastReceiver mPackageTrackingReceiver = new BroadcastReceiver() {
        public void onReceive(Context context, Intent intent) {
            if (MORE_DEBUG) {
                Slog.d(TAG, "Received broadcast " + intent);