Fixing tab width and panner not aligned with the all-apps icons

Bug: 234008165
Test: Verified on device
Change-Id: Ibec3eed4aef730439d79b086d6ae23b63b66361e
Merged-in: Ibec3eed4aef730439d79b086d6ae23b63b66361e
This commit is contained in:
Sunny Goyal
2022-07-11 11:03:54 -07:00
committed by Brandon Dayauon
parent 3b042d6139
commit 524f4c4fba
3 changed files with 67 additions and 12 deletions
@@ -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,16 +89,41 @@ 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) {
mOnWorkTab = page == ActivityAllAppsContainerView.AdapterHolder.WORK;