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

Commit d60f6534 authored by Jeongsik Mun's avatar Jeongsik Mun Committed by Song Chun Fan
Browse files

Fix cleaning up all persistent preferred activity

Bug: 304582457
Fixes: 304582457

Test: manually tested with steps:
      1. add more than one persistent preferred activity
      2. clean up calling clearPersistentPreferredActivity()
      3. all persistent perferred activity should be cleared
(cherry picked from https://partner-android-review.googlesource.com/q/commit:f3bcc522dec694c5951c1b5d09fa014d2e20f235)
Change-Id: I726f82e9ecc34d9f5b315f91383d03ea536b8fee
parent 29104e5e
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -6411,16 +6411,25 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
    }

    boolean clearPersistentPreferredActivity(IntentFilter filter, int userId) {
        ArrayList<PersistentPreferredActivity> removed = null;
        PersistentPreferredIntentResolver ppir = mPersistentPreferredActivities.get(userId);
        Iterator<PersistentPreferredActivity> it = ppir.filterIterator();
        boolean changed = false;
        while (it.hasNext()) {
            PersistentPreferredActivity ppa = it.next();
            if (IntentFilter.filterEquals(ppa.getIntentFilter(), filter)) {
                if (removed == null) {
                    removed = new ArrayList<>();
                }
                removed.add(ppa);
            }
        }
        if (removed != null) {
            for (int i = 0; i < removed.size(); i++) {
                PersistentPreferredActivity ppa = removed.get(i);
                ppir.removeFilter(ppa);
                changed = true;
                break;
            }
            changed = true;
        }
        if (changed) {
            onChanged();