package androidx.appcompat.widget; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.content.Context; import android.content.res.Configuration; import android.graphics.drawable.Drawable; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; import android.view.ViewParent; import android.view.ViewPropertyAnimator; import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityNodeInfo; import android.view.animation.DecelerateInterpolator; import android.view.animation.Interpolator; import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.HorizontalScrollView; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Spinner; import android.widget.SpinnerAdapter; import android.widget.TextView; import androidx.appcompat.R; import androidx.appcompat.app.ActionBar; import androidx.appcompat.view.ActionBarPolicy; import androidx.appcompat.widget.LinearLayoutCompat; /* loaded from: classes.dex */ public class ScrollingTabContainerView extends HorizontalScrollView implements AdapterView.OnItemSelectedListener { private static final int FADE_DURATION = 200; private static final String TAG = "ScrollingTabContainerView"; private static final Interpolator sAlphaInterpolator = new DecelerateInterpolator(); private boolean mAllowCollapse; private int mContentHeight; int mMaxTabWidth; private int mSelectedTabIndex; int mStackedTabMaxWidth; private TabClickListener mTabClickListener; LinearLayoutCompat mTabLayout; Runnable mTabSelector; private Spinner mTabSpinner; protected final VisibilityAnimListener mVisAnimListener; protected ViewPropertyAnimator mVisibilityAnim; @Override // android.widget.AdapterView.OnItemSelectedListener public void onNothingSelected(AdapterView adapterView) { } public void setAllowCollapse(boolean z) { this.mAllowCollapse = z; } public ScrollingTabContainerView(Context context) { super(context); this.mVisAnimListener = new VisibilityAnimListener(); setHorizontalScrollBarEnabled(false); ActionBarPolicy actionBarPolicy = ActionBarPolicy.get(context); setContentHeight(actionBarPolicy.getTabContainerHeight()); this.mStackedTabMaxWidth = actionBarPolicy.getStackedTabMaxWidth(); LinearLayoutCompat createTabLayout = createTabLayout(); this.mTabLayout = createTabLayout; addView(createTabLayout, new ViewGroup.LayoutParams(-2, -1)); } @Override // android.widget.HorizontalScrollView, android.widget.FrameLayout, android.view.View public void onMeasure(int i, int i2) { int mode = View.MeasureSpec.getMode(i); boolean z = mode == 1073741824; setFillViewport(z); int childCount = this.mTabLayout.getChildCount(); if (childCount <= 1 || !(mode == 1073741824 || mode == Integer.MIN_VALUE)) { this.mMaxTabWidth = -1; } else { if (childCount > 2) { this.mMaxTabWidth = (int) (View.MeasureSpec.getSize(i) * 0.4f); } else { this.mMaxTabWidth = View.MeasureSpec.getSize(i) / 2; } this.mMaxTabWidth = Math.min(this.mMaxTabWidth, this.mStackedTabMaxWidth); } int makeMeasureSpec = View.MeasureSpec.makeMeasureSpec(this.mContentHeight, 1073741824); if (!z && this.mAllowCollapse) { this.mTabLayout.measure(0, makeMeasureSpec); if (this.mTabLayout.getMeasuredWidth() > View.MeasureSpec.getSize(i)) { performCollapse(); } else { performExpand(); } } else { performExpand(); } int measuredWidth = getMeasuredWidth(); super.onMeasure(i, makeMeasureSpec); int measuredWidth2 = getMeasuredWidth(); if (!z || measuredWidth == measuredWidth2) { return; } setTabSelected(this.mSelectedTabIndex); } private boolean isCollapsed() { Spinner spinner = this.mTabSpinner; return spinner != null && spinner.getParent() == this; } private void performCollapse() { if (isCollapsed()) { return; } if (this.mTabSpinner == null) { this.mTabSpinner = createSpinner(); } removeView(this.mTabLayout); addView(this.mTabSpinner, new ViewGroup.LayoutParams(-2, -1)); if (this.mTabSpinner.getAdapter() == null) { this.mTabSpinner.setAdapter((SpinnerAdapter) new TabAdapter()); } Runnable runnable = this.mTabSelector; if (runnable != null) { removeCallbacks(runnable); this.mTabSelector = null; } this.mTabSpinner.setSelection(this.mSelectedTabIndex); } private boolean performExpand() { if (!isCollapsed()) { return false; } removeView(this.mTabSpinner); addView(this.mTabLayout, new ViewGroup.LayoutParams(-2, -1)); setTabSelected(this.mTabSpinner.getSelectedItemPosition()); return false; } public void setTabSelected(int i) { this.mSelectedTabIndex = i; int childCount = this.mTabLayout.getChildCount(); int i2 = 0; while (i2 < childCount) { View childAt = this.mTabLayout.getChildAt(i2); boolean z = i2 == i; childAt.setSelected(z); if (z) { animateToTab(i); } i2++; } Spinner spinner = this.mTabSpinner; if (spinner == null || i < 0) { return; } spinner.setSelection(i); } public void setContentHeight(int i) { this.mContentHeight = i; requestLayout(); } private LinearLayoutCompat createTabLayout() { LinearLayoutCompat linearLayoutCompat = new LinearLayoutCompat(getContext(), null, R.attr.actionBarTabBarStyle); linearLayoutCompat.setMeasureWithLargestChildEnabled(true); linearLayoutCompat.setGravity(17); linearLayoutCompat.setLayoutParams(new LinearLayoutCompat.LayoutParams(-2, -1)); return linearLayoutCompat; } private Spinner createSpinner() { AppCompatSpinner appCompatSpinner = new AppCompatSpinner(getContext(), null, R.attr.actionDropDownStyle); appCompatSpinner.setLayoutParams(new LinearLayoutCompat.LayoutParams(-2, -1)); appCompatSpinner.setOnItemSelectedListener(this); return appCompatSpinner; } @Override // android.view.View protected void onConfigurationChanged(Configuration configuration) { super.onConfigurationChanged(configuration); ActionBarPolicy actionBarPolicy = ActionBarPolicy.get(getContext()); setContentHeight(actionBarPolicy.getTabContainerHeight()); this.mStackedTabMaxWidth = actionBarPolicy.getStackedTabMaxWidth(); } public void animateToVisibility(int i) { ViewPropertyAnimator viewPropertyAnimator = this.mVisibilityAnim; if (viewPropertyAnimator != null) { viewPropertyAnimator.cancel(); } if (i == 0) { if (getVisibility() != 0) { setAlpha(0.0f); } ViewPropertyAnimator alpha = animate().alpha(1.0f); alpha.setDuration(200L); alpha.setInterpolator(sAlphaInterpolator); alpha.setListener(this.mVisAnimListener.withFinalVisibility(alpha, i)); alpha.start(); return; } ViewPropertyAnimator alpha2 = animate().alpha(0.0f); alpha2.setDuration(200L); alpha2.setInterpolator(sAlphaInterpolator); alpha2.setListener(this.mVisAnimListener.withFinalVisibility(alpha2, i)); alpha2.start(); } public void animateToTab(int i) { final View childAt = this.mTabLayout.getChildAt(i); Runnable runnable = this.mTabSelector; if (runnable != null) { removeCallbacks(runnable); } Runnable runnable2 = new Runnable() { // from class: androidx.appcompat.widget.ScrollingTabContainerView.1 @Override // java.lang.Runnable public void run() { ScrollingTabContainerView.this.smoothScrollTo(childAt.getLeft() - ((ScrollingTabContainerView.this.getWidth() - childAt.getWidth()) / 2), 0); ScrollingTabContainerView.this.mTabSelector = null; } }; this.mTabSelector = runnable2; post(runnable2); } @Override // android.view.ViewGroup, android.view.View public void onAttachedToWindow() { super.onAttachedToWindow(); Runnable runnable = this.mTabSelector; if (runnable != null) { post(runnable); } } @Override // android.view.ViewGroup, android.view.View public void onDetachedFromWindow() { super.onDetachedFromWindow(); Runnable runnable = this.mTabSelector; if (runnable != null) { removeCallbacks(runnable); } } TabView createTabView(ActionBar.Tab tab, boolean z) { TabView tabView = new TabView(getContext(), tab, z); if (z) { tabView.setBackgroundDrawable(null); tabView.setLayoutParams(new AbsListView.LayoutParams(-1, this.mContentHeight)); } else { tabView.setFocusable(true); if (this.mTabClickListener == null) { this.mTabClickListener = new TabClickListener(); } tabView.setOnClickListener(this.mTabClickListener); } return tabView; } public void addTab(ActionBar.Tab tab, boolean z) { TabView createTabView = createTabView(tab, false); this.mTabLayout.addView(createTabView, new LinearLayoutCompat.LayoutParams(0, -1, 1.0f)); Spinner spinner = this.mTabSpinner; if (spinner != null) { ((TabAdapter) spinner.getAdapter()).notifyDataSetChanged(); } if (z) { createTabView.setSelected(true); } if (this.mAllowCollapse) { requestLayout(); } } public void addTab(ActionBar.Tab tab, int i, boolean z) { TabView createTabView = createTabView(tab, false); this.mTabLayout.addView(createTabView, i, new LinearLayoutCompat.LayoutParams(0, -1, 1.0f)); Spinner spinner = this.mTabSpinner; if (spinner != null) { ((TabAdapter) spinner.getAdapter()).notifyDataSetChanged(); } if (z) { createTabView.setSelected(true); } if (this.mAllowCollapse) { requestLayout(); } } public void updateTab(int i) { ((TabView) this.mTabLayout.getChildAt(i)).update(); Spinner spinner = this.mTabSpinner; if (spinner != null) { ((TabAdapter) spinner.getAdapter()).notifyDataSetChanged(); } if (this.mAllowCollapse) { requestLayout(); } } public void removeTabAt(int i) { this.mTabLayout.removeViewAt(i); Spinner spinner = this.mTabSpinner; if (spinner != null) { ((TabAdapter) spinner.getAdapter()).notifyDataSetChanged(); } if (this.mAllowCollapse) { requestLayout(); } } public void removeAllTabs() { this.mTabLayout.removeAllViews(); Spinner spinner = this.mTabSpinner; if (spinner != null) { ((TabAdapter) spinner.getAdapter()).notifyDataSetChanged(); } if (this.mAllowCollapse) { requestLayout(); } } @Override // android.widget.AdapterView.OnItemSelectedListener public void onItemSelected(AdapterView adapterView, View view, int i, long j) { ((TabView) view).getTab().select(); } /* JADX INFO: Access modifiers changed from: private */ /* loaded from: classes.dex */ public class TabView extends LinearLayout { private static final String ACCESSIBILITY_CLASS_NAME = "androidx.appcompat.app.ActionBar$Tab"; private final int[] BG_ATTRS; private View mCustomView; private ImageView mIconView; private ActionBar.Tab mTab; private TextView mTextView; public ActionBar.Tab getTab() { return this.mTab; } public TabView(Context context, ActionBar.Tab tab, boolean z) { super(context, null, R.attr.actionBarTabStyle); int[] iArr = {android.R.attr.background}; this.BG_ATTRS = iArr; this.mTab = tab; TintTypedArray obtainStyledAttributes = TintTypedArray.obtainStyledAttributes(context, null, iArr, R.attr.actionBarTabStyle, 0); if (obtainStyledAttributes.hasValue(0)) { setBackgroundDrawable(obtainStyledAttributes.getDrawable(0)); } obtainStyledAttributes.recycle(); if (z) { setGravity(8388627); } update(); } public void bindTab(ActionBar.Tab tab) { this.mTab = tab; update(); } @Override // android.view.View public void setSelected(boolean z) { boolean z2 = isSelected() != z; super.setSelected(z); if (z2 && z) { sendAccessibilityEvent(4); } } @Override // android.view.View public void onInitializeAccessibilityEvent(AccessibilityEvent accessibilityEvent) { super.onInitializeAccessibilityEvent(accessibilityEvent); accessibilityEvent.setClassName(ACCESSIBILITY_CLASS_NAME); } @Override // android.view.View public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo accessibilityNodeInfo) { super.onInitializeAccessibilityNodeInfo(accessibilityNodeInfo); accessibilityNodeInfo.setClassName(ACCESSIBILITY_CLASS_NAME); } @Override // android.widget.LinearLayout, android.view.View public void onMeasure(int i, int i2) { super.onMeasure(i, i2); if (ScrollingTabContainerView.this.mMaxTabWidth <= 0 || getMeasuredWidth() <= ScrollingTabContainerView.this.mMaxTabWidth) { return; } super.onMeasure(View.MeasureSpec.makeMeasureSpec(ScrollingTabContainerView.this.mMaxTabWidth, 1073741824), i2); } public void update() { ActionBar.Tab tab = this.mTab; View customView = tab.getCustomView(); if (customView != null) { ViewParent parent = customView.getParent(); if (parent != this) { if (parent != null) { ((ViewGroup) parent).removeView(customView); } addView(customView); } this.mCustomView = customView; TextView textView = this.mTextView; if (textView != null) { textView.setVisibility(8); } ImageView imageView = this.mIconView; if (imageView != null) { imageView.setVisibility(8); this.mIconView.setImageDrawable(null); return; } return; } View view = this.mCustomView; if (view != null) { removeView(view); this.mCustomView = null; } Drawable icon = tab.getIcon(); CharSequence text = tab.getText(); if (icon != null) { if (this.mIconView == null) { AppCompatImageView appCompatImageView = new AppCompatImageView(getContext()); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(-2, -2); layoutParams.gravity = 16; appCompatImageView.setLayoutParams(layoutParams); addView(appCompatImageView, 0); this.mIconView = appCompatImageView; } this.mIconView.setImageDrawable(icon); this.mIconView.setVisibility(0); } else { ImageView imageView2 = this.mIconView; if (imageView2 != null) { imageView2.setVisibility(8); this.mIconView.setImageDrawable(null); } } boolean z = !TextUtils.isEmpty(text); if (z) { if (this.mTextView == null) { AppCompatTextView appCompatTextView = new AppCompatTextView(getContext(), null, R.attr.actionBarTabTextStyle); appCompatTextView.setEllipsize(TextUtils.TruncateAt.END); LinearLayout.LayoutParams layoutParams2 = new LinearLayout.LayoutParams(-2, -2); layoutParams2.gravity = 16; appCompatTextView.setLayoutParams(layoutParams2); addView(appCompatTextView); this.mTextView = appCompatTextView; } this.mTextView.setText(text); this.mTextView.setVisibility(0); } else { TextView textView2 = this.mTextView; if (textView2 != null) { textView2.setVisibility(8); this.mTextView.setText((CharSequence) null); } } ImageView imageView3 = this.mIconView; if (imageView3 != null) { imageView3.setContentDescription(tab.getContentDescription()); } TooltipCompat.setTooltipText(this, z ? null : tab.getContentDescription()); } } /* JADX INFO: Access modifiers changed from: private */ /* loaded from: classes.dex */ public class TabAdapter extends BaseAdapter { @Override // android.widget.Adapter public long getItemId(int i) { return i; } TabAdapter() { } @Override // android.widget.Adapter public int getCount() { return ScrollingTabContainerView.this.mTabLayout.getChildCount(); } @Override // android.widget.Adapter public Object getItem(int i) { return ((TabView) ScrollingTabContainerView.this.mTabLayout.getChildAt(i)).getTab(); } @Override // android.widget.Adapter public View getView(int i, View view, ViewGroup viewGroup) { if (view == null) { return ScrollingTabContainerView.this.createTabView((ActionBar.Tab) getItem(i), true); } ((TabView) view).bindTab((ActionBar.Tab) getItem(i)); return view; } } /* JADX INFO: Access modifiers changed from: private */ /* loaded from: classes.dex */ public class TabClickListener implements View.OnClickListener { TabClickListener() { } @Override // android.view.View.OnClickListener public void onClick(View view) { ((TabView) view).getTab().select(); int childCount = ScrollingTabContainerView.this.mTabLayout.getChildCount(); for (int i = 0; i < childCount; i++) { View childAt = ScrollingTabContainerView.this.mTabLayout.getChildAt(i); childAt.setSelected(childAt == view); } } } /* loaded from: classes.dex */ protected class VisibilityAnimListener extends AnimatorListenerAdapter { private boolean mCanceled = false; private int mFinalVisibility; @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationCancel(Animator animator) { this.mCanceled = true; } protected VisibilityAnimListener() { } public VisibilityAnimListener withFinalVisibility(ViewPropertyAnimator viewPropertyAnimator, int i) { this.mFinalVisibility = i; ScrollingTabContainerView.this.mVisibilityAnim = viewPropertyAnimator; return this; } @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationStart(Animator animator) { ScrollingTabContainerView.this.setVisibility(0); this.mCanceled = false; } @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener public void onAnimationEnd(Animator animator) { if (this.mCanceled) { return; } ScrollingTabContainerView.this.mVisibilityAnim = null; ScrollingTabContainerView.this.setVisibility(this.mFinalVisibility); } } }