mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 02:38:20 +00:00
Merge "Refactor Workspace Loading / Processing code." into tm-qpr-dev am: 3a14f1331d
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/20544534 Change-Id: I9185bbd2b89d0f40ce85ae4e4b2843643d9ecce8 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -112,10 +112,23 @@ public class QuickstepModelDelegate extends ModelDelegate {
|
||||
}
|
||||
|
||||
@Override
|
||||
@WorkerThread
|
||||
public void loadItems(UserManagerState ums, Map<ShortcutKey, ShortcutInfo> pinnedShortcuts) {
|
||||
public void loadHotseatItems(UserManagerState ums,
|
||||
Map<ShortcutKey, ShortcutInfo> pinnedShortcuts) {
|
||||
// TODO: Implement caching and preloading
|
||||
super.loadItems(ums, pinnedShortcuts);
|
||||
super.loadHotseatItems(ums, pinnedShortcuts);
|
||||
|
||||
WorkspaceItemFactory hotseatFactory = new WorkspaceItemFactory(mApp, ums, pinnedShortcuts,
|
||||
mIDP.numDatabaseHotseatIcons, mHotseatState.containerId);
|
||||
FixedContainerItems hotseatItems = new FixedContainerItems(mHotseatState.containerId,
|
||||
mHotseatState.storage.read(mApp.getContext(), hotseatFactory, ums.allUsers::get));
|
||||
mDataModel.extraItems.put(mHotseatState.containerId, hotseatItems);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void loadAllAppsItems(UserManagerState ums,
|
||||
Map<ShortcutKey, ShortcutInfo> pinnedShortcuts) {
|
||||
// TODO: Implement caching and preloading
|
||||
super.loadAllAppsItems(ums, pinnedShortcuts);
|
||||
|
||||
WorkspaceItemFactory allAppsFactory = new WorkspaceItemFactory(mApp, ums, pinnedShortcuts,
|
||||
mIDP.numDatabaseAllAppsColumns, mAllAppsState.containerId);
|
||||
@@ -123,17 +136,22 @@ public class QuickstepModelDelegate extends ModelDelegate {
|
||||
mAllAppsState.containerId, mAllAppsState.storage.read(mApp.getContext(),
|
||||
allAppsFactory, ums.allUsers::get));
|
||||
mDataModel.extraItems.put(mAllAppsState.containerId, allAppsPredictionItems);
|
||||
}
|
||||
|
||||
WorkspaceItemFactory hotseatFactory = new WorkspaceItemFactory(mApp, ums, pinnedShortcuts,
|
||||
mIDP.numDatabaseHotseatIcons, mHotseatState.containerId);
|
||||
FixedContainerItems hotseatItems = new FixedContainerItems(mHotseatState.containerId,
|
||||
mHotseatState.storage.read(mApp.getContext(), hotseatFactory, ums.allUsers::get));
|
||||
mDataModel.extraItems.put(mHotseatState.containerId, hotseatItems);
|
||||
@Override
|
||||
public void loadWidgetsRecommendationItems() {
|
||||
// TODO: Implement caching and preloading
|
||||
super.loadWidgetsRecommendationItems();
|
||||
|
||||
// Widgets prediction isn't used frequently. And thus, it is not persisted on disk.
|
||||
mDataModel.extraItems.put(mWidgetsRecommendationState.containerId,
|
||||
new FixedContainerItems(mWidgetsRecommendationState.containerId,
|
||||
new ArrayList<>()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void markActive() {
|
||||
super.markActive();
|
||||
mActive = true;
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,6 @@ import androidx.annotation.VisibleForTesting;
|
||||
|
||||
import com.android.launcher3.InvariantDeviceProfile;
|
||||
import com.android.launcher3.LauncherAppState;
|
||||
import com.android.launcher3.LauncherSettings;
|
||||
import com.android.launcher3.LauncherSettings.Favorites;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.Workspace;
|
||||
@@ -72,24 +71,32 @@ public class LoaderCursor extends CursorWrapper {
|
||||
private final IconCache mIconCache;
|
||||
private final InvariantDeviceProfile mIDP;
|
||||
|
||||
private final IntArray itemsToRemove = new IntArray();
|
||||
private final IntArray restoredRows = new IntArray();
|
||||
private final IntSparseArrayMap<GridOccupancy> occupied = new IntSparseArrayMap<>();
|
||||
private final IntArray mItemsToRemove = new IntArray();
|
||||
private final IntArray mRestoredRows = new IntArray();
|
||||
private final IntSparseArrayMap<GridOccupancy> mOccupied = new IntSparseArrayMap<>();
|
||||
|
||||
private final int iconPackageIndex;
|
||||
private final int iconResourceIndex;
|
||||
private final int iconIndex;
|
||||
public final int titleIndex;
|
||||
private final int mIconPackageIndex;
|
||||
private final int mIconResourceIndex;
|
||||
private final int mIconIndex;
|
||||
public final int mTitleIndex;
|
||||
|
||||
private final int idIndex;
|
||||
private final int containerIndex;
|
||||
private final int itemTypeIndex;
|
||||
private final int screenIndex;
|
||||
private final int cellXIndex;
|
||||
private final int cellYIndex;
|
||||
private final int profileIdIndex;
|
||||
private final int restoredIndex;
|
||||
private final int intentIndex;
|
||||
private final int mIdIndex;
|
||||
private final int mContainerIndex;
|
||||
private final int mItemTypeIndex;
|
||||
private final int mScreenIndex;
|
||||
private final int mCellXIndex;
|
||||
private final int mCellYIndex;
|
||||
private final int mProfileIdIndex;
|
||||
private final int mRestoredIndex;
|
||||
private final int mIntentIndex;
|
||||
|
||||
private final int mAppWidgetIdIndex;
|
||||
private final int mAppWidgetProviderIndex;
|
||||
private final int mSpanXIndex;
|
||||
private final int mSpanYIndex;
|
||||
private final int mRankIndex;
|
||||
private final int mOptionsIndex;
|
||||
private final int mAppWidgetSourceIndex;
|
||||
|
||||
@Nullable
|
||||
private LauncherActivityInfo mActivityInfo;
|
||||
@@ -114,20 +121,28 @@ public class LoaderCursor extends CursorWrapper {
|
||||
mPM = mContext.getPackageManager();
|
||||
|
||||
// Init column indices
|
||||
iconIndex = getColumnIndexOrThrow(LauncherSettings.Favorites.ICON);
|
||||
iconPackageIndex = getColumnIndexOrThrow(LauncherSettings.Favorites.ICON_PACKAGE);
|
||||
iconResourceIndex = getColumnIndexOrThrow(LauncherSettings.Favorites.ICON_RESOURCE);
|
||||
titleIndex = getColumnIndexOrThrow(LauncherSettings.Favorites.TITLE);
|
||||
mIconIndex = getColumnIndexOrThrow(Favorites.ICON);
|
||||
mIconPackageIndex = getColumnIndexOrThrow(Favorites.ICON_PACKAGE);
|
||||
mIconResourceIndex = getColumnIndexOrThrow(Favorites.ICON_RESOURCE);
|
||||
mTitleIndex = getColumnIndexOrThrow(Favorites.TITLE);
|
||||
|
||||
idIndex = getColumnIndexOrThrow(LauncherSettings.Favorites._ID);
|
||||
containerIndex = getColumnIndexOrThrow(LauncherSettings.Favorites.CONTAINER);
|
||||
itemTypeIndex = getColumnIndexOrThrow(LauncherSettings.Favorites.ITEM_TYPE);
|
||||
screenIndex = getColumnIndexOrThrow(LauncherSettings.Favorites.SCREEN);
|
||||
cellXIndex = getColumnIndexOrThrow(LauncherSettings.Favorites.CELLX);
|
||||
cellYIndex = getColumnIndexOrThrow(LauncherSettings.Favorites.CELLY);
|
||||
profileIdIndex = getColumnIndexOrThrow(LauncherSettings.Favorites.PROFILE_ID);
|
||||
restoredIndex = getColumnIndexOrThrow(LauncherSettings.Favorites.RESTORED);
|
||||
intentIndex = getColumnIndexOrThrow(LauncherSettings.Favorites.INTENT);
|
||||
mIdIndex = getColumnIndexOrThrow(Favorites._ID);
|
||||
mContainerIndex = getColumnIndexOrThrow(Favorites.CONTAINER);
|
||||
mItemTypeIndex = getColumnIndexOrThrow(Favorites.ITEM_TYPE);
|
||||
mScreenIndex = getColumnIndexOrThrow(Favorites.SCREEN);
|
||||
mCellXIndex = getColumnIndexOrThrow(Favorites.CELLX);
|
||||
mCellYIndex = getColumnIndexOrThrow(Favorites.CELLY);
|
||||
mProfileIdIndex = getColumnIndexOrThrow(Favorites.PROFILE_ID);
|
||||
mRestoredIndex = getColumnIndexOrThrow(Favorites.RESTORED);
|
||||
mIntentIndex = getColumnIndexOrThrow(Favorites.INTENT);
|
||||
|
||||
mAppWidgetIdIndex = getColumnIndexOrThrow(Favorites.APPWIDGET_ID);
|
||||
mAppWidgetProviderIndex = getColumnIndexOrThrow(Favorites.APPWIDGET_PROVIDER);
|
||||
mSpanXIndex = getColumnIndexOrThrow(Favorites.SPANX);
|
||||
mSpanYIndex = getColumnIndexOrThrow(Favorites.SPANY);
|
||||
mRankIndex = getColumnIndexOrThrow(Favorites.RANK);
|
||||
mOptionsIndex = getColumnIndexOrThrow(Favorites.OPTIONS);
|
||||
mAppWidgetSourceIndex = getColumnIndexOrThrow(Favorites.APPWIDGET_SOURCE);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -137,18 +152,18 @@ public class LoaderCursor extends CursorWrapper {
|
||||
mActivityInfo = null;
|
||||
|
||||
// Load common properties.
|
||||
itemType = getInt(itemTypeIndex);
|
||||
container = getInt(containerIndex);
|
||||
id = getInt(idIndex);
|
||||
serialNumber = getInt(profileIdIndex);
|
||||
itemType = getInt(mItemTypeIndex);
|
||||
container = getInt(mContainerIndex);
|
||||
id = getInt(mIdIndex);
|
||||
serialNumber = getInt(mProfileIdIndex);
|
||||
user = allUsers.get(serialNumber);
|
||||
restoreFlag = getInt(restoredIndex);
|
||||
restoreFlag = getInt(mRestoredIndex);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public Intent parseIntent() {
|
||||
String intentDescription = getString(intentIndex);
|
||||
String intentDescription = getString(mIntentIndex);
|
||||
try {
|
||||
return TextUtils.isEmpty(intentDescription) ?
|
||||
null : Intent.parseUri(intentDescription, 0);
|
||||
@@ -185,14 +200,14 @@ public class LoaderCursor extends CursorWrapper {
|
||||
|
||||
public IconRequestInfo<WorkspaceItemInfo> createIconRequestInfo(
|
||||
WorkspaceItemInfo wai, boolean useLowResIcon) {
|
||||
String packageName = itemType == LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT
|
||||
? getString(iconPackageIndex) : null;
|
||||
String resourceName = itemType == LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT
|
||||
? getString(iconResourceIndex) : null;
|
||||
byte[] iconBlob = itemType == LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT
|
||||
String packageName = itemType == Favorites.ITEM_TYPE_SHORTCUT
|
||||
? getString(mIconPackageIndex) : null;
|
||||
String resourceName = itemType == Favorites.ITEM_TYPE_SHORTCUT
|
||||
? getString(mIconResourceIndex) : null;
|
||||
byte[] iconBlob = itemType == Favorites.ITEM_TYPE_SHORTCUT
|
||||
|| itemType == Favorites.ITEM_TYPE_DEEP_SHORTCUT
|
||||
|| restoreFlag != 0
|
||||
? getBlob(iconIndex) : null;
|
||||
? getBlob(mIconIndex) : null;
|
||||
|
||||
return new IconRequestInfo<>(
|
||||
wai, mActivityInfo, packageName, resourceName, iconBlob, useLowResIcon);
|
||||
@@ -202,7 +217,70 @@ public class LoaderCursor extends CursorWrapper {
|
||||
* Returns the title or empty string
|
||||
*/
|
||||
private String getTitle() {
|
||||
return Utilities.trim(getString(titleIndex));
|
||||
return Utilities.trim(getString(mTitleIndex));
|
||||
}
|
||||
|
||||
/**
|
||||
* When loading an app widget for the workspace, returns it's app widget id
|
||||
*/
|
||||
public int getAppWidgetId() {
|
||||
return getInt(mAppWidgetIdIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
* When loading an app widget for the workspace, returns the widget provider
|
||||
*/
|
||||
public String getAppWidgetProvider() {
|
||||
return getString(mAppWidgetProviderIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the x position for the item in the cell layout's grid
|
||||
*/
|
||||
public int getSpanX() {
|
||||
return getInt(mSpanXIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the y position for the item in the cell layout's grid
|
||||
*/
|
||||
public int getSpanY() {
|
||||
return getInt(mSpanYIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the rank for the item
|
||||
*/
|
||||
public int getRank() {
|
||||
return getInt(mRankIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the options for the item
|
||||
*/
|
||||
public int getOptions() {
|
||||
return getInt(mOptionsIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
* When loading an app widget for the workspace, returns it's app widget source
|
||||
*/
|
||||
public int getAppWidgetSource() {
|
||||
return getInt(mAppWidgetSourceIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the screen that the item is on
|
||||
*/
|
||||
public int getScreen() {
|
||||
return getInt(mScreenIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the UX container that the item is in
|
||||
*/
|
||||
public int getContainer() {
|
||||
return getInt(mContainerIndex);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -320,7 +398,7 @@ public class LoaderCursor extends CursorWrapper {
|
||||
*/
|
||||
public void markDeleted(String reason) {
|
||||
FileLog.e(TAG, reason);
|
||||
itemsToRemove.add(id);
|
||||
mItemsToRemove.add(id);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -328,10 +406,10 @@ public class LoaderCursor extends CursorWrapper {
|
||||
* @return true is any item was removed.
|
||||
*/
|
||||
public boolean commitDeleted() {
|
||||
if (itemsToRemove.size() > 0) {
|
||||
if (mItemsToRemove.size() > 0) {
|
||||
// Remove dead items
|
||||
mContext.getContentResolver().delete(mContentUri, Utilities.createDbSelectionQuery(
|
||||
LauncherSettings.Favorites._ID, itemsToRemove), null);
|
||||
Favorites._ID, mItemsToRemove), null);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
@@ -342,7 +420,7 @@ public class LoaderCursor extends CursorWrapper {
|
||||
*/
|
||||
public void markRestored() {
|
||||
if (restoreFlag != 0) {
|
||||
restoredRows.add(id);
|
||||
mRestoredRows.add(id);
|
||||
restoreFlag = 0;
|
||||
}
|
||||
}
|
||||
@@ -352,13 +430,13 @@ public class LoaderCursor extends CursorWrapper {
|
||||
}
|
||||
|
||||
public void commitRestoredItems() {
|
||||
if (restoredRows.size() > 0) {
|
||||
if (mRestoredRows.size() > 0) {
|
||||
// Update restored items that no longer require special handling
|
||||
ContentValues values = new ContentValues();
|
||||
values.put(LauncherSettings.Favorites.RESTORED, 0);
|
||||
values.put(Favorites.RESTORED, 0);
|
||||
mContext.getContentResolver().update(mContentUri, values,
|
||||
Utilities.createDbSelectionQuery(
|
||||
LauncherSettings.Favorites._ID, restoredRows), null);
|
||||
Favorites._ID, mRestoredRows), null);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -366,8 +444,7 @@ public class LoaderCursor extends CursorWrapper {
|
||||
* Returns true is the item is on workspace or hotseat
|
||||
*/
|
||||
public boolean isOnWorkspaceOrHotseat() {
|
||||
return container == LauncherSettings.Favorites.CONTAINER_DESKTOP ||
|
||||
container == LauncherSettings.Favorites.CONTAINER_HOTSEAT;
|
||||
return container == Favorites.CONTAINER_DESKTOP || container == Favorites.CONTAINER_HOTSEAT;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -381,9 +458,9 @@ public class LoaderCursor extends CursorWrapper {
|
||||
public void applyCommonProperties(ItemInfo info) {
|
||||
info.id = id;
|
||||
info.container = container;
|
||||
info.screenId = getInt(screenIndex);
|
||||
info.cellX = getInt(cellXIndex);
|
||||
info.cellY = getInt(cellYIndex);
|
||||
info.screenId = getInt(mScreenIndex);
|
||||
info.cellX = getInt(mCellXIndex);
|
||||
info.cellY = getInt(mCellYIndex);
|
||||
}
|
||||
|
||||
public void checkAndAddItem(ItemInfo info, BgDataModel dataModel) {
|
||||
@@ -396,7 +473,7 @@ public class LoaderCursor extends CursorWrapper {
|
||||
*/
|
||||
public void checkAndAddItem(
|
||||
ItemInfo info, BgDataModel dataModel, LoaderMemoryLogger logger) {
|
||||
if (info.itemType == LauncherSettings.Favorites.ITEM_TYPE_DEEP_SHORTCUT) {
|
||||
if (info.itemType == Favorites.ITEM_TYPE_DEEP_SHORTCUT) {
|
||||
// Ensure that it is a valid intent. An exception here will
|
||||
// cause the item loading to get skipped
|
||||
ShortcutKey.fromItemInfo(info);
|
||||
@@ -413,9 +490,9 @@ public class LoaderCursor extends CursorWrapper {
|
||||
*/
|
||||
protected boolean checkItemPlacement(ItemInfo item) {
|
||||
int containerIndex = item.screenId;
|
||||
if (item.container == LauncherSettings.Favorites.CONTAINER_HOTSEAT) {
|
||||
if (item.container == Favorites.CONTAINER_HOTSEAT) {
|
||||
final GridOccupancy hotseatOccupancy =
|
||||
occupied.get(LauncherSettings.Favorites.CONTAINER_HOTSEAT);
|
||||
mOccupied.get(Favorites.CONTAINER_HOTSEAT);
|
||||
|
||||
if (item.screenId >= mIDP.numDatabaseHotseatIcons) {
|
||||
Log.e(TAG, "Error loading shortcut " + item
|
||||
@@ -438,19 +515,18 @@ public class LoaderCursor extends CursorWrapper {
|
||||
} else {
|
||||
final GridOccupancy occupancy = new GridOccupancy(mIDP.numDatabaseHotseatIcons, 1);
|
||||
occupancy.cells[item.screenId][0] = true;
|
||||
occupied.put(LauncherSettings.Favorites.CONTAINER_HOTSEAT, occupancy);
|
||||
mOccupied.put(Favorites.CONTAINER_HOTSEAT, occupancy);
|
||||
return true;
|
||||
}
|
||||
} else if (item.container != LauncherSettings.Favorites.CONTAINER_DESKTOP) {
|
||||
} else if (item.container != Favorites.CONTAINER_DESKTOP) {
|
||||
// Skip further checking if it is not the hotseat or workspace container
|
||||
return true;
|
||||
}
|
||||
|
||||
final int countX = mIDP.numColumns;
|
||||
final int countY = mIDP.numRows;
|
||||
if (item.container == LauncherSettings.Favorites.CONTAINER_DESKTOP &&
|
||||
item.cellX < 0 || item.cellY < 0 ||
|
||||
item.cellX + item.spanX > countX || item.cellY + item.spanY > countY) {
|
||||
if (item.container == Favorites.CONTAINER_DESKTOP && item.cellX < 0 || item.cellY < 0
|
||||
|| item.cellX + item.spanX > countX || item.cellY + item.spanY > countY) {
|
||||
Log.e(TAG, "Error loading shortcut " + item
|
||||
+ " into cell (" + containerIndex + "-" + item.screenId + ":"
|
||||
+ item.cellX + "," + item.cellY
|
||||
@@ -458,7 +534,7 @@ public class LoaderCursor extends CursorWrapper {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!occupied.containsKey(item.screenId)) {
|
||||
if (!mOccupied.containsKey(item.screenId)) {
|
||||
GridOccupancy screen = new GridOccupancy(countX + 1, countY + 1);
|
||||
if (item.screenId == Workspace.FIRST_SCREEN_ID && FeatureFlags.QSB_ON_FIRST_SCREEN) {
|
||||
// Mark the first X columns (X is width of the search container) in the first row as
|
||||
@@ -468,9 +544,9 @@ public class LoaderCursor extends CursorWrapper {
|
||||
int spanY = 1;
|
||||
screen.markCells(0, 0, spanX, spanY, true);
|
||||
}
|
||||
occupied.put(item.screenId, screen);
|
||||
mOccupied.put(item.screenId, screen);
|
||||
}
|
||||
final GridOccupancy occupancy = occupied.get(item.screenId);
|
||||
final GridOccupancy occupancy = mOccupied.get(item.screenId);
|
||||
|
||||
// Check if any workspace icons overlap with each other
|
||||
if (occupancy.isRegionVacant(item.cellX, item.cellY, item.spanX, item.spanY)) {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -80,10 +80,29 @@ public class ModelDelegate implements ResourceBasedOverride {
|
||||
}
|
||||
|
||||
/**
|
||||
* Load delegate items if any in the data model
|
||||
* Load hot seat items if any in the data model
|
||||
*/
|
||||
@WorkerThread
|
||||
public void loadItems(UserManagerState ums, Map<ShortcutKey, ShortcutInfo> pinnedShortcuts) { }
|
||||
public void loadHotseatItems(UserManagerState ums,
|
||||
Map<ShortcutKey, ShortcutInfo> pinnedShortcuts) { }
|
||||
|
||||
/**
|
||||
* Load all apps items if any in the data model
|
||||
*/
|
||||
@WorkerThread
|
||||
public void loadAllAppsItems(UserManagerState ums,
|
||||
Map<ShortcutKey, ShortcutInfo> pinnedShortcuts) { }
|
||||
|
||||
/**
|
||||
* Load widget recommendation items if any in the data model
|
||||
*/
|
||||
@WorkerThread
|
||||
public void loadWidgetsRecommendationItems() { }
|
||||
|
||||
/**
|
||||
* Marks the ModelDelegate as active
|
||||
*/
|
||||
public void markActive() { }
|
||||
|
||||
/**
|
||||
* Load String cache
|
||||
|
||||
@@ -18,6 +18,9 @@ package com.android.launcher3.model;
|
||||
|
||||
import static androidx.test.InstrumentationRegistry.getContext;
|
||||
|
||||
import static com.android.launcher3.LauncherSettings.Favorites.APPWIDGET_ID;
|
||||
import static com.android.launcher3.LauncherSettings.Favorites.APPWIDGET_PROVIDER;
|
||||
import static com.android.launcher3.LauncherSettings.Favorites.APPWIDGET_SOURCE;
|
||||
import static com.android.launcher3.LauncherSettings.Favorites.CELLX;
|
||||
import static com.android.launcher3.LauncherSettings.Favorites.CELLY;
|
||||
import static com.android.launcher3.LauncherSettings.Favorites.CONTAINER;
|
||||
@@ -30,9 +33,13 @@ import static com.android.launcher3.LauncherSettings.Favorites.INTENT;
|
||||
import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE;
|
||||
import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_APPLICATION;
|
||||
import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT;
|
||||
import static com.android.launcher3.LauncherSettings.Favorites.OPTIONS;
|
||||
import static com.android.launcher3.LauncherSettings.Favorites.PROFILE_ID;
|
||||
import static com.android.launcher3.LauncherSettings.Favorites.RANK;
|
||||
import static com.android.launcher3.LauncherSettings.Favorites.RESTORED;
|
||||
import static com.android.launcher3.LauncherSettings.Favorites.SCREEN;
|
||||
import static com.android.launcher3.LauncherSettings.Favorites.SPANX;
|
||||
import static com.android.launcher3.LauncherSettings.Favorites.SPANY;
|
||||
import static com.android.launcher3.LauncherSettings.Favorites.TITLE;
|
||||
import static com.android.launcher3.LauncherSettings.Favorites._ID;
|
||||
import static com.android.launcher3.util.LauncherModelHelper.TEST_ACTIVITY;
|
||||
@@ -92,7 +99,9 @@ public class LoaderCursorTest {
|
||||
mCursor = new MatrixCursor(new String[] {
|
||||
ICON, ICON_PACKAGE, ICON_RESOURCE, TITLE,
|
||||
_ID, CONTAINER, ITEM_TYPE, PROFILE_ID,
|
||||
SCREEN, CELLX, CELLY, RESTORED, INTENT
|
||||
SCREEN, CELLX, CELLY, RESTORED, INTENT,
|
||||
APPWIDGET_ID, APPWIDGET_PROVIDER, SPANX,
|
||||
SPANY, RANK, OPTIONS, APPWIDGET_SOURCE
|
||||
});
|
||||
|
||||
UserManagerState ums = new UserManagerState();
|
||||
|
||||
Reference in New Issue
Block a user