怎样将主菜单图标改成按安装时间排序

1. 在 LauncherModel.java 中增加例如以下代码, 假设是KK Launcher3 ApplicationInfo要替换为AppInfo

public static final Comparator<ApplicationInfo> getInstallTimeComparator() {

return new Comparator<ApplicationInfo>() {

public final int compare(ApplicationInfo a, ApplicationInfo b) {

return a.firstInstallTime == b.firstInstallTime ? 0 : a.firstInstallTime > b.firstInstallTime ? 1:-1;

}

};

}

public static class InstallTimeComparator implements Comparator<ResolveInfo> {

private PackageManager mPackageManager;

List<ResolveInfo> mapps;

InstallTimeComparator(PackageManager pm, List<ResolveInfo> apps)

{

mPackageManager = pm;

mapps = apps;

}

public final int compare(ResolveInfo a, ResolveInfo b) {

String packageNameA = a.activityInfo.applicationInfo.packageName;

String packageNameB = b.activityInfo.applicationInfo.packageName;

long firstInstallTimeA = 0, firstInstallTimeB = 0;

try{

firstInstallTimeA = mPackageManager.getPackageInfo(packageNameA, 0).firstInstallTime;

firstInstallTimeB = mPackageManager.getPackageInfo(packageNameB, 0).firstInstallTime;

}catch(Exception e){

e.printStackTrace();

return 0;

}

return firstInstallTimeA == firstInstallTimeB ? 0 : firstInstallTimeA > firstInstallTimeB ? 1:-1;

}

};

2. 改动 LauncherModel.java 的 loadAllAppsByBatch() 方法:

Collections.sort(apps,new LauncherModel.ShortcutNameComparator(packageManager, mLabelCache));

替换成:

Collections.sort(apps,new InstallTimeComparator(packageManager, apps));

3. 改动 AppsCustomizePagedview.java 的 setApps 方法

Collections.sort(mApps, LauncherModel.getAppNameComparator());

替换成:

Collections.sort(mApps, LauncherModel.getInstallTimeComparator());

4. 系统排序后会调用reorderApps方法,因此您在其它条件下也要达到依照安装时间排序,请在相应的reorderApps方法被调用之前添加

Collections.sort(mApps, LauncherModel.getInstallTimeComparator());

比如:安装的应用后也想安装新的排序方式排列,须要在AppsCustomizePagedview.java 的 addApps 方法前添加sort的调用

时间: 2024-10-31 04:15:49

怎样将主菜单图标改成按安装时间排序的相关文章

android 如何将主菜单图标改成按安装时间排序

1. 在 LauncherModel.java 中加入如下代码, 如果是KK Launcher3 ApplicationInfo要替换为AppInfo public static final Comparator<ApplicationInfo> getInstallTimeComparator() { return new Comparator<ApplicationInfo>() { public final int compare(ApplicationInfo a, App

android 怎样将主菜单图标改成按安装时间排序

1. 在 LauncherModel.java 中增加例如以下代码, 假设是KK Launcher3 ApplicationInfo要替换为AppInfo public static final Comparator<ApplicationInfo> getInstallTimeComparator() { return new Comparator<ApplicationInfo>() { public final int compare(ApplicationInfo a, A

如何将主菜单图标改成按安装时间排序

1. 在 LauncherModel.java 中加入如下代码, 如果是KK Launcher3 ApplicationInfo要替换为AppInfo public static final Comparator<ApplicationInfo> getInstallTimeComparator() { return new Comparator<ApplicationInfo>() { public final int compare(ApplicationInfo a, App

Toolbar上返回图标改成白色

在Toolbar标签中加入 app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar",这样的话,字体和图标都显示白色

QT 设置菜单图标

目录 一.添加主窗口菜单 二.添加菜单图标 三.添加资源文件 四.使用资源文件 五.使用代码来添加菜单和图标 正文 一.添加主窗口菜单 1.新建Qt Gui应用,项目名称为myMainWindow,基类选择QMainWindow,类名为MainWindow. 2.创建完项目后,打开mainwindow.ui文件进入设计模式.在这里可以看到界面左上角的"在这里输入",我们可以在这里添加菜单.双击"在这里输入",将其更改为"文件(&F)",然

完美解决Android使用Zxing扫描二维码改成竖屏后,后面的预览画面出现了拉伸,扭曲的情况

完美解决解决Android使用Zxing扫描二维码改成竖屏后,后面的预览画面出现了拉伸,扭曲的情况 第一步:找到com.zxing.camera包下的CameraConfigurationManager.java文件中的void initFromCameraParameters(Camera camera)方法 第二步:在 Log.d(TAG, "Screen resolution: " + screenResolution);后加上如下的代码 Point screenResoluti

Fiddler2 主菜单

Fiddler2 主菜单 六个主菜单分别是: 文件(File) Capture Traffic --启用捕获功能,快捷键 F12 此功能的开启/关闭状态,程序安装后默认是开启的.可以在 Fiddler 底部状态栏最左侧看到:(开启状态).(关闭状态) 也可以通过鼠标点击状态栏该图标来进行切换. Load Archive... --载入本地保存的 Session 压缩包 Save --保存 All Sessions... --保存捕获到的全部 Session 到压缩包 Selected Sessi

将SQL SERVER数据库改成MySql

格斗人网 (www.helpqy.com) 架构在阿里云上,最先想采用SQL SERVER,想大家都是微软家族的嘛.但是发现SQL SERVER需要的配置比较高,需要的银子也比较多,最后在纠结之下换成了MySql.由于整个网站基于微软的asp.net MVC架构,同时基于EF6.0,而MVC架构默认采用了SQL SERVER,这里又与code first混合在一起,所以在修改和过渡过程中还是遇到了不少问题.这个过程中参考了博客园不少前辈的文章,真是太感谢了.其中主要参考的一篇外文是:“ASP.N

mysql root强密码的必要性max_allowed_packet被改成1024引起的风险

前两天运维反馈说,有些机器的max_allowed_packet隔两天就会被改成1024,导致客户端调用时出错,网上有说内存不够的,也有人工修改的. 运维小姑娘一口咬定肯定没有改过的,而且my.cnf中包含了. 昨天下班前开了general_log,早上过来grep "SET" | grep -A10 -b10 "packet"一遍,果然被攻击后修改了. 要求强密码策略. 主要是mysql没有设置密码策略,以及连续n次登录错误后没有自动锁定账号导致,截止最新5.7.