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

Commit 5677d2e4 authored by Lee Shombert's avatar Lee Shombert Committed by Android (Google) Code Review
Browse files

Merge "Fix ClassCastException in WatchedIntentResolver" into sc-dev

parents f477c8fb 3442aa04
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.server.pm;
import android.annotation.NonNull;
import android.content.IntentFilter;

import com.android.server.WatchedIntentResolver;
import com.android.server.utils.Snappable;
import com.android.server.utils.SnapshotCache;

+0 −1
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.server.pm;
import android.annotation.NonNull;
import android.content.IntentFilter;

import com.android.server.WatchedIntentResolver;
import com.android.server.utils.Snappable;
import com.android.server.utils.SnapshotCache;

+0 −1
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@ package com.android.server.pm;
import android.annotation.NonNull;
import android.content.IntentFilter;

import com.android.server.WatchedIntentResolver;
import com.android.server.utils.Snappable;
import com.android.server.utils.SnapshotCache;

+18 −5
Original line number Diff line number Diff line
@@ -14,18 +14,20 @@
 * limitations under the License.
 */

package com.android.server;
package com.android.server.pm;

import android.annotation.NonNull;
import android.annotation.Nullable;

import com.android.server.pm.WatchedIntentFilter;
import com.android.server.IntentResolver;
import com.android.server.utils.Snappable;
import com.android.server.utils.Watchable;
import com.android.server.utils.WatchableImpl;
import com.android.server.utils.Watcher;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
@@ -34,7 +36,8 @@ import java.util.List;
 * @param <R> The resolver type.
 * {@hide}
 */
public abstract class WatchedIntentResolver<F extends Watchable, R extends Object>
public abstract class WatchedIntentResolver<F extends WatchedIntentFilter,
                                            R extends WatchedIntentFilter>
        extends IntentResolver<F, R>
        implements Watchable, Snappable {

@@ -116,11 +119,21 @@ public abstract class WatchedIntentResolver<F extends Watchable, R extends Objec
        onChanged();
    }

    // Sorts a List of IntentFilter objects into descending priority order.
    @SuppressWarnings("rawtypes")
    private static final Comparator<WatchedIntentFilter> sResolvePrioritySorter =
            new Comparator<>() {
        public int compare(WatchedIntentFilter o1, WatchedIntentFilter o2) {
            final int q1 = o1.getPriority();
            final int q2 = o2.getPriority();
            return (q1 > q2) ? -1 : ((q1 < q2) ? 1 : 0);
        }
    };

    @Override
    @SuppressWarnings("unchecked")
    protected void sortResults(List<R> results) {
        super.sortResults(results);
        onChanged();
        Collections.sort(results, sResolvePrioritySorter);
    }

    /**