From 76a1ceb5f2554c839ca27d3df2787719ac33afb2 Mon Sep 17 00:00:00 2001 From: Sebastian Franco Date: Thu, 8 Jun 2023 13:26:20 -0700 Subject: [PATCH] Remove flags ENABLE_TWO_PANEL_HOME FOLDABLE_WORKSPACE_REORDE and FOLDABLE_SINGLE_PAGE Fix: 270392643 Fix: 270395070 Fix: 270395274 Test: atest FoldableItemsIntegrity Change-Id: I2d7af312da8aeb070588ca94a2a256d2def65eeb --- .../launcher3/AppWidgetResizeFrame.java | 46 ------------ .../launcher3/InvariantDeviceProfile.java | 3 +- src/com/android/launcher3/Launcher.java | 3 +- src/com/android/launcher3/Workspace.java | 73 +++---------------- .../launcher3/config/FeatureFlags.java | 12 --- .../testing/TestInformationHandler.java | 4 +- 6 files changed, 12 insertions(+), 129 deletions(-) diff --git a/src/com/android/launcher3/AppWidgetResizeFrame.java b/src/com/android/launcher3/AppWidgetResizeFrame.java index 71314525bb..9a1ccd0e1f 100644 --- a/src/com/android/launcher3/AppWidgetResizeFrame.java +++ b/src/com/android/launcher3/AppWidgetResizeFrame.java @@ -360,37 +360,6 @@ public class AppWidgetResizeFrame extends AbstractFloatingView implements View.O lp.y = sTmpRect.top; } - // Handle invalid resize across CellLayouts in the two panel UI. - if (mCellLayout.getParent() instanceof Workspace) { - Workspace workspace = (Workspace) mCellLayout.getParent(); - CellLayout pairedCellLayout = workspace.getScreenPair(mCellLayout); - if (pairedCellLayout != null) { - Rect focusedCellLayoutBound = sTmpRect; - mDragLayerRelativeCoordinateHelper.viewToRect(mCellLayout, focusedCellLayoutBound); - Rect resizeFrameBound = sTmpRect2; - findViewById(R.id.widget_resize_frame).getGlobalVisibleRect(resizeFrameBound); - float progress = 1f; - if (workspace.indexOfChild(pairedCellLayout) < workspace.indexOfChild(mCellLayout) - && mDeltaX < 0 - && resizeFrameBound.left < focusedCellLayoutBound.left) { - // Resize from right to left. - progress = (mDragAcrossTwoPanelOpacityMargin + mDeltaX) - / mDragAcrossTwoPanelOpacityMargin; - } else if (workspace.indexOfChild(pairedCellLayout) - > workspace.indexOfChild(mCellLayout) - && mDeltaX > 0 - && resizeFrameBound.right > focusedCellLayoutBound.right) { - // Resize from left to right. - progress = (mDragAcrossTwoPanelOpacityMargin - mDeltaX) - / mDragAcrossTwoPanelOpacityMargin; - } - float alpha = Math.max(MIN_OPACITY_FOR_CELL_LAYOUT_DURING_INVALID_RESIZE, progress); - float springLoadedProgress = Math.min(1f, 1f - progress); - updateInvalidResizeEffect(mCellLayout, pairedCellLayout, alpha, - springLoadedProgress); - } - } - requestLayout(); } @@ -547,13 +516,6 @@ public class AppWidgetResizeFrame extends AbstractFloatingView implements View.O } final DragLayer.LayoutParams lp = (DragLayer.LayoutParams) getLayoutParams(); - final CellLayout pairedCellLayout; - if (mCellLayout.getParent() instanceof Workspace) { - Workspace workspace = (Workspace) mCellLayout.getParent(); - pairedCellLayout = workspace.getScreenPair(mCellLayout); - } else { - pairedCellLayout = null; - } if (!animate) { lp.width = newWidth; lp.height = newHeight; @@ -562,10 +524,6 @@ public class AppWidgetResizeFrame extends AbstractFloatingView implements View.O for (int i = 0; i < HANDLE_COUNT; i++) { mDragHandles[i].setAlpha(1f); } - if (pairedCellLayout != null) { - updateInvalidResizeEffect(mCellLayout, pairedCellLayout, /* alpha= */ 1f, - /* springLoadedProgress= */ 0f); - } requestLayout(); } else { ObjectAnimator oa = ObjectAnimator.ofPropertyValuesHolder(lp, @@ -581,10 +539,6 @@ public class AppWidgetResizeFrame extends AbstractFloatingView implements View.O set.play(mFirstFrameAnimatorHelper.addTo( ObjectAnimator.ofFloat(mDragHandles[i], ALPHA, 1f))); } - if (pairedCellLayout != null) { - updateInvalidResizeEffect(mCellLayout, pairedCellLayout, /* alpha= */ 1f, - /* springLoadedProgress= */ 0f, /* animatorSet= */ set); - } set.setDuration(SNAP_DURATION); set.start(); } diff --git a/src/com/android/launcher3/InvariantDeviceProfile.java b/src/com/android/launcher3/InvariantDeviceProfile.java index 376f54dc4c..7eb085a787 100644 --- a/src/com/android/launcher3/InvariantDeviceProfile.java +++ b/src/com/android/launcher3/InvariantDeviceProfile.java @@ -18,7 +18,6 @@ package com.android.launcher3; import static com.android.launcher3.LauncherPrefs.GRID_NAME; import static com.android.launcher3.Utilities.dpiFromPx; -import static com.android.launcher3.config.FeatureFlags.ENABLE_TWO_PANEL_HOME; import static com.android.launcher3.testing.shared.ResourceUtils.INVALID_RESOURCE_HANDLE; import static com.android.launcher3.util.DisplayController.CHANGE_DENSITY; import static com.android.launcher3.util.DisplayController.CHANGE_NAVIGATION_MODE; @@ -302,7 +301,7 @@ public class InvariantDeviceProfile { int type = displayInfo.supportedBounds.stream() .mapToInt(bounds -> displayInfo.isTablet(bounds) ? flagTablet : flagPhone) .reduce(0, (a, b) -> a | b); - if ((type == (flagPhone | flagTablet)) && ENABLE_TWO_PANEL_HOME.get()) { + if ((type == (flagPhone | flagTablet))) { // device has profiles supporting both phone and table modes return TYPE_MULTI_DISPLAY; } else if (type == flagTablet) { diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 8071ae41ef..c43fe990de 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -44,7 +44,6 @@ import static com.android.launcher3.LauncherState.NO_SCALE; import static com.android.launcher3.LauncherState.SPRING_LOADED; import static com.android.launcher3.Utilities.postAsyncCallback; import static com.android.launcher3.accessibility.LauncherAccessibilityDelegate.getSupportedActions; -import static com.android.launcher3.config.FeatureFlags.FOLDABLE_SINGLE_PAGE; import static com.android.launcher3.config.FeatureFlags.MULTI_SELECT_EDIT_MODE; import static com.android.launcher3.config.FeatureFlags.SHOW_DOT_PAGINATION; import static com.android.launcher3.logging.StatsLogManager.EventEnum; @@ -767,7 +766,7 @@ public class Launcher extends StatefulActivity } onDeviceProfileInitiated(); - if (FOLDABLE_SINGLE_PAGE.get() && mDeviceProfile.isTwoPanels) { + if (mDeviceProfile.isTwoPanels) { mCellPosMapper = new TwoPanelCellPosMapper(mDeviceProfile.inv.numColumns); } else { mCellPosMapper = CellPosMapper.DEFAULT; diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index adaf20f86f..b141e18823 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -28,7 +28,6 @@ import static com.android.launcher3.LauncherState.NORMAL; import static com.android.launcher3.LauncherState.SPRING_LOADED; import static com.android.launcher3.MotionEventsUtils.isTrackpadMultiFingerSwipe; import static com.android.launcher3.anim.AnimatorListeners.forSuccessCallback; -import static com.android.launcher3.config.FeatureFlags.FOLDABLE_SINGLE_PAGE; import static com.android.launcher3.logging.StatsLogManager.LAUNCHER_STATE_HOME; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_SWIPELEFT; import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_SWIPERIGHT; @@ -127,7 +126,6 @@ import com.android.systemui.plugins.shared.LauncherOverlayManager.LauncherOverla import com.android.systemui.plugins.shared.LauncherOverlayManager.LauncherOverlayCallbacks; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; @@ -503,19 +501,14 @@ public class Workspace extends PagedView .log(LauncherEvent.LAUNCHER_ITEM_DRAG_STARTED); } - private boolean isTwoPanelEnabled() { - return !FOLDABLE_SINGLE_PAGE.get() && mLauncher.mDeviceProfile.isTwoPanels; - } - - @Override - public int getPanelCount() { - return isTwoPanelEnabled() ? 2 : super.getPanelCount(); - } - public void deferRemoveExtraEmptyScreen() { mDeferRemoveExtraEmptyScreen = true; } + @Override + public int getPanelCount() { + return super.getPanelCount(); + } @Override public void onDragEnd() { if (ENFORCE_DRAG_EVENT_ORDER) { @@ -668,7 +661,7 @@ public class Workspace extends PagedView // created CellLayout. DeviceProfile dp = mLauncher.getDeviceProfile(); CellLayout newScreen; - if (FOLDABLE_SINGLE_PAGE.get() && dp.isTwoPanels) { + if (dp.isTwoPanels) { newScreen = (CellLayout) LayoutInflater.from(getContext()).inflate( R.layout.workspace_screen_foldable, this, false /* attachToRoot */); } else { @@ -693,15 +686,6 @@ public class Workspace extends PagedView if (mDragSourceInternal != null) { int dragSourceChildCount = mDragSourceInternal.getChildCount(); - - // If the icon was dragged from Hotseat, there is no page pair - if (isTwoPanelEnabled() && !(mDragSourceInternal.getParent() instanceof Hotseat)) { - int pagePairScreenId = getScreenPair(getCellPosMapper().mapModelToPresenter( - dragObject.dragInfo).screenId); - CellLayout pagePair = mWorkspaceScreens.get(pagePairScreenId); - dragSourceChildCount += pagePair.getShortcutsAndWidgets().getChildCount(); - } - // When the drag view content is a LauncherAppWidgetHostView, we should increment the // drag source child count by 1 because the widget in drag has been detached from its // original parent, ShortcutAndWidgetContainer, and reattached to the DragView. @@ -712,11 +696,6 @@ public class Workspace extends PagedView if (dragSourceChildCount == 1) { lastChildOnScreen = true; } - CellLayout cl = (CellLayout) mDragSourceInternal.getParent(); - if (!FOLDABLE_SINGLE_PAGE.get() && getLeftmostVisiblePageForIndex(indexOfChild(cl)) - == getLeftmostVisiblePageForIndex(getPageCount() - 1)) { - childOnFinalScreen = true; - } } // If this is the last item on the final screen @@ -751,9 +730,6 @@ public class Workspace extends PagedView */ private void forEachExtraEmptyPageId(Consumer callback) { callback.accept(EXTRA_EMPTY_SCREEN_ID); - if (isTwoPanelEnabled()) { - callback.accept(EXTRA_EMPTY_SCREEN_SECOND_ID); - } } /** @@ -867,9 +843,7 @@ public class Workspace extends PagedView public boolean hasExtraEmptyScreens() { return mWorkspaceScreens.containsKey(EXTRA_EMPTY_SCREEN_ID) - && getChildCount() > getPanelCount() - && (!isTwoPanelEnabled() - || mWorkspaceScreens.containsKey(EXTRA_EMPTY_SCREEN_SECOND_ID)); + && getChildCount() > getPanelCount(); } /** @@ -975,14 +949,7 @@ public class Workspace extends PagedView */ @Nullable public CellLayout getScreenPair(CellLayout cellLayout) { - if (!isTwoPanelEnabled()) { - return null; - } - int screenId = getIdForScreen(cellLayout); - if (screenId == -1) { - return null; - } - return getScreenWithId(getScreenPair(screenId)); + return null; } public void stripEmptyScreens() { @@ -1010,22 +977,6 @@ public class Workspace extends PagedView } } - // When two panel home is enabled we only remove an empty page if both visible pages are - // empty. - if (isTwoPanelEnabled()) { - // We go through all the pages that were marked as removable and check their page pair - Iterator removeScreensIterator = removeScreens.iterator(); - while (removeScreensIterator.hasNext()) { - int pageToRemove = removeScreensIterator.next(); - int pagePair = getScreenPair(pageToRemove); - if (!removeScreens.contains(pagePair)) { - // The page pair isn't empty so we want to remove the current page from the - // removable pages' collection - removeScreensIterator.remove(); - } - } - } - // We enforce at least one page (two pages on two panel home) to add new items to. // In the case that we remove the last such screen(s), we convert the last screen(s) // to the empty screen(s) @@ -1046,12 +997,7 @@ public class Workspace extends PagedView removeView(cl); } else { // The last page(s) should be converted into extra empty page(s) - int extraScreenId = isTwoPanelEnabled() && id % 2 == 1 - // This is the right panel in a two panel scenario - ? EXTRA_EMPTY_SCREEN_SECOND_ID - // This is either the last screen in a one panel scenario, or the left panel - // in a two panel scenario when there are only two empty pages left - : EXTRA_EMPTY_SCREEN_ID; + int extraScreenId = EXTRA_EMPTY_SCREEN_ID; mWorkspaceScreens.put(extraScreenId, cl); mScreenOrder.add(extraScreenId); } @@ -2572,8 +2518,7 @@ public class Workspace extends PagedView // Go through the pages and check if the dragged item is inside one of them. This block // is responsible for determining whether we need to snap to a different screen. int nextPage = getNextPage(); - IntSet pageIndexesToVerify = IntSet.wrap(nextPage - 1, - nextPage + (isTwoPanelEnabled() ? 2 : 1)); + IntSet pageIndexesToVerify = IntSet.wrap(nextPage - 1, nextPage + 1); for (int pageIndex : pageIndexesToVerify) { // When deciding whether to perform a page switch, we need to consider the most diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java index e4a9d58280..f1b4be4f7b 100644 --- a/src/com/android/launcher3/config/FeatureFlags.java +++ b/src/com/android/launcher3/config/FeatureFlags.java @@ -181,18 +181,6 @@ public final class FeatureFlags { "ENABLE_BACK_SWIPE_LAUNCHER_ANIMATION", DISABLED, "Enables predictive back animation from all apps and widgets to home"); - // TODO(Block 11): Clean up flags - public static final BooleanFlag ENABLE_TWO_PANEL_HOME = getDebugFlag(270392643, - "ENABLE_TWO_PANEL_HOME", ENABLED, - "Uses two panel on home screen. Only applicable on large screen devices."); - - public static final BooleanFlag FOLDABLE_WORKSPACE_REORDER = getDebugFlag(270395070, - "FOLDABLE_WORKSPACE_REORDER", DISABLED, - "In foldables, when reordering the icons and widgets, is now going to use both sides"); - - public static final BooleanFlag FOLDABLE_SINGLE_PAGE = getDebugFlag(270395274, - "FOLDABLE_SINGLE_PAGE", ENABLED, "Use a single page for the workspace"); - // TODO(Block 12): Clean up flags public static final BooleanFlag ENABLE_MULTI_INSTANCE = getDebugFlag(270396680, "ENABLE_MULTI_INSTANCE", DISABLED, diff --git a/src/com/android/launcher3/testing/TestInformationHandler.java b/src/com/android/launcher3/testing/TestInformationHandler.java index 0bb018dc49..b054f51d1b 100644 --- a/src/com/android/launcher3/testing/TestInformationHandler.java +++ b/src/com/android/launcher3/testing/TestInformationHandler.java @@ -17,7 +17,6 @@ package com.android.launcher3.testing; import static com.android.launcher3.allapps.AllAppsStore.DEFER_UPDATES_TEST; import static com.android.launcher3.config.FeatureFlags.ENABLE_TRACKPAD_GESTURE; -import static com.android.launcher3.config.FeatureFlags.FOLDABLE_SINGLE_PAGE; import static com.android.launcher3.util.Executors.MAIN_EXECUTOR; import android.annotation.TargetApi; @@ -157,8 +156,7 @@ public class TestInformationHandler implements ResourceBasedOverride { return response; case TestProtocol.REQUEST_IS_TWO_PANELS: - response.putBoolean(TestProtocol.TEST_INFO_RESPONSE_FIELD, - FOLDABLE_SINGLE_PAGE.get() ? false : mDeviceProfile.isTwoPanels); + response.putBoolean(TestProtocol.TEST_INFO_RESPONSE_FIELD, false); return response; case TestProtocol.REQUEST_GET_HAD_NONTEST_EVENTS: