mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-20 03:08:19 +00:00
Only load the first page in grid preview
Bug: 160662425 Test: manual (verified correctness) Change-Id: I9dc3b7d7b84924ffb588470d4b6b20431a62b6cd
This commit is contained in:
@@ -599,7 +599,10 @@ public class LauncherPreviewRenderer extends ContextThemeWrapper
|
||||
@Override
|
||||
public WorkspaceResult call() {
|
||||
List<ShortcutInfo> allShortcuts = new ArrayList<>();
|
||||
loadWorkspace(allShortcuts, LauncherSettings.Favorites.PREVIEW_CONTENT_URI);
|
||||
loadWorkspace(allShortcuts, LauncherSettings.Favorites.PREVIEW_CONTENT_URI,
|
||||
LauncherSettings.Favorites.SCREEN + " = 0 or "
|
||||
+ LauncherSettings.Favorites.CONTAINER + " = "
|
||||
+ LauncherSettings.Favorites.CONTAINER_HOTSEAT);
|
||||
return new WorkspaceResult(mBgDataModel, null, mWidgetProvidersMap);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,6 +127,7 @@ public class LoaderTask implements Runnable {
|
||||
|
||||
private boolean mStopped;
|
||||
|
||||
private final Set<PackageUserKey> mPendingPackages = new HashSet<>();
|
||||
private boolean mItemsDeleted = false;
|
||||
|
||||
public LoaderTask(LauncherAppState app, AllAppsList bgAllAppsList, BgDataModel dataModel,
|
||||
@@ -294,16 +295,17 @@ public class LoaderTask implements Runnable {
|
||||
}
|
||||
|
||||
private void loadWorkspace(List<ShortcutInfo> allDeepShortcuts) {
|
||||
loadWorkspace(allDeepShortcuts, LauncherSettings.Favorites.CONTENT_URI);
|
||||
loadWorkspace(allDeepShortcuts, LauncherSettings.Favorites.CONTENT_URI,
|
||||
null /* selection */);
|
||||
}
|
||||
|
||||
protected void loadWorkspace(List<ShortcutInfo> allDeepShortcuts, Uri contentUri) {
|
||||
protected void loadWorkspace(List<ShortcutInfo> allDeepShortcuts, Uri contentUri,
|
||||
String selection) {
|
||||
final Context context = mApp.getContext();
|
||||
final ContentResolver contentResolver = context.getContentResolver();
|
||||
final PackageManagerHelper pmHelper = new PackageManagerHelper(context);
|
||||
final boolean isSafeMode = pmHelper.isSafeMode();
|
||||
final boolean isSdCardReady = Utilities.isBootCompleted();
|
||||
final Set<PackageUserKey> pendingPackages = new HashSet<>();
|
||||
|
||||
boolean clearDb = false;
|
||||
try {
|
||||
@@ -332,6 +334,7 @@ public class LoaderTask implements Runnable {
|
||||
|
||||
synchronized (mBgDataModel) {
|
||||
mBgDataModel.clear();
|
||||
mPendingPackages.clear();
|
||||
|
||||
final HashMap<PackageUserKey, SessionInfo> installingPkgs =
|
||||
mSessionHelper.getActiveSessions();
|
||||
@@ -342,8 +345,8 @@ public class LoaderTask implements Runnable {
|
||||
|
||||
Map<ShortcutKey, ShortcutInfo> shortcutKeyToPinnedShortcuts = new HashMap<>();
|
||||
final LoaderCursor c = new LoaderCursor(
|
||||
contentResolver.query(contentUri, null, null, null, null), contentUri, mApp,
|
||||
mUserManagerState);
|
||||
contentResolver.query(contentUri, null, selection, null, null), contentUri,
|
||||
mApp, mUserManagerState);
|
||||
|
||||
try {
|
||||
final int appWidgetIdIndex = c.getColumnIndexOrThrow(
|
||||
@@ -484,7 +487,7 @@ public class LoaderTask implements Runnable {
|
||||
// SdCard is not ready yet. Package might get available,
|
||||
// once it is ready.
|
||||
Log.d(TAG, "Missing pkg, will check later: " + targetPkg);
|
||||
pendingPackages.add(new PackageUserKey(targetPkg, c.user));
|
||||
mPendingPackages.add(new PackageUserKey(targetPkg, c.user));
|
||||
// Add the icon on the workspace anyway.
|
||||
allowMissingTarget = true;
|
||||
} else {
|
||||
@@ -768,20 +771,7 @@ public class LoaderTask implements Runnable {
|
||||
}
|
||||
|
||||
// Remove dead items
|
||||
if (c.commitDeleted()) {
|
||||
// Remove any empty folder
|
||||
int[] deletedFolderIds = LauncherSettings.Settings
|
||||
.call(contentResolver,
|
||||
LauncherSettings.Settings.METHOD_DELETE_EMPTY_FOLDERS)
|
||||
.getIntArray(LauncherSettings.Settings.EXTRA_VALUE);
|
||||
for (int folderId : deletedFolderIds) {
|
||||
mBgDataModel.workspaceItems.remove(mBgDataModel.folders.get(folderId));
|
||||
mBgDataModel.folders.remove(folderId);
|
||||
mBgDataModel.itemsIdMap.remove(folderId);
|
||||
}
|
||||
|
||||
mItemsDeleted = true;
|
||||
}
|
||||
mItemsDeleted = c.commitDeleted();
|
||||
|
||||
// Sort the folder items, update ranks, and make sure all preview items are high res.
|
||||
FolderGridOrganizer verifier =
|
||||
@@ -807,13 +797,6 @@ public class LoaderTask implements Runnable {
|
||||
}
|
||||
|
||||
c.commitRestoredItems();
|
||||
if (!isSdCardReady && !pendingPackages.isEmpty()) {
|
||||
context.registerReceiver(
|
||||
new SdCardAvailableReceiver(mApp, pendingPackages),
|
||||
new IntentFilter(Intent.ACTION_BOOT_COMPLETED),
|
||||
null,
|
||||
MODEL_EXECUTOR.getHandler());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -840,14 +823,34 @@ public class LoaderTask implements Runnable {
|
||||
|
||||
private void sanitizeData() {
|
||||
Context context = mApp.getContext();
|
||||
ContentResolver contentResolver = context.getContentResolver();
|
||||
if (mItemsDeleted) {
|
||||
// Remove any empty folder
|
||||
int[] deletedFolderIds = LauncherSettings.Settings
|
||||
.call(contentResolver,
|
||||
LauncherSettings.Settings.METHOD_DELETE_EMPTY_FOLDERS)
|
||||
.getIntArray(LauncherSettings.Settings.EXTRA_VALUE);
|
||||
for (int folderId : deletedFolderIds) {
|
||||
mBgDataModel.workspaceItems.remove(mBgDataModel.folders.get(folderId));
|
||||
mBgDataModel.folders.remove(folderId);
|
||||
mBgDataModel.itemsIdMap.remove(folderId);
|
||||
}
|
||||
|
||||
// Remove any ghost widgets
|
||||
LauncherSettings.Settings.call(context.getContentResolver(),
|
||||
LauncherSettings.Settings.call(contentResolver,
|
||||
LauncherSettings.Settings.METHOD_REMOVE_GHOST_WIDGETS);
|
||||
}
|
||||
|
||||
// Update pinned state of model shortcuts
|
||||
mBgDataModel.updateShortcutPinnedState(context);
|
||||
|
||||
if (!Utilities.isBootCompleted() && !mPendingPackages.isEmpty()) {
|
||||
context.registerReceiver(
|
||||
new SdCardAvailableReceiver(mApp, mPendingPackages),
|
||||
new IntentFilter(Intent.ACTION_BOOT_COMPLETED),
|
||||
null,
|
||||
MODEL_EXECUTOR.getHandler());
|
||||
}
|
||||
}
|
||||
|
||||
private List<LauncherActivityInfo> loadAllApps() {
|
||||
|
||||
Reference in New Issue
Block a user