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

Commit fb2be660 authored by Sunny Goyal's avatar Sunny Goyal Committed by Automerger Merge Worker
Browse files

Fixing tab width and panner not aligned with the all-apps icons am: 524f4c4f

parents 8d682fb7 524f4c4f
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@
 */
package com.android.launcher3.allapps;

import static com.android.launcher3.workprofile.PersonalWorkSlidingTabStrip.getTabWidth;

import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
@@ -87,14 +89,10 @@ public class WorkEduCard extends FrameLayout implements
    }

    @Override
    public void onAnimationRepeat(Animation animation) {

    }
    public void onAnimationRepeat(Animation animation) { }

    @Override
    public void onAnimationStart(Animation animation) {

    }
    public void onAnimationStart(Animation animation) { }

    private void removeCard() {
        if (mPosition == -1) {
@@ -107,8 +105,14 @@ public class WorkEduCard extends FrameLayout implements
        }
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        int size = MeasureSpec.getSize(widthMeasureSpec);
        findViewById(R.id.wrapper).getLayoutParams().width = getTabWidth(getContext(), size);
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }

    public void setPosition(int position) {
        mPosition = position;
    }

}
+34 −5
Original line number Diff line number Diff line
@@ -16,20 +16,24 @@
package com.android.launcher3.allapps;

import static com.android.launcher3.logging.StatsLogManager.LauncherEvent.LAUNCHER_TURN_OFF_WORK_APPS_TAP;
import static com.android.launcher3.workprofile.PersonalWorkSlidingTabStrip.getTabWidth;

import android.content.Context;
import android.graphics.Insets;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup.MarginLayoutParams;
import android.view.ViewGroup;
import android.view.WindowInsets;
import android.widget.Button;

import com.android.launcher3.DeviceProfile;
import com.android.launcher3.Insettable;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.anim.KeyboardInsetAnimationCallback;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.model.StringCache;
import com.android.launcher3.views.ActivityContext;
import com.android.launcher3.workprofile.PersonalWorkSlidingTabStrip;
@@ -85,15 +89,40 @@ public class WorkModeSwitch extends Button implements Insettable, View.OnClickLi

    @Override
    public void setInsets(Rect insets) {
        int bottomInset = insets.bottom - mInsets.bottom;
        mInsets.set(insets);
        ViewGroup.MarginLayoutParams marginLayoutParams =
                (ViewGroup.MarginLayoutParams) getLayoutParams();
        if (marginLayoutParams != null) {
            marginLayoutParams.bottomMargin = bottomInset + marginLayoutParams.bottomMargin;
        ViewGroup.MarginLayoutParams lp = (MarginLayoutParams) getLayoutParams();
        if (lp != null) {
            int bottomMargin = getResources().getDimensionPixelSize(R.dimen.work_fab_margin_bottom);
            if (FeatureFlags.ENABLE_FLOATING_SEARCH_BAR.get()) {
                bottomMargin <<= 1;  // Double margin to add space above search bar.
                bottomMargin += getResources().getDimensionPixelSize(R.dimen.qsb_widget_height);
            }

            DeviceProfile dp = ActivityContext.lookupContext(getContext()).getDeviceProfile();
            if (!dp.isGestureMode) {
                if (dp.isTaskbarPresent) {
                    bottomMargin += dp.taskbarSize;
                } else {
                    bottomMargin += insets.bottom;
                }
            }

            lp.bottomMargin = bottomMargin;
        }
    }


    @Override
    protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
        super.onLayout(changed, left, top, right, bottom);
        DeviceProfile dp = ActivityContext.lookupContext(getContext()).getDeviceProfile();
        View parent = (View) getParent();
        int size = parent.getWidth() - parent.getPaddingLeft() - parent.getPaddingRight()
                - 2 * dp.allAppsLeftRightPadding;
        int tabWidth = getTabWidth(getContext(), size);
        int shift = (size - tabWidth) / 2 + dp.allAppsLeftRightPadding;
        setTranslationX(Utilities.isRtl(getResources()) ? shift : -shift);
    }

    @Override
    public void onActivePageChanged(int page) {
+22 −0
Original line number Diff line number Diff line
@@ -23,7 +23,9 @@ import android.widget.LinearLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.android.launcher3.DeviceProfile;
import com.android.launcher3.pageindicators.PageIndicator;
import com.android.launcher3.views.ActivityContext;

/**
 * Supports two indicator colors, dedicated for personal and work tabs.
@@ -72,6 +74,26 @@ public class PersonalWorkSlidingTabStrip extends LinearLayout implements PageInd
        return false;
    }

    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        if (getPaddingLeft() == 0 && getPaddingRight() == 0) {
            // If any padding is not specified, restrict the width to emulate padding
            int size = MeasureSpec.getSize(widthMeasureSpec);
            size = getTabWidth(getContext(), size);
            widthMeasureSpec = MeasureSpec.makeMeasureSpec(size, MeasureSpec.EXACTLY);
        }
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }

    /**
     * Returns distance between left and right app icons
     */
    public static int getTabWidth(Context context, int totalWidth) {
        DeviceProfile grid = ActivityContext.lookupContext(context).getDeviceProfile();
        int iconPadding = totalWidth / grid.numShownAllAppsColumns - grid.allAppsIconSizePx;
        return totalWidth - iconPadding;
    }

    /**
     * Interface definition for a callback to be invoked when an active page has been changed.
     */