unregister FileCleanupReceiver when disableHistory

FileCleanupReceiver was not unregister when switch NotificationHistory

Testing Steps:

1. Settings -> Apps and notifications -> Notifications -> Notification history
2. Repeat switch 1000 times and system crash.

Change-Id: I40493fe7726883a449e54888247c5bffcc1554e3
This commit is contained in:
hongyang.dong
2021-05-10 18:36:05 +08:00
committed by Julia Reynolds
parent 011be0d15a
commit 52853a2d47
2 changed files with 9 additions and 2 deletions

View File

@@ -103,7 +103,7 @@ public class NotificationHistoryDatabase {
IntentFilter deletionFilter = new IntentFilter(ACTION_HISTORY_DELETION);
deletionFilter.addDataScheme(SCHEME_DELETION);
mContext.registerReceiver(mFileCleaupReceiver, deletionFilter);
mContext.registerReceiver(mFileCleanupReceiver, deletionFilter);
}
public void init() {
@@ -329,6 +329,12 @@ public class NotificationHistoryDatabase {
}
}
public void unregisterFileCleanupReceiver() {
if(mContext != null) {
mContext.unregisterReceiver(mFileCleanupReceiver);
}
}
private static long safeParseLong(String fileName) {
// AtomicFile will create copies of the numeric files with ".new" and ".bak"
// over the course of its processing. If these files still exist on boot we need to clean
@@ -340,7 +346,7 @@ public class NotificationHistoryDatabase {
}
}
private final BroadcastReceiver mFileCleaupReceiver = new BroadcastReceiver() {
private final BroadcastReceiver mFileCleanupReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();

View File

@@ -272,6 +272,7 @@ public class NotificationHistoryManager {
private void disableHistory(NotificationHistoryDatabase userHistory, @UserIdInt int userId) {
userHistory.disableHistory();
userHistory.unregisterFileCleanupReceiver();
mUserPendingHistoryDisables.put(userId, false);
mHistoryEnabled.put(userId, false);