diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityInterface.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityInterface.java index 6798cb0326..675172377c 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityInterface.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/LauncherActivityInterface.java @@ -32,7 +32,6 @@ import android.view.animation.Interpolator; import androidx.annotation.Nullable; import androidx.annotation.UiThread; -import com.android.launcher3.BaseDraggingActivity; import com.android.launcher3.BaseQuickstepLauncher; import com.android.launcher3.DeviceProfile; import com.android.launcher3.Launcher; @@ -314,8 +313,8 @@ public final class LauncherActivityInterface extends @Override protected float getExtraSpace(Context context, DeviceProfile dp, PagedOrientationHandler orientationHandler) { - if (dp.isVerticalBarLayout() || - hideShelfInTwoButtonLandscape(context, orientationHandler)) { + if ((dp.isVerticalBarLayout() && !showOverviewActions(context)) + || hideShelfInTwoButtonLandscape(context, orientationHandler)) { return 0; } else { Resources res = context.getResources(); @@ -323,12 +322,14 @@ public final class LauncherActivityInterface extends //TODO: this needs to account for the swipe gesture height and accessibility // UI when shown. float actionsBottomMargin = 0; - if (getMode(context) == Mode.THREE_BUTTONS) { - actionsBottomMargin = res.getDimensionPixelSize( + if (!dp.isVerticalBarLayout()) { + if (getMode(context) == Mode.THREE_BUTTONS) { + actionsBottomMargin = res.getDimensionPixelSize( R.dimen.overview_actions_bottom_margin_three_button); - } else { - actionsBottomMargin = res.getDimensionPixelSize( + } else { + actionsBottomMargin = res.getDimensionPixelSize( R.dimen.overview_actions_bottom_margin_gesture); + } } float actionsHeight = actionsBottomMargin + res.getDimensionPixelSize(R.dimen.overview_actions_height); 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 83287c463a..95eb10ff2e 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 @@ -21,6 +21,8 @@ import static com.android.launcher3.config.FeatureFlags.ENABLE_OVERVIEW_SHARE; import static com.android.quickstep.SysUINavigationMode.removeShelfFromOverview; import android.content.Context; +import android.content.res.Configuration; +import android.graphics.Rect; import android.util.AttributeSet; import android.util.Log; import android.view.View; @@ -30,9 +32,11 @@ import android.widget.FrameLayout; import androidx.annotation.IntDef; import androidx.annotation.Nullable; +import com.android.launcher3.Insettable; 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.SysUINavigationMode.Mode; import com.android.quickstep.TaskOverlayFactory.OverlayUICallbacks; @@ -43,7 +47,9 @@ import java.lang.annotation.RetentionPolicy; * View for showing action buttons in Overview */ public class OverviewActionsView extends FrameLayout - implements OnClickListener { + implements OnClickListener, Insettable { + + private final Rect mInsets = new Rect(); @IntDef(flag = true, value = { HIDDEN_UNSUPPORTED_NAVIGATION, @@ -129,6 +135,18 @@ public class OverviewActionsView extends FrameLayo updateHiddenFlags(HIDDEN_UNSUPPORTED_NAVIGATION, !removeShelfFromOverview(getContext())); } + @Override + protected void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + updateVerticalMargin(SysUINavigationMode.getMode(getContext())); + } + + @Override + public void setInsets(Rect insets) { + mInsets.set(insets); + updateVerticalMargin(SysUINavigationMode.getMode(getContext())); + } + public void updateHiddenFlags(@ActionsHiddenFlags int visibilityFlags, boolean enable) { if (enable) { mHiddenFlags |= visibilityFlags; @@ -152,16 +170,20 @@ public class OverviewActionsView extends FrameLayo return mMultiValueAlpha.getProperty(INDEX_FULLSCREEN_ALPHA); } - /** Updates vertical margins for different navigation mode. */ - public void updateVerticalMarginForNavModeChange(Mode mode) { - int bottomMargin = 0; - if (mode == Mode.THREE_BUTTONS) { + /** Updates vertical margins for different navigation mode or configuration changes. */ + public void updateVerticalMargin(Mode mode) { + int bottomMargin; + int orientation = getResources().getConfiguration().orientation; + if (orientation == Configuration.ORIENTATION_LANDSCAPE) { + bottomMargin = 0; + } else if (mode == Mode.THREE_BUTTONS) { bottomMargin = getResources() .getDimensionPixelSize(R.dimen.overview_actions_bottom_margin_three_button); } else { bottomMargin = getResources() .getDimensionPixelSize(R.dimen.overview_actions_bottom_margin_gesture); } + bottomMargin += mInsets.bottom; LayoutParams params = (LayoutParams) getLayoutParams(); params.setMargins( params.leftMargin, params.topMargin, params.rightMargin, bottomMargin); 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 f27bedb8d4..64d90cf4f7 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 @@ -1627,8 +1627,10 @@ public abstract class RecentsView extends PagedView impl : View.LAYOUT_DIRECTION_RTL); mClearAllButton.setRotation(mOrientationHandler.getDegreesRotated()); mActivity.getDragLayer().recreateControllers(); + boolean isInLandscape = touchRotation != 0 + || mOrientationState.getLauncherRotation() != ROTATION_0; mActionsView.updateHiddenFlags(HIDDEN_NON_ZERO_ROTATION, - touchRotation != 0 || mOrientationState.getLauncherRotation() != ROTATION_0); + !mOrientationState.canLauncherRotate() && isInLandscape); resetPaddingFromTaskSize(); requestLayout(); } diff --git a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java index 0968d8e4ad..48743070d8 100644 --- a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java @@ -93,7 +93,7 @@ public abstract class BaseQuickstepLauncher extends Launcher public void onNavigationModeChanged(Mode newMode) { getDragLayer().recreateControllers(); if (mActionsView != null && isOverviewActionsEnabled()) { - mActionsView.updateVerticalMarginForNavModeChange(newMode); + mActionsView.updateVerticalMargin(newMode); } } @@ -175,7 +175,7 @@ public abstract class BaseQuickstepLauncher extends Launcher // Overview is above all other launcher elements, including qsb, so move it to the top. getOverviewPanel().bringToFront(); mActionsView.bringToFront(); - mActionsView.updateVerticalMarginForNavModeChange(SysUINavigationMode.getMode(this)); + mActionsView.updateVerticalMargin(SysUINavigationMode.getMode(this)); } }