mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-20 11:18:21 +00:00
Moving data sanitization before bind
Data sanitization changes the launcher model data, which makes it out of sync with what Launcher is displaying. This would lead to widgetsIds getting deleted when they are created by Launcher on UI thread, but have not yet been updated in the model Also clearing all ghost widgets on every load. This would remove the flaky behavior where widget update depends on folder and other icons getting removed Test: Presubmit Bug: 181680555 Change-Id: I3cce69383d9d92a283c5197c3f99fbb539d93dbb
This commit is contained in:
@@ -192,6 +192,16 @@ public class LoaderTask implements Runnable {
|
||||
loadWorkspace(allShortcuts);
|
||||
logger.addSplit("loadWorkspace");
|
||||
|
||||
// Sanitize data re-syncs widgets/shortcuts based on the workspace loaded from db.
|
||||
// sanitizeData should not be invoked if the workspace is loaded from a db different
|
||||
// from the main db as defined in the invariant device profile.
|
||||
// (e.g. both grid preview and minimal device mode uses a different db)
|
||||
if (mApp.getInvariantDeviceProfile().dbFile.equals(mDbName)) {
|
||||
verifyNotStopped();
|
||||
sanitizeData();
|
||||
logger.addSplit("sanitizeData");
|
||||
}
|
||||
|
||||
verifyNotStopped();
|
||||
mResults.bindWorkspace();
|
||||
logger.addSplit("bindWorkspace");
|
||||
@@ -274,14 +284,6 @@ public class LoaderTask implements Runnable {
|
||||
loadFolderNames();
|
||||
}
|
||||
|
||||
// Sanitize data re-syncs widgets/shortcuts based on the workspace loaded from db.
|
||||
// sanitizeData should not be invoked if the workspace is loaded from a db different
|
||||
// from the main db as defined in the invariant device profile.
|
||||
// (e.g. both grid preview and minimal device mode uses a different db)
|
||||
if (mApp.getInvariantDeviceProfile().dbFile.equals(mDbName)) {
|
||||
sanitizeData();
|
||||
}
|
||||
|
||||
verifyNotStopped();
|
||||
updateHandler.finish();
|
||||
logger.addSplit("finish icon update");
|
||||
@@ -875,10 +877,11 @@ public class LoaderTask implements Runnable {
|
||||
mBgDataModel.itemsIdMap.remove(folderId);
|
||||
}
|
||||
}
|
||||
// Remove any ghost widgets
|
||||
LauncherSettings.Settings.call(contentResolver,
|
||||
LauncherSettings.Settings.METHOD_REMOVE_GHOST_WIDGETS);
|
||||
|
||||
}
|
||||
// Remove any ghost widgets
|
||||
LauncherSettings.Settings.call(contentResolver,
|
||||
LauncherSettings.Settings.METHOD_REMOVE_GHOST_WIDGETS);
|
||||
|
||||
// Update pinned state of model shortcuts
|
||||
mBgDataModel.updateShortcutPinnedState(context);
|
||||
|
||||
Reference in New Issue
Block a user