package androidx.constraintlayout.widget; import android.content.Context; import android.content.res.TypedArray; import android.util.Log; import android.util.SparseArray; import android.util.Xml; import java.io.IOException; import java.util.ArrayList; import java.util.Iterator; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; /* loaded from: classes.dex */ public class StateSet { private static final boolean DEBUG = false; public static final String TAG = "ConstraintLayoutStates"; ConstraintSet mDefaultConstraintSet; int mDefaultState = -1; int mCurrentStateId = -1; int mCurrentConstraintNumber = -1; private SparseArray mStateList = new SparseArray<>(); private SparseArray mConstraintSetMap = new SparseArray<>(); private ConstraintsChangedListener mConstraintsChangedListener = null; public void setOnConstraintsChanged(ConstraintsChangedListener constraintsChangedListener) { this.mConstraintsChangedListener = constraintsChangedListener; } public StateSet(Context context, XmlPullParser parser) { load(context, parser); } private void load(Context context, XmlPullParser parser) { TypedArray obtainStyledAttributes = context.obtainStyledAttributes(Xml.asAttributeSet(parser), R.styleable.StateSet); int indexCount = obtainStyledAttributes.getIndexCount(); for (int i = 0; i < indexCount; i++) { int index = obtainStyledAttributes.getIndex(i); if (index == R.styleable.StateSet_defaultState) { this.mDefaultState = obtainStyledAttributes.getResourceId(index, this.mDefaultState); } } obtainStyledAttributes.recycle(); try { int eventType = parser.getEventType(); State state = null; while (true) { char c = 1; if (eventType == 1) { return; } if (eventType == 0) { parser.getName(); } else if (eventType == 2) { String name = parser.getName(); switch (name.hashCode()) { case 80204913: if (name.equals("State")) { c = 2; break; } c = 65535; break; case 1301459538: if (name.equals("LayoutDescription")) { c = 0; break; } c = 65535; break; case 1382829617: if (name.equals("StateSet")) { break; } c = 65535; break; case 1901439077: if (name.equals("Variant")) { c = 3; break; } c = 65535; break; default: c = 65535; break; } if (c == 2) { state = new State(context, parser); this.mStateList.put(state.mId, state); } else if (c == 3) { Variant variant = new Variant(context, parser); if (state != null) { state.add(variant); } } } else if (eventType != 3) { continue; } else if ("StateSet".equals(parser.getName())) { return; } eventType = parser.next(); } } catch (IOException e) { e.printStackTrace(); } catch (XmlPullParserException e2) { e2.printStackTrace(); } } public boolean needsToChange(int id, float width, float height) { int i = this.mCurrentStateId; if (i != id) { return true; } State valueAt = id == -1 ? this.mStateList.valueAt(0) : this.mStateList.get(i); return (this.mCurrentConstraintNumber == -1 || !valueAt.mVariants.get(this.mCurrentConstraintNumber).match(width, height)) && this.mCurrentConstraintNumber != valueAt.findMatch(width, height); } public int stateGetConstraintID(int id, int width, int height) { return updateConstraints(-1, id, width, height); } public int convertToConstraintSet(int currentConstrainSettId, int stateId, float width, float height) { State state = this.mStateList.get(stateId); if (state == null) { return stateId; } if (width == -1.0f || height == -1.0f) { if (state.mConstraintID == currentConstrainSettId) { return currentConstrainSettId; } Iterator it = state.mVariants.iterator(); while (it.hasNext()) { if (currentConstrainSettId == it.next().mConstraintID) { return currentConstrainSettId; } } return state.mConstraintID; } Iterator it2 = state.mVariants.iterator(); Variant variant = null; while (it2.hasNext()) { Variant next = it2.next(); if (next.match(width, height)) { if (currentConstrainSettId == next.mConstraintID) { return currentConstrainSettId; } variant = next; } } if (variant != null) { return variant.mConstraintID; } return state.mConstraintID; } public int updateConstraints(int currentId, int id, float width, float height) { State state; int findMatch; if (currentId != id) { State state2 = this.mStateList.get(id); if (state2 == null) { return -1; } int findMatch2 = state2.findMatch(width, height); return findMatch2 == -1 ? state2.mConstraintID : state2.mVariants.get(findMatch2).mConstraintID; } if (id == -1) { state = this.mStateList.valueAt(0); } else { state = this.mStateList.get(this.mCurrentStateId); } if (state == null) { return -1; } return ((this.mCurrentConstraintNumber == -1 || !state.mVariants.get(currentId).match(width, height)) && currentId != (findMatch = state.findMatch(width, height))) ? findMatch == -1 ? state.mConstraintID : state.mVariants.get(findMatch).mConstraintID : currentId; } static class State { int mConstraintID; int mId; boolean mIsLayout; ArrayList mVariants = new ArrayList<>(); public State(Context context, XmlPullParser parser) { this.mConstraintID = -1; this.mIsLayout = false; TypedArray obtainStyledAttributes = context.obtainStyledAttributes(Xml.asAttributeSet(parser), R.styleable.State); int indexCount = obtainStyledAttributes.getIndexCount(); for (int i = 0; i < indexCount; i++) { int index = obtainStyledAttributes.getIndex(i); if (index == R.styleable.State_android_id) { this.mId = obtainStyledAttributes.getResourceId(index, this.mId); } else if (index == R.styleable.State_constraints) { this.mConstraintID = obtainStyledAttributes.getResourceId(index, this.mConstraintID); String resourceTypeName = context.getResources().getResourceTypeName(this.mConstraintID); context.getResources().getResourceName(this.mConstraintID); if ("layout".equals(resourceTypeName)) { this.mIsLayout = true; } } } obtainStyledAttributes.recycle(); } void add(Variant size) { this.mVariants.add(size); } public int findMatch(float width, float height) { for (int i = 0; i < this.mVariants.size(); i++) { if (this.mVariants.get(i).match(width, height)) { return i; } } return -1; } } static class Variant { int mConstraintID; int mId; boolean mIsLayout; float mMaxHeight; float mMaxWidth; float mMinHeight; float mMinWidth; public Variant(Context context, XmlPullParser parser) { this.mMinWidth = Float.NaN; this.mMinHeight = Float.NaN; this.mMaxWidth = Float.NaN; this.mMaxHeight = Float.NaN; this.mConstraintID = -1; this.mIsLayout = false; TypedArray obtainStyledAttributes = context.obtainStyledAttributes(Xml.asAttributeSet(parser), R.styleable.Variant); int indexCount = obtainStyledAttributes.getIndexCount(); for (int i = 0; i < indexCount; i++) { int index = obtainStyledAttributes.getIndex(i); if (index == R.styleable.Variant_constraints) { this.mConstraintID = obtainStyledAttributes.getResourceId(index, this.mConstraintID); String resourceTypeName = context.getResources().getResourceTypeName(this.mConstraintID); context.getResources().getResourceName(this.mConstraintID); if ("layout".equals(resourceTypeName)) { this.mIsLayout = true; } } else if (index == R.styleable.Variant_region_heightLessThan) { this.mMaxHeight = obtainStyledAttributes.getDimension(index, this.mMaxHeight); } else if (index == R.styleable.Variant_region_heightMoreThan) { this.mMinHeight = obtainStyledAttributes.getDimension(index, this.mMinHeight); } else if (index == R.styleable.Variant_region_widthLessThan) { this.mMaxWidth = obtainStyledAttributes.getDimension(index, this.mMaxWidth); } else if (index == R.styleable.Variant_region_widthMoreThan) { this.mMinWidth = obtainStyledAttributes.getDimension(index, this.mMinWidth); } else { Log.v("ConstraintLayoutStates", "Unknown tag"); } } obtainStyledAttributes.recycle(); } boolean match(float widthDp, float heightDp) { if (!Float.isNaN(this.mMinWidth) && widthDp < this.mMinWidth) { return false; } if (!Float.isNaN(this.mMinHeight) && heightDp < this.mMinHeight) { return false; } if (Float.isNaN(this.mMaxWidth) || widthDp <= this.mMaxWidth) { return Float.isNaN(this.mMaxHeight) || heightDp <= this.mMaxHeight; } return false; } } }