Launcher 功能表中优先显示以指定字符串开头的包名的应用

launcher 中功能表默认排序是按照应用名字来排的。

既然可以按照名字排序当然也可以按照包名来排序。

找到排序的地方,然后重写一下排序的方法,这个问题就解决了。

应用列表对应launcher 中的AppsCustomizePagedView.java ,

  文件中中有一个public void setApps(ArrayList<ApplicationInfo> list);的方法就是来设置应用列表的。

其中方法中Collections.sort(mApps, LauncherModel.APP_NAME_COMPARATOR); 就是排序了。

找到LauncherModel.APP_NAME_COMPARATOR 这个Comparator

增加红色的部分的代码,就能实现在功能表中优先排指定字符串开头包名的应用了。


public static final Comparator<ApplicationInfo> APP_NAME_COMPARATOR
            = new Comparator<ApplicationInfo>() {
        public final int compare(ApplicationInfo a, ApplicationInfo b) {
            
            String privatePackage = "com.test";
            if(a.getPackageName().startsWith(privatePackage)&& b.getPackageName().startsWith(privatePackage)){
              
            }else if(a.getPackageName().startsWith(privatePackage)&& !b.getPackageName().startsWith(privatePackage)){
                return -1;
            }else if(!a.getPackageName().startsWith(privatePackage)&& b.getPackageName().startsWith(privatePackage)){
                return 1;
            }

            
            int result = sCollator.compare(a.title.toString(), b.title.toString());
            if (result == 0) {
                result = a.componentName.compareTo(b.componentName);
            }
            return result;
        }
    };



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值