Adding a DB update path to handle the QSB position change
> Renamed the id of 1st screen to 0 and making space for the QSB
by running the grid migration task.
> Added a feature flag to easily disable the QSB-in-workspace behavior
Change-Id: Ie3369f0d4433d916e9d6215d414770d4333f3e26
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index a504250..705cb58 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -3593,10 +3593,14 @@
@Override
public void bindScreens(ArrayList<Long> orderedScreenIds) {
// Make sure the first screen is always at the start.
- if (orderedScreenIds.indexOf(Workspace.FIRST_SCREEN_ID) != 0) {
+ if (FeatureFlags.QSB_ON_FIRST_SCREEN &&
+ orderedScreenIds.indexOf(Workspace.FIRST_SCREEN_ID) != 0) {
orderedScreenIds.remove(Workspace.FIRST_SCREEN_ID);
orderedScreenIds.add(0, Workspace.FIRST_SCREEN_ID);
mModel.updateWorkspaceScreenOrder(this, orderedScreenIds);
+ } else if (!FeatureFlags.QSB_ON_FIRST_SCREEN && orderedScreenIds.isEmpty()) {
+ // If there are no screens, we need to have an empty screen
+ mWorkspace.addExtraEmptyScreen();
}
bindAddScreens(orderedScreenIds);
@@ -3612,7 +3616,7 @@
int count = orderedScreenIds.size();
for (int i = 0; i < count; i++) {
long screenId = orderedScreenIds.get(i);
- if (screenId != Workspace.FIRST_SCREEN_ID) {
+ if (!FeatureFlags.QSB_ON_FIRST_SCREEN || screenId != Workspace.FIRST_SCREEN_ID) {
// No need to bind the first screen, as its always bound.
mWorkspace.insertNewWorkspaceScreenBeforeEmptyScreen(screenId);
}