Rabbit-R1/original r1/java/sources/androidx/constraintlayout/widget/ConstraintAttribute.java
2024-05-21 17:08:36 -04:00

426 lines
19 KiB
Java

package androidx.constraintlayout.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.util.TypedValue;
import android.util.Xml;
import android.view.View;
import androidx.constraintlayout.motion.widget.Debug;
import androidx.core.view.ViewCompat;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashMap;
import org.xmlpull.v1.XmlPullParser;
/* loaded from: classes.dex */
public class ConstraintAttribute {
private static final String TAG = "TransitionLayout";
boolean mBooleanValue;
private int mColorValue;
private float mFloatValue;
private int mIntegerValue;
String mName;
private String mStringValue;
private AttributeType mType;
/* loaded from: classes.dex */
public enum AttributeType {
INT_TYPE,
FLOAT_TYPE,
COLOR_TYPE,
COLOR_DRAWABLE_TYPE,
STRING_TYPE,
BOOLEAN_TYPE,
DIMENSION_TYPE
}
private static int clamp(int i) {
int i2 = (i & (~(i >> 31))) - 255;
return (i2 & (i2 >> 31)) + 255;
}
public AttributeType getType() {
return this.mType;
}
public void setColorValue(int i) {
this.mColorValue = i;
}
public void setFloatValue(float f) {
this.mFloatValue = f;
}
public void setIntValue(int i) {
this.mIntegerValue = i;
}
public void setStringValue(String str) {
this.mStringValue = str;
}
/* JADX INFO: Access modifiers changed from: package-private */
/* renamed from: androidx.constraintlayout.widget.ConstraintAttribute$1, reason: invalid class name */
/* loaded from: classes.dex */
public static /* synthetic */ class AnonymousClass1 {
static final /* synthetic */ int[] $SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType;
static {
int[] iArr = new int[AttributeType.values().length];
$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType = iArr;
try {
iArr[AttributeType.COLOR_TYPE.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[AttributeType.COLOR_DRAWABLE_TYPE.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[AttributeType.INT_TYPE.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
try {
$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[AttributeType.FLOAT_TYPE.ordinal()] = 4;
} catch (NoSuchFieldError unused4) {
}
try {
$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[AttributeType.STRING_TYPE.ordinal()] = 5;
} catch (NoSuchFieldError unused5) {
}
try {
$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[AttributeType.BOOLEAN_TYPE.ordinal()] = 6;
} catch (NoSuchFieldError unused6) {
}
try {
$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[AttributeType.DIMENSION_TYPE.ordinal()] = 7;
} catch (NoSuchFieldError unused7) {
}
}
}
public int noOfInterpValues() {
int i = AnonymousClass1.$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[this.mType.ordinal()];
return (i == 1 || i == 2) ? 4 : 1;
}
public float getValueToInterpolate() {
switch (AnonymousClass1.$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[this.mType.ordinal()]) {
case 1:
case 2:
throw new RuntimeException("Color does not have a single color to interpolate");
case 3:
return this.mIntegerValue;
case 4:
return this.mFloatValue;
case 5:
throw new RuntimeException("Cannot interpolate String");
case 6:
return this.mBooleanValue ? 0.0f : 1.0f;
case 7:
return this.mFloatValue;
default:
return Float.NaN;
}
}
public void getValuesToInterpolate(float[] fArr) {
switch (AnonymousClass1.$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[this.mType.ordinal()]) {
case 1:
case 2:
int i = (this.mColorValue >> 24) & 255;
float pow = (float) Math.pow(((r9 >> 16) & 255) / 255.0f, 2.2d);
float pow2 = (float) Math.pow(((r9 >> 8) & 255) / 255.0f, 2.2d);
float pow3 = (float) Math.pow((r9 & 255) / 255.0f, 2.2d);
fArr[0] = pow;
fArr[1] = pow2;
fArr[2] = pow3;
fArr[3] = i / 255.0f;
return;
case 3:
fArr[0] = this.mIntegerValue;
return;
case 4:
fArr[0] = this.mFloatValue;
return;
case 5:
throw new RuntimeException("Color does not have a single color to interpolate");
case 6:
fArr[0] = this.mBooleanValue ? 0.0f : 1.0f;
return;
case 7:
fArr[0] = this.mFloatValue;
return;
default:
return;
}
}
public void setValue(float[] fArr) {
switch (AnonymousClass1.$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[this.mType.ordinal()]) {
case 1:
case 2:
int HSVToColor = Color.HSVToColor(fArr);
this.mColorValue = HSVToColor;
this.mColorValue = (clamp((int) (fArr[3] * 255.0f)) << 24) | (HSVToColor & ViewCompat.MEASURED_SIZE_MASK);
return;
case 3:
this.mIntegerValue = (int) fArr[0];
return;
case 4:
this.mFloatValue = fArr[0];
return;
case 5:
throw new RuntimeException("Color does not have a single color to interpolate");
case 6:
this.mBooleanValue = ((double) fArr[0]) > 0.5d;
return;
case 7:
this.mFloatValue = fArr[0];
return;
default:
return;
}
}
public boolean diff(ConstraintAttribute constraintAttribute) {
if (constraintAttribute == null || this.mType != constraintAttribute.mType) {
return false;
}
switch (AnonymousClass1.$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[this.mType.ordinal()]) {
case 1:
case 2:
return this.mColorValue == constraintAttribute.mColorValue;
case 3:
return this.mIntegerValue == constraintAttribute.mIntegerValue;
case 4:
return this.mFloatValue == constraintAttribute.mFloatValue;
case 5:
return this.mIntegerValue == constraintAttribute.mIntegerValue;
case 6:
return this.mBooleanValue == constraintAttribute.mBooleanValue;
case 7:
return this.mFloatValue == constraintAttribute.mFloatValue;
default:
return false;
}
}
public ConstraintAttribute(String str, AttributeType attributeType) {
this.mName = str;
this.mType = attributeType;
}
public ConstraintAttribute(String str, AttributeType attributeType, Object obj) {
this.mName = str;
this.mType = attributeType;
setValue(obj);
}
public ConstraintAttribute(ConstraintAttribute constraintAttribute, Object obj) {
this.mName = constraintAttribute.mName;
this.mType = constraintAttribute.mType;
setValue(obj);
}
public void setValue(Object obj) {
switch (AnonymousClass1.$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[this.mType.ordinal()]) {
case 1:
case 2:
this.mColorValue = ((Integer) obj).intValue();
return;
case 3:
this.mIntegerValue = ((Integer) obj).intValue();
return;
case 4:
this.mFloatValue = ((Float) obj).floatValue();
return;
case 5:
this.mStringValue = (String) obj;
return;
case 6:
this.mBooleanValue = ((Boolean) obj).booleanValue();
return;
case 7:
this.mFloatValue = ((Float) obj).floatValue();
return;
default:
return;
}
}
public static HashMap<String, ConstraintAttribute> extractAttributes(HashMap<String, ConstraintAttribute> hashMap, View view) {
HashMap<String, ConstraintAttribute> hashMap2 = new HashMap<>();
Class<?> cls = view.getClass();
for (String str : hashMap.keySet()) {
ConstraintAttribute constraintAttribute = hashMap.get(str);
try {
if (str.equals("BackgroundColor")) {
hashMap2.put(str, new ConstraintAttribute(constraintAttribute, Integer.valueOf(((ColorDrawable) view.getBackground()).getColor())));
} else {
hashMap2.put(str, new ConstraintAttribute(constraintAttribute, cls.getMethod("getMap" + str, new Class[0]).invoke(view, new Object[0])));
}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (NoSuchMethodException e2) {
e2.printStackTrace();
} catch (InvocationTargetException e3) {
e3.printStackTrace();
}
}
return hashMap2;
}
/* JADX WARN: Failed to find 'out' block for switch in B:7:0x0040. Please report as an issue. */
public static void setAttributes(View view, HashMap<String, ConstraintAttribute> hashMap) {
Class<?> cls = view.getClass();
for (String str : hashMap.keySet()) {
ConstraintAttribute constraintAttribute = hashMap.get(str);
String str2 = "set" + str;
try {
switch (AnonymousClass1.$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[constraintAttribute.mType.ordinal()]) {
case 1:
cls.getMethod(str2, Integer.TYPE).invoke(view, Integer.valueOf(constraintAttribute.mColorValue));
break;
case 2:
Method method = cls.getMethod(str2, Drawable.class);
ColorDrawable colorDrawable = new ColorDrawable();
colorDrawable.setColor(constraintAttribute.mColorValue);
method.invoke(view, colorDrawable);
break;
case 3:
cls.getMethod(str2, Integer.TYPE).invoke(view, Integer.valueOf(constraintAttribute.mIntegerValue));
break;
case 4:
cls.getMethod(str2, Float.TYPE).invoke(view, Float.valueOf(constraintAttribute.mFloatValue));
break;
case 5:
cls.getMethod(str2, CharSequence.class).invoke(view, constraintAttribute.mStringValue);
break;
case 6:
cls.getMethod(str2, Boolean.TYPE).invoke(view, Boolean.valueOf(constraintAttribute.mBooleanValue));
break;
case 7:
cls.getMethod(str2, Float.TYPE).invoke(view, Float.valueOf(constraintAttribute.mFloatValue));
break;
}
} catch (IllegalAccessException e) {
Log.e(TAG, " Custom Attribute \"" + str + "\" not found on " + cls.getName());
e.printStackTrace();
} catch (NoSuchMethodException e2) {
Log.e(TAG, e2.getMessage());
Log.e(TAG, " Custom Attribute \"" + str + "\" not found on " + cls.getName());
Log.e(TAG, cls.getName() + " must have a method " + str2);
} catch (InvocationTargetException e3) {
Log.e(TAG, " Custom Attribute \"" + str + "\" not found on " + cls.getName());
e3.printStackTrace();
}
}
}
public void setInterpolatedValue(View view, float[] fArr) {
Class<?> cls = view.getClass();
String str = "set" + this.mName;
try {
boolean z = true;
switch (AnonymousClass1.$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[this.mType.ordinal()]) {
case 1:
cls.getMethod(str, Integer.TYPE).invoke(view, Integer.valueOf((clamp((int) (((float) Math.pow(fArr[0], 0.45454545454545453d)) * 255.0f)) << 16) | (clamp((int) (fArr[3] * 255.0f)) << 24) | (clamp((int) (((float) Math.pow(fArr[1], 0.45454545454545453d)) * 255.0f)) << 8) | clamp((int) (((float) Math.pow(fArr[2], 0.45454545454545453d)) * 255.0f))));
return;
case 2:
Method method = cls.getMethod(str, Drawable.class);
int clamp = (clamp((int) (((float) Math.pow(fArr[0], 0.45454545454545453d)) * 255.0f)) << 16) | (clamp((int) (fArr[3] * 255.0f)) << 24) | (clamp((int) (((float) Math.pow(fArr[1], 0.45454545454545453d)) * 255.0f)) << 8) | clamp((int) (((float) Math.pow(fArr[2], 0.45454545454545453d)) * 255.0f));
ColorDrawable colorDrawable = new ColorDrawable();
colorDrawable.setColor(clamp);
method.invoke(view, colorDrawable);
return;
case 3:
cls.getMethod(str, Integer.TYPE).invoke(view, Integer.valueOf((int) fArr[0]));
return;
case 4:
cls.getMethod(str, Float.TYPE).invoke(view, Float.valueOf(fArr[0]));
return;
case 5:
throw new RuntimeException("unable to interpolate strings " + this.mName);
case 6:
Method method2 = cls.getMethod(str, Boolean.TYPE);
Object[] objArr = new Object[1];
if (fArr[0] <= 0.5f) {
z = false;
}
objArr[0] = Boolean.valueOf(z);
method2.invoke(view, objArr);
return;
case 7:
cls.getMethod(str, Float.TYPE).invoke(view, Float.valueOf(fArr[0]));
return;
default:
return;
}
} catch (IllegalAccessException e) {
Log.e(TAG, "cannot access method " + str + "on View \"" + Debug.getName(view) + "\"");
e.printStackTrace();
} catch (NoSuchMethodException e2) {
Log.e(TAG, "no method " + str + "on View \"" + Debug.getName(view) + "\"");
e2.printStackTrace();
} catch (InvocationTargetException e3) {
e3.printStackTrace();
}
}
public static void parse(Context context, XmlPullParser xmlPullParser, HashMap<String, ConstraintAttribute> hashMap) {
AttributeType attributeType;
Object string;
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(Xml.asAttributeSet(xmlPullParser), R.styleable.CustomAttribute);
int indexCount = obtainStyledAttributes.getIndexCount();
String str = null;
Object obj = null;
AttributeType attributeType2 = null;
for (int i = 0; i < indexCount; i++) {
int index = obtainStyledAttributes.getIndex(i);
if (index == R.styleable.CustomAttribute_attributeName) {
str = obtainStyledAttributes.getString(index);
if (str != null && str.length() > 0) {
str = Character.toUpperCase(str.charAt(0)) + str.substring(1);
}
} else if (index == R.styleable.CustomAttribute_customBoolean) {
obj = Boolean.valueOf(obtainStyledAttributes.getBoolean(index, false));
attributeType2 = AttributeType.BOOLEAN_TYPE;
} else {
if (index == R.styleable.CustomAttribute_customColorValue) {
attributeType = AttributeType.COLOR_TYPE;
string = Integer.valueOf(obtainStyledAttributes.getColor(index, 0));
} else if (index == R.styleable.CustomAttribute_customColorDrawableValue) {
attributeType = AttributeType.COLOR_DRAWABLE_TYPE;
string = Integer.valueOf(obtainStyledAttributes.getColor(index, 0));
} else if (index == R.styleable.CustomAttribute_customPixelDimension) {
attributeType = AttributeType.DIMENSION_TYPE;
string = Float.valueOf(TypedValue.applyDimension(1, obtainStyledAttributes.getDimension(index, 0.0f), context.getResources().getDisplayMetrics()));
} else if (index == R.styleable.CustomAttribute_customDimension) {
attributeType = AttributeType.DIMENSION_TYPE;
string = Float.valueOf(obtainStyledAttributes.getDimension(index, 0.0f));
} else if (index == R.styleable.CustomAttribute_customFloatValue) {
attributeType = AttributeType.FLOAT_TYPE;
string = Float.valueOf(obtainStyledAttributes.getFloat(index, Float.NaN));
} else if (index == R.styleable.CustomAttribute_customIntegerValue) {
attributeType = AttributeType.INT_TYPE;
string = Integer.valueOf(obtainStyledAttributes.getInteger(index, -1));
} else if (index == R.styleable.CustomAttribute_customStringValue) {
attributeType = AttributeType.STRING_TYPE;
string = obtainStyledAttributes.getString(index);
}
Object obj2 = string;
attributeType2 = attributeType;
obj = obj2;
}
}
if (str != null && obj != null) {
hashMap.put(str, new ConstraintAttribute(str, attributeType2, obj));
}
obtainStyledAttributes.recycle();
}
}