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

Commit 0bd0733e authored by Vinit Nayak's avatar Vinit Nayak
Browse files

Align OverviewActionsView for 3 button taskbar

Bug: 189807374
Change-Id: I529dba5d4df3d0c3366c111e70991a36bec4bfc3
parent a21e47c9
Loading
Loading
Loading
Loading
+35 −3
Original line number Original line Diff line number Diff line
@@ -16,6 +16,8 @@


package com.android.quickstep.views;
package com.android.quickstep.views;


import static com.android.quickstep.SysUINavigationMode.Mode.THREE_BUTTONS;

import android.content.Context;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Configuration;
import android.graphics.Rect;
import android.graphics.Rect;
@@ -31,6 +33,7 @@ import androidx.annotation.Nullable;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.Insettable;
import com.android.launcher3.Insettable;
import com.android.launcher3.R;
import com.android.launcher3.R;
import com.android.launcher3.uioverrides.ApiWrapper;
import com.android.launcher3.util.MultiValueAlpha;
import com.android.launcher3.util.MultiValueAlpha;
import com.android.launcher3.util.MultiValueAlpha.AlphaProperty;
import com.android.launcher3.util.MultiValueAlpha.AlphaProperty;
import com.android.quickstep.SysUINavigationMode;
import com.android.quickstep.SysUINavigationMode;
@@ -150,7 +153,7 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo
    public void setInsets(Rect insets) {
    public void setInsets(Rect insets) {
        mInsets.set(insets);
        mInsets.set(insets);
        updateVerticalMargin(SysUINavigationMode.getMode(getContext()));
        updateVerticalMargin(SysUINavigationMode.getMode(getContext()));
        updateHorizontalPadding();
        updatePaddingAndTranslations();
    }
    }


    public void updateHiddenFlags(@ActionsHiddenFlags int visibilityFlags, boolean enable) {
    public void updateHiddenFlags(@ActionsHiddenFlags int visibilityFlags, boolean enable) {
@@ -193,8 +196,37 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo
        return mMultiValueAlpha.getProperty(INDEX_FULLSCREEN_ALPHA);
        return mMultiValueAlpha.getProperty(INDEX_FULLSCREEN_ALPHA);
    }
    }


    private void updateHorizontalPadding() {
    /**
     * Aligns OverviewActionsView vertically with and offsets horizontal position based on
     * 3 button nav container in taskbar.
     */
    private void updatePaddingAndTranslations() {
        boolean alignFor3ButtonTaskbar = mDp.isTaskbarPresent &&
                SysUINavigationMode.getMode(getContext()) == THREE_BUTTONS;
        if (alignFor3ButtonTaskbar) {
            // Add extra horizontal spacing
            int additionalPadding = ApiWrapper.getHotseatEndOffset(getContext());
            if (isLayoutRtl()) {
                setPadding(mInsets.left + additionalPadding, 0, mInsets.right, 0);
            } else {
                setPadding(mInsets.left, 0, mInsets.right + additionalPadding, 0);
            }

            // Align vertically, using taskbar height + mDp.taskbarOffsetY() to guestimate
            // where the button nav top is
            View startActionView = findViewById(R.id.action_screenshot);
            int marginBottom = getOverviewActionsBottomMarginPx(
                    SysUINavigationMode.getMode(getContext()), mDp);
            int actionsTop = (mDp.heightPx - marginBottom - mInsets.bottom);
            int navTop = mDp.heightPx - (mDp.taskbarSize + mDp.getTaskbarOffsetY());
            int transY = navTop - actionsTop
                    + ((mDp.taskbarSize - startActionView.getHeight()) / 2);
            setTranslationY(transY);
        } else {
            setPadding(mInsets.left, 0, mInsets.right, 0);
            setPadding(mInsets.left, 0, mInsets.right, 0);
            setTranslationX(0);
            setTranslationY(0);
        }
    }
    }


    /** Updates vertical margins for different navigation mode or configuration changes. */
    /** Updates vertical margins for different navigation mode or configuration changes. */