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

Commit 3802e39d authored by Winson's avatar Winson
Browse files

Convert IntentResolver data object to IntentFilter for comparison

An == check will no longer pass because the Pair object used
to wrap ParsedComponents and their associated IntentInfos is
re-created for each filter.

Have to use the actual filter reference by calling
getIntentFilter with the left/right sides.

Bug: 150112563

Test: manual update Calendar app and try to reproduce bug

Change-Id: I0bb1e1d82a1f097b4c0d99a7fabf76789461c888
parent 5b55f124
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -687,7 +687,7 @@ public abstract class IntentResolver<F, R extends Object> {
    }

    private final void remove_all_objects(ArrayMap<String, F[]> map, String name,
            Object object) {
            F object) {
        F[] array = map.get(name);
        if (array != null) {
            int LAST = array.length-1;
@@ -695,7 +695,8 @@ public abstract class IntentResolver<F, R extends Object> {
                LAST--;
            }
            for (int idx=LAST; idx>=0; idx--) {
                if (array[idx] == object) {
                F arrayValue = array[idx];
                if (arrayValue != null && getIntentFilter(arrayValue) == getIntentFilter(object)) {
                    final int remain = LAST - idx;
                    if (remain > 0) {
                        System.arraycopy(array, idx+1, array, idx, remain);