summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNebojsa Cvetkovic <nebkat@gmail.com>2013-12-09 18:30:47 +0000
committerDanesh M <daneshm90@gmail.com>2014-01-24 16:24:24 -0800
commitd04d02edd24c9eff4d51b3436922414c0db36220 (patch)
tree295827e7f5eabb6f85e94fb5324a8e3ea7e98386
parent3635cea69900a4c4d50889b104fb9682a54c093e (diff)
downloadandroid_packages_apps_Trebuchet-d04d02edd24c9eff4d51b3436922414c0db36220.tar.gz
android_packages_apps_Trebuchet-d04d02edd24c9eff4d51b3436922414c0db36220.tar.bz2
android_packages_apps_Trebuchet-d04d02edd24c9eff4d51b3436922414c0db36220.zip
LauncherModel: Add launch count app comparator
Change-Id: Ie6481f8ae46a76086e187309bba3cdaafaf86977
-rw-r--r--src/com/android/launcher3/LauncherModel.java16
-rw-r--r--src/com/android/launcher3/Stats.java14
2 files changed, 30 insertions, 0 deletions
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index 7e1442dce..63ec2a257 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -3078,6 +3078,22 @@ public class LauncherModel extends BroadcastReceiver {
}
};
}
+ public static final Comparator<AppInfo> getAppLaunchCountComparator(final Stats stats) {
+ final Collator collator = Collator.getInstance();
+ return new Comparator<AppInfo>() {
+ public final int compare(AppInfo a, AppInfo b) {
+ int result = stats.launchCount(b.intent) - stats.launchCount(a.intent);
+ if (result == 0) {
+ result = collator.compare(a.title.toString().trim(),
+ b.title.toString().trim());
+ if (result == 0) {
+ result = a.componentName.compareTo(b.componentName);
+ }
+ }
+ return result;
+ }
+ };
+ }
public static final Comparator<AppInfo> APP_INSTALL_TIME_COMPARATOR
= new Comparator<AppInfo>() {
public final int compare(AppInfo a, AppInfo b) {
diff --git a/src/com/android/launcher3/Stats.java b/src/com/android/launcher3/Stats.java
index 882fb04a3..6ba1c19b9 100644
--- a/src/com/android/launcher3/Stats.java
+++ b/src/com/android/launcher3/Stats.java
@@ -103,6 +103,20 @@ public class Stats {
}
}
+ public int launchCount(Intent intent) {
+ intent = new Intent(intent);
+ intent.setSourceBounds(null);
+
+ final String flat = intent.toUri(0);
+
+ int pos = mIntents.indexOf(flat);
+ if (pos < 0) {
+ return 0;
+ } else {
+ return mHistogram.get(pos);
+ }
+ }
+
public void recordLaunch(Intent intent) {
recordLaunch(intent, null);
}