ADD week 5
This commit is contained in:
		| @@ -0,0 +1,148 @@ | ||||
| package androidx.appcompat.widget; | ||||
|  | ||||
| import android.content.res.ColorStateList; | ||||
| import android.graphics.Canvas; | ||||
| import android.graphics.PorterDuff; | ||||
| import android.graphics.drawable.Drawable; | ||||
| import android.util.AttributeSet; | ||||
| import android.widget.SeekBar; | ||||
| import androidx.appcompat.R; | ||||
| import androidx.core.graphics.drawable.DrawableCompat; | ||||
| import androidx.core.view.ViewCompat; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| class AppCompatSeekBarHelper extends AppCompatProgressBarHelper { | ||||
|     private boolean mHasTickMarkTint; | ||||
|     private boolean mHasTickMarkTintMode; | ||||
|     private Drawable mTickMark; | ||||
|     private ColorStateList mTickMarkTintList; | ||||
|     private PorterDuff.Mode mTickMarkTintMode; | ||||
|     private final SeekBar mView; | ||||
|  | ||||
|     Drawable getTickMark() { | ||||
|         return this.mTickMark; | ||||
|     } | ||||
|  | ||||
|     ColorStateList getTickMarkTintList() { | ||||
|         return this.mTickMarkTintList; | ||||
|     } | ||||
|  | ||||
|     PorterDuff.Mode getTickMarkTintMode() { | ||||
|         return this.mTickMarkTintMode; | ||||
|     } | ||||
|  | ||||
|     AppCompatSeekBarHelper(SeekBar seekBar) { | ||||
|         super(seekBar); | ||||
|         this.mTickMarkTintList = null; | ||||
|         this.mTickMarkTintMode = null; | ||||
|         this.mHasTickMarkTint = false; | ||||
|         this.mHasTickMarkTintMode = false; | ||||
|         this.mView = seekBar; | ||||
|     } | ||||
|  | ||||
|     @Override // androidx.appcompat.widget.AppCompatProgressBarHelper | ||||
|     void loadFromAttributes(AttributeSet attributeSet, int i) { | ||||
|         super.loadFromAttributes(attributeSet, i); | ||||
|         TintTypedArray obtainStyledAttributes = TintTypedArray.obtainStyledAttributes(this.mView.getContext(), attributeSet, R.styleable.AppCompatSeekBar, i, 0); | ||||
|         SeekBar seekBar = this.mView; | ||||
|         ViewCompat.saveAttributeDataForStyleable(seekBar, seekBar.getContext(), R.styleable.AppCompatSeekBar, attributeSet, obtainStyledAttributes.getWrappedTypeArray(), i, 0); | ||||
|         Drawable drawableIfKnown = obtainStyledAttributes.getDrawableIfKnown(R.styleable.AppCompatSeekBar_android_thumb); | ||||
|         if (drawableIfKnown != null) { | ||||
|             this.mView.setThumb(drawableIfKnown); | ||||
|         } | ||||
|         setTickMark(obtainStyledAttributes.getDrawable(R.styleable.AppCompatSeekBar_tickMark)); | ||||
|         if (obtainStyledAttributes.hasValue(R.styleable.AppCompatSeekBar_tickMarkTintMode)) { | ||||
|             this.mTickMarkTintMode = DrawableUtils.parseTintMode(obtainStyledAttributes.getInt(R.styleable.AppCompatSeekBar_tickMarkTintMode, -1), this.mTickMarkTintMode); | ||||
|             this.mHasTickMarkTintMode = true; | ||||
|         } | ||||
|         if (obtainStyledAttributes.hasValue(R.styleable.AppCompatSeekBar_tickMarkTint)) { | ||||
|             this.mTickMarkTintList = obtainStyledAttributes.getColorStateList(R.styleable.AppCompatSeekBar_tickMarkTint); | ||||
|             this.mHasTickMarkTint = true; | ||||
|         } | ||||
|         obtainStyledAttributes.recycle(); | ||||
|         applyTickMarkTint(); | ||||
|     } | ||||
|  | ||||
|     void setTickMark(Drawable drawable) { | ||||
|         Drawable drawable2 = this.mTickMark; | ||||
|         if (drawable2 != null) { | ||||
|             drawable2.setCallback(null); | ||||
|         } | ||||
|         this.mTickMark = drawable; | ||||
|         if (drawable != null) { | ||||
|             drawable.setCallback(this.mView); | ||||
|             DrawableCompat.setLayoutDirection(drawable, ViewCompat.getLayoutDirection(this.mView)); | ||||
|             if (drawable.isStateful()) { | ||||
|                 drawable.setState(this.mView.getDrawableState()); | ||||
|             } | ||||
|             applyTickMarkTint(); | ||||
|         } | ||||
|         this.mView.invalidate(); | ||||
|     } | ||||
|  | ||||
|     void setTickMarkTintList(ColorStateList colorStateList) { | ||||
|         this.mTickMarkTintList = colorStateList; | ||||
|         this.mHasTickMarkTint = true; | ||||
|         applyTickMarkTint(); | ||||
|     } | ||||
|  | ||||
|     void setTickMarkTintMode(PorterDuff.Mode mode) { | ||||
|         this.mTickMarkTintMode = mode; | ||||
|         this.mHasTickMarkTintMode = true; | ||||
|         applyTickMarkTint(); | ||||
|     } | ||||
|  | ||||
|     private void applyTickMarkTint() { | ||||
|         Drawable drawable = this.mTickMark; | ||||
|         if (drawable != null) { | ||||
|             if (this.mHasTickMarkTint || this.mHasTickMarkTintMode) { | ||||
|                 Drawable wrap = DrawableCompat.wrap(drawable.mutate()); | ||||
|                 this.mTickMark = wrap; | ||||
|                 if (this.mHasTickMarkTint) { | ||||
|                     DrawableCompat.setTintList(wrap, this.mTickMarkTintList); | ||||
|                 } | ||||
|                 if (this.mHasTickMarkTintMode) { | ||||
|                     DrawableCompat.setTintMode(this.mTickMark, this.mTickMarkTintMode); | ||||
|                 } | ||||
|                 if (this.mTickMark.isStateful()) { | ||||
|                     this.mTickMark.setState(this.mView.getDrawableState()); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     void jumpDrawablesToCurrentState() { | ||||
|         Drawable drawable = this.mTickMark; | ||||
|         if (drawable != null) { | ||||
|             drawable.jumpToCurrentState(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     void drawableStateChanged() { | ||||
|         Drawable drawable = this.mTickMark; | ||||
|         if (drawable != null && drawable.isStateful() && drawable.setState(this.mView.getDrawableState())) { | ||||
|             this.mView.invalidateDrawable(drawable); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     void drawTickMarks(Canvas canvas) { | ||||
|         if (this.mTickMark != null) { | ||||
|             int max = this.mView.getMax(); | ||||
|             if (max > 1) { | ||||
|                 int intrinsicWidth = this.mTickMark.getIntrinsicWidth(); | ||||
|                 int intrinsicHeight = this.mTickMark.getIntrinsicHeight(); | ||||
|                 int i = intrinsicWidth >= 0 ? intrinsicWidth / 2 : 1; | ||||
|                 int i2 = intrinsicHeight >= 0 ? intrinsicHeight / 2 : 1; | ||||
|                 this.mTickMark.setBounds(-i, -i2, i, i2); | ||||
|                 float width = ((this.mView.getWidth() - this.mView.getPaddingLeft()) - this.mView.getPaddingRight()) / max; | ||||
|                 int save = canvas.save(); | ||||
|                 canvas.translate(this.mView.getPaddingLeft(), this.mView.getHeight() / 2); | ||||
|                 for (int i3 = 0; i3 <= max; i3++) { | ||||
|                     this.mTickMark.draw(canvas); | ||||
|                     canvas.translate(width, 0.0f); | ||||
|                 } | ||||
|                 canvas.restoreToCount(save); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user