summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/model
diff options
context:
space:
mode:
authorHyunyoung Song <hyunyoungs@google.com>2015-06-04 11:37:46 -0700
committerHyunyoung Song <hyunyoungs@google.com>2015-06-04 11:37:46 -0700
commitec84728b270004494dc483c141628ec6417175fb (patch)
tree7c3e053e32a0dd1b22f88bdcfd96bfc24dc4103f /src/com/android/launcher3/model
parent585b764ae24c7869704c428d1739e151e989674d (diff)
downloadandroid_packages_apps_Trebuchet-ec84728b270004494dc483c141628ec6417175fb.tar.gz
android_packages_apps_Trebuchet-ec84728b270004494dc483c141628ec6417175fb.tar.bz2
android_packages_apps_Trebuchet-ec84728b270004494dc483c141628ec6417175fb.zip
Consistent scrolling experience for All apps and widget tray
b/21375339 Change-Id: I8362b3ca94b7c4e75932d42cd09a989e0e3919c0
Diffstat (limited to 'src/com/android/launcher3/model')
-rw-r--r--src/com/android/launcher3/model/PackageItemInfo.java13
-rw-r--r--src/com/android/launcher3/model/WidgetsModel.java7
2 files changed, 17 insertions, 3 deletions
diff --git a/src/com/android/launcher3/model/PackageItemInfo.java b/src/com/android/launcher3/model/PackageItemInfo.java
index 0f0134ae3..30f228c68 100644
--- a/src/com/android/launcher3/model/PackageItemInfo.java
+++ b/src/com/android/launcher3/model/PackageItemInfo.java
@@ -16,7 +16,6 @@
package com.android.launcher3.model;
-import android.content.ComponentName;
import android.graphics.Bitmap;
import com.android.launcher3.ItemInfo;
@@ -27,7 +26,6 @@ import java.util.Arrays;
* Represents a {@link Package} in the widget tray section.
*/
public class PackageItemInfo extends ItemInfo {
- private static final String TAG = "PackageInfo";
/**
* A bitmap version of the application icon.
@@ -35,12 +33,21 @@ public class PackageItemInfo extends ItemInfo {
public Bitmap iconBitmap;
/**
- * Indicates whether we're using a low res icon
+ * Indicates whether we're using a low res icon.
*/
public boolean usingLowResIcon;
+ /**
+ * Package name of the {@link ItemInfo}.
+ */
public String packageName;
+ /**
+ * Character that is used as a section name for the {@link ItemInfo#title}.
+ * (e.g., "G" will be stored if title is "Google")
+ */
+ public String titleSectionName;
+
int flags = 0;
PackageItemInfo(String packageName) {
diff --git a/src/com/android/launcher3/model/WidgetsModel.java b/src/com/android/launcher3/model/WidgetsModel.java
index fdb9795d8..76e6a9dd5 100644
--- a/src/com/android/launcher3/model/WidgetsModel.java
+++ b/src/com/android/launcher3/model/WidgetsModel.java
@@ -10,6 +10,7 @@ import com.android.launcher3.LauncherAppState;
import com.android.launcher3.LauncherAppWidgetProviderInfo;
import com.android.launcher3.Utilities;
+import com.android.launcher3.compat.AlphabeticIndexCompat;
import com.android.launcher3.compat.UserHandleCompat;
import java.util.ArrayList;
@@ -39,11 +40,13 @@ public class WidgetsModel {
private final Comparator mWidgetAndShortcutNameComparator;
private final Comparator mAppNameComparator;
private final IconCache mIconCache;
+ private AlphabeticIndexCompat mIndexer;
public WidgetsModel(Context context) {
mWidgetAndShortcutNameComparator = new WidgetsAndShortcutNameComparator(context);
mAppNameComparator = (new AppNameComparator(context)).getAppInfoComparator();
mIconCache = LauncherAppState.getInstance().getIconCache();
+ mIndexer = new AlphabeticIndexCompat(context);
}
private WidgetsModel(WidgetsModel model) {
@@ -62,6 +65,9 @@ public class WidgetsModel {
// Access methods that may be deleted if the private fields are made package-private.
public PackageItemInfo getPackageItemInfo(int pos) {
+ if (pos >= mPackageItemInfos.size() || pos < 0) {
+ return null;
+ }
return mPackageItemInfos.get(pos);
}
@@ -112,6 +118,7 @@ public class WidgetsModel {
pInfo = new PackageItemInfo(packageName);
mIconCache.getTitleAndIconForApp(packageName, UserHandleCompat.myUserHandle(),
true /* userLowResIcon */, pInfo);
+ pInfo.titleSectionName = mIndexer.computeSectionName(pInfo.title);
mWidgetsList.put(pInfo, widgetsShortcutsList);
tmpPackageItemInfos.put(packageName, pInfo);
mPackageItemInfos.add(pInfo);