Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 160ca4b8 authored by Becky Qiu's avatar Becky Qiu
Browse files

[Overview Actions] UI update for Landscape.

1. When home screen rotation is allowed, we still have action buttons for landscape, but remove bottom margin to shrink the UI.
2. When home screen rotation is not allowed, we do in-place rotation for overview, where we won't show action buttons.

Test: see demo video: https://drive.google.com/file/d/1G6ihv_DOykx1MLpFAQf3VJHq3D1HotnX/view?usp=sharing
Bug: 153736749

Change-Id: Ia1c7ef8c245ac13bf50adf32ee5114f23e491e75
parent 93cdd8b4
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -310,8 +310,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();
@@ -319,6 +319,7 @@ public final class LauncherActivityInterface extends
                //TODO: this needs to account for the swipe gesture height and accessibility
                // UI when shown.
                float actionsBottomMargin = 0;
                if (!dp.isVerticalBarLayout()) {
                    if (getMode(context) == Mode.THREE_BUTTONS) {
                        actionsBottomMargin = res.getDimensionPixelSize(
                            R.dimen.overview_actions_bottom_margin_three_button);
@@ -326,6 +327,7 @@ public final class LauncherActivityInterface extends
                        actionsBottomMargin = res.getDimensionPixelSize(
                            R.dimen.overview_actions_bottom_margin_gesture);
                    }
                }
                float actionsHeight = actionsBottomMargin
                        + res.getDimensionPixelSize(R.dimen.overview_actions_height);
                return actionsHeight;
+15 −4
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ 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.util.AttributeSet;
import android.util.Log;
import android.view.View;
@@ -33,6 +34,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.SysUINavigationMode.Mode;
import com.android.quickstep.TaskOverlayFactory.OverlayUICallbacks;

@@ -129,6 +131,12 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo
        updateHiddenFlags(HIDDEN_UNSUPPORTED_NAVIGATION, !removeShelfFromOverview(getContext()));
    }

    @Override
    protected void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        updateVerticalMargin(SysUINavigationMode.getMode(getContext()));
    }

    public void updateHiddenFlags(@ActionsHiddenFlags int visibilityFlags, boolean enable) {
        if (enable) {
            mHiddenFlags |= visibilityFlags;
@@ -152,10 +160,13 @@ public class OverviewActionsView<T extends OverlayUICallbacks> 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 {
+3 −1
Original line number Diff line number Diff line
@@ -1627,8 +1627,10 @@ public abstract class RecentsView<T extends BaseActivity> 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();
        }
+2 −2
Original line number Diff line number Diff line
@@ -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));
        }
    }