Merge "Unsubscribe listeners when stopping UserBackupManagerService" into qt-r1-dev

This commit is contained in:
Chandan Nath
2019-07-24 15:53:37 +00:00
committed by Android (Google) Code Review

View File

@@ -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);