package com.google.android.material.button; import android.content.Context; import android.graphics.Canvas; import android.text.TextUtils; import android.util.AttributeSet; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.view.accessibility.AccessibilityNodeInfo; import android.widget.LinearLayout; import android.widget.RadioButton; import android.widget.ToggleButton; import androidx.core.view.AccessibilityDelegateCompat; import androidx.core.view.MarginLayoutParamsCompat; import androidx.core.view.ViewCompat; import androidx.core.view.accessibility.AccessibilityNodeInfoCompat; import com.google.android.material.R; import com.google.android.material.button.MaterialButton; import com.google.android.material.internal.ViewUtils; import com.google.android.material.shape.AbsoluteCornerSize; import com.google.android.material.shape.CornerSize; import com.google.android.material.shape.ShapeAppearanceModel; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; import java.util.TreeMap; /* loaded from: classes.dex */ public class MaterialButtonToggleGroup extends LinearLayout { private static final int DEF_STYLE_RES = R.style.Widget_MaterialComponents_MaterialButtonToggleGroup; private static final String LOG_TAG = "MButtonToggleGroup"; private Set checkedIds; private Integer[] childOrder; private final Comparator childOrderComparator; private final int defaultCheckId; private final LinkedHashSet onButtonCheckedListeners; private final List originalCornerData; private final PressedStateTracker pressedStateTracker; private boolean selectionRequired; private boolean singleSelection; private boolean skipCheckedStateTracker; public interface OnButtonCheckedListener { void onButtonChecked(MaterialButtonToggleGroup materialButtonToggleGroup, int i, boolean z); } public boolean isSelectionRequired() { return this.selectionRequired; } public boolean isSingleSelection() { return this.singleSelection; } public void setSelectionRequired(boolean z) { this.selectionRequired = z; } public MaterialButtonToggleGroup(Context context) { this(context, null); } public MaterialButtonToggleGroup(Context context, AttributeSet attributeSet) { this(context, attributeSet, R.attr.materialButtonToggleGroupStyle); } /* JADX WARN: Illegal instructions before constructor call */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ public MaterialButtonToggleGroup(android.content.Context r7, android.util.AttributeSet r8, int r9) { /* r6 = this; int r4 = com.google.android.material.button.MaterialButtonToggleGroup.DEF_STYLE_RES android.content.Context r7 = com.google.android.material.theme.overlay.MaterialThemeOverlay.wrap(r7, r8, r9, r4) r6.(r7, r8, r9) java.util.ArrayList r7 = new java.util.ArrayList r7.() r6.originalCornerData = r7 com.google.android.material.button.MaterialButtonToggleGroup$PressedStateTracker r7 = new com.google.android.material.button.MaterialButtonToggleGroup$PressedStateTracker r0 = 0 r7.() r6.pressedStateTracker = r7 java.util.LinkedHashSet r7 = new java.util.LinkedHashSet r7.() r6.onButtonCheckedListeners = r7 com.google.android.material.button.MaterialButtonToggleGroup$1 r7 = new com.google.android.material.button.MaterialButtonToggleGroup$1 r7.() r6.childOrderComparator = r7 r7 = 0 r6.skipCheckedStateTracker = r7 java.util.HashSet r0 = new java.util.HashSet r0.() r6.checkedIds = r0 android.content.Context r0 = r6.getContext() int[] r2 = com.google.android.material.R.styleable.MaterialButtonToggleGroup int[] r5 = new int[r7] r1 = r8 r3 = r9 android.content.res.TypedArray r8 = com.google.android.material.internal.ThemeEnforcement.obtainStyledAttributes(r0, r1, r2, r3, r4, r5) int r9 = com.google.android.material.R.styleable.MaterialButtonToggleGroup_singleSelection boolean r9 = r8.getBoolean(r9, r7) r6.setSingleSelection(r9) int r9 = com.google.android.material.R.styleable.MaterialButtonToggleGroup_checkedButton r0 = -1 int r9 = r8.getResourceId(r9, r0) r6.defaultCheckId = r9 int r9 = com.google.android.material.R.styleable.MaterialButtonToggleGroup_selectionRequired boolean r7 = r8.getBoolean(r9, r7) r6.selectionRequired = r7 r7 = 1 r6.setChildrenDrawingOrderEnabled(r7) int r9 = com.google.android.material.R.styleable.MaterialButtonToggleGroup_android_enabled boolean r9 = r8.getBoolean(r9, r7) r6.setEnabled(r9) r8.recycle() androidx.core.view.ViewCompat.setImportantForAccessibility(r6, r7) return */ throw new UnsupportedOperationException("Method not decompiled: com.google.android.material.button.MaterialButtonToggleGroup.(android.content.Context, android.util.AttributeSet, int):void"); } @Override // android.view.View protected void onFinishInflate() { super.onFinishInflate(); int i = this.defaultCheckId; if (i != -1) { updateCheckedIds(Collections.singleton(Integer.valueOf(i))); } } @Override // android.view.ViewGroup, android.view.View protected void dispatchDraw(Canvas canvas) { updateChildOrder(); super.dispatchDraw(canvas); } @Override // android.view.ViewGroup public void addView(View view, int i, ViewGroup.LayoutParams layoutParams) { if (!(view instanceof MaterialButton)) { Log.e(LOG_TAG, "Child views must be of type MaterialButton."); return; } super.addView(view, i, layoutParams); MaterialButton materialButton = (MaterialButton) view; setGeneratedIdIfNeeded(materialButton); setupButtonChild(materialButton); checkInternal(materialButton.getId(), materialButton.isChecked()); ShapeAppearanceModel shapeAppearanceModel = materialButton.getShapeAppearanceModel(); this.originalCornerData.add(new CornerData(shapeAppearanceModel.getTopLeftCornerSize(), shapeAppearanceModel.getBottomLeftCornerSize(), shapeAppearanceModel.getTopRightCornerSize(), shapeAppearanceModel.getBottomRightCornerSize())); materialButton.setEnabled(isEnabled()); ViewCompat.setAccessibilityDelegate(materialButton, new AccessibilityDelegateCompat() { // from class: com.google.android.material.button.MaterialButtonToggleGroup.2 @Override // androidx.core.view.AccessibilityDelegateCompat public void onInitializeAccessibilityNodeInfo(View view2, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) { super.onInitializeAccessibilityNodeInfo(view2, accessibilityNodeInfoCompat); accessibilityNodeInfoCompat.setCollectionItemInfo(AccessibilityNodeInfoCompat.CollectionItemInfoCompat.obtain(0, 1, MaterialButtonToggleGroup.this.getIndexWithinVisibleButtons(view2), 1, false, ((MaterialButton) view2).isChecked())); } }); } @Override // android.view.ViewGroup public void onViewRemoved(View view) { super.onViewRemoved(view); if (view instanceof MaterialButton) { ((MaterialButton) view).setOnPressedChangeListenerInternal(null); } int indexOfChild = indexOfChild(view); if (indexOfChild >= 0) { this.originalCornerData.remove(indexOfChild); } updateChildShapes(); adjustChildMarginsAndUpdateLayout(); } @Override // android.widget.LinearLayout, android.view.View protected void onMeasure(int i, int i2) { updateChildShapes(); adjustChildMarginsAndUpdateLayout(); super.onMeasure(i, i2); } @Override // android.view.View public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo accessibilityNodeInfo) { super.onInitializeAccessibilityNodeInfo(accessibilityNodeInfo); AccessibilityNodeInfoCompat.wrap(accessibilityNodeInfo).setCollectionInfo(AccessibilityNodeInfoCompat.CollectionInfoCompat.obtain(1, getVisibleButtonCount(), false, isSingleSelection() ? 1 : 2)); } public void check(int i) { checkInternal(i, true); } public void uncheck(int i) { checkInternal(i, false); } public void clearChecked() { updateCheckedIds(new HashSet()); } public int getCheckedButtonId() { if (!this.singleSelection || this.checkedIds.isEmpty()) { return -1; } return this.checkedIds.iterator().next().intValue(); } public List getCheckedButtonIds() { ArrayList arrayList = new ArrayList(); for (int i = 0; i < getChildCount(); i++) { int id = getChildButton(i).getId(); if (this.checkedIds.contains(Integer.valueOf(id))) { arrayList.add(Integer.valueOf(id)); } } return arrayList; } public void addOnButtonCheckedListener(OnButtonCheckedListener onButtonCheckedListener) { this.onButtonCheckedListeners.add(onButtonCheckedListener); } public void removeOnButtonCheckedListener(OnButtonCheckedListener onButtonCheckedListener) { this.onButtonCheckedListeners.remove(onButtonCheckedListener); } public void clearOnButtonCheckedListeners() { this.onButtonCheckedListeners.clear(); } public void setSingleSelection(boolean z) { if (this.singleSelection != z) { this.singleSelection = z; clearChecked(); } updateChildrenA11yClassName(); } private void updateChildrenA11yClassName() { for (int i = 0; i < getChildCount(); i++) { getChildButton(i).setA11yClassName((this.singleSelection ? RadioButton.class : ToggleButton.class).getName()); } } public void setSingleSelection(int i) { setSingleSelection(getResources().getBoolean(i)); } private void setCheckedStateForView(int i, boolean z) { View findViewById = findViewById(i); if (findViewById instanceof MaterialButton) { this.skipCheckedStateTracker = true; ((MaterialButton) findViewById).setChecked(z); this.skipCheckedStateTracker = false; } } private void adjustChildMarginsAndUpdateLayout() { int firstVisibleChildIndex = getFirstVisibleChildIndex(); if (firstVisibleChildIndex == -1) { return; } for (int i = firstVisibleChildIndex + 1; i < getChildCount(); i++) { MaterialButton childButton = getChildButton(i); int min = Math.min(childButton.getStrokeWidth(), getChildButton(i - 1).getStrokeWidth()); LinearLayout.LayoutParams buildLayoutParams = buildLayoutParams(childButton); if (getOrientation() == 0) { MarginLayoutParamsCompat.setMarginEnd(buildLayoutParams, 0); MarginLayoutParamsCompat.setMarginStart(buildLayoutParams, -min); buildLayoutParams.topMargin = 0; } else { buildLayoutParams.bottomMargin = 0; buildLayoutParams.topMargin = -min; MarginLayoutParamsCompat.setMarginStart(buildLayoutParams, 0); } childButton.setLayoutParams(buildLayoutParams); } resetChildMargins(firstVisibleChildIndex); } private MaterialButton getChildButton(int i) { return (MaterialButton) getChildAt(i); } private void resetChildMargins(int i) { if (getChildCount() == 0 || i == -1) { return; } LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) getChildButton(i).getLayoutParams(); if (getOrientation() == 1) { layoutParams.topMargin = 0; layoutParams.bottomMargin = 0; } else { MarginLayoutParamsCompat.setMarginEnd(layoutParams, 0); MarginLayoutParamsCompat.setMarginStart(layoutParams, 0); layoutParams.leftMargin = 0; layoutParams.rightMargin = 0; } } void updateChildShapes() { int childCount = getChildCount(); int firstVisibleChildIndex = getFirstVisibleChildIndex(); int lastVisibleChildIndex = getLastVisibleChildIndex(); for (int i = 0; i < childCount; i++) { MaterialButton childButton = getChildButton(i); if (childButton.getVisibility() != 8) { ShapeAppearanceModel.Builder builder = childButton.getShapeAppearanceModel().toBuilder(); updateBuilderWithCornerData(builder, getNewCornerData(i, firstVisibleChildIndex, lastVisibleChildIndex)); childButton.setShapeAppearanceModel(builder.build()); } } } private int getFirstVisibleChildIndex() { int childCount = getChildCount(); for (int i = 0; i < childCount; i++) { if (isChildVisible(i)) { return i; } } return -1; } private int getLastVisibleChildIndex() { for (int childCount = getChildCount() - 1; childCount >= 0; childCount--) { if (isChildVisible(childCount)) { return childCount; } } return -1; } private boolean isChildVisible(int i) { return getChildAt(i).getVisibility() != 8; } private int getVisibleButtonCount() { int i = 0; for (int i2 = 0; i2 < getChildCount(); i2++) { if ((getChildAt(i2) instanceof MaterialButton) && isChildVisible(i2)) { i++; } } return i; } /* JADX INFO: Access modifiers changed from: private */ public int getIndexWithinVisibleButtons(View view) { if (!(view instanceof MaterialButton)) { return -1; } int i = 0; for (int i2 = 0; i2 < getChildCount(); i2++) { if (getChildAt(i2) == view) { return i; } if ((getChildAt(i2) instanceof MaterialButton) && isChildVisible(i2)) { i++; } } return -1; } private CornerData getNewCornerData(int i, int i2, int i3) { CornerData cornerData = this.originalCornerData.get(i); if (i2 == i3) { return cornerData; } boolean z = getOrientation() == 0; if (i == i2) { return z ? CornerData.start(cornerData, this) : CornerData.top(cornerData); } if (i == i3) { return z ? CornerData.end(cornerData, this) : CornerData.bottom(cornerData); } return null; } private static void updateBuilderWithCornerData(ShapeAppearanceModel.Builder builder, CornerData cornerData) { if (cornerData == null) { builder.setAllCornerSizes(0.0f); } else { builder.setTopLeftCornerSize(cornerData.topLeft).setBottomLeftCornerSize(cornerData.bottomLeft).setTopRightCornerSize(cornerData.topRight).setBottomRightCornerSize(cornerData.bottomRight); } } private void checkInternal(int i, boolean z) { if (i == -1) { Log.e(LOG_TAG, "Button ID is not valid: " + i); return; } HashSet hashSet = new HashSet(this.checkedIds); if (z && !hashSet.contains(Integer.valueOf(i))) { if (this.singleSelection && !hashSet.isEmpty()) { hashSet.clear(); } hashSet.add(Integer.valueOf(i)); } else { if (z || !hashSet.contains(Integer.valueOf(i))) { return; } if (!this.selectionRequired || hashSet.size() > 1) { hashSet.remove(Integer.valueOf(i)); } } updateCheckedIds(hashSet); } private void updateCheckedIds(Set set) { Set set2 = this.checkedIds; this.checkedIds = new HashSet(set); for (int i = 0; i < getChildCount(); i++) { int id = getChildButton(i).getId(); setCheckedStateForView(id, set.contains(Integer.valueOf(id))); if (set2.contains(Integer.valueOf(id)) != set.contains(Integer.valueOf(id))) { dispatchOnButtonChecked(id, set.contains(Integer.valueOf(id))); } } invalidate(); } private void dispatchOnButtonChecked(int i, boolean z) { Iterator it = this.onButtonCheckedListeners.iterator(); while (it.hasNext()) { it.next().onButtonChecked(this, i, z); } } private void setGeneratedIdIfNeeded(MaterialButton materialButton) { if (materialButton.getId() == -1) { materialButton.setId(ViewCompat.generateViewId()); } } private void setupButtonChild(MaterialButton materialButton) { materialButton.setMaxLines(1); materialButton.setEllipsize(TextUtils.TruncateAt.END); materialButton.setCheckable(true); materialButton.setOnPressedChangeListenerInternal(this.pressedStateTracker); materialButton.setShouldDrawSurfaceColorStroke(true); } private LinearLayout.LayoutParams buildLayoutParams(View view) { ViewGroup.LayoutParams layoutParams = view.getLayoutParams(); if (layoutParams instanceof LinearLayout.LayoutParams) { return (LinearLayout.LayoutParams) layoutParams; } return new LinearLayout.LayoutParams(layoutParams.width, layoutParams.height); } @Override // android.view.ViewGroup protected int getChildDrawingOrder(int i, int i2) { Integer[] numArr = this.childOrder; if (numArr == null || i2 >= numArr.length) { Log.w(LOG_TAG, "Child order wasn't updated"); return i2; } return numArr[i2].intValue(); } private void updateChildOrder() { TreeMap treeMap = new TreeMap(this.childOrderComparator); int childCount = getChildCount(); for (int i = 0; i < childCount; i++) { treeMap.put(getChildButton(i), Integer.valueOf(i)); } this.childOrder = (Integer[]) treeMap.values().toArray(new Integer[0]); } void onButtonCheckedStateChanged(MaterialButton materialButton, boolean z) { if (this.skipCheckedStateTracker) { return; } checkInternal(materialButton.getId(), z); } @Override // android.view.View public void setEnabled(boolean z) { super.setEnabled(z); for (int i = 0; i < getChildCount(); i++) { getChildButton(i).setEnabled(z); } } private class PressedStateTracker implements MaterialButton.OnPressedChangeListener { private PressedStateTracker() { } @Override // com.google.android.material.button.MaterialButton.OnPressedChangeListener public void onPressedChanged(MaterialButton materialButton, boolean z) { MaterialButtonToggleGroup.this.invalidate(); } } private static class CornerData { private static final CornerSize noCorner = new AbsoluteCornerSize(0.0f); CornerSize bottomLeft; CornerSize bottomRight; CornerSize topLeft; CornerSize topRight; CornerData(CornerSize cornerSize, CornerSize cornerSize2, CornerSize cornerSize3, CornerSize cornerSize4) { this.topLeft = cornerSize; this.topRight = cornerSize3; this.bottomRight = cornerSize4; this.bottomLeft = cornerSize2; } public static CornerData start(CornerData cornerData, View view) { return ViewUtils.isLayoutRtl(view) ? right(cornerData) : left(cornerData); } public static CornerData end(CornerData cornerData, View view) { return ViewUtils.isLayoutRtl(view) ? left(cornerData) : right(cornerData); } public static CornerData left(CornerData cornerData) { CornerSize cornerSize = cornerData.topLeft; CornerSize cornerSize2 = cornerData.bottomLeft; CornerSize cornerSize3 = noCorner; return new CornerData(cornerSize, cornerSize2, cornerSize3, cornerSize3); } public static CornerData right(CornerData cornerData) { CornerSize cornerSize = noCorner; return new CornerData(cornerSize, cornerSize, cornerData.topRight, cornerData.bottomRight); } public static CornerData top(CornerData cornerData) { CornerSize cornerSize = cornerData.topLeft; CornerSize cornerSize2 = noCorner; return new CornerData(cornerSize, cornerSize2, cornerData.topRight, cornerSize2); } public static CornerData bottom(CornerData cornerData) { CornerSize cornerSize = noCorner; return new CornerData(cornerSize, cornerData.bottomLeft, cornerSize, cornerData.bottomRight); } } }