Loading src/com/android/launcher3/model/AddWorkspaceItemsTask.java +1 −1 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ public class AddWorkspaceItemsTask extends BaseModelUpdateTask { final IntArray addedWorkspaceScreensFinal = new IntArray(); synchronized(dataModel) { IntArray workspaceScreens = dataModel.workspaceScreens.clone(); IntArray workspaceScreens = dataModel.collectWorkspaceScreens(); List<ItemInfo> filteredItems = new ArrayList<>(); for (Pair<ItemInfo, Object> entry : mItemList) { Loading src/com/android/launcher3/model/BaseLoaderResults.java +1 −1 Original line number Diff line number Diff line Loading @@ -92,7 +92,7 @@ public abstract class BaseLoaderResults { synchronized (mBgDataModel) { workspaceItems.addAll(mBgDataModel.workspaceItems); appWidgets.addAll(mBgDataModel.appWidgets); orderedScreenIds.addAll(mBgDataModel.workspaceScreens); orderedScreenIds.addAll(mBgDataModel.collectWorkspaceScreens()); mBgDataModel.lastBindId++; } Loading src/com/android/launcher3/model/BgDataModel.java +19 −11 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import com.android.launcher3.ItemInfo; import com.android.launcher3.LauncherAppWidgetInfo; import com.android.launcher3.LauncherSettings; import com.android.launcher3.ShortcutInfo; import com.android.launcher3.Workspace; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.logging.DumpTargetWrapper; import com.android.launcher3.model.nano.LauncherDumpProto; Loading @@ -37,6 +38,7 @@ import com.android.launcher3.shortcuts.ShortcutInfoCompat; import com.android.launcher3.shortcuts.ShortcutKey; import com.android.launcher3.util.ComponentKey; import com.android.launcher3.util.IntArray; import com.android.launcher3.util.IntSet; import com.android.launcher3.util.IntSparseArrayMap; import com.google.protobuf.nano.MessageNano; Loading Loading @@ -80,11 +82,6 @@ public class BgDataModel { */ public final IntSparseArrayMap<FolderInfo> folders = new IntSparseArrayMap<>(); /** * Ordered list of workspace screens ids. */ public final IntArray workspaceScreens = new IntArray(); /** * Map of ShortcutKey to the number of times it is pinned. */ Loading Loading @@ -118,11 +115,26 @@ public class BgDataModel { appWidgets.clear(); folders.clear(); itemsIdMap.clear(); workspaceScreens.clear(); pinnedShortcutCounts.clear(); deepShortcutMap.clear(); } /** * Creates an array of valid workspace screens based on current items in the model. */ public synchronized IntArray collectWorkspaceScreens() { IntSet screenSet = new IntSet(); for (ItemInfo item: itemsIdMap) { if (item.container == LauncherSettings.Favorites.CONTAINER_DESKTOP) { screenSet.add(item.screenId); } } if (FeatureFlags.QSB_ON_FIRST_SCREEN.get() || screenSet.isEmpty()) { screenSet.add(Workspace.FIRST_SCREEN_ID); } return screenSet.getArray(); } public synchronized void dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) { if (Arrays.asList(args).contains("--proto")) { Loading @@ -130,11 +142,6 @@ public class BgDataModel { return; } writer.println(prefix + "Data Model:"); writer.print(prefix + " ---- workspace screens: "); for (int i = 0; i < workspaceScreens.size(); i++) { writer.print(" " + workspaceScreens.get(i)); } writer.println(); writer.println(prefix + " ---- workspace items "); for (int i = 0; i < workspaceItems.size(); i++) { writer.println(prefix + '\t' + workspaceItems.get(i).toString()); Loading Loading @@ -167,6 +174,7 @@ public class BgDataModel { // Add top parent nodes. (L1) DumpTargetWrapper hotseat = new DumpTargetWrapper(ContainerType.HOTSEAT, 0); IntSparseArrayMap<DumpTargetWrapper> workspaces = new IntSparseArrayMap<>(); IntArray workspaceScreens = collectWorkspaceScreens(); for (int i = 0; i < workspaceScreens.size(); i++) { workspaces.put(workspaceScreens.get(i), new DumpTargetWrapper(ContainerType.WORKSPACE, i)); Loading src/com/android/launcher3/model/LoaderTask.java +10 −21 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ import android.content.IntentFilter; import android.content.pm.LauncherActivityInfo; import android.content.pm.PackageInstaller; import android.content.pm.PackageInstaller.SessionInfo; import android.graphics.Bitmap; import android.os.Handler; import android.os.Process; import android.os.UserHandle; Loading @@ -43,19 +42,17 @@ import android.util.MutableInt; import com.android.launcher3.AllAppsList; import com.android.launcher3.AppInfo; import com.android.launcher3.FolderInfo; import com.android.launcher3.ItemInfoWithIcon; import com.android.launcher3.icons.ComponentWithLabel; import com.android.launcher3.icons.ComponentWithLabel.ComponentCachingLogic; import com.android.launcher3.icons.cache.IconCacheUpdateHandler; import com.android.launcher3.icons.IconCache; import com.android.launcher3.InstallShortcutReceiver; import com.android.launcher3.ItemInfo; import com.android.launcher3.ItemInfoWithIcon; import com.android.launcher3.LauncherAppState; import com.android.launcher3.LauncherAppWidgetInfo; import com.android.launcher3.LauncherModel; import com.android.launcher3.LauncherSettings; import com.android.launcher3.LauncherSettings.Favorites; import com.android.launcher3.ShortcutInfo; import com.android.launcher3.Utilities; import com.android.launcher3.Workspace; import com.android.launcher3.compat.AppWidgetManagerCompat; import com.android.launcher3.compat.LauncherAppsCompat; import com.android.launcher3.compat.PackageInstallerCompat; Loading @@ -63,16 +60,18 @@ import com.android.launcher3.compat.UserManagerCompat; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.folder.Folder; import com.android.launcher3.folder.FolderIconPreviewVerifier; import com.android.launcher3.icons.ComponentWithLabel; import com.android.launcher3.icons.ComponentWithLabel.ComponentCachingLogic; import com.android.launcher3.icons.IconCache; import com.android.launcher3.icons.LauncherActivtiyCachingLogic; import com.android.launcher3.icons.LauncherIcons; import com.android.launcher3.icons.cache.IconCacheUpdateHandler; import com.android.launcher3.logging.FileLog; import com.android.launcher3.provider.ImportDataTask; import com.android.launcher3.shortcuts.DeepShortcutManager; import com.android.launcher3.shortcuts.ShortcutInfoCompat; import com.android.launcher3.shortcuts.ShortcutKey; import com.android.launcher3.util.ComponentKey; import com.android.launcher3.util.IntArray; import com.android.launcher3.util.IntSet; import com.android.launcher3.util.LooperIdleLock; import com.android.launcher3.util.MultiHashMap; import com.android.launcher3.util.PackageManagerHelper; Loading Loading @@ -158,9 +157,9 @@ public class LoaderTask implements Runnable { allItems.addAll(mBgDataModel.workspaceItems); allItems.addAll(mBgDataModel.appWidgets); } int firstScreen = mBgDataModel.workspaceScreens.isEmpty() ? -1 // In this case, we can still look at the items in the hotseat. : mBgDataModel.workspaceScreens.get(0); // Screen set is never empty final int firstScreen = mBgDataModel.collectWorkspaceScreens().get(0); filterCurrentWorkspaceItems(firstScreen, allItems, firstScreenItems, new ArrayList<>() /* otherScreenItems are ignored */); mFirstScreenBroadcast.sendBroadcasts(mApp.getContext(), firstScreenItems); Loading Loading @@ -784,16 +783,6 @@ public class LoaderTask implements Runnable { null, new Handler(LauncherModel.getWorkerLooper())); } // Initialize the screens array. Using an InstSet ensures that the screen ids // are sorted. IntSet screenSet = new IntSet(); for (ItemInfo item: mBgDataModel.itemsIdMap) { if (item.container == LauncherSettings.Favorites.CONTAINER_DESKTOP) { screenSet.add(item.screenId); } } mBgDataModel.workspaceScreens.addAll(screenSet.getArray()); } } Loading Loading
src/com/android/launcher3/model/AddWorkspaceItemsTask.java +1 −1 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ public class AddWorkspaceItemsTask extends BaseModelUpdateTask { final IntArray addedWorkspaceScreensFinal = new IntArray(); synchronized(dataModel) { IntArray workspaceScreens = dataModel.workspaceScreens.clone(); IntArray workspaceScreens = dataModel.collectWorkspaceScreens(); List<ItemInfo> filteredItems = new ArrayList<>(); for (Pair<ItemInfo, Object> entry : mItemList) { Loading
src/com/android/launcher3/model/BaseLoaderResults.java +1 −1 Original line number Diff line number Diff line Loading @@ -92,7 +92,7 @@ public abstract class BaseLoaderResults { synchronized (mBgDataModel) { workspaceItems.addAll(mBgDataModel.workspaceItems); appWidgets.addAll(mBgDataModel.appWidgets); orderedScreenIds.addAll(mBgDataModel.workspaceScreens); orderedScreenIds.addAll(mBgDataModel.collectWorkspaceScreens()); mBgDataModel.lastBindId++; } Loading
src/com/android/launcher3/model/BgDataModel.java +19 −11 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import com.android.launcher3.ItemInfo; import com.android.launcher3.LauncherAppWidgetInfo; import com.android.launcher3.LauncherSettings; import com.android.launcher3.ShortcutInfo; import com.android.launcher3.Workspace; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.logging.DumpTargetWrapper; import com.android.launcher3.model.nano.LauncherDumpProto; Loading @@ -37,6 +38,7 @@ import com.android.launcher3.shortcuts.ShortcutInfoCompat; import com.android.launcher3.shortcuts.ShortcutKey; import com.android.launcher3.util.ComponentKey; import com.android.launcher3.util.IntArray; import com.android.launcher3.util.IntSet; import com.android.launcher3.util.IntSparseArrayMap; import com.google.protobuf.nano.MessageNano; Loading Loading @@ -80,11 +82,6 @@ public class BgDataModel { */ public final IntSparseArrayMap<FolderInfo> folders = new IntSparseArrayMap<>(); /** * Ordered list of workspace screens ids. */ public final IntArray workspaceScreens = new IntArray(); /** * Map of ShortcutKey to the number of times it is pinned. */ Loading Loading @@ -118,11 +115,26 @@ public class BgDataModel { appWidgets.clear(); folders.clear(); itemsIdMap.clear(); workspaceScreens.clear(); pinnedShortcutCounts.clear(); deepShortcutMap.clear(); } /** * Creates an array of valid workspace screens based on current items in the model. */ public synchronized IntArray collectWorkspaceScreens() { IntSet screenSet = new IntSet(); for (ItemInfo item: itemsIdMap) { if (item.container == LauncherSettings.Favorites.CONTAINER_DESKTOP) { screenSet.add(item.screenId); } } if (FeatureFlags.QSB_ON_FIRST_SCREEN.get() || screenSet.isEmpty()) { screenSet.add(Workspace.FIRST_SCREEN_ID); } return screenSet.getArray(); } public synchronized void dump(String prefix, FileDescriptor fd, PrintWriter writer, String[] args) { if (Arrays.asList(args).contains("--proto")) { Loading @@ -130,11 +142,6 @@ public class BgDataModel { return; } writer.println(prefix + "Data Model:"); writer.print(prefix + " ---- workspace screens: "); for (int i = 0; i < workspaceScreens.size(); i++) { writer.print(" " + workspaceScreens.get(i)); } writer.println(); writer.println(prefix + " ---- workspace items "); for (int i = 0; i < workspaceItems.size(); i++) { writer.println(prefix + '\t' + workspaceItems.get(i).toString()); Loading Loading @@ -167,6 +174,7 @@ public class BgDataModel { // Add top parent nodes. (L1) DumpTargetWrapper hotseat = new DumpTargetWrapper(ContainerType.HOTSEAT, 0); IntSparseArrayMap<DumpTargetWrapper> workspaces = new IntSparseArrayMap<>(); IntArray workspaceScreens = collectWorkspaceScreens(); for (int i = 0; i < workspaceScreens.size(); i++) { workspaces.put(workspaceScreens.get(i), new DumpTargetWrapper(ContainerType.WORKSPACE, i)); Loading
src/com/android/launcher3/model/LoaderTask.java +10 −21 Original line number Diff line number Diff line Loading @@ -31,7 +31,6 @@ import android.content.IntentFilter; import android.content.pm.LauncherActivityInfo; import android.content.pm.PackageInstaller; import android.content.pm.PackageInstaller.SessionInfo; import android.graphics.Bitmap; import android.os.Handler; import android.os.Process; import android.os.UserHandle; Loading @@ -43,19 +42,17 @@ import android.util.MutableInt; import com.android.launcher3.AllAppsList; import com.android.launcher3.AppInfo; import com.android.launcher3.FolderInfo; import com.android.launcher3.ItemInfoWithIcon; import com.android.launcher3.icons.ComponentWithLabel; import com.android.launcher3.icons.ComponentWithLabel.ComponentCachingLogic; import com.android.launcher3.icons.cache.IconCacheUpdateHandler; import com.android.launcher3.icons.IconCache; import com.android.launcher3.InstallShortcutReceiver; import com.android.launcher3.ItemInfo; import com.android.launcher3.ItemInfoWithIcon; import com.android.launcher3.LauncherAppState; import com.android.launcher3.LauncherAppWidgetInfo; import com.android.launcher3.LauncherModel; import com.android.launcher3.LauncherSettings; import com.android.launcher3.LauncherSettings.Favorites; import com.android.launcher3.ShortcutInfo; import com.android.launcher3.Utilities; import com.android.launcher3.Workspace; import com.android.launcher3.compat.AppWidgetManagerCompat; import com.android.launcher3.compat.LauncherAppsCompat; import com.android.launcher3.compat.PackageInstallerCompat; Loading @@ -63,16 +60,18 @@ import com.android.launcher3.compat.UserManagerCompat; import com.android.launcher3.config.FeatureFlags; import com.android.launcher3.folder.Folder; import com.android.launcher3.folder.FolderIconPreviewVerifier; import com.android.launcher3.icons.ComponentWithLabel; import com.android.launcher3.icons.ComponentWithLabel.ComponentCachingLogic; import com.android.launcher3.icons.IconCache; import com.android.launcher3.icons.LauncherActivtiyCachingLogic; import com.android.launcher3.icons.LauncherIcons; import com.android.launcher3.icons.cache.IconCacheUpdateHandler; import com.android.launcher3.logging.FileLog; import com.android.launcher3.provider.ImportDataTask; import com.android.launcher3.shortcuts.DeepShortcutManager; import com.android.launcher3.shortcuts.ShortcutInfoCompat; import com.android.launcher3.shortcuts.ShortcutKey; import com.android.launcher3.util.ComponentKey; import com.android.launcher3.util.IntArray; import com.android.launcher3.util.IntSet; import com.android.launcher3.util.LooperIdleLock; import com.android.launcher3.util.MultiHashMap; import com.android.launcher3.util.PackageManagerHelper; Loading Loading @@ -158,9 +157,9 @@ public class LoaderTask implements Runnable { allItems.addAll(mBgDataModel.workspaceItems); allItems.addAll(mBgDataModel.appWidgets); } int firstScreen = mBgDataModel.workspaceScreens.isEmpty() ? -1 // In this case, we can still look at the items in the hotseat. : mBgDataModel.workspaceScreens.get(0); // Screen set is never empty final int firstScreen = mBgDataModel.collectWorkspaceScreens().get(0); filterCurrentWorkspaceItems(firstScreen, allItems, firstScreenItems, new ArrayList<>() /* otherScreenItems are ignored */); mFirstScreenBroadcast.sendBroadcasts(mApp.getContext(), firstScreenItems); Loading Loading @@ -784,16 +783,6 @@ public class LoaderTask implements Runnable { null, new Handler(LauncherModel.getWorkerLooper())); } // Initialize the screens array. Using an InstSet ensures that the screen ids // are sorted. IntSet screenSet = new IntSet(); for (ItemInfo item: mBgDataModel.itemsIdMap) { if (item.container == LauncherSettings.Favorites.CONTAINER_DESKTOP) { screenSet.add(item.screenId); } } mBgDataModel.workspaceScreens.addAll(screenSet.getArray()); } } Loading