discord-jadx/app/src/main/java/androidx/appcompat/widget/SwitchCompat.java

941 lines
35 KiB
Java

package androidx.appcompat.widget;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.content.res.ColorStateList;
import android.graphics.Canvas;
import android.graphics.PorterDuff;
import android.graphics.Rect;
import android.graphics.Region;
import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.text.Layout;
import android.text.StaticLayout;
import android.text.TextPaint;
import android.text.TextUtils;
import android.text.method.TransformationMethod;
import android.util.AttributeSet;
import android.util.Property;
import android.view.ActionMode;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.ViewConfiguration;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.CompoundButton;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.R;
import androidx.appcompat.content.res.AppCompatResources;
import androidx.appcompat.text.AllCapsTransformationMethod;
import androidx.core.graphics.drawable.DrawableCompat;
import androidx.core.view.ViewCompat;
import androidx.core.widget.TextViewCompat;
public class SwitchCompat extends CompoundButton {
private static final String ACCESSIBILITY_EVENT_CLASS_NAME = "android.widget.Switch";
private static final int[] CHECKED_STATE_SET = {16842912};
private static final int MONOSPACE = 3;
private static final int SANS = 1;
private static final int SERIF = 2;
private static final int THUMB_ANIMATION_DURATION = 250;
private static final Property<SwitchCompat, Float> THUMB_POS = new AnonymousClass1(Float.class, "thumbPos");
private static final int TOUCH_MODE_DOWN = 1;
private static final int TOUCH_MODE_DRAGGING = 2;
private static final int TOUCH_MODE_IDLE = 0;
private boolean mHasThumbTint;
private boolean mHasThumbTintMode;
private boolean mHasTrackTint;
private boolean mHasTrackTintMode;
private int mMinFlingVelocity;
private Layout mOffLayout;
private Layout mOnLayout;
public ObjectAnimator mPositionAnimator;
private boolean mShowText;
private boolean mSplitTrack;
private int mSwitchBottom;
private int mSwitchHeight;
private int mSwitchLeft;
private int mSwitchMinWidth;
private int mSwitchPadding;
private int mSwitchRight;
private int mSwitchTop;
private TransformationMethod mSwitchTransformationMethod;
private int mSwitchWidth;
private final Rect mTempRect;
private ColorStateList mTextColors;
private final AppCompatTextHelper mTextHelper;
private CharSequence mTextOff;
private CharSequence mTextOn;
private final TextPaint mTextPaint;
private Drawable mThumbDrawable;
public float mThumbPosition;
private int mThumbTextPadding;
private ColorStateList mThumbTintList;
private PorterDuff.Mode mThumbTintMode;
private int mThumbWidth;
private int mTouchMode;
private int mTouchSlop;
private float mTouchX;
private float mTouchY;
private Drawable mTrackDrawable;
private ColorStateList mTrackTintList;
private PorterDuff.Mode mTrackTintMode;
private VelocityTracker mVelocityTracker;
/* renamed from: androidx.appcompat.widget.SwitchCompat$1 reason: invalid class name */
public class AnonymousClass1 extends Property<SwitchCompat, Float> {
public AnonymousClass1(Class cls, String str) {
super(cls, str);
}
public Float get(SwitchCompat switchCompat) {
return Float.valueOf(switchCompat.mThumbPosition);
}
public void set(SwitchCompat switchCompat, Float f) {
switchCompat.setThumbPosition(f.floatValue());
}
}
public SwitchCompat(@NonNull Context context) {
this(context, null);
}
public SwitchCompat(@NonNull Context context, @Nullable AttributeSet attributeSet) {
this(context, attributeSet, R.attr.switchStyle);
}
public SwitchCompat(@NonNull Context context, @Nullable AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
this.mThumbTintList = null;
this.mThumbTintMode = null;
this.mHasThumbTint = false;
this.mHasThumbTintMode = false;
this.mTrackTintList = null;
this.mTrackTintMode = null;
this.mHasTrackTint = false;
this.mHasTrackTintMode = false;
this.mVelocityTracker = VelocityTracker.obtain();
this.mTempRect = new Rect();
ThemeUtils.checkAppCompatTheme(this, getContext());
TextPaint textPaint = new TextPaint(1);
this.mTextPaint = textPaint;
textPaint.density = getResources().getDisplayMetrics().density;
int[] iArr = R.styleable.SwitchCompat;
TintTypedArray obtainStyledAttributes = TintTypedArray.obtainStyledAttributes(context, attributeSet, iArr, i, 0);
ViewCompat.saveAttributeDataForStyleable(this, context, iArr, attributeSet, obtainStyledAttributes.getWrappedTypeArray(), i, 0);
Drawable drawable = obtainStyledAttributes.getDrawable(R.styleable.SwitchCompat_android_thumb);
this.mThumbDrawable = drawable;
if (drawable != null) {
drawable.setCallback(this);
}
Drawable drawable2 = obtainStyledAttributes.getDrawable(R.styleable.SwitchCompat_track);
this.mTrackDrawable = drawable2;
if (drawable2 != null) {
drawable2.setCallback(this);
}
this.mTextOn = obtainStyledAttributes.getText(R.styleable.SwitchCompat_android_textOn);
this.mTextOff = obtainStyledAttributes.getText(R.styleable.SwitchCompat_android_textOff);
this.mShowText = obtainStyledAttributes.getBoolean(R.styleable.SwitchCompat_showText, true);
this.mThumbTextPadding = obtainStyledAttributes.getDimensionPixelSize(R.styleable.SwitchCompat_thumbTextPadding, 0);
this.mSwitchMinWidth = obtainStyledAttributes.getDimensionPixelSize(R.styleable.SwitchCompat_switchMinWidth, 0);
this.mSwitchPadding = obtainStyledAttributes.getDimensionPixelSize(R.styleable.SwitchCompat_switchPadding, 0);
this.mSplitTrack = obtainStyledAttributes.getBoolean(R.styleable.SwitchCompat_splitTrack, false);
ColorStateList colorStateList = obtainStyledAttributes.getColorStateList(R.styleable.SwitchCompat_thumbTint);
if (colorStateList != null) {
this.mThumbTintList = colorStateList;
this.mHasThumbTint = true;
}
PorterDuff.Mode parseTintMode = DrawableUtils.parseTintMode(obtainStyledAttributes.getInt(R.styleable.SwitchCompat_thumbTintMode, -1), null);
if (this.mThumbTintMode != parseTintMode) {
this.mThumbTintMode = parseTintMode;
this.mHasThumbTintMode = true;
}
if (this.mHasThumbTint || this.mHasThumbTintMode) {
applyThumbTint();
}
ColorStateList colorStateList2 = obtainStyledAttributes.getColorStateList(R.styleable.SwitchCompat_trackTint);
if (colorStateList2 != null) {
this.mTrackTintList = colorStateList2;
this.mHasTrackTint = true;
}
PorterDuff.Mode parseTintMode2 = DrawableUtils.parseTintMode(obtainStyledAttributes.getInt(R.styleable.SwitchCompat_trackTintMode, -1), null);
if (this.mTrackTintMode != parseTintMode2) {
this.mTrackTintMode = parseTintMode2;
this.mHasTrackTintMode = true;
}
if (this.mHasTrackTint || this.mHasTrackTintMode) {
applyTrackTint();
}
int resourceId = obtainStyledAttributes.getResourceId(R.styleable.SwitchCompat_switchTextAppearance, 0);
if (resourceId != 0) {
setSwitchTextAppearance(context, resourceId);
}
AppCompatTextHelper appCompatTextHelper = new AppCompatTextHelper(this);
this.mTextHelper = appCompatTextHelper;
appCompatTextHelper.loadFromAttributes(attributeSet, i);
obtainStyledAttributes.recycle();
ViewConfiguration viewConfiguration = ViewConfiguration.get(context);
this.mTouchSlop = viewConfiguration.getScaledTouchSlop();
this.mMinFlingVelocity = viewConfiguration.getScaledMinimumFlingVelocity();
refreshDrawableState();
setChecked(isChecked());
}
private void animateThumbToCheckedState(boolean z2) {
ObjectAnimator ofFloat = ObjectAnimator.ofFloat(this, THUMB_POS, z2 ? 1.0f : 0.0f);
this.mPositionAnimator = ofFloat;
ofFloat.setDuration(250L);
this.mPositionAnimator.setAutoCancel(true);
this.mPositionAnimator.start();
}
private void applyThumbTint() {
Drawable drawable = this.mThumbDrawable;
if (drawable == null) {
return;
}
if (this.mHasThumbTint || this.mHasThumbTintMode) {
Drawable mutate = DrawableCompat.wrap(drawable).mutate();
this.mThumbDrawable = mutate;
if (this.mHasThumbTint) {
DrawableCompat.setTintList(mutate, this.mThumbTintList);
}
if (this.mHasThumbTintMode) {
DrawableCompat.setTintMode(this.mThumbDrawable, this.mThumbTintMode);
}
if (this.mThumbDrawable.isStateful()) {
this.mThumbDrawable.setState(getDrawableState());
}
}
}
private void applyTrackTint() {
Drawable drawable = this.mTrackDrawable;
if (drawable == null) {
return;
}
if (this.mHasTrackTint || this.mHasTrackTintMode) {
Drawable mutate = DrawableCompat.wrap(drawable).mutate();
this.mTrackDrawable = mutate;
if (this.mHasTrackTint) {
DrawableCompat.setTintList(mutate, this.mTrackTintList);
}
if (this.mHasTrackTintMode) {
DrawableCompat.setTintMode(this.mTrackDrawable, this.mTrackTintMode);
}
if (this.mTrackDrawable.isStateful()) {
this.mTrackDrawable.setState(getDrawableState());
}
}
}
private void cancelPositionAnimator() {
ObjectAnimator objectAnimator = this.mPositionAnimator;
if (objectAnimator != null) {
objectAnimator.cancel();
}
}
private void cancelSuperTouch(MotionEvent motionEvent) {
MotionEvent obtain = MotionEvent.obtain(motionEvent);
obtain.setAction(3);
super.onTouchEvent(obtain);
obtain.recycle();
}
private static float constrain(float f, float f2, float f3) {
return f < f2 ? f2 : f > f3 ? f3 : f;
}
private boolean getTargetCheckedState() {
return this.mThumbPosition > 0.5f;
}
private int getThumbOffset() {
return (int) (((ViewUtils.isLayoutRtl(this) ? 1.0f - this.mThumbPosition : this.mThumbPosition) * ((float) getThumbScrollRange())) + 0.5f);
}
private int getThumbScrollRange() {
Drawable drawable = this.mTrackDrawable;
if (drawable == null) {
return 0;
}
Rect rect = this.mTempRect;
drawable.getPadding(rect);
Drawable drawable2 = this.mThumbDrawable;
Rect opticalBounds = drawable2 != null ? DrawableUtils.getOpticalBounds(drawable2) : DrawableUtils.INSETS_NONE;
return ((((this.mSwitchWidth - this.mThumbWidth) - rect.left) - rect.right) - opticalBounds.left) - opticalBounds.right;
}
private boolean hitThumb(float f, float f2) {
if (this.mThumbDrawable == null) {
return false;
}
int thumbOffset = getThumbOffset();
this.mThumbDrawable.getPadding(this.mTempRect);
int i = this.mSwitchTop;
int i2 = this.mTouchSlop;
int i3 = i - i2;
int i4 = (this.mSwitchLeft + thumbOffset) - i2;
Rect rect = this.mTempRect;
return f > ((float) i4) && f < ((float) ((((this.mThumbWidth + i4) + rect.left) + rect.right) + i2)) && f2 > ((float) i3) && f2 < ((float) (this.mSwitchBottom + i2));
}
private Layout makeLayout(CharSequence charSequence) {
TransformationMethod transformationMethod = this.mSwitchTransformationMethod;
if (transformationMethod != null) {
charSequence = transformationMethod.getTransformation(charSequence, this);
}
TextPaint textPaint = this.mTextPaint;
return new StaticLayout(charSequence, textPaint, charSequence != null ? (int) Math.ceil((double) Layout.getDesiredWidth(charSequence, textPaint)) : 0, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, true);
}
private void setSwitchTypefaceByIndex(int i, int i2) {
setSwitchTypeface(i != 1 ? i != 2 ? i != 3 ? null : Typeface.MONOSPACE : Typeface.SERIF : Typeface.SANS_SERIF, i2);
}
private void stopDrag(MotionEvent motionEvent) {
this.mTouchMode = 0;
boolean z2 = true;
boolean z3 = motionEvent.getAction() == 1 && isEnabled();
boolean isChecked = isChecked();
if (z3) {
this.mVelocityTracker.computeCurrentVelocity(1000);
float xVelocity = this.mVelocityTracker.getXVelocity();
if (Math.abs(xVelocity) <= ((float) this.mMinFlingVelocity)) {
z2 = getTargetCheckedState();
} else if (!ViewUtils.isLayoutRtl(this) ? xVelocity <= 0.0f : xVelocity >= 0.0f) {
z2 = false;
}
} else {
z2 = isChecked;
}
if (z2 != isChecked) {
playSoundEffect(0);
}
setChecked(z2);
cancelSuperTouch(motionEvent);
}
@Override // android.view.View
public void draw(Canvas canvas) {
int i;
int i2;
Rect rect = this.mTempRect;
int i3 = this.mSwitchLeft;
int i4 = this.mSwitchTop;
int i5 = this.mSwitchRight;
int i6 = this.mSwitchBottom;
int thumbOffset = getThumbOffset() + i3;
Drawable drawable = this.mThumbDrawable;
Rect opticalBounds = drawable != null ? DrawableUtils.getOpticalBounds(drawable) : DrawableUtils.INSETS_NONE;
Drawable drawable2 = this.mTrackDrawable;
if (drawable2 != null) {
drawable2.getPadding(rect);
int i7 = rect.left;
thumbOffset += i7;
if (opticalBounds != null) {
int i8 = opticalBounds.left;
if (i8 > i7) {
i3 += i8 - i7;
}
int i9 = opticalBounds.top;
int i10 = rect.top;
i = i9 > i10 ? (i9 - i10) + i4 : i4;
int i11 = opticalBounds.right;
int i12 = rect.right;
if (i11 > i12) {
i5 -= i11 - i12;
}
int i13 = opticalBounds.bottom;
int i14 = rect.bottom;
if (i13 > i14) {
i2 = i6 - (i13 - i14);
this.mTrackDrawable.setBounds(i3, i, i5, i2);
}
} else {
i = i4;
}
i2 = i6;
this.mTrackDrawable.setBounds(i3, i, i5, i2);
}
Drawable drawable3 = this.mThumbDrawable;
if (drawable3 != null) {
drawable3.getPadding(rect);
int i15 = thumbOffset - rect.left;
int i16 = thumbOffset + this.mThumbWidth + rect.right;
this.mThumbDrawable.setBounds(i15, i4, i16, i6);
Drawable background = getBackground();
if (background != null) {
DrawableCompat.setHotspotBounds(background, i15, i4, i16, i6);
}
}
super.draw(canvas);
}
@Override // android.widget.CompoundButton, android.widget.TextView, android.view.View
public void drawableHotspotChanged(float f, float f2) {
super.drawableHotspotChanged(f, f2);
Drawable drawable = this.mThumbDrawable;
if (drawable != null) {
DrawableCompat.setHotspot(drawable, f, f2);
}
Drawable drawable2 = this.mTrackDrawable;
if (drawable2 != null) {
DrawableCompat.setHotspot(drawable2, f, f2);
}
}
@Override // android.widget.CompoundButton, android.widget.TextView, android.view.View
public void drawableStateChanged() {
super.drawableStateChanged();
int[] drawableState = getDrawableState();
Drawable drawable = this.mThumbDrawable;
boolean z2 = false;
if (drawable != null && drawable.isStateful()) {
z2 = false | drawable.setState(drawableState);
}
Drawable drawable2 = this.mTrackDrawable;
if (drawable2 != null && drawable2.isStateful()) {
z2 |= drawable2.setState(drawableState);
}
if (z2) {
invalidate();
}
}
@Override // android.widget.CompoundButton, android.widget.TextView
public int getCompoundPaddingLeft() {
if (!ViewUtils.isLayoutRtl(this)) {
return super.getCompoundPaddingLeft();
}
int compoundPaddingLeft = super.getCompoundPaddingLeft() + this.mSwitchWidth;
return !TextUtils.isEmpty(getText()) ? compoundPaddingLeft + this.mSwitchPadding : compoundPaddingLeft;
}
@Override // android.widget.CompoundButton, android.widget.TextView
public int getCompoundPaddingRight() {
if (ViewUtils.isLayoutRtl(this)) {
return super.getCompoundPaddingRight();
}
int compoundPaddingRight = super.getCompoundPaddingRight() + this.mSwitchWidth;
return !TextUtils.isEmpty(getText()) ? compoundPaddingRight + this.mSwitchPadding : compoundPaddingRight;
}
public boolean getShowText() {
return this.mShowText;
}
public boolean getSplitTrack() {
return this.mSplitTrack;
}
public int getSwitchMinWidth() {
return this.mSwitchMinWidth;
}
public int getSwitchPadding() {
return this.mSwitchPadding;
}
public CharSequence getTextOff() {
return this.mTextOff;
}
public CharSequence getTextOn() {
return this.mTextOn;
}
public Drawable getThumbDrawable() {
return this.mThumbDrawable;
}
public int getThumbTextPadding() {
return this.mThumbTextPadding;
}
@Nullable
public ColorStateList getThumbTintList() {
return this.mThumbTintList;
}
@Nullable
public PorterDuff.Mode getThumbTintMode() {
return this.mThumbTintMode;
}
public Drawable getTrackDrawable() {
return this.mTrackDrawable;
}
@Nullable
public ColorStateList getTrackTintList() {
return this.mTrackTintList;
}
@Nullable
public PorterDuff.Mode getTrackTintMode() {
return this.mTrackTintMode;
}
@Override // android.widget.CompoundButton, android.widget.TextView, android.view.View
public void jumpDrawablesToCurrentState() {
super.jumpDrawablesToCurrentState();
Drawable drawable = this.mThumbDrawable;
if (drawable != null) {
drawable.jumpToCurrentState();
}
Drawable drawable2 = this.mTrackDrawable;
if (drawable2 != null) {
drawable2.jumpToCurrentState();
}
ObjectAnimator objectAnimator = this.mPositionAnimator;
if (objectAnimator != null && objectAnimator.isStarted()) {
this.mPositionAnimator.end();
this.mPositionAnimator = null;
}
}
@Override // android.widget.CompoundButton, android.widget.TextView, android.view.View
public int[] onCreateDrawableState(int i) {
int[] onCreateDrawableState = super.onCreateDrawableState(i + 1);
if (isChecked()) {
CompoundButton.mergeDrawableStates(onCreateDrawableState, CHECKED_STATE_SET);
}
return onCreateDrawableState;
}
@Override // android.widget.CompoundButton, android.widget.TextView, android.view.View
public void onDraw(Canvas canvas) {
int i;
super.onDraw(canvas);
Rect rect = this.mTempRect;
Drawable drawable = this.mTrackDrawable;
if (drawable != null) {
drawable.getPadding(rect);
} else {
rect.setEmpty();
}
int i2 = this.mSwitchTop;
int i3 = this.mSwitchBottom;
int i4 = i2 + rect.top;
int i5 = i3 - rect.bottom;
Drawable drawable2 = this.mThumbDrawable;
if (drawable != null) {
if (!this.mSplitTrack || drawable2 == null) {
drawable.draw(canvas);
} else {
Rect opticalBounds = DrawableUtils.getOpticalBounds(drawable2);
drawable2.copyBounds(rect);
rect.left += opticalBounds.left;
rect.right -= opticalBounds.right;
int save = canvas.save();
canvas.clipRect(rect, Region.Op.DIFFERENCE);
drawable.draw(canvas);
canvas.restoreToCount(save);
}
}
int save2 = canvas.save();
if (drawable2 != null) {
drawable2.draw(canvas);
}
Layout layout = getTargetCheckedState() ? this.mOnLayout : this.mOffLayout;
if (layout != null) {
int[] drawableState = getDrawableState();
ColorStateList colorStateList = this.mTextColors;
if (colorStateList != null) {
this.mTextPaint.setColor(colorStateList.getColorForState(drawableState, 0));
}
this.mTextPaint.drawableState = drawableState;
if (drawable2 != null) {
Rect bounds = drawable2.getBounds();
i = bounds.left + bounds.right;
} else {
i = getWidth();
}
canvas.translate((float) ((i / 2) - (layout.getWidth() / 2)), (float) (((i4 + i5) / 2) - (layout.getHeight() / 2)));
layout.draw(canvas);
}
canvas.restoreToCount(save2);
}
@Override // android.view.View
public void onInitializeAccessibilityEvent(AccessibilityEvent accessibilityEvent) {
super.onInitializeAccessibilityEvent(accessibilityEvent);
accessibilityEvent.setClassName(ACCESSIBILITY_EVENT_CLASS_NAME);
}
@Override // android.view.View
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo accessibilityNodeInfo) {
super.onInitializeAccessibilityNodeInfo(accessibilityNodeInfo);
accessibilityNodeInfo.setClassName(ACCESSIBILITY_EVENT_CLASS_NAME);
CharSequence charSequence = isChecked() ? this.mTextOn : this.mTextOff;
if (!TextUtils.isEmpty(charSequence)) {
CharSequence text = accessibilityNodeInfo.getText();
if (TextUtils.isEmpty(text)) {
accessibilityNodeInfo.setText(charSequence);
return;
}
StringBuilder sb = new StringBuilder();
sb.append(text);
sb.append(' ');
sb.append(charSequence);
accessibilityNodeInfo.setText(sb);
}
}
@Override // android.widget.TextView, android.view.View
public void onLayout(boolean z2, int i, int i2, int i3, int i4) {
int i5;
int i6;
int i7;
int i8;
int i9;
super.onLayout(z2, i, i2, i3, i4);
int i10 = 0;
if (this.mThumbDrawable != null) {
Rect rect = this.mTempRect;
Drawable drawable = this.mTrackDrawable;
if (drawable != null) {
drawable.getPadding(rect);
} else {
rect.setEmpty();
}
Rect opticalBounds = DrawableUtils.getOpticalBounds(this.mThumbDrawable);
i5 = Math.max(0, opticalBounds.left - rect.left);
i10 = Math.max(0, opticalBounds.right - rect.right);
} else {
i5 = 0;
}
if (ViewUtils.isLayoutRtl(this)) {
i7 = getPaddingLeft() + i5;
i6 = ((this.mSwitchWidth + i7) - i5) - i10;
} else {
i6 = (getWidth() - getPaddingRight()) - i10;
i7 = (i6 - this.mSwitchWidth) + i5 + i10;
}
int gravity = getGravity() & 112;
if (gravity == 16) {
int paddingTop = getPaddingTop();
int i11 = this.mSwitchHeight;
int height = (((getHeight() + paddingTop) - getPaddingBottom()) / 2) - (i11 / 2);
i8 = i11 + height;
i9 = height;
} else if (gravity != 80) {
i9 = getPaddingTop();
i8 = this.mSwitchHeight + i9;
} else {
i8 = getHeight() - getPaddingBottom();
i9 = i8 - this.mSwitchHeight;
}
this.mSwitchLeft = i7;
this.mSwitchTop = i9;
this.mSwitchBottom = i8;
this.mSwitchRight = i6;
}
@Override // android.widget.TextView, android.view.View
public void onMeasure(int i, int i2) {
int i3;
int i4;
int i5;
if (this.mShowText) {
if (this.mOnLayout == null) {
this.mOnLayout = makeLayout(this.mTextOn);
}
if (this.mOffLayout == null) {
this.mOffLayout = makeLayout(this.mTextOff);
}
}
Rect rect = this.mTempRect;
Drawable drawable = this.mThumbDrawable;
int i6 = 0;
if (drawable != null) {
drawable.getPadding(rect);
i4 = (this.mThumbDrawable.getIntrinsicWidth() - rect.left) - rect.right;
i3 = this.mThumbDrawable.getIntrinsicHeight();
} else {
i4 = 0;
i3 = 0;
}
if (this.mShowText) {
i5 = (this.mThumbTextPadding * 2) + Math.max(this.mOnLayout.getWidth(), this.mOffLayout.getWidth());
} else {
i5 = 0;
}
this.mThumbWidth = Math.max(i5, i4);
Drawable drawable2 = this.mTrackDrawable;
if (drawable2 != null) {
drawable2.getPadding(rect);
i6 = this.mTrackDrawable.getIntrinsicHeight();
} else {
rect.setEmpty();
}
int i7 = rect.left;
int i8 = rect.right;
Drawable drawable3 = this.mThumbDrawable;
if (drawable3 != null) {
Rect opticalBounds = DrawableUtils.getOpticalBounds(drawable3);
i7 = Math.max(i7, opticalBounds.left);
i8 = Math.max(i8, opticalBounds.right);
}
int max = Math.max(this.mSwitchMinWidth, (this.mThumbWidth * 2) + i7 + i8);
int max2 = Math.max(i6, i3);
this.mSwitchWidth = max;
this.mSwitchHeight = max2;
super.onMeasure(i, i2);
if (getMeasuredHeight() < max2) {
setMeasuredDimension(getMeasuredWidthAndState(), max2);
}
}
@Override // android.view.View
public void onPopulateAccessibilityEvent(AccessibilityEvent accessibilityEvent) {
super.onPopulateAccessibilityEvent(accessibilityEvent);
CharSequence charSequence = isChecked() ? this.mTextOn : this.mTextOff;
if (charSequence != null) {
accessibilityEvent.getText().add(charSequence);
}
}
/* JADX WARNING: Code restructure failed: missing block: B:6:0x0012, code lost:
if (r0 != 3) goto L_0x00b9;
*/
@Override // android.widget.TextView, android.view.View
public boolean onTouchEvent(MotionEvent motionEvent) {
this.mVelocityTracker.addMovement(motionEvent);
int actionMasked = motionEvent.getActionMasked();
if (actionMasked != 0) {
if (actionMasked != 1) {
if (actionMasked == 2) {
int i = this.mTouchMode;
if (i == 1) {
float x2 = motionEvent.getX();
float y2 = motionEvent.getY();
if (Math.abs(x2 - this.mTouchX) > ((float) this.mTouchSlop) || Math.abs(y2 - this.mTouchY) > ((float) this.mTouchSlop)) {
this.mTouchMode = 2;
getParent().requestDisallowInterceptTouchEvent(true);
this.mTouchX = x2;
this.mTouchY = y2;
return true;
}
} else if (i == 2) {
float x3 = motionEvent.getX();
int thumbScrollRange = getThumbScrollRange();
float f = x3 - this.mTouchX;
float f2 = thumbScrollRange != 0 ? f / ((float) thumbScrollRange) : f > 0.0f ? 1.0f : -1.0f;
if (ViewUtils.isLayoutRtl(this)) {
f2 = -f2;
}
float constrain = constrain(this.mThumbPosition + f2, 0.0f, 1.0f);
if (constrain != this.mThumbPosition) {
this.mTouchX = x3;
setThumbPosition(constrain);
}
return true;
}
}
}
if (this.mTouchMode == 2) {
stopDrag(motionEvent);
super.onTouchEvent(motionEvent);
return true;
}
this.mTouchMode = 0;
this.mVelocityTracker.clear();
} else {
float x4 = motionEvent.getX();
float y3 = motionEvent.getY();
if (isEnabled() && hitThumb(x4, y3)) {
this.mTouchMode = 1;
this.mTouchX = x4;
this.mTouchY = y3;
}
}
return super.onTouchEvent(motionEvent);
}
@Override // android.widget.CompoundButton, android.widget.Checkable
public void setChecked(boolean z2) {
super.setChecked(z2);
boolean isChecked = isChecked();
if (getWindowToken() == null || !ViewCompat.isLaidOut(this)) {
cancelPositionAnimator();
setThumbPosition(isChecked ? 1.0f : 0.0f);
return;
}
animateThumbToCheckedState(isChecked);
}
@Override // android.widget.TextView
public void setCustomSelectionActionModeCallback(ActionMode.Callback callback) {
super.setCustomSelectionActionModeCallback(TextViewCompat.wrapCustomSelectionActionModeCallback(this, callback));
}
public void setShowText(boolean z2) {
if (this.mShowText != z2) {
this.mShowText = z2;
requestLayout();
}
}
public void setSplitTrack(boolean z2) {
this.mSplitTrack = z2;
invalidate();
}
public void setSwitchMinWidth(int i) {
this.mSwitchMinWidth = i;
requestLayout();
}
public void setSwitchPadding(int i) {
this.mSwitchPadding = i;
requestLayout();
}
public void setSwitchTextAppearance(Context context, int i) {
TintTypedArray obtainStyledAttributes = TintTypedArray.obtainStyledAttributes(context, i, R.styleable.TextAppearance);
ColorStateList colorStateList = obtainStyledAttributes.getColorStateList(R.styleable.TextAppearance_android_textColor);
if (colorStateList != null) {
this.mTextColors = colorStateList;
} else {
this.mTextColors = getTextColors();
}
int dimensionPixelSize = obtainStyledAttributes.getDimensionPixelSize(R.styleable.TextAppearance_android_textSize, 0);
if (dimensionPixelSize != 0) {
float f = (float) dimensionPixelSize;
if (f != this.mTextPaint.getTextSize()) {
this.mTextPaint.setTextSize(f);
requestLayout();
}
}
setSwitchTypefaceByIndex(obtainStyledAttributes.getInt(R.styleable.TextAppearance_android_typeface, -1), obtainStyledAttributes.getInt(R.styleable.TextAppearance_android_textStyle, -1));
if (obtainStyledAttributes.getBoolean(R.styleable.TextAppearance_textAllCaps, false)) {
this.mSwitchTransformationMethod = new AllCapsTransformationMethod(getContext());
} else {
this.mSwitchTransformationMethod = null;
}
obtainStyledAttributes.recycle();
}
public void setSwitchTypeface(Typeface typeface) {
if ((this.mTextPaint.getTypeface() != null && !this.mTextPaint.getTypeface().equals(typeface)) || (this.mTextPaint.getTypeface() == null && typeface != null)) {
this.mTextPaint.setTypeface(typeface);
requestLayout();
invalidate();
}
}
public void setSwitchTypeface(Typeface typeface, int i) {
float f = 0.0f;
boolean z2 = false;
if (i > 0) {
Typeface defaultFromStyle = typeface == null ? Typeface.defaultFromStyle(i) : Typeface.create(typeface, i);
setSwitchTypeface(defaultFromStyle);
int i2 = (~(defaultFromStyle != null ? defaultFromStyle.getStyle() : 0)) & i;
TextPaint textPaint = this.mTextPaint;
if ((i2 & 1) != 0) {
z2 = true;
}
textPaint.setFakeBoldText(z2);
TextPaint textPaint2 = this.mTextPaint;
if ((i2 & 2) != 0) {
f = -0.25f;
}
textPaint2.setTextSkewX(f);
return;
}
this.mTextPaint.setFakeBoldText(false);
this.mTextPaint.setTextSkewX(0.0f);
setSwitchTypeface(typeface);
}
public void setTextOff(CharSequence charSequence) {
this.mTextOff = charSequence;
requestLayout();
}
public void setTextOn(CharSequence charSequence) {
this.mTextOn = charSequence;
requestLayout();
}
public void setThumbDrawable(Drawable drawable) {
Drawable drawable2 = this.mThumbDrawable;
if (drawable2 != null) {
drawable2.setCallback(null);
}
this.mThumbDrawable = drawable;
if (drawable != null) {
drawable.setCallback(this);
}
requestLayout();
}
public void setThumbPosition(float f) {
this.mThumbPosition = f;
invalidate();
}
public void setThumbResource(int i) {
setThumbDrawable(AppCompatResources.getDrawable(getContext(), i));
}
public void setThumbTextPadding(int i) {
this.mThumbTextPadding = i;
requestLayout();
}
public void setThumbTintList(@Nullable ColorStateList colorStateList) {
this.mThumbTintList = colorStateList;
this.mHasThumbTint = true;
applyThumbTint();
}
public void setThumbTintMode(@Nullable PorterDuff.Mode mode) {
this.mThumbTintMode = mode;
this.mHasThumbTintMode = true;
applyThumbTint();
}
public void setTrackDrawable(Drawable drawable) {
Drawable drawable2 = this.mTrackDrawable;
if (drawable2 != null) {
drawable2.setCallback(null);
}
this.mTrackDrawable = drawable;
if (drawable != null) {
drawable.setCallback(this);
}
requestLayout();
}
public void setTrackResource(int i) {
setTrackDrawable(AppCompatResources.getDrawable(getContext(), i));
}
public void setTrackTintList(@Nullable ColorStateList colorStateList) {
this.mTrackTintList = colorStateList;
this.mHasTrackTint = true;
applyTrackTint();
}
public void setTrackTintMode(@Nullable PorterDuff.Mode mode) {
this.mTrackTintMode = mode;
this.mHasTrackTintMode = true;
applyTrackTint();
}
@Override // android.widget.CompoundButton, android.widget.Checkable
public void toggle() {
setChecked(!isChecked());
}
@Override // android.widget.CompoundButton, android.widget.TextView, android.view.View
public boolean verifyDrawable(Drawable drawable) {
return super.verifyDrawable(drawable) || drawable == this.mThumbDrawable || drawable == this.mTrackDrawable;
}
}