summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/model
diff options
context:
space:
mode:
authorJon Miranda <jonmiranda@google.com>2019-03-04 09:14:40 -0800
committerJon Miranda <jonmiranda@google.com>2019-03-08 12:43:09 -0800
commite6f3fa47d626290dc46066d032ca4a39daffc45e (patch)
tree3d17008566f883301eb098660c2bafbeaf4808fb /src/com/android/launcher3/model
parent2ca0aa7076e696848bb3cc28102f0a1091a570ef (diff)
downloadpackages_apps_Trebuchet-e6f3fa47d626290dc46066d032ca4a39daffc45e.tar.gz
packages_apps_Trebuchet-e6f3fa47d626290dc46066d032ca4a39daffc45e.tar.bz2
packages_apps_Trebuchet-e6f3fa47d626290dc46066d032ca4a39daffc45e.zip
Fix bug where folder items preview remain in low res state.
- We update the ranks of all folder items after loading, to ensure there are no gaps caused by removed folder items. This also ensures that we load the high resolution icons for all preview items. - FolderIconPreviewVerifier#setFolderInfo was not always called - Init mGridSize with [1, 1] to prevent divide by zero error in case setFolderInfo is not called Bug: 126268196 Change-Id: I856489968665a39303e2922c78cf90f2b3ee6ebb
Diffstat (limited to 'src/com/android/launcher3/model')
-rw-r--r--src/com/android/launcher3/model/LoaderTask.java22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/com/android/launcher3/model/LoaderTask.java b/src/com/android/launcher3/model/LoaderTask.java
index a27e2c2b9..2b20b0889 100644
--- a/src/com/android/launcher3/model/LoaderTask.java
+++ b/src/com/android/launcher3/model/LoaderTask.java
@@ -340,8 +340,6 @@ public class LoaderTask implements Runnable {
Intent intent;
String targetPkg;
- FolderIconPreviewVerifier verifier =
- new FolderIconPreviewVerifier(mApp.getInvariantDeviceProfile());
while (!mStopped && c.moveToNext()) {
try {
if (c.user == null) {
@@ -461,8 +459,7 @@ public class LoaderTask implements Runnable {
c.markRestored();
}
- boolean useLowResIcon = !c.isOnWorkspaceOrHotseat() &&
- !verifier.isItemInPreview(c.getInt(rankIndex));
+ boolean useLowResIcon = !c.isOnWorkspaceOrHotseat();
if (c.restoreFlag != 0) {
// Already verified above that user is same as default user
@@ -745,24 +742,25 @@ public class LoaderTask implements Runnable {
}
}
+ // Sort the folder items, update ranks, and make sure all preview items are high res.
FolderIconPreviewVerifier verifier =
new FolderIconPreviewVerifier(mApp.getInvariantDeviceProfile());
- // Sort the folder items and make sure all items in the preview are high resolution.
for (FolderInfo folder : mBgDataModel.folders) {
Collections.sort(folder.contents, Folder.ITEM_POS_COMPARATOR);
verifier.setFolderInfo(folder);
+ int size = folder.contents.size();
+
+ // Update ranks here to ensure there are no gaps caused by removed folder items.
+ // Ranks are the source of truth for folder items, so cellX and cellY can be ignored
+ // for now. Database will be updated once user manually modifies folder.
+ for (int rank = 0; rank < size; ++rank) {
+ ShortcutInfo info = folder.contents.get(rank);
+ info.rank = rank;
- int numItemsInPreview = 0;
- for (ShortcutInfo info : folder.contents) {
if (info.usingLowResIcon()
&& info.itemType == LauncherSettings.Favorites.ITEM_TYPE_APPLICATION
&& verifier.isItemInPreview(info.rank)) {
mIconCache.getTitleAndIcon(info, false);
- numItemsInPreview++;
- }
-
- if (numItemsInPreview >= MAX_NUM_ITEMS_IN_PREVIEW) {
- break;
}
}
}