1 /*
2  * Copyright (C) 2024 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.intentresolver.model;
18 
19 import android.content.Context;
20 import android.content.pm.ResolveInfo;
21 
22 import java.text.Collator;
23 import java.util.Comparator;
24 
25 /**
26  * Sort intents alphabetically based on package name.
27  */
28 public class ResolveInfoAzInfoComparator<T extends ResolveInfo> implements Comparator<T> {
29     Collator mCollator;
30 
ResolveInfoAzInfoComparator(Context context)31     public ResolveInfoAzInfoComparator(Context context) {
32         mCollator = Collator.getInstance(context.getResources().getConfiguration().locale);
33     }
34 
35     @Override
compare(ResolveInfo lhsp, ResolveInfo rhsp)36     public int compare(ResolveInfo lhsp, ResolveInfo rhsp) {
37         if (lhsp == null) {
38             return -1;
39         } else if (rhsp == null) {
40             return 1;
41         }
42         return mCollator.compare(lhsp.activityInfo.packageName, rhsp.activityInfo.packageName);
43     }
44 }
45