diff options
author | 2020-04-21 20:00:57 -0700 | |
---|---|---|
committer | 2020-04-24 16:43:37 -0700 | |
commit | 9b5795a57969e9dd5d108fcaf7890f9cb7fdb7e2 (patch) | |
tree | 12c3e04c3398df21095a02971b939592238ad16d | |
parent | a29a69943a9d90fd711ef4c006007e9c857ec0bf (diff) |
Hide shelf in 2-Button Landscape
Disable overview rotation in 2-Button
until we can figure out the correct
transition/animation.
TODO: b/154665738
Fixes: 154181816
Test: Tested no button and 2 button,
overview actions worked as before.
Change-Id: Ib67906b11e24def870a39f57b5156e29db258fd7
9 files changed, 42 insertions, 17 deletions
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/OverviewActionsView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/OverviewActionsView.java index d160686f73..6e9ca23919 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/OverviewActionsView.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/OverviewActionsView.java @@ -17,7 +17,7 @@ package com.android.quickstep.views; import static com.android.launcher3.config.FeatureFlags.ENABLE_OVERVIEW_ACTIONS; -import static com.android.quickstep.SysUINavigationMode.removeShelfFromOverview; +import static com.android.quickstep.SysUINavigationMode.getMode; import android.content.Context; import android.util.AttributeSet; @@ -31,6 +31,7 @@ import androidx.annotation.Nullable; import com.android.launcher3.R; import com.android.launcher3.util.MultiValueAlpha; import com.android.launcher3.util.MultiValueAlpha.AlphaProperty; +import com.android.quickstep.SysUINavigationMode; import com.android.quickstep.TaskOverlayFactory.OverlayUICallbacks; import java.lang.annotation.Retention; @@ -118,7 +119,8 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo protected void onAttachedToWindow() { super.onAttachedToWindow(); updateHiddenFlags(HIDDEN_DISABLED_FEATURE, !ENABLE_OVERVIEW_ACTIONS.get()); - updateHiddenFlags(HIDDEN_UNSUPPORTED_NAVIGATION, !removeShelfFromOverview(getContext())); + updateHiddenFlags(HIDDEN_UNSUPPORTED_NAVIGATION, + getMode(getContext()) == SysUINavigationMode.Mode.TWO_BUTTONS); } public void updateHiddenFlags(@ActionsHiddenFlags int visibilityFlags, boolean enable) { diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java index 3b6fd13804..7c257058d7 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/RecentsView.java @@ -116,6 +116,7 @@ import com.android.quickstep.RecentsAnimationController; import com.android.quickstep.RecentsAnimationTargets; import com.android.quickstep.RecentsModel; import com.android.quickstep.RecentsModel.TaskVisualsChangeListener; +import com.android.quickstep.SysUINavigationMode; import com.android.quickstep.SystemUiProxy; import com.android.quickstep.TaskThumbnailCache; import com.android.quickstep.TaskUtils; @@ -800,11 +801,14 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl @Override public void setInsets(Rect insets) { mInsets.set(insets); + resetPaddingFromTaskSize(); + } + + private void resetPaddingFromTaskSize() { DeviceProfile dp = mActivity.getDeviceProfile(); getTaskSize(dp, mTempRect); mTaskWidth = mTempRect.width(); mTaskHeight = mTempRect.height(); - mTempRect.top -= mTaskTopMargin; setPadding(mTempRect.left - mInsets.left, mTempRect.top - mInsets.top, dp.widthPx - mInsets.right - mTempRect.right, @@ -1569,6 +1573,7 @@ public abstract class RecentsView<T extends BaseActivity> extends PagedView impl mActivity.getDragLayer().recreateControllers(); mActionsView.updateHiddenFlags(HIDDEN_NON_ZERO_ROTATION, touchRotation != 0 || launcherRotation != 0); + resetPaddingFromTaskSize(); requestLayout(); } } diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskThumbnailView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskThumbnailView.java index a05e0fa4fc..b3d7f360e1 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskThumbnailView.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskThumbnailView.java @@ -49,6 +49,7 @@ import com.android.launcher3.util.Themes; import com.android.quickstep.TaskOverlayFactory; import com.android.quickstep.TaskOverlayFactory.TaskOverlay; import com.android.quickstep.views.TaskView.FullscreenDrawParams; +import com.android.quickstep.util.RecentsOrientedState; import com.android.systemui.plugins.OverviewScreenshotActions; import com.android.systemui.plugins.PluginListener; import com.android.systemui.shared.recents.model.Task; diff --git a/quickstep/src/com/android/quickstep/SysUINavigationMode.java b/quickstep/src/com/android/quickstep/SysUINavigationMode.java index c715c934dd..0569828b89 100644 --- a/quickstep/src/com/android/quickstep/SysUINavigationMode.java +++ b/quickstep/src/com/android/quickstep/SysUINavigationMode.java @@ -24,7 +24,9 @@ import android.content.Intent; import android.content.res.Resources; import android.util.Log; +import com.android.launcher3.Launcher; import com.android.launcher3.util.MainThreadInitializedObject; +import com.android.quickstep.views.RecentsView; import java.io.PrintWriter; import java.util.ArrayList; @@ -128,10 +130,14 @@ public class SysUINavigationMode { } } - /** @return Whether we can remove the shelf from overview. */ - public static boolean removeShelfFromOverview(Context context) { - // The shelf is core to the two-button mode model, so we need to continue supporting it. - return getMode(context) != Mode.TWO_BUTTONS; + public static boolean removeShelfFromOverview(Launcher launcher) { + // The shelf is core to the two-button mode model, so we need to continue supporting it + // when in portrait. + if (getMode(launcher) != Mode.TWO_BUTTONS) { + return true; + } + RecentsView recentsView = launcher.getOverviewPanel(); + return !recentsView.getPagedOrientationHandler().isLayoutNaturalToLauncher(); } public void dump(PrintWriter pw) { diff --git a/quickstep/src/com/android/quickstep/util/LayoutUtils.java b/quickstep/src/com/android/quickstep/util/LayoutUtils.java index 4edf2fbab0..a2471d8241 100644 --- a/quickstep/src/com/android/quickstep/util/LayoutUtils.java +++ b/quickstep/src/com/android/quickstep/util/LayoutUtils.java @@ -16,7 +16,8 @@ package com.android.quickstep.util; import static com.android.launcher3.config.FeatureFlags.ENABLE_OVERVIEW_ACTIONS; -import static com.android.quickstep.SysUINavigationMode.removeShelfFromOverview; +import static com.android.quickstep.SysUINavigationMode.Mode.TWO_BUTTONS; +import static com.android.quickstep.SysUINavigationMode.getMode; import static java.lang.annotation.RetentionPolicy.SOURCE; @@ -60,7 +61,7 @@ public class LayoutUtils { } else { Resources res = context.getResources(); - if (ENABLE_OVERVIEW_ACTIONS.get() && removeShelfFromOverview(context)) { + if (showOverviewActions(context)) { //TODO: this needs to account for the swipe gesture height and accessibility // UI when shown. extraSpace = res.getDimensionPixelSize(R.dimen.overview_actions_height); @@ -76,7 +77,7 @@ public class LayoutUtils { public static void calculateFallbackTaskSize(Context context, DeviceProfile dp, Rect outRect) { float extraSpace; - if (ENABLE_OVERVIEW_ACTIONS.get() && removeShelfFromOverview(context)) { + if (showOverviewActions(context)) { extraSpace = context.getResources() .getDimensionPixelSize(R.dimen.overview_actions_height); } else { @@ -91,7 +92,7 @@ public class LayoutUtils { float taskWidth, taskHeight, paddingHorz; Resources res = context.getResources(); Rect insets = dp.getInsets(); - final boolean overviewActionsEnabled = ENABLE_OVERVIEW_ACTIONS.get(); + final boolean showLargeTaskSize = showOverviewActions(context); if (dp.isMultiWindowMode) { if (multiWindowStrategy == MULTI_WINDOW_STRATEGY_HALF_SCREEN) { @@ -121,7 +122,7 @@ public class LayoutUtils { final int paddingResId; if (dp.isVerticalBarLayout()) { paddingResId = R.dimen.landscape_task_card_horz_space; - } else if (overviewActionsEnabled && removeShelfFromOverview(context)) { + } else if (showLargeTaskSize) { paddingResId = R.dimen.portrait_task_card_horz_space_big_overview; } else { paddingResId = R.dimen.portrait_task_card_horz_space; @@ -130,7 +131,7 @@ public class LayoutUtils { } float topIconMargin = res.getDimension(R.dimen.task_thumbnail_top_margin); - float paddingVert = overviewActionsEnabled && removeShelfFromOverview(context) + float paddingVert = showLargeTaskSize ? 0 : res.getDimension(R.dimen.task_card_vert_space); // Note this should be same as dp.availableWidthPx and dp.availableHeightPx unless @@ -156,7 +157,7 @@ public class LayoutUtils { public static int getShelfTrackingDistance(Context context, DeviceProfile dp) { // Track the bottom of the window. - if (ENABLE_OVERVIEW_ACTIONS.get() && removeShelfFromOverview(context)) { + if (showOverviewActions(context)) { Rect taskSize = new Rect(); calculateLauncherTaskSize(context, dp, taskSize); return (dp.heightPx - taskSize.height()) / 2; @@ -180,4 +181,8 @@ public class LayoutUtils { return srcHeight / targetHeight; } } + + private static boolean showOverviewActions(Context context) { + return ENABLE_OVERVIEW_ACTIONS.get() && getMode(context) != TWO_BUTTONS; + } } diff --git a/quickstep/src/com/android/quickstep/util/RecentsOrientedState.java b/quickstep/src/com/android/quickstep/util/RecentsOrientedState.java index 74daeca33f..c6384d322b 100644 --- a/quickstep/src/com/android/quickstep/util/RecentsOrientedState.java +++ b/quickstep/src/com/android/quickstep/util/RecentsOrientedState.java @@ -25,6 +25,7 @@ import static android.view.Surface.ROTATION_90; import static com.android.launcher3.states.RotationHelper.ALLOW_ROTATION_PREFERENCE_KEY; import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR; +import static com.android.quickstep.SysUINavigationMode.Mode.TWO_BUTTONS; import static java.lang.annotation.RetentionPolicy.SOURCE; import android.content.ContentResolver; @@ -49,6 +50,7 @@ import com.android.launcher3.DeviceProfile; import com.android.launcher3.Utilities; import com.android.launcher3.testing.TestProtocol; import com.android.launcher3.touch.PagedOrientationHandler; +import com.android.quickstep.SysUINavigationMode; import java.lang.annotation.Retention; import java.util.function.IntConsumer; @@ -154,7 +156,9 @@ public final class RecentsOrientedState implements SharedPreferences.OnSharedPre if (isFixedRotationTransformEnabled(context)) { mFlags |= FLAG_MULTIPLE_ORIENTATION_SUPPORTED_BY_FLAG; } - if (mOrientationListener.canDetectOrientation()) { + // TODO(b/154665738): Determine if we need animation for 2 button mode or not + if (mOrientationListener.canDetectOrientation() + && SysUINavigationMode.getMode(context) != TWO_BUTTONS) { mFlags |= FLAG_ROTATION_WATCHER_SUPPORTED; } } diff --git a/quickstep/src/com/android/quickstep/views/ShelfScrimView.java b/quickstep/src/com/android/quickstep/views/ShelfScrimView.java index f5498c9961..af77c62eff 100644 --- a/quickstep/src/com/android/quickstep/views/ShelfScrimView.java +++ b/quickstep/src/com/android/quickstep/views/ShelfScrimView.java @@ -165,7 +165,7 @@ public class ShelfScrimView extends ScrimView<BaseQuickstepLauncher> if ((OVERVIEW.getVisibleElements(mLauncher) & ALL_APPS_HEADER_EXTRA) == 0) { mDragHandleProgress = 1; if (FeatureFlags.ENABLE_OVERVIEW_ACTIONS.get() - && SysUINavigationMode.removeShelfFromOverview(context)) { + && SysUINavigationMode.removeShelfFromOverview(mLauncher)) { // Fade in all apps background quickly to distinguish from swiping from nav bar. mMidAlpha = Themes.getAttrInteger(context, R.attr.allAppsInterimScrimAlpha); mMidProgress = OverviewState.getDefaultVerticalProgress(mLauncher); diff --git a/src/com/android/launcher3/InsettableFrameLayout.java b/src/com/android/launcher3/InsettableFrameLayout.java index faa18b8050..9a66d32524 100644 --- a/src/com/android/launcher3/InsettableFrameLayout.java +++ b/src/com/android/launcher3/InsettableFrameLayout.java @@ -91,6 +91,9 @@ public class InsettableFrameLayout extends FrameLayout implements Insettable { @Override public void onViewAdded(View child) { super.onViewAdded(child); + if (!isAttachedToWindow()) { + return; + } setFrameLayoutChildInsets(child, mInsets, new Rect()); } diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index c4eab8fb49..b6e301863e 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -18,7 +18,6 @@ package com.android.launcher3; import static android.content.pm.ActivityInfo.CONFIG_ORIENTATION; import static android.content.pm.ActivityInfo.CONFIG_SCREEN_SIZE; - import static com.android.launcher3.AbstractFloatingView.TYPE_ALL; import static com.android.launcher3.AbstractFloatingView.TYPE_REBIND_SAFE; import static com.android.launcher3.AbstractFloatingView.TYPE_SNACKBAR; |