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 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 { 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; } }