package androidx.constraintlayout.motion.widget; import android.graphics.Rect; import android.util.Log; import android.view.View; import androidx.constraintlayout.core.motion.utils.Easing; import androidx.constraintlayout.motion.utils.ViewSpline; import androidx.constraintlayout.widget.ConstraintAttribute; import androidx.constraintlayout.widget.ConstraintSet; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedHashMap; /* loaded from: classes.dex */ class MotionConstrainedPoint implements Comparable { static final int CARTESIAN = 2; public static final boolean DEBUG = false; static final int PERPENDICULAR = 1; public static final String TAG = "MotionPaths"; static String[] names = {"position", "x", "y", "width", "height", "pathRotate"}; private float height; private Easing mKeyFrameEasing; private float position; int visibility; private float width; private float x; private float y; private float alpha = 1.0f; int mVisibilityMode = 0; private boolean applyElevation = false; private float elevation = 0.0f; private float rotation = 0.0f; private float rotationX = 0.0f; public float rotationY = 0.0f; private float scaleX = 1.0f; private float scaleY = 1.0f; private float mPivotX = Float.NaN; private float mPivotY = Float.NaN; private float translationX = 0.0f; private float translationY = 0.0f; private float translationZ = 0.0f; private int mDrawPath = 0; private float mPathRotate = Float.NaN; private float mProgress = Float.NaN; private int mAnimateRelativeTo = -1; LinkedHashMap attributes = new LinkedHashMap<>(); int mMode = 0; double[] mTempValue = new double[18]; double[] mTempDelta = new double[18]; void setBounds(float x, float y, float w, float h) { this.x = x; this.y = y; this.width = w; this.height = h; } private boolean diff(float a, float b) { return (Float.isNaN(a) || Float.isNaN(b)) ? Float.isNaN(a) != Float.isNaN(b) : Math.abs(a - b) > 1.0E-6f; } void different(MotionConstrainedPoint points, HashSet keySet) { if (diff(this.alpha, points.alpha)) { keySet.add("alpha"); } if (diff(this.elevation, points.elevation)) { keySet.add("elevation"); } int i = this.visibility; int i2 = points.visibility; if (i != i2 && this.mVisibilityMode == 0 && (i == 0 || i2 == 0)) { keySet.add("alpha"); } if (diff(this.rotation, points.rotation)) { keySet.add(Key.ROTATION); } if (!Float.isNaN(this.mPathRotate) || !Float.isNaN(points.mPathRotate)) { keySet.add("transitionPathRotate"); } if (!Float.isNaN(this.mProgress) || !Float.isNaN(points.mProgress)) { keySet.add("progress"); } if (diff(this.rotationX, points.rotationX)) { keySet.add("rotationX"); } if (diff(this.rotationY, points.rotationY)) { keySet.add("rotationY"); } if (diff(this.mPivotX, points.mPivotX)) { keySet.add(Key.PIVOT_X); } if (diff(this.mPivotY, points.mPivotY)) { keySet.add(Key.PIVOT_Y); } if (diff(this.scaleX, points.scaleX)) { keySet.add("scaleX"); } if (diff(this.scaleY, points.scaleY)) { keySet.add("scaleY"); } if (diff(this.translationX, points.translationX)) { keySet.add("translationX"); } if (diff(this.translationY, points.translationY)) { keySet.add("translationY"); } if (diff(this.translationZ, points.translationZ)) { keySet.add("translationZ"); } } void different(MotionConstrainedPoint points, boolean[] mask, String[] custom) { mask[0] = mask[0] | diff(this.position, points.position); mask[1] = mask[1] | diff(this.x, points.x); mask[2] = mask[2] | diff(this.y, points.y); mask[3] = mask[3] | diff(this.width, points.width); mask[4] = diff(this.height, points.height) | mask[4]; } void fillStandard(double[] data, int[] toUse) { float[] fArr = {this.position, this.x, this.y, this.width, this.height, this.alpha, this.elevation, this.rotation, this.rotationX, this.rotationY, this.scaleX, this.scaleY, this.mPivotX, this.mPivotY, this.translationX, this.translationY, this.translationZ, this.mPathRotate}; int i = 0; for (int i2 : toUse) { if (i2 < 18) { data[i] = fArr[r4]; i++; } } } boolean hasCustomData(String name) { return this.attributes.containsKey(name); } int getCustomDataCount(String name) { return this.attributes.get(name).numberOfInterpolatedValues(); } int getCustomData(String name, double[] value, int offset) { ConstraintAttribute constraintAttribute = this.attributes.get(name); if (constraintAttribute.numberOfInterpolatedValues() == 1) { value[offset] = constraintAttribute.getValueToInterpolate(); return 1; } int numberOfInterpolatedValues = constraintAttribute.numberOfInterpolatedValues(); constraintAttribute.getValuesToInterpolate(new float[numberOfInterpolatedValues]); int i = 0; while (i < numberOfInterpolatedValues) { value[offset] = r1[i]; i++; offset++; } return numberOfInterpolatedValues; } @Override // java.lang.Comparable public int compareTo(MotionConstrainedPoint o) { return Float.compare(this.position, o.position); } public void applyParameters(View view) { this.visibility = view.getVisibility(); this.alpha = view.getVisibility() != 0 ? 0.0f : view.getAlpha(); this.applyElevation = false; this.elevation = view.getElevation(); this.rotation = view.getRotation(); this.rotationX = view.getRotationX(); this.rotationY = view.getRotationY(); this.scaleX = view.getScaleX(); this.scaleY = view.getScaleY(); this.mPivotX = view.getPivotX(); this.mPivotY = view.getPivotY(); this.translationX = view.getTranslationX(); this.translationY = view.getTranslationY(); this.translationZ = view.getTranslationZ(); } public void applyParameters(ConstraintSet.Constraint c) { this.mVisibilityMode = c.propertySet.mVisibilityMode; this.visibility = c.propertySet.visibility; this.alpha = (c.propertySet.visibility == 0 || this.mVisibilityMode != 0) ? c.propertySet.alpha : 0.0f; this.applyElevation = c.transform.applyElevation; this.elevation = c.transform.elevation; this.rotation = c.transform.rotation; this.rotationX = c.transform.rotationX; this.rotationY = c.transform.rotationY; this.scaleX = c.transform.scaleX; this.scaleY = c.transform.scaleY; this.mPivotX = c.transform.transformPivotX; this.mPivotY = c.transform.transformPivotY; this.translationX = c.transform.translationX; this.translationY = c.transform.translationY; this.translationZ = c.transform.translationZ; this.mKeyFrameEasing = Easing.getInterpolator(c.motion.mTransitionEasing); this.mPathRotate = c.motion.mPathRotate; this.mDrawPath = c.motion.mDrawPath; this.mAnimateRelativeTo = c.motion.mAnimateRelativeTo; this.mProgress = c.propertySet.mProgress; for (String str : c.mCustomConstraints.keySet()) { ConstraintAttribute constraintAttribute = c.mCustomConstraints.get(str); if (constraintAttribute.isContinuous()) { this.attributes.put(str, constraintAttribute); } } } /* JADX WARN: Failed to restore switch over string. Please report as a decompilation issue */ public void addValues(HashMap splines, int mFramePosition) { for (String str : splines.keySet()) { ViewSpline viewSpline = splines.get(str); str.hashCode(); char c = 65535; switch (str.hashCode()) { case -1249320806: if (str.equals("rotationX")) { c = 0; break; } break; case -1249320805: if (str.equals("rotationY")) { c = 1; break; } break; case -1225497657: if (str.equals("translationX")) { c = 2; break; } break; case -1225497656: if (str.equals("translationY")) { c = 3; break; } break; case -1225497655: if (str.equals("translationZ")) { c = 4; break; } break; case -1001078227: if (str.equals("progress")) { c = 5; break; } break; case -908189618: if (str.equals("scaleX")) { c = 6; break; } break; case -908189617: if (str.equals("scaleY")) { c = 7; break; } break; case -760884510: if (str.equals(Key.PIVOT_X)) { c = '\b'; break; } break; case -760884509: if (str.equals(Key.PIVOT_Y)) { c = '\t'; break; } break; case -40300674: if (str.equals(Key.ROTATION)) { c = '\n'; break; } break; case -4379043: if (str.equals("elevation")) { c = 11; break; } break; case 37232917: if (str.equals("transitionPathRotate")) { c = '\f'; break; } break; case 92909918: if (str.equals("alpha")) { c = '\r'; break; } break; } switch (c) { case 0: viewSpline.setPoint(mFramePosition, Float.isNaN(this.rotationX) ? 0.0f : this.rotationX); break; case 1: viewSpline.setPoint(mFramePosition, Float.isNaN(this.rotationY) ? 0.0f : this.rotationY); break; case 2: viewSpline.setPoint(mFramePosition, Float.isNaN(this.translationX) ? 0.0f : this.translationX); break; case 3: viewSpline.setPoint(mFramePosition, Float.isNaN(this.translationY) ? 0.0f : this.translationY); break; case 4: viewSpline.setPoint(mFramePosition, Float.isNaN(this.translationZ) ? 0.0f : this.translationZ); break; case 5: viewSpline.setPoint(mFramePosition, Float.isNaN(this.mProgress) ? 0.0f : this.mProgress); break; case 6: viewSpline.setPoint(mFramePosition, Float.isNaN(this.scaleX) ? 1.0f : this.scaleX); break; case 7: viewSpline.setPoint(mFramePosition, Float.isNaN(this.scaleY) ? 1.0f : this.scaleY); break; case '\b': viewSpline.setPoint(mFramePosition, Float.isNaN(this.mPivotX) ? 0.0f : this.mPivotX); break; case '\t': viewSpline.setPoint(mFramePosition, Float.isNaN(this.mPivotY) ? 0.0f : this.mPivotY); break; case '\n': viewSpline.setPoint(mFramePosition, Float.isNaN(this.rotation) ? 0.0f : this.rotation); break; case 11: viewSpline.setPoint(mFramePosition, Float.isNaN(this.elevation) ? 0.0f : this.elevation); break; case '\f': viewSpline.setPoint(mFramePosition, Float.isNaN(this.mPathRotate) ? 0.0f : this.mPathRotate); break; case '\r': viewSpline.setPoint(mFramePosition, Float.isNaN(this.alpha) ? 1.0f : this.alpha); break; default: if (!str.startsWith("CUSTOM")) { Log.e("MotionPaths", "UNKNOWN spline " + str); break; } else { String str2 = str.split(",")[1]; if (this.attributes.containsKey(str2)) { ConstraintAttribute constraintAttribute = this.attributes.get(str2); if (viewSpline instanceof ViewSpline.CustomSet) { ((ViewSpline.CustomSet) viewSpline).setPoint(mFramePosition, constraintAttribute); break; } else { Log.e("MotionPaths", str + " ViewSpline not a CustomSet frame = " + mFramePosition + ", value" + constraintAttribute.getValueToInterpolate() + viewSpline); break; } } else { break; } } } } } public void setState(View view) { setBounds(view.getX(), view.getY(), view.getWidth(), view.getHeight()); applyParameters(view); } public void setState(Rect rect, View view, int rotation, float prevous) { setBounds(rect.left, rect.top, rect.width(), rect.height()); applyParameters(view); this.mPivotX = Float.NaN; this.mPivotY = Float.NaN; if (rotation == 1) { this.rotation = prevous - 90.0f; } else { if (rotation != 2) { return; } this.rotation = prevous + 90.0f; } } public void setState(Rect cw, ConstraintSet constraintSet, int rotation, int viewId) { setBounds(cw.left, cw.top, cw.width(), cw.height()); applyParameters(constraintSet.getParameters(viewId)); if (rotation != 1) { if (rotation != 2) { if (rotation != 3) { if (rotation != 4) { return; } } } float f = this.rotation + 90.0f; this.rotation = f; if (f > 180.0f) { this.rotation = f - 360.0f; return; } return; } this.rotation -= 90.0f; } }