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

Commit 52853a2d authored by hongyang.dong's avatar hongyang.dong Committed by Julia Reynolds
Browse files

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
parent 011be0d1
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -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();
+1 −0
Original line number Diff line number Diff line
@@ -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);