Adds CONTAINER_QSB to be used for QSB data.

Also updates some related generics definitions for
better/simpler compile-time checks.

Bug: 178536734
Test: Manual
Change-Id: If439b64ad968f62674f856fd3ff465bf21cc9204
This commit is contained in:
Andy Wickham 2021-02-10 21:36:51 -08:00
parent f8bb6c02a1
commit 19ab177d1b
3 changed files with 40 additions and 33 deletions

View File

@ -84,7 +84,7 @@ public class QuickstepModelDelegate extends ModelDelegate implements OnIDPChange
private final InvariantDeviceProfile mIDP; private final InvariantDeviceProfile mIDP;
private final AppEventProducer mAppEventProducer; private final AppEventProducer mAppEventProducer;
private boolean mActive = false; protected boolean mActive = false;
public QuickstepModelDelegate(Context context) { public QuickstepModelDelegate(Context context) {
mAppEventProducer = new AppEventProducer(context, this::onAppTargetEvent); mAppEventProducer = new AppEventProducer(context, this::onAppTargetEvent);
@ -200,7 +200,6 @@ public class QuickstepModelDelegate extends ModelDelegate implements OnIDPChange
.setPredictedTargetCount(mIDP.numHotseatIcons) .setPredictedTargetCount(mIDP.numHotseatIcons)
.setExtras(convertDataModelToAppTargetBundle(context, mDataModel)) .setExtras(convertDataModelToAppTargetBundle(context, mDataModel))
.build())); .build()));
} }
private void registerPredictor(PredictorState state, AppPredictor predictor) { private void registerPredictor(PredictorState state, AppPredictor predictor) {
@ -236,14 +235,14 @@ public class QuickstepModelDelegate extends ModelDelegate implements OnIDPChange
static class PredictorState { static class PredictorState {
public final FixedContainerItems items; public final FixedContainerItems items;
public final PersistedItemArray storage; public final PersistedItemArray<ItemInfo> storage;
public AppPredictor predictor; public AppPredictor predictor;
private List<AppTarget> mLastTargets; private List<AppTarget> mLastTargets;
PredictorState(int container, String storageName) { PredictorState(int container, String storageName) {
items = new FixedContainerItems(container); items = new FixedContainerItems(container);
storage = new PersistedItemArray(storageName); storage = new PersistedItemArray<>(storageName);
mLastTargets = Collections.emptyList(); mLastTargets = Collections.emptyList();
} }
@ -255,7 +254,7 @@ public class QuickstepModelDelegate extends ModelDelegate implements OnIDPChange
} }
/** /**
* Sets the new targets and returns true if it was different than before. * Sets the new targets and returns true if it was the same as before.
*/ */
boolean setTargets(List<AppTarget> newTargets) { boolean setTargets(List<AppTarget> newTargets) {
List<AppTarget> oldTargets = mLastTargets; List<AppTarget> oldTargets = mLastTargets;
@ -289,7 +288,7 @@ public class QuickstepModelDelegate extends ModelDelegate implements OnIDPChange
return true; return true;
} }
private static class WorkspaceItemFactory implements PersistedItemArray.ItemFactory { private static class WorkspaceItemFactory implements PersistedItemArray.ItemFactory<ItemInfo> {
private final LauncherAppState mAppState; private final LauncherAppState mAppState;
private final UserManagerState mUMS; private final UserManagerState mUMS;

View File

@ -74,6 +74,37 @@ public class LauncherSettings {
*/ */
public static final int ITEM_TYPE_SHORTCUT = 1; public static final int ITEM_TYPE_SHORTCUT = 1;
/**
* The favorite is a user created folder
*/
public static final int ITEM_TYPE_FOLDER = 2;
/**
* The favorite is a widget
*/
public static final int ITEM_TYPE_APPWIDGET = 4;
/**
* The favorite is a custom widget provided by the launcher
*/
public static final int ITEM_TYPE_CUSTOM_APPWIDGET = 5;
/**
* The gesture is an application created deep shortcut
*/
public static final int ITEM_TYPE_DEEP_SHORTCUT = 6;
/**
* Type of the item is recents task.
* TODO(hyunyoungs): move constants not related to Favorites DB to a better location.
*/
public static final int ITEM_TYPE_TASK = 7;
/**
* The item is QSB
*/
public static final int ITEM_TYPE_QSB = 8;
/** /**
* The icon package name in Intent.ShortcutIconResource * The icon package name in Intent.ShortcutIconResource
* <P>Type: TEXT</P> * <P>Type: TEXT</P>
@ -170,6 +201,7 @@ public class LauncherSettings {
public static final int CONTAINER_SHORTCUTS = -107; public static final int CONTAINER_SHORTCUTS = -107;
public static final int CONTAINER_SETTINGS = -108; public static final int CONTAINER_SETTINGS = -108;
public static final int CONTAINER_TASKSWITCHER = -109; public static final int CONTAINER_TASKSWITCHER = -109;
public static final int CONTAINER_QSB = -110;
// Represents any of the extended containers implemented in non-AOSP variants. // Represents any of the extended containers implemented in non-AOSP variants.
public static final int EXTENDED_CONTAINERS = -200; public static final int EXTENDED_CONTAINERS = -200;
@ -195,6 +227,8 @@ public class LauncherSettings {
case ITEM_TYPE_APPWIDGET: return "WIDGET"; case ITEM_TYPE_APPWIDGET: return "WIDGET";
case ITEM_TYPE_CUSTOM_APPWIDGET: return "CUSTOMWIDGET"; case ITEM_TYPE_CUSTOM_APPWIDGET: return "CUSTOMWIDGET";
case ITEM_TYPE_DEEP_SHORTCUT: return "DEEPSHORTCUT"; case ITEM_TYPE_DEEP_SHORTCUT: return "DEEPSHORTCUT";
case ITEM_TYPE_TASK: return "TASK";
case ITEM_TYPE_QSB: return "QSB";
default: return String.valueOf(type); default: return String.valueOf(type);
} }
} }
@ -239,32 +273,6 @@ public class LauncherSettings {
*/ */
public static final String PROFILE_ID = "profileId"; public static final String PROFILE_ID = "profileId";
/**
* The favorite is a user created folder
*/
public static final int ITEM_TYPE_FOLDER = 2;
/**
* The favorite is a widget
*/
public static final int ITEM_TYPE_APPWIDGET = 4;
/**
* The favorite is a custom widget provided by the launcher
*/
public static final int ITEM_TYPE_CUSTOM_APPWIDGET = 5;
/**
* The gesture is an application created deep shortcut
*/
public static final int ITEM_TYPE_DEEP_SHORTCUT = 6;
/**
* Type of the item is recents task.
* TODO(hyunyoungs): move constants not related to Favorites DB to a better location.
*/
public static final int ITEM_TYPE_TASK = 7;
/** /**
* The appWidgetId of the widget * The appWidgetId of the widget
* *

View File

@ -39,6 +39,6 @@ public interface BcSmartspaceDataPlugin extends Plugin {
/** Provides Smartspace data to registered listeners. */ /** Provides Smartspace data to registered listeners. */
interface SmartspaceTargetListener { interface SmartspaceTargetListener {
/** Each Parcelable is a SmartspaceTarget that represents a card. */ /** Each Parcelable is a SmartspaceTarget that represents a card. */
void onSmartspaceTargetsUpdated(List<Parcelable> targets); void onSmartspaceTargetsUpdated(List<? extends Parcelable> targets);
} }
} }