mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2024-12-27 09:32:27 -06:00
772 lines
32 KiB
Java
772 lines
32 KiB
Java
|
package com.google.android.material.navigation;
|
||
|
|
||
|
import android.R;
|
||
|
import android.animation.ValueAnimator;
|
||
|
import android.content.Context;
|
||
|
import android.content.res.ColorStateList;
|
||
|
import android.graphics.drawable.Drawable;
|
||
|
import android.graphics.drawable.RippleDrawable;
|
||
|
import android.text.TextUtils;
|
||
|
import android.util.Log;
|
||
|
import android.view.LayoutInflater;
|
||
|
import android.view.MotionEvent;
|
||
|
import android.view.View;
|
||
|
import android.view.ViewGroup;
|
||
|
import android.view.accessibility.AccessibilityNodeInfo;
|
||
|
import android.widget.FrameLayout;
|
||
|
import android.widget.ImageView;
|
||
|
import android.widget.TextView;
|
||
|
import androidx.appcompat.view.menu.MenuItemImpl;
|
||
|
import androidx.appcompat.view.menu.MenuView;
|
||
|
import androidx.appcompat.widget.TooltipCompat;
|
||
|
import androidx.core.content.ContextCompat;
|
||
|
import androidx.core.graphics.drawable.DrawableCompat;
|
||
|
import androidx.core.view.PointerIconCompat;
|
||
|
import androidx.core.view.ViewCompat;
|
||
|
import androidx.core.view.accessibility.AccessibilityNodeInfoCompat;
|
||
|
import androidx.core.widget.TextViewCompat;
|
||
|
import com.google.android.material.animation.AnimationUtils;
|
||
|
import com.google.android.material.badge.BadgeDrawable;
|
||
|
import com.google.android.material.badge.BadgeUtils;
|
||
|
import com.google.android.material.motion.MotionUtils;
|
||
|
import com.google.android.material.resources.MaterialResources;
|
||
|
import com.google.android.material.ripple.RippleUtils;
|
||
|
|
||
|
/* loaded from: classes2.dex */
|
||
|
public abstract class NavigationBarItemView extends FrameLayout implements MenuView.ItemView {
|
||
|
private static final ActiveIndicatorTransform ACTIVE_INDICATOR_LABELED_TRANSFORM;
|
||
|
private static final ActiveIndicatorTransform ACTIVE_INDICATOR_UNLABELED_TRANSFORM;
|
||
|
private static final int[] CHECKED_STATE_SET = {R.attr.state_checked};
|
||
|
private static final int INVALID_ITEM_POSITION = -1;
|
||
|
private ValueAnimator activeIndicatorAnimator;
|
||
|
private int activeIndicatorDesiredHeight;
|
||
|
private int activeIndicatorDesiredWidth;
|
||
|
private boolean activeIndicatorEnabled;
|
||
|
private int activeIndicatorLabelPadding;
|
||
|
private int activeIndicatorMarginHorizontal;
|
||
|
private float activeIndicatorProgress;
|
||
|
private boolean activeIndicatorResizeable;
|
||
|
private ActiveIndicatorTransform activeIndicatorTransform;
|
||
|
private final View activeIndicatorView;
|
||
|
private int activeTextAppearance;
|
||
|
private BadgeDrawable badgeDrawable;
|
||
|
private final ImageView icon;
|
||
|
private final FrameLayout iconContainer;
|
||
|
private ColorStateList iconTint;
|
||
|
private boolean initialized;
|
||
|
private boolean isShifting;
|
||
|
Drawable itemBackground;
|
||
|
private MenuItemImpl itemData;
|
||
|
private int itemPaddingBottom;
|
||
|
private int itemPaddingTop;
|
||
|
private int itemPosition;
|
||
|
private ColorStateList itemRippleColor;
|
||
|
private final ViewGroup labelGroup;
|
||
|
private int labelVisibilityMode;
|
||
|
private final TextView largeLabel;
|
||
|
private Drawable originalIconDrawable;
|
||
|
private float scaleDownFactor;
|
||
|
private float scaleUpFactor;
|
||
|
private float shiftAmount;
|
||
|
private final TextView smallLabel;
|
||
|
private Drawable wrappedIconDrawable;
|
||
|
|
||
|
private void calculateTextScaleFactors(float f, float f2) {
|
||
|
this.shiftAmount = f - f2;
|
||
|
this.scaleUpFactor = (f2 * 1.0f) / f;
|
||
|
this.scaleDownFactor = (f * 1.0f) / f2;
|
||
|
}
|
||
|
|
||
|
private View getIconOrContainer() {
|
||
|
FrameLayout frameLayout = this.iconContainer;
|
||
|
return frameLayout != null ? frameLayout : this.icon;
|
||
|
}
|
||
|
|
||
|
private boolean hasBadge() {
|
||
|
return this.badgeDrawable != null;
|
||
|
}
|
||
|
|
||
|
private boolean isActiveIndicatorResizeableAndUnlabeled() {
|
||
|
return this.activeIndicatorResizeable && this.labelVisibilityMode == 2;
|
||
|
}
|
||
|
|
||
|
public BadgeDrawable getBadge() {
|
||
|
return this.badgeDrawable;
|
||
|
}
|
||
|
|
||
|
@Override // androidx.appcompat.view.menu.MenuView.ItemView
|
||
|
public MenuItemImpl getItemData() {
|
||
|
return this.itemData;
|
||
|
}
|
||
|
|
||
|
protected abstract int getItemLayoutResId();
|
||
|
|
||
|
public int getItemPosition() {
|
||
|
return this.itemPosition;
|
||
|
}
|
||
|
|
||
|
@Override // androidx.appcompat.view.menu.MenuView.ItemView
|
||
|
public boolean prefersCondensedTitle() {
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
public void setActiveIndicatorResizeable(boolean z) {
|
||
|
this.activeIndicatorResizeable = z;
|
||
|
}
|
||
|
|
||
|
public void setItemPosition(int i) {
|
||
|
this.itemPosition = i;
|
||
|
}
|
||
|
|
||
|
@Override // androidx.appcompat.view.menu.MenuView.ItemView
|
||
|
public void setShortcut(boolean z, char c) {
|
||
|
}
|
||
|
|
||
|
@Override // androidx.appcompat.view.menu.MenuView.ItemView
|
||
|
public boolean showsIcon() {
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
static {
|
||
|
ACTIVE_INDICATOR_LABELED_TRANSFORM = new ActiveIndicatorTransform();
|
||
|
ACTIVE_INDICATOR_UNLABELED_TRANSFORM = new ActiveIndicatorUnlabeledTransform();
|
||
|
}
|
||
|
|
||
|
public NavigationBarItemView(Context context) {
|
||
|
super(context);
|
||
|
this.initialized = false;
|
||
|
this.itemPosition = -1;
|
||
|
this.activeTextAppearance = 0;
|
||
|
this.activeIndicatorTransform = ACTIVE_INDICATOR_LABELED_TRANSFORM;
|
||
|
this.activeIndicatorProgress = 0.0f;
|
||
|
this.activeIndicatorEnabled = false;
|
||
|
this.activeIndicatorDesiredWidth = 0;
|
||
|
this.activeIndicatorDesiredHeight = 0;
|
||
|
this.activeIndicatorResizeable = false;
|
||
|
this.activeIndicatorMarginHorizontal = 0;
|
||
|
LayoutInflater.from(context).inflate(getItemLayoutResId(), (ViewGroup) this, true);
|
||
|
this.iconContainer = (FrameLayout) findViewById(com.google.android.material.R.id.navigation_bar_item_icon_container);
|
||
|
this.activeIndicatorView = findViewById(com.google.android.material.R.id.navigation_bar_item_active_indicator_view);
|
||
|
ImageView imageView = (ImageView) findViewById(com.google.android.material.R.id.navigation_bar_item_icon_view);
|
||
|
this.icon = imageView;
|
||
|
ViewGroup viewGroup = (ViewGroup) findViewById(com.google.android.material.R.id.navigation_bar_item_labels_group);
|
||
|
this.labelGroup = viewGroup;
|
||
|
TextView textView = (TextView) findViewById(com.google.android.material.R.id.navigation_bar_item_small_label_view);
|
||
|
this.smallLabel = textView;
|
||
|
TextView textView2 = (TextView) findViewById(com.google.android.material.R.id.navigation_bar_item_large_label_view);
|
||
|
this.largeLabel = textView2;
|
||
|
setBackgroundResource(getItemBackgroundResId());
|
||
|
this.itemPaddingTop = getResources().getDimensionPixelSize(getItemDefaultMarginResId());
|
||
|
this.itemPaddingBottom = viewGroup.getPaddingBottom();
|
||
|
this.activeIndicatorLabelPadding = getResources().getDimensionPixelSize(com.google.android.material.R.dimen.m3_navigation_item_active_indicator_label_padding);
|
||
|
ViewCompat.setImportantForAccessibility(textView, 2);
|
||
|
ViewCompat.setImportantForAccessibility(textView2, 2);
|
||
|
setFocusable(true);
|
||
|
calculateTextScaleFactors(textView.getTextSize(), textView2.getTextSize());
|
||
|
if (imageView != null) {
|
||
|
imageView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() { // from class: com.google.android.material.navigation.NavigationBarItemView.1
|
||
|
@Override // android.view.View.OnLayoutChangeListener
|
||
|
public void onLayoutChange(View view, int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8) {
|
||
|
if (NavigationBarItemView.this.icon.getVisibility() == 0) {
|
||
|
NavigationBarItemView navigationBarItemView = NavigationBarItemView.this;
|
||
|
navigationBarItemView.tryUpdateBadgeBounds(navigationBarItemView.icon);
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override // android.view.View
|
||
|
protected int getSuggestedMinimumWidth() {
|
||
|
FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) this.labelGroup.getLayoutParams();
|
||
|
return Math.max(getSuggestedIconWidth(), layoutParams.leftMargin + this.labelGroup.getMeasuredWidth() + layoutParams.rightMargin);
|
||
|
}
|
||
|
|
||
|
@Override // android.view.View
|
||
|
protected int getSuggestedMinimumHeight() {
|
||
|
FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) this.labelGroup.getLayoutParams();
|
||
|
return getSuggestedIconHeight() + (this.labelGroup.getVisibility() == 0 ? this.activeIndicatorLabelPadding : 0) + layoutParams.topMargin + this.labelGroup.getMeasuredHeight() + layoutParams.bottomMargin;
|
||
|
}
|
||
|
|
||
|
@Override // androidx.appcompat.view.menu.MenuView.ItemView
|
||
|
public void initialize(MenuItemImpl menuItemImpl, int i) {
|
||
|
CharSequence title;
|
||
|
this.itemData = menuItemImpl;
|
||
|
setCheckable(menuItemImpl.isCheckable());
|
||
|
setChecked(menuItemImpl.isChecked());
|
||
|
setEnabled(menuItemImpl.isEnabled());
|
||
|
setIcon(menuItemImpl.getIcon());
|
||
|
setTitle(menuItemImpl.getTitle());
|
||
|
setId(menuItemImpl.getItemId());
|
||
|
if (!TextUtils.isEmpty(menuItemImpl.getContentDescription())) {
|
||
|
setContentDescription(menuItemImpl.getContentDescription());
|
||
|
}
|
||
|
if (!TextUtils.isEmpty(menuItemImpl.getTooltipText())) {
|
||
|
title = menuItemImpl.getTooltipText();
|
||
|
} else {
|
||
|
title = menuItemImpl.getTitle();
|
||
|
}
|
||
|
TooltipCompat.setTooltipText(this, title);
|
||
|
setVisibility(menuItemImpl.isVisible() ? 0 : 8);
|
||
|
this.initialized = true;
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
public void clear() {
|
||
|
removeBadge();
|
||
|
this.itemData = null;
|
||
|
this.activeIndicatorProgress = 0.0f;
|
||
|
this.initialized = false;
|
||
|
}
|
||
|
|
||
|
public void setShifting(boolean z) {
|
||
|
if (this.isShifting != z) {
|
||
|
this.isShifting = z;
|
||
|
refreshChecked();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void setLabelVisibilityMode(int i) {
|
||
|
if (this.labelVisibilityMode != i) {
|
||
|
this.labelVisibilityMode = i;
|
||
|
updateActiveIndicatorTransform();
|
||
|
updateActiveIndicatorLayoutParams(getWidth());
|
||
|
refreshChecked();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override // androidx.appcompat.view.menu.MenuView.ItemView
|
||
|
public void setTitle(CharSequence charSequence) {
|
||
|
this.smallLabel.setText(charSequence);
|
||
|
this.largeLabel.setText(charSequence);
|
||
|
MenuItemImpl menuItemImpl = this.itemData;
|
||
|
if (menuItemImpl == null || TextUtils.isEmpty(menuItemImpl.getContentDescription())) {
|
||
|
setContentDescription(charSequence);
|
||
|
}
|
||
|
MenuItemImpl menuItemImpl2 = this.itemData;
|
||
|
if (menuItemImpl2 != null && !TextUtils.isEmpty(menuItemImpl2.getTooltipText())) {
|
||
|
charSequence = this.itemData.getTooltipText();
|
||
|
}
|
||
|
TooltipCompat.setTooltipText(this, charSequence);
|
||
|
}
|
||
|
|
||
|
@Override // androidx.appcompat.view.menu.MenuView.ItemView
|
||
|
public void setCheckable(boolean z) {
|
||
|
refreshDrawableState();
|
||
|
}
|
||
|
|
||
|
@Override // android.view.View
|
||
|
protected void onSizeChanged(final int i, int i2, int i3, int i4) {
|
||
|
super.onSizeChanged(i, i2, i3, i4);
|
||
|
post(new Runnable() { // from class: com.google.android.material.navigation.NavigationBarItemView.2
|
||
|
@Override // java.lang.Runnable
|
||
|
public void run() {
|
||
|
NavigationBarItemView.this.updateActiveIndicatorLayoutParams(i);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
private void updateActiveIndicatorTransform() {
|
||
|
if (isActiveIndicatorResizeableAndUnlabeled()) {
|
||
|
this.activeIndicatorTransform = ACTIVE_INDICATOR_UNLABELED_TRANSFORM;
|
||
|
} else {
|
||
|
this.activeIndicatorTransform = ACTIVE_INDICATOR_LABELED_TRANSFORM;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: private */
|
||
|
public void setActiveIndicatorProgress(float f, float f2) {
|
||
|
View view = this.activeIndicatorView;
|
||
|
if (view != null) {
|
||
|
this.activeIndicatorTransform.updateForProgress(f, f2, view);
|
||
|
}
|
||
|
this.activeIndicatorProgress = f;
|
||
|
}
|
||
|
|
||
|
private void maybeAnimateActiveIndicatorToProgress(final float f) {
|
||
|
if (!this.activeIndicatorEnabled || !this.initialized || !ViewCompat.isAttachedToWindow(this)) {
|
||
|
setActiveIndicatorProgress(f, f);
|
||
|
return;
|
||
|
}
|
||
|
ValueAnimator valueAnimator = this.activeIndicatorAnimator;
|
||
|
if (valueAnimator != null) {
|
||
|
valueAnimator.cancel();
|
||
|
this.activeIndicatorAnimator = null;
|
||
|
}
|
||
|
ValueAnimator ofFloat = ValueAnimator.ofFloat(this.activeIndicatorProgress, f);
|
||
|
this.activeIndicatorAnimator = ofFloat;
|
||
|
ofFloat.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { // from class: com.google.android.material.navigation.NavigationBarItemView.3
|
||
|
@Override // android.animation.ValueAnimator.AnimatorUpdateListener
|
||
|
public void onAnimationUpdate(ValueAnimator valueAnimator2) {
|
||
|
NavigationBarItemView.this.setActiveIndicatorProgress(((Float) valueAnimator2.getAnimatedValue()).floatValue(), f);
|
||
|
}
|
||
|
});
|
||
|
this.activeIndicatorAnimator.setInterpolator(MotionUtils.resolveThemeInterpolator(getContext(), com.google.android.material.R.attr.motionEasingEmphasizedInterpolator, AnimationUtils.FAST_OUT_SLOW_IN_INTERPOLATOR));
|
||
|
this.activeIndicatorAnimator.setDuration(MotionUtils.resolveThemeDuration(getContext(), com.google.android.material.R.attr.motionDurationLong2, getResources().getInteger(com.google.android.material.R.integer.material_motion_duration_long_1)));
|
||
|
this.activeIndicatorAnimator.start();
|
||
|
}
|
||
|
|
||
|
private void refreshChecked() {
|
||
|
MenuItemImpl menuItemImpl = this.itemData;
|
||
|
if (menuItemImpl != null) {
|
||
|
setChecked(menuItemImpl.isChecked());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override // androidx.appcompat.view.menu.MenuView.ItemView
|
||
|
public void setChecked(boolean z) {
|
||
|
this.largeLabel.setPivotX(r0.getWidth() / 2);
|
||
|
this.largeLabel.setPivotY(r0.getBaseline());
|
||
|
this.smallLabel.setPivotX(r0.getWidth() / 2);
|
||
|
this.smallLabel.setPivotY(r0.getBaseline());
|
||
|
maybeAnimateActiveIndicatorToProgress(z ? 1.0f : 0.0f);
|
||
|
int i = this.labelVisibilityMode;
|
||
|
if (i != -1) {
|
||
|
if (i == 0) {
|
||
|
if (z) {
|
||
|
setViewTopMarginAndGravity(getIconOrContainer(), this.itemPaddingTop, 49);
|
||
|
updateViewPaddingBottom(this.labelGroup, this.itemPaddingBottom);
|
||
|
this.largeLabel.setVisibility(0);
|
||
|
} else {
|
||
|
setViewTopMarginAndGravity(getIconOrContainer(), this.itemPaddingTop, 17);
|
||
|
updateViewPaddingBottom(this.labelGroup, 0);
|
||
|
this.largeLabel.setVisibility(4);
|
||
|
}
|
||
|
this.smallLabel.setVisibility(4);
|
||
|
} else if (i == 1) {
|
||
|
updateViewPaddingBottom(this.labelGroup, this.itemPaddingBottom);
|
||
|
if (z) {
|
||
|
setViewTopMarginAndGravity(getIconOrContainer(), (int) (this.itemPaddingTop + this.shiftAmount), 49);
|
||
|
setViewScaleValues(this.largeLabel, 1.0f, 1.0f, 0);
|
||
|
TextView textView = this.smallLabel;
|
||
|
float f = this.scaleUpFactor;
|
||
|
setViewScaleValues(textView, f, f, 4);
|
||
|
} else {
|
||
|
setViewTopMarginAndGravity(getIconOrContainer(), this.itemPaddingTop, 49);
|
||
|
TextView textView2 = this.largeLabel;
|
||
|
float f2 = this.scaleDownFactor;
|
||
|
setViewScaleValues(textView2, f2, f2, 4);
|
||
|
setViewScaleValues(this.smallLabel, 1.0f, 1.0f, 0);
|
||
|
}
|
||
|
} else if (i == 2) {
|
||
|
setViewTopMarginAndGravity(getIconOrContainer(), this.itemPaddingTop, 17);
|
||
|
this.largeLabel.setVisibility(8);
|
||
|
this.smallLabel.setVisibility(8);
|
||
|
}
|
||
|
} else if (this.isShifting) {
|
||
|
if (z) {
|
||
|
setViewTopMarginAndGravity(getIconOrContainer(), this.itemPaddingTop, 49);
|
||
|
updateViewPaddingBottom(this.labelGroup, this.itemPaddingBottom);
|
||
|
this.largeLabel.setVisibility(0);
|
||
|
} else {
|
||
|
setViewTopMarginAndGravity(getIconOrContainer(), this.itemPaddingTop, 17);
|
||
|
updateViewPaddingBottom(this.labelGroup, 0);
|
||
|
this.largeLabel.setVisibility(4);
|
||
|
}
|
||
|
this.smallLabel.setVisibility(4);
|
||
|
} else {
|
||
|
updateViewPaddingBottom(this.labelGroup, this.itemPaddingBottom);
|
||
|
if (z) {
|
||
|
setViewTopMarginAndGravity(getIconOrContainer(), (int) (this.itemPaddingTop + this.shiftAmount), 49);
|
||
|
setViewScaleValues(this.largeLabel, 1.0f, 1.0f, 0);
|
||
|
TextView textView3 = this.smallLabel;
|
||
|
float f3 = this.scaleUpFactor;
|
||
|
setViewScaleValues(textView3, f3, f3, 4);
|
||
|
} else {
|
||
|
setViewTopMarginAndGravity(getIconOrContainer(), this.itemPaddingTop, 49);
|
||
|
TextView textView4 = this.largeLabel;
|
||
|
float f4 = this.scaleDownFactor;
|
||
|
setViewScaleValues(textView4, f4, f4, 4);
|
||
|
setViewScaleValues(this.smallLabel, 1.0f, 1.0f, 0);
|
||
|
}
|
||
|
}
|
||
|
refreshDrawableState();
|
||
|
setSelected(z);
|
||
|
}
|
||
|
|
||
|
@Override // android.view.View
|
||
|
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo accessibilityNodeInfo) {
|
||
|
super.onInitializeAccessibilityNodeInfo(accessibilityNodeInfo);
|
||
|
BadgeDrawable badgeDrawable = this.badgeDrawable;
|
||
|
if (badgeDrawable != null && badgeDrawable.isVisible()) {
|
||
|
CharSequence title = this.itemData.getTitle();
|
||
|
if (!TextUtils.isEmpty(this.itemData.getContentDescription())) {
|
||
|
title = this.itemData.getContentDescription();
|
||
|
}
|
||
|
accessibilityNodeInfo.setContentDescription(((Object) title) + ", " + ((Object) this.badgeDrawable.getContentDescription()));
|
||
|
}
|
||
|
AccessibilityNodeInfoCompat wrap = AccessibilityNodeInfoCompat.wrap(accessibilityNodeInfo);
|
||
|
wrap.setCollectionItemInfo(AccessibilityNodeInfoCompat.CollectionItemInfoCompat.obtain(0, 1, getItemVisiblePosition(), 1, false, isSelected()));
|
||
|
if (isSelected()) {
|
||
|
wrap.setClickable(false);
|
||
|
wrap.removeAction(AccessibilityNodeInfoCompat.AccessibilityActionCompat.ACTION_CLICK);
|
||
|
}
|
||
|
wrap.setRoleDescription(getResources().getString(com.google.android.material.R.string.item_view_role_description));
|
||
|
}
|
||
|
|
||
|
private int getItemVisiblePosition() {
|
||
|
ViewGroup viewGroup = (ViewGroup) getParent();
|
||
|
int indexOfChild = viewGroup.indexOfChild(this);
|
||
|
int i = 0;
|
||
|
for (int i2 = 0; i2 < indexOfChild; i2++) {
|
||
|
View childAt = viewGroup.getChildAt(i2);
|
||
|
if ((childAt instanceof NavigationBarItemView) && childAt.getVisibility() == 0) {
|
||
|
i++;
|
||
|
}
|
||
|
}
|
||
|
return i;
|
||
|
}
|
||
|
|
||
|
private static void setViewTopMarginAndGravity(View view, int i, int i2) {
|
||
|
FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) view.getLayoutParams();
|
||
|
layoutParams.topMargin = i;
|
||
|
layoutParams.bottomMargin = i;
|
||
|
layoutParams.gravity = i2;
|
||
|
view.setLayoutParams(layoutParams);
|
||
|
}
|
||
|
|
||
|
private static void setViewScaleValues(View view, float f, float f2, int i) {
|
||
|
view.setScaleX(f);
|
||
|
view.setScaleY(f2);
|
||
|
view.setVisibility(i);
|
||
|
}
|
||
|
|
||
|
private static void updateViewPaddingBottom(View view, int i) {
|
||
|
view.setPadding(view.getPaddingLeft(), view.getPaddingTop(), view.getPaddingRight(), i);
|
||
|
}
|
||
|
|
||
|
@Override // android.view.View, androidx.appcompat.view.menu.MenuView.ItemView
|
||
|
public void setEnabled(boolean z) {
|
||
|
super.setEnabled(z);
|
||
|
this.smallLabel.setEnabled(z);
|
||
|
this.largeLabel.setEnabled(z);
|
||
|
this.icon.setEnabled(z);
|
||
|
if (z) {
|
||
|
ViewCompat.setPointerIcon(this, PointerIconCompat.getSystemIcon(getContext(), 1002));
|
||
|
} else {
|
||
|
ViewCompat.setPointerIcon(this, null);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@Override // android.view.ViewGroup, android.view.View
|
||
|
public int[] onCreateDrawableState(int i) {
|
||
|
int[] onCreateDrawableState = super.onCreateDrawableState(i + 1);
|
||
|
MenuItemImpl menuItemImpl = this.itemData;
|
||
|
if (menuItemImpl != null && menuItemImpl.isCheckable() && this.itemData.isChecked()) {
|
||
|
mergeDrawableStates(onCreateDrawableState, CHECKED_STATE_SET);
|
||
|
}
|
||
|
return onCreateDrawableState;
|
||
|
}
|
||
|
|
||
|
@Override // androidx.appcompat.view.menu.MenuView.ItemView
|
||
|
public void setIcon(Drawable drawable) {
|
||
|
if (drawable == this.originalIconDrawable) {
|
||
|
return;
|
||
|
}
|
||
|
this.originalIconDrawable = drawable;
|
||
|
if (drawable != null) {
|
||
|
Drawable.ConstantState constantState = drawable.getConstantState();
|
||
|
if (constantState != null) {
|
||
|
drawable = constantState.newDrawable();
|
||
|
}
|
||
|
drawable = DrawableCompat.wrap(drawable).mutate();
|
||
|
this.wrappedIconDrawable = drawable;
|
||
|
ColorStateList colorStateList = this.iconTint;
|
||
|
if (colorStateList != null) {
|
||
|
DrawableCompat.setTintList(drawable, colorStateList);
|
||
|
}
|
||
|
}
|
||
|
this.icon.setImageDrawable(drawable);
|
||
|
}
|
||
|
|
||
|
public void setIconTintList(ColorStateList colorStateList) {
|
||
|
Drawable drawable;
|
||
|
this.iconTint = colorStateList;
|
||
|
if (this.itemData == null || (drawable = this.wrappedIconDrawable) == null) {
|
||
|
return;
|
||
|
}
|
||
|
DrawableCompat.setTintList(drawable, colorStateList);
|
||
|
this.wrappedIconDrawable.invalidateSelf();
|
||
|
}
|
||
|
|
||
|
public void setIconSize(int i) {
|
||
|
FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) this.icon.getLayoutParams();
|
||
|
layoutParams.width = i;
|
||
|
layoutParams.height = i;
|
||
|
this.icon.setLayoutParams(layoutParams);
|
||
|
}
|
||
|
|
||
|
public void setTextAppearanceInactive(int i) {
|
||
|
setTextAppearanceWithoutFontScaling(this.smallLabel, i);
|
||
|
calculateTextScaleFactors(this.smallLabel.getTextSize(), this.largeLabel.getTextSize());
|
||
|
}
|
||
|
|
||
|
public void setTextAppearanceActive(int i) {
|
||
|
this.activeTextAppearance = i;
|
||
|
setTextAppearanceWithoutFontScaling(this.largeLabel, i);
|
||
|
calculateTextScaleFactors(this.smallLabel.getTextSize(), this.largeLabel.getTextSize());
|
||
|
}
|
||
|
|
||
|
public void setTextAppearanceActiveBoldEnabled(boolean z) {
|
||
|
setTextAppearanceActive(this.activeTextAppearance);
|
||
|
TextView textView = this.largeLabel;
|
||
|
textView.setTypeface(textView.getTypeface(), z ? 1 : 0);
|
||
|
}
|
||
|
|
||
|
private static void setTextAppearanceWithoutFontScaling(TextView textView, int i) {
|
||
|
TextViewCompat.setTextAppearance(textView, i);
|
||
|
int unscaledTextSize = MaterialResources.getUnscaledTextSize(textView.getContext(), i, 0);
|
||
|
if (unscaledTextSize != 0) {
|
||
|
textView.setTextSize(0, unscaledTextSize);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void setTextColor(ColorStateList colorStateList) {
|
||
|
if (colorStateList != null) {
|
||
|
this.smallLabel.setTextColor(colorStateList);
|
||
|
this.largeLabel.setTextColor(colorStateList);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void setItemBackground(int i) {
|
||
|
setItemBackground(i == 0 ? null : ContextCompat.getDrawable(getContext(), i));
|
||
|
}
|
||
|
|
||
|
public void setItemBackground(Drawable drawable) {
|
||
|
if (drawable != null && drawable.getConstantState() != null) {
|
||
|
drawable = drawable.getConstantState().newDrawable().mutate();
|
||
|
}
|
||
|
this.itemBackground = drawable;
|
||
|
refreshItemBackground();
|
||
|
}
|
||
|
|
||
|
public void setItemRippleColor(ColorStateList colorStateList) {
|
||
|
this.itemRippleColor = colorStateList;
|
||
|
refreshItemBackground();
|
||
|
}
|
||
|
|
||
|
private void refreshItemBackground() {
|
||
|
Drawable drawable = this.itemBackground;
|
||
|
RippleDrawable rippleDrawable = null;
|
||
|
boolean z = true;
|
||
|
if (this.itemRippleColor != null) {
|
||
|
Drawable activeIndicatorDrawable = getActiveIndicatorDrawable();
|
||
|
if (this.activeIndicatorEnabled && getActiveIndicatorDrawable() != null && this.iconContainer != null && activeIndicatorDrawable != null) {
|
||
|
rippleDrawable = new RippleDrawable(RippleUtils.sanitizeRippleDrawableColor(this.itemRippleColor), null, activeIndicatorDrawable);
|
||
|
z = false;
|
||
|
} else if (drawable == null) {
|
||
|
drawable = createItemBackgroundCompat(this.itemRippleColor);
|
||
|
}
|
||
|
}
|
||
|
FrameLayout frameLayout = this.iconContainer;
|
||
|
if (frameLayout != null) {
|
||
|
frameLayout.setPadding(0, 0, 0, 0);
|
||
|
this.iconContainer.setForeground(rippleDrawable);
|
||
|
}
|
||
|
ViewCompat.setBackground(this, drawable);
|
||
|
setDefaultFocusHighlightEnabled(z);
|
||
|
}
|
||
|
|
||
|
private static Drawable createItemBackgroundCompat(ColorStateList colorStateList) {
|
||
|
return new RippleDrawable(RippleUtils.convertToRippleDrawableColor(colorStateList), null, null);
|
||
|
}
|
||
|
|
||
|
public void setItemPaddingTop(int i) {
|
||
|
if (this.itemPaddingTop != i) {
|
||
|
this.itemPaddingTop = i;
|
||
|
refreshChecked();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void setItemPaddingBottom(int i) {
|
||
|
if (this.itemPaddingBottom != i) {
|
||
|
this.itemPaddingBottom = i;
|
||
|
refreshChecked();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void setActiveIndicatorLabelPadding(int i) {
|
||
|
if (this.activeIndicatorLabelPadding != i) {
|
||
|
this.activeIndicatorLabelPadding = i;
|
||
|
refreshChecked();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void setActiveIndicatorEnabled(boolean z) {
|
||
|
this.activeIndicatorEnabled = z;
|
||
|
refreshItemBackground();
|
||
|
View view = this.activeIndicatorView;
|
||
|
if (view != null) {
|
||
|
view.setVisibility(z ? 0 : 8);
|
||
|
requestLayout();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public void setActiveIndicatorWidth(int i) {
|
||
|
this.activeIndicatorDesiredWidth = i;
|
||
|
updateActiveIndicatorLayoutParams(getWidth());
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: private */
|
||
|
public void updateActiveIndicatorLayoutParams(int i) {
|
||
|
if (this.activeIndicatorView == null || i <= 0) {
|
||
|
return;
|
||
|
}
|
||
|
int min = Math.min(this.activeIndicatorDesiredWidth, i - (this.activeIndicatorMarginHorizontal * 2));
|
||
|
FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) this.activeIndicatorView.getLayoutParams();
|
||
|
layoutParams.height = isActiveIndicatorResizeableAndUnlabeled() ? min : this.activeIndicatorDesiredHeight;
|
||
|
layoutParams.width = min;
|
||
|
this.activeIndicatorView.setLayoutParams(layoutParams);
|
||
|
}
|
||
|
|
||
|
public void setActiveIndicatorHeight(int i) {
|
||
|
this.activeIndicatorDesiredHeight = i;
|
||
|
updateActiveIndicatorLayoutParams(getWidth());
|
||
|
}
|
||
|
|
||
|
public void setActiveIndicatorMarginHorizontal(int i) {
|
||
|
this.activeIndicatorMarginHorizontal = i;
|
||
|
updateActiveIndicatorLayoutParams(getWidth());
|
||
|
}
|
||
|
|
||
|
public Drawable getActiveIndicatorDrawable() {
|
||
|
View view = this.activeIndicatorView;
|
||
|
if (view == null) {
|
||
|
return null;
|
||
|
}
|
||
|
return view.getBackground();
|
||
|
}
|
||
|
|
||
|
public void setActiveIndicatorDrawable(Drawable drawable) {
|
||
|
View view = this.activeIndicatorView;
|
||
|
if (view == null) {
|
||
|
return;
|
||
|
}
|
||
|
view.setBackgroundDrawable(drawable);
|
||
|
refreshItemBackground();
|
||
|
}
|
||
|
|
||
|
@Override // android.view.ViewGroup, android.view.View
|
||
|
public boolean dispatchTouchEvent(MotionEvent motionEvent) {
|
||
|
FrameLayout frameLayout = this.iconContainer;
|
||
|
if (frameLayout != null && this.activeIndicatorEnabled) {
|
||
|
frameLayout.dispatchTouchEvent(motionEvent);
|
||
|
}
|
||
|
return super.dispatchTouchEvent(motionEvent);
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
public void setBadge(BadgeDrawable badgeDrawable) {
|
||
|
if (this.badgeDrawable == badgeDrawable) {
|
||
|
return;
|
||
|
}
|
||
|
if (hasBadge() && this.icon != null) {
|
||
|
Log.w("NavigationBar", "Multiple badges shouldn't be attached to one item.");
|
||
|
tryRemoveBadgeFromAnchor(this.icon);
|
||
|
}
|
||
|
this.badgeDrawable = badgeDrawable;
|
||
|
ImageView imageView = this.icon;
|
||
|
if (imageView != null) {
|
||
|
tryAttachBadgeToAnchor(imageView);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: package-private */
|
||
|
public void removeBadge() {
|
||
|
tryRemoveBadgeFromAnchor(this.icon);
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: private */
|
||
|
public void tryUpdateBadgeBounds(View view) {
|
||
|
if (hasBadge()) {
|
||
|
BadgeUtils.setBadgeDrawableBounds(this.badgeDrawable, view, getCustomParentForBadge(view));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void tryAttachBadgeToAnchor(View view) {
|
||
|
if (hasBadge() && view != null) {
|
||
|
setClipChildren(false);
|
||
|
setClipToPadding(false);
|
||
|
BadgeUtils.attachBadgeDrawable(this.badgeDrawable, view, getCustomParentForBadge(view));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void tryRemoveBadgeFromAnchor(View view) {
|
||
|
if (hasBadge()) {
|
||
|
if (view != null) {
|
||
|
setClipChildren(true);
|
||
|
setClipToPadding(true);
|
||
|
BadgeUtils.detachBadgeDrawable(this.badgeDrawable, view);
|
||
|
}
|
||
|
this.badgeDrawable = null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private FrameLayout getCustomParentForBadge(View view) {
|
||
|
if (view == this.icon && BadgeUtils.USE_COMPAT_PARENT) {
|
||
|
return (FrameLayout) this.icon.getParent();
|
||
|
}
|
||
|
return null;
|
||
|
}
|
||
|
|
||
|
private int getSuggestedIconWidth() {
|
||
|
BadgeDrawable badgeDrawable = this.badgeDrawable;
|
||
|
int minimumWidth = badgeDrawable == null ? 0 : badgeDrawable.getMinimumWidth() - this.badgeDrawable.getHorizontalOffset();
|
||
|
FrameLayout.LayoutParams layoutParams = (FrameLayout.LayoutParams) getIconOrContainer().getLayoutParams();
|
||
|
return Math.max(minimumWidth, layoutParams.leftMargin) + this.icon.getMeasuredWidth() + Math.max(minimumWidth, layoutParams.rightMargin);
|
||
|
}
|
||
|
|
||
|
private int getSuggestedIconHeight() {
|
||
|
return ((FrameLayout.LayoutParams) getIconOrContainer().getLayoutParams()).topMargin + getIconOrContainer().getMeasuredHeight();
|
||
|
}
|
||
|
|
||
|
protected int getItemBackgroundResId() {
|
||
|
return com.google.android.material.R.drawable.mtrl_navigation_bar_item_background;
|
||
|
}
|
||
|
|
||
|
protected int getItemDefaultMarginResId() {
|
||
|
return com.google.android.material.R.dimen.mtrl_navigation_bar_item_default_margin;
|
||
|
}
|
||
|
|
||
|
/* JADX INFO: Access modifiers changed from: private */
|
||
|
/* loaded from: classes2.dex */
|
||
|
public static class ActiveIndicatorTransform {
|
||
|
private static final float ALPHA_FRACTION = 0.2f;
|
||
|
private static final float SCALE_X_HIDDEN = 0.4f;
|
||
|
private static final float SCALE_X_SHOWN = 1.0f;
|
||
|
|
||
|
protected float calculateScaleY(float f, float f2) {
|
||
|
return 1.0f;
|
||
|
}
|
||
|
|
||
|
private ActiveIndicatorTransform() {
|
||
|
}
|
||
|
|
||
|
protected float calculateAlpha(float f, float f2) {
|
||
|
return AnimationUtils.lerp(0.0f, 1.0f, f2 == 0.0f ? 0.8f : 0.0f, f2 == 0.0f ? 1.0f : 0.2f, f);
|
||
|
}
|
||
|
|
||
|
protected float calculateScaleX(float f, float f2) {
|
||
|
return AnimationUtils.lerp(0.4f, 1.0f, f);
|
||
|
}
|
||
|
|
||
|
public void updateForProgress(float f, float f2, View view) {
|
||
|
view.setScaleX(calculateScaleX(f, f2));
|
||
|
view.setScaleY(calculateScaleY(f, f2));
|
||
|
view.setAlpha(calculateAlpha(f, f2));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* loaded from: classes2.dex */
|
||
|
private static class ActiveIndicatorUnlabeledTransform extends ActiveIndicatorTransform {
|
||
|
private ActiveIndicatorUnlabeledTransform() {
|
||
|
super();
|
||
|
}
|
||
|
|
||
|
@Override // com.google.android.material.navigation.NavigationBarItemView.ActiveIndicatorTransform
|
||
|
protected float calculateScaleY(float f, float f2) {
|
||
|
return calculateScaleX(f, f2);
|
||
|
}
|
||
|
}
|
||
|
}
|