ADD week 5
This commit is contained in:
		| @@ -0,0 +1,53 @@ | ||||
| package com.google.android.material.circularreveal; | ||||
|  | ||||
| import android.animation.Animator; | ||||
| import android.animation.AnimatorListenerAdapter; | ||||
| import android.animation.AnimatorSet; | ||||
| import android.animation.ObjectAnimator; | ||||
| import android.animation.TypeEvaluator; | ||||
| import android.util.Property; | ||||
| import android.view.View; | ||||
| import android.view.ViewAnimationUtils; | ||||
| import com.google.android.material.circularreveal.CircularRevealWidget; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public final class CircularRevealCompat { | ||||
|     private CircularRevealCompat() { | ||||
|     } | ||||
|  | ||||
|     /* JADX WARN: Multi-variable type inference failed */ | ||||
|     public static Animator createCircularReveal(CircularRevealWidget circularRevealWidget, float f, float f2, float f3) { | ||||
|         ObjectAnimator ofObject = ObjectAnimator.ofObject(circularRevealWidget, (Property<CircularRevealWidget, V>) CircularRevealWidget.CircularRevealProperty.CIRCULAR_REVEAL, (TypeEvaluator) CircularRevealWidget.CircularRevealEvaluator.CIRCULAR_REVEAL, (Object[]) new CircularRevealWidget.RevealInfo[]{new CircularRevealWidget.RevealInfo(f, f2, f3)}); | ||||
|         CircularRevealWidget.RevealInfo revealInfo = circularRevealWidget.getRevealInfo(); | ||||
|         if (revealInfo == null) { | ||||
|             throw new IllegalStateException("Caller must set a non-null RevealInfo before calling this."); | ||||
|         } | ||||
|         Animator createCircularReveal = ViewAnimationUtils.createCircularReveal((View) circularRevealWidget, (int) f, (int) f2, revealInfo.radius, f3); | ||||
|         AnimatorSet animatorSet = new AnimatorSet(); | ||||
|         animatorSet.playTogether(ofObject, createCircularReveal); | ||||
|         return animatorSet; | ||||
|     } | ||||
|  | ||||
|     /* JADX WARN: Multi-variable type inference failed */ | ||||
|     public static Animator createCircularReveal(CircularRevealWidget circularRevealWidget, float f, float f2, float f3, float f4) { | ||||
|         ObjectAnimator ofObject = ObjectAnimator.ofObject(circularRevealWidget, (Property<CircularRevealWidget, V>) CircularRevealWidget.CircularRevealProperty.CIRCULAR_REVEAL, (TypeEvaluator) CircularRevealWidget.CircularRevealEvaluator.CIRCULAR_REVEAL, (Object[]) new CircularRevealWidget.RevealInfo[]{new CircularRevealWidget.RevealInfo(f, f2, f3), new CircularRevealWidget.RevealInfo(f, f2, f4)}); | ||||
|         Animator createCircularReveal = ViewAnimationUtils.createCircularReveal((View) circularRevealWidget, (int) f, (int) f2, f3, f4); | ||||
|         AnimatorSet animatorSet = new AnimatorSet(); | ||||
|         animatorSet.playTogether(ofObject, createCircularReveal); | ||||
|         return animatorSet; | ||||
|     } | ||||
|  | ||||
|     public static Animator.AnimatorListener createCircularRevealListener(final CircularRevealWidget circularRevealWidget) { | ||||
|         return new AnimatorListenerAdapter() { // from class: com.google.android.material.circularreveal.CircularRevealCompat.1 | ||||
|             @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener | ||||
|             public void onAnimationStart(Animator animator) { | ||||
|                 CircularRevealWidget.this.buildCircularRevealCache(); | ||||
|             } | ||||
|  | ||||
|             @Override // android.animation.AnimatorListenerAdapter, android.animation.Animator.AnimatorListener | ||||
|             public void onAnimationEnd(Animator animator) { | ||||
|                 CircularRevealWidget.this.destroyCircularRevealCache(); | ||||
|             } | ||||
|         }; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,91 @@ | ||||
| package com.google.android.material.circularreveal; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.graphics.Canvas; | ||||
| import android.graphics.drawable.Drawable; | ||||
| import android.util.AttributeSet; | ||||
| import android.widget.FrameLayout; | ||||
| import com.google.android.material.circularreveal.CircularRevealWidget; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class CircularRevealFrameLayout extends FrameLayout implements CircularRevealWidget { | ||||
|     private final CircularRevealHelper helper; | ||||
|  | ||||
|     public CircularRevealFrameLayout(Context context) { | ||||
|         this(context, null); | ||||
|     } | ||||
|  | ||||
|     public CircularRevealFrameLayout(Context context, AttributeSet attributeSet) { | ||||
|         super(context, attributeSet); | ||||
|         this.helper = new CircularRevealHelper(this); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void buildCircularRevealCache() { | ||||
|         this.helper.buildCircularRevealCache(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void destroyCircularRevealCache() { | ||||
|         this.helper.destroyCircularRevealCache(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public CircularRevealWidget.RevealInfo getRevealInfo() { | ||||
|         return this.helper.getRevealInfo(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setRevealInfo(CircularRevealWidget.RevealInfo revealInfo) { | ||||
|         this.helper.setRevealInfo(revealInfo); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public int getCircularRevealScrimColor() { | ||||
|         return this.helper.getCircularRevealScrimColor(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setCircularRevealScrimColor(int i) { | ||||
|         this.helper.setCircularRevealScrimColor(i); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public Drawable getCircularRevealOverlayDrawable() { | ||||
|         return this.helper.getCircularRevealOverlayDrawable(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setCircularRevealOverlayDrawable(Drawable drawable) { | ||||
|         this.helper.setCircularRevealOverlayDrawable(drawable); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View, com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void draw(Canvas canvas) { | ||||
|         CircularRevealHelper circularRevealHelper = this.helper; | ||||
|         if (circularRevealHelper != null) { | ||||
|             circularRevealHelper.draw(canvas); | ||||
|         } else { | ||||
|             super.draw(canvas); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealHelper.Delegate | ||||
|     public void actualDraw(Canvas canvas) { | ||||
|         super.draw(canvas); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View, com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public boolean isOpaque() { | ||||
|         CircularRevealHelper circularRevealHelper = this.helper; | ||||
|         if (circularRevealHelper != null) { | ||||
|             return circularRevealHelper.isOpaque(); | ||||
|         } | ||||
|         return super.isOpaque(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealHelper.Delegate | ||||
|     public boolean actualIsOpaque() { | ||||
|         return super.isOpaque(); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,91 @@ | ||||
| package com.google.android.material.circularreveal; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.graphics.Canvas; | ||||
| import android.graphics.drawable.Drawable; | ||||
| import android.util.AttributeSet; | ||||
| import android.widget.GridLayout; | ||||
| import com.google.android.material.circularreveal.CircularRevealWidget; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class CircularRevealGridLayout extends GridLayout implements CircularRevealWidget { | ||||
|     private final CircularRevealHelper helper; | ||||
|  | ||||
|     public CircularRevealGridLayout(Context context) { | ||||
|         this(context, null); | ||||
|     } | ||||
|  | ||||
|     public CircularRevealGridLayout(Context context, AttributeSet attributeSet) { | ||||
|         super(context, attributeSet); | ||||
|         this.helper = new CircularRevealHelper(this); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void buildCircularRevealCache() { | ||||
|         this.helper.buildCircularRevealCache(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void destroyCircularRevealCache() { | ||||
|         this.helper.destroyCircularRevealCache(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public CircularRevealWidget.RevealInfo getRevealInfo() { | ||||
|         return this.helper.getRevealInfo(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setRevealInfo(CircularRevealWidget.RevealInfo revealInfo) { | ||||
|         this.helper.setRevealInfo(revealInfo); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public int getCircularRevealScrimColor() { | ||||
|         return this.helper.getCircularRevealScrimColor(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setCircularRevealScrimColor(int i) { | ||||
|         this.helper.setCircularRevealScrimColor(i); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public Drawable getCircularRevealOverlayDrawable() { | ||||
|         return this.helper.getCircularRevealOverlayDrawable(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setCircularRevealOverlayDrawable(Drawable drawable) { | ||||
|         this.helper.setCircularRevealOverlayDrawable(drawable); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View, com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void draw(Canvas canvas) { | ||||
|         CircularRevealHelper circularRevealHelper = this.helper; | ||||
|         if (circularRevealHelper != null) { | ||||
|             circularRevealHelper.draw(canvas); | ||||
|         } else { | ||||
|             super.draw(canvas); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealHelper.Delegate | ||||
|     public void actualDraw(Canvas canvas) { | ||||
|         super.draw(canvas); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View, com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public boolean isOpaque() { | ||||
|         CircularRevealHelper circularRevealHelper = this.helper; | ||||
|         if (circularRevealHelper != null) { | ||||
|             return circularRevealHelper.isOpaque(); | ||||
|         } | ||||
|         return super.isOpaque(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealHelper.Delegate | ||||
|     public boolean actualIsOpaque() { | ||||
|         return super.isOpaque(); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,229 @@ | ||||
| package com.google.android.material.circularreveal; | ||||
|  | ||||
| import android.graphics.Bitmap; | ||||
| import android.graphics.BitmapShader; | ||||
| import android.graphics.Canvas; | ||||
| import android.graphics.Color; | ||||
| import android.graphics.Paint; | ||||
| import android.graphics.Path; | ||||
| import android.graphics.Rect; | ||||
| import android.graphics.Shader; | ||||
| import android.graphics.drawable.Drawable; | ||||
| import android.view.View; | ||||
| import androidx.core.internal.view.SupportMenu; | ||||
| import androidx.core.view.ViewCompat; | ||||
| import com.google.android.material.circularreveal.CircularRevealWidget; | ||||
| import com.google.android.material.math.MathUtils; | ||||
| import java.lang.annotation.Retention; | ||||
| import java.lang.annotation.RetentionPolicy; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class CircularRevealHelper { | ||||
|     public static final int BITMAP_SHADER = 0; | ||||
|     public static final int CLIP_PATH = 1; | ||||
|     private static final boolean DEBUG = false; | ||||
|     public static final int REVEAL_ANIMATOR = 2; | ||||
|     public static final int STRATEGY = 2; | ||||
|     private boolean buildingCircularRevealCache; | ||||
|     private Paint debugPaint; | ||||
|     private final Delegate delegate; | ||||
|     private boolean hasCircularRevealCache; | ||||
|     private Drawable overlayDrawable; | ||||
|     private CircularRevealWidget.RevealInfo revealInfo; | ||||
|     private final Paint revealPaint; | ||||
|     private final Path revealPath; | ||||
|     private final Paint scrimPaint; | ||||
|     private final View view; | ||||
|  | ||||
|     public interface Delegate { | ||||
|         void actualDraw(Canvas canvas); | ||||
|  | ||||
|         boolean actualIsOpaque(); | ||||
|     } | ||||
|  | ||||
|     @Retention(RetentionPolicy.SOURCE) | ||||
|     public @interface Strategy { | ||||
|     } | ||||
|  | ||||
|     private boolean shouldDrawOverlayDrawable() { | ||||
|         return (this.buildingCircularRevealCache || this.overlayDrawable == null || this.revealInfo == null) ? false : true; | ||||
|     } | ||||
|  | ||||
|     public Drawable getCircularRevealOverlayDrawable() { | ||||
|         return this.overlayDrawable; | ||||
|     } | ||||
|  | ||||
|     /* JADX WARN: Multi-variable type inference failed */ | ||||
|     public CircularRevealHelper(Delegate delegate) { | ||||
|         this.delegate = delegate; | ||||
|         View view = (View) delegate; | ||||
|         this.view = view; | ||||
|         view.setWillNotDraw(false); | ||||
|         this.revealPath = new Path(); | ||||
|         this.revealPaint = new Paint(7); | ||||
|         Paint paint = new Paint(1); | ||||
|         this.scrimPaint = paint; | ||||
|         paint.setColor(0); | ||||
|     } | ||||
|  | ||||
|     public void buildCircularRevealCache() { | ||||
|         if (STRATEGY == 0) { | ||||
|             this.buildingCircularRevealCache = true; | ||||
|             this.hasCircularRevealCache = false; | ||||
|             this.view.buildDrawingCache(); | ||||
|             Bitmap drawingCache = this.view.getDrawingCache(); | ||||
|             if (drawingCache == null && this.view.getWidth() != 0 && this.view.getHeight() != 0) { | ||||
|                 drawingCache = Bitmap.createBitmap(this.view.getWidth(), this.view.getHeight(), Bitmap.Config.ARGB_8888); | ||||
|                 this.view.draw(new Canvas(drawingCache)); | ||||
|             } | ||||
|             if (drawingCache != null) { | ||||
|                 this.revealPaint.setShader(new BitmapShader(drawingCache, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP)); | ||||
|             } | ||||
|             this.buildingCircularRevealCache = false; | ||||
|             this.hasCircularRevealCache = true; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void destroyCircularRevealCache() { | ||||
|         if (STRATEGY == 0) { | ||||
|             this.hasCircularRevealCache = false; | ||||
|             this.view.destroyDrawingCache(); | ||||
|             this.revealPaint.setShader(null); | ||||
|             this.view.invalidate(); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public void setRevealInfo(CircularRevealWidget.RevealInfo revealInfo) { | ||||
|         if (revealInfo == null) { | ||||
|             this.revealInfo = null; | ||||
|         } else { | ||||
|             CircularRevealWidget.RevealInfo revealInfo2 = this.revealInfo; | ||||
|             if (revealInfo2 == null) { | ||||
|                 this.revealInfo = new CircularRevealWidget.RevealInfo(revealInfo); | ||||
|             } else { | ||||
|                 revealInfo2.set(revealInfo); | ||||
|             } | ||||
|             if (MathUtils.geq(revealInfo.radius, getDistanceToFurthestCorner(revealInfo), 1.0E-4f)) { | ||||
|                 this.revealInfo.radius = Float.MAX_VALUE; | ||||
|             } | ||||
|         } | ||||
|         invalidateRevealInfo(); | ||||
|     } | ||||
|  | ||||
|     public CircularRevealWidget.RevealInfo getRevealInfo() { | ||||
|         CircularRevealWidget.RevealInfo revealInfo = this.revealInfo; | ||||
|         if (revealInfo == null) { | ||||
|             return null; | ||||
|         } | ||||
|         CircularRevealWidget.RevealInfo revealInfo2 = new CircularRevealWidget.RevealInfo(revealInfo); | ||||
|         if (revealInfo2.isInvalid()) { | ||||
|             revealInfo2.radius = getDistanceToFurthestCorner(revealInfo2); | ||||
|         } | ||||
|         return revealInfo2; | ||||
|     } | ||||
|  | ||||
|     public void setCircularRevealScrimColor(int i) { | ||||
|         this.scrimPaint.setColor(i); | ||||
|         this.view.invalidate(); | ||||
|     } | ||||
|  | ||||
|     public int getCircularRevealScrimColor() { | ||||
|         return this.scrimPaint.getColor(); | ||||
|     } | ||||
|  | ||||
|     public void setCircularRevealOverlayDrawable(Drawable drawable) { | ||||
|         this.overlayDrawable = drawable; | ||||
|         this.view.invalidate(); | ||||
|     } | ||||
|  | ||||
|     private void invalidateRevealInfo() { | ||||
|         if (STRATEGY == 1) { | ||||
|             this.revealPath.rewind(); | ||||
|             CircularRevealWidget.RevealInfo revealInfo = this.revealInfo; | ||||
|             if (revealInfo != null) { | ||||
|                 this.revealPath.addCircle(revealInfo.centerX, this.revealInfo.centerY, this.revealInfo.radius, Path.Direction.CW); | ||||
|             } | ||||
|         } | ||||
|         this.view.invalidate(); | ||||
|     } | ||||
|  | ||||
|     private float getDistanceToFurthestCorner(CircularRevealWidget.RevealInfo revealInfo) { | ||||
|         return MathUtils.distanceToFurthestCorner(revealInfo.centerX, revealInfo.centerY, 0.0f, 0.0f, this.view.getWidth(), this.view.getHeight()); | ||||
|     } | ||||
|  | ||||
|     public void draw(Canvas canvas) { | ||||
|         if (shouldDrawCircularReveal()) { | ||||
|             int i = STRATEGY; | ||||
|             if (i == 0) { | ||||
|                 canvas.drawCircle(this.revealInfo.centerX, this.revealInfo.centerY, this.revealInfo.radius, this.revealPaint); | ||||
|                 if (shouldDrawScrim()) { | ||||
|                     canvas.drawCircle(this.revealInfo.centerX, this.revealInfo.centerY, this.revealInfo.radius, this.scrimPaint); | ||||
|                 } | ||||
|             } else if (i == 1) { | ||||
|                 int save = canvas.save(); | ||||
|                 canvas.clipPath(this.revealPath); | ||||
|                 this.delegate.actualDraw(canvas); | ||||
|                 if (shouldDrawScrim()) { | ||||
|                     canvas.drawRect(0.0f, 0.0f, this.view.getWidth(), this.view.getHeight(), this.scrimPaint); | ||||
|                 } | ||||
|                 canvas.restoreToCount(save); | ||||
|             } else if (i == 2) { | ||||
|                 this.delegate.actualDraw(canvas); | ||||
|                 if (shouldDrawScrim()) { | ||||
|                     canvas.drawRect(0.0f, 0.0f, this.view.getWidth(), this.view.getHeight(), this.scrimPaint); | ||||
|                 } | ||||
|             } else { | ||||
|                 throw new IllegalStateException("Unsupported strategy " + i); | ||||
|             } | ||||
|         } else { | ||||
|             this.delegate.actualDraw(canvas); | ||||
|             if (shouldDrawScrim()) { | ||||
|                 canvas.drawRect(0.0f, 0.0f, this.view.getWidth(), this.view.getHeight(), this.scrimPaint); | ||||
|             } | ||||
|         } | ||||
|         drawOverlayDrawable(canvas); | ||||
|     } | ||||
|  | ||||
|     private void drawOverlayDrawable(Canvas canvas) { | ||||
|         if (shouldDrawOverlayDrawable()) { | ||||
|             Rect bounds = this.overlayDrawable.getBounds(); | ||||
|             float width = this.revealInfo.centerX - (bounds.width() / 2.0f); | ||||
|             float height = this.revealInfo.centerY - (bounds.height() / 2.0f); | ||||
|             canvas.translate(width, height); | ||||
|             this.overlayDrawable.draw(canvas); | ||||
|             canvas.translate(-width, -height); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public boolean isOpaque() { | ||||
|         return this.delegate.actualIsOpaque() && !shouldDrawCircularReveal(); | ||||
|     } | ||||
|  | ||||
|     private boolean shouldDrawCircularReveal() { | ||||
|         CircularRevealWidget.RevealInfo revealInfo = this.revealInfo; | ||||
|         boolean z = revealInfo == null || revealInfo.isInvalid(); | ||||
|         return STRATEGY == 0 ? !z && this.hasCircularRevealCache : !z; | ||||
|     } | ||||
|  | ||||
|     private boolean shouldDrawScrim() { | ||||
|         return (this.buildingCircularRevealCache || Color.alpha(this.scrimPaint.getColor()) == 0) ? false : true; | ||||
|     } | ||||
|  | ||||
|     private void drawDebugMode(Canvas canvas) { | ||||
|         this.delegate.actualDraw(canvas); | ||||
|         if (shouldDrawScrim()) { | ||||
|             canvas.drawCircle(this.revealInfo.centerX, this.revealInfo.centerY, this.revealInfo.radius, this.scrimPaint); | ||||
|         } | ||||
|         if (shouldDrawCircularReveal()) { | ||||
|             drawDebugCircle(canvas, ViewCompat.MEASURED_STATE_MASK, 10.0f); | ||||
|             drawDebugCircle(canvas, SupportMenu.CATEGORY_MASK, 5.0f); | ||||
|         } | ||||
|         drawOverlayDrawable(canvas); | ||||
|     } | ||||
|  | ||||
|     private void drawDebugCircle(Canvas canvas, int i, float f) { | ||||
|         this.debugPaint.setColor(i); | ||||
|         this.debugPaint.setStrokeWidth(f); | ||||
|         canvas.drawCircle(this.revealInfo.centerX, this.revealInfo.centerY, this.revealInfo.radius - (f / 2.0f), this.debugPaint); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,91 @@ | ||||
| package com.google.android.material.circularreveal; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.graphics.Canvas; | ||||
| import android.graphics.drawable.Drawable; | ||||
| import android.util.AttributeSet; | ||||
| import android.widget.LinearLayout; | ||||
| import com.google.android.material.circularreveal.CircularRevealWidget; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class CircularRevealLinearLayout extends LinearLayout implements CircularRevealWidget { | ||||
|     private final CircularRevealHelper helper; | ||||
|  | ||||
|     public CircularRevealLinearLayout(Context context) { | ||||
|         this(context, null); | ||||
|     } | ||||
|  | ||||
|     public CircularRevealLinearLayout(Context context, AttributeSet attributeSet) { | ||||
|         super(context, attributeSet); | ||||
|         this.helper = new CircularRevealHelper(this); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void buildCircularRevealCache() { | ||||
|         this.helper.buildCircularRevealCache(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void destroyCircularRevealCache() { | ||||
|         this.helper.destroyCircularRevealCache(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public CircularRevealWidget.RevealInfo getRevealInfo() { | ||||
|         return this.helper.getRevealInfo(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setRevealInfo(CircularRevealWidget.RevealInfo revealInfo) { | ||||
|         this.helper.setRevealInfo(revealInfo); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public int getCircularRevealScrimColor() { | ||||
|         return this.helper.getCircularRevealScrimColor(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setCircularRevealScrimColor(int i) { | ||||
|         this.helper.setCircularRevealScrimColor(i); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public Drawable getCircularRevealOverlayDrawable() { | ||||
|         return this.helper.getCircularRevealOverlayDrawable(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setCircularRevealOverlayDrawable(Drawable drawable) { | ||||
|         this.helper.setCircularRevealOverlayDrawable(drawable); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View, com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void draw(Canvas canvas) { | ||||
|         CircularRevealHelper circularRevealHelper = this.helper; | ||||
|         if (circularRevealHelper != null) { | ||||
|             circularRevealHelper.draw(canvas); | ||||
|         } else { | ||||
|             super.draw(canvas); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealHelper.Delegate | ||||
|     public void actualDraw(Canvas canvas) { | ||||
|         super.draw(canvas); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View, com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public boolean isOpaque() { | ||||
|         CircularRevealHelper circularRevealHelper = this.helper; | ||||
|         if (circularRevealHelper != null) { | ||||
|             return circularRevealHelper.isOpaque(); | ||||
|         } | ||||
|         return super.isOpaque(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealHelper.Delegate | ||||
|     public boolean actualIsOpaque() { | ||||
|         return super.isOpaque(); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,91 @@ | ||||
| package com.google.android.material.circularreveal; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.graphics.Canvas; | ||||
| import android.graphics.drawable.Drawable; | ||||
| import android.util.AttributeSet; | ||||
| import android.widget.RelativeLayout; | ||||
| import com.google.android.material.circularreveal.CircularRevealWidget; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class CircularRevealRelativeLayout extends RelativeLayout implements CircularRevealWidget { | ||||
|     private final CircularRevealHelper helper; | ||||
|  | ||||
|     public CircularRevealRelativeLayout(Context context) { | ||||
|         this(context, null); | ||||
|     } | ||||
|  | ||||
|     public CircularRevealRelativeLayout(Context context, AttributeSet attributeSet) { | ||||
|         super(context, attributeSet); | ||||
|         this.helper = new CircularRevealHelper(this); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void buildCircularRevealCache() { | ||||
|         this.helper.buildCircularRevealCache(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void destroyCircularRevealCache() { | ||||
|         this.helper.destroyCircularRevealCache(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public CircularRevealWidget.RevealInfo getRevealInfo() { | ||||
|         return this.helper.getRevealInfo(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setRevealInfo(CircularRevealWidget.RevealInfo revealInfo) { | ||||
|         this.helper.setRevealInfo(revealInfo); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public int getCircularRevealScrimColor() { | ||||
|         return this.helper.getCircularRevealScrimColor(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setCircularRevealScrimColor(int i) { | ||||
|         this.helper.setCircularRevealScrimColor(i); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public Drawable getCircularRevealOverlayDrawable() { | ||||
|         return this.helper.getCircularRevealOverlayDrawable(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setCircularRevealOverlayDrawable(Drawable drawable) { | ||||
|         this.helper.setCircularRevealOverlayDrawable(drawable); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View, com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void draw(Canvas canvas) { | ||||
|         CircularRevealHelper circularRevealHelper = this.helper; | ||||
|         if (circularRevealHelper != null) { | ||||
|             circularRevealHelper.draw(canvas); | ||||
|         } else { | ||||
|             super.draw(canvas); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealHelper.Delegate | ||||
|     public void actualDraw(Canvas canvas) { | ||||
|         super.draw(canvas); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View, com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public boolean isOpaque() { | ||||
|         CircularRevealHelper circularRevealHelper = this.helper; | ||||
|         if (circularRevealHelper != null) { | ||||
|             return circularRevealHelper.isOpaque(); | ||||
|         } | ||||
|         return super.isOpaque(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealHelper.Delegate | ||||
|     public boolean actualIsOpaque() { | ||||
|         return super.isOpaque(); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,112 @@ | ||||
| package com.google.android.material.circularreveal; | ||||
|  | ||||
| import android.animation.TypeEvaluator; | ||||
| import android.graphics.Canvas; | ||||
| import android.graphics.drawable.Drawable; | ||||
| import android.util.Property; | ||||
| import com.google.android.material.circularreveal.CircularRevealHelper; | ||||
| import com.google.android.material.math.MathUtils; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public interface CircularRevealWidget extends CircularRevealHelper.Delegate { | ||||
|     void buildCircularRevealCache(); | ||||
|  | ||||
|     void destroyCircularRevealCache(); | ||||
|  | ||||
|     void draw(Canvas canvas); | ||||
|  | ||||
|     Drawable getCircularRevealOverlayDrawable(); | ||||
|  | ||||
|     int getCircularRevealScrimColor(); | ||||
|  | ||||
|     RevealInfo getRevealInfo(); | ||||
|  | ||||
|     boolean isOpaque(); | ||||
|  | ||||
|     void setCircularRevealOverlayDrawable(Drawable drawable); | ||||
|  | ||||
|     void setCircularRevealScrimColor(int i); | ||||
|  | ||||
|     void setRevealInfo(RevealInfo revealInfo); | ||||
|  | ||||
|     public static class RevealInfo { | ||||
|         public static final float INVALID_RADIUS = Float.MAX_VALUE; | ||||
|         public float centerX; | ||||
|         public float centerY; | ||||
|         public float radius; | ||||
|  | ||||
|         public boolean isInvalid() { | ||||
|             return this.radius == Float.MAX_VALUE; | ||||
|         } | ||||
|  | ||||
|         public void set(float f, float f2, float f3) { | ||||
|             this.centerX = f; | ||||
|             this.centerY = f2; | ||||
|             this.radius = f3; | ||||
|         } | ||||
|  | ||||
|         private RevealInfo() { | ||||
|         } | ||||
|  | ||||
|         public RevealInfo(float f, float f2, float f3) { | ||||
|             this.centerX = f; | ||||
|             this.centerY = f2; | ||||
|             this.radius = f3; | ||||
|         } | ||||
|  | ||||
|         public RevealInfo(RevealInfo revealInfo) { | ||||
|             this(revealInfo.centerX, revealInfo.centerY, revealInfo.radius); | ||||
|         } | ||||
|  | ||||
|         public void set(RevealInfo revealInfo) { | ||||
|             set(revealInfo.centerX, revealInfo.centerY, revealInfo.radius); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static class CircularRevealProperty extends Property<CircularRevealWidget, RevealInfo> { | ||||
|         public static final Property<CircularRevealWidget, RevealInfo> CIRCULAR_REVEAL = new CircularRevealProperty("circularReveal"); | ||||
|  | ||||
|         private CircularRevealProperty(String str) { | ||||
|             super(RevealInfo.class, str); | ||||
|         } | ||||
|  | ||||
|         @Override // android.util.Property | ||||
|         public RevealInfo get(CircularRevealWidget circularRevealWidget) { | ||||
|             return circularRevealWidget.getRevealInfo(); | ||||
|         } | ||||
|  | ||||
|         @Override // android.util.Property | ||||
|         public void set(CircularRevealWidget circularRevealWidget, RevealInfo revealInfo) { | ||||
|             circularRevealWidget.setRevealInfo(revealInfo); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static class CircularRevealEvaluator implements TypeEvaluator<RevealInfo> { | ||||
|         public static final TypeEvaluator<RevealInfo> CIRCULAR_REVEAL = new CircularRevealEvaluator(); | ||||
|         private final RevealInfo revealInfo = new RevealInfo(); | ||||
|  | ||||
|         @Override // android.animation.TypeEvaluator | ||||
|         public RevealInfo evaluate(float f, RevealInfo revealInfo, RevealInfo revealInfo2) { | ||||
|             this.revealInfo.set(MathUtils.lerp(revealInfo.centerX, revealInfo2.centerX, f), MathUtils.lerp(revealInfo.centerY, revealInfo2.centerY, f), MathUtils.lerp(revealInfo.radius, revealInfo2.radius, f)); | ||||
|             return this.revealInfo; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public static class CircularRevealScrimColorProperty extends Property<CircularRevealWidget, Integer> { | ||||
|         public static final Property<CircularRevealWidget, Integer> CIRCULAR_REVEAL_SCRIM_COLOR = new CircularRevealScrimColorProperty("circularRevealScrimColor"); | ||||
|  | ||||
|         private CircularRevealScrimColorProperty(String str) { | ||||
|             super(Integer.class, str); | ||||
|         } | ||||
|  | ||||
|         @Override // android.util.Property | ||||
|         public Integer get(CircularRevealWidget circularRevealWidget) { | ||||
|             return Integer.valueOf(circularRevealWidget.getCircularRevealScrimColor()); | ||||
|         } | ||||
|  | ||||
|         @Override // android.util.Property | ||||
|         public void set(CircularRevealWidget circularRevealWidget, Integer num) { | ||||
|             circularRevealWidget.setCircularRevealScrimColor(num.intValue()); | ||||
|         } | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,92 @@ | ||||
| package com.google.android.material.circularreveal.cardview; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.graphics.Canvas; | ||||
| import android.graphics.drawable.Drawable; | ||||
| import android.util.AttributeSet; | ||||
| import com.google.android.material.card.MaterialCardView; | ||||
| import com.google.android.material.circularreveal.CircularRevealHelper; | ||||
| import com.google.android.material.circularreveal.CircularRevealWidget; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class CircularRevealCardView extends MaterialCardView implements CircularRevealWidget { | ||||
|     private final CircularRevealHelper helper; | ||||
|  | ||||
|     public CircularRevealCardView(Context context) { | ||||
|         this(context, null); | ||||
|     } | ||||
|  | ||||
|     public CircularRevealCardView(Context context, AttributeSet attributeSet) { | ||||
|         super(context, attributeSet); | ||||
|         this.helper = new CircularRevealHelper(this); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void buildCircularRevealCache() { | ||||
|         this.helper.buildCircularRevealCache(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void destroyCircularRevealCache() { | ||||
|         this.helper.destroyCircularRevealCache(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setRevealInfo(CircularRevealWidget.RevealInfo revealInfo) { | ||||
|         this.helper.setRevealInfo(revealInfo); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public CircularRevealWidget.RevealInfo getRevealInfo() { | ||||
|         return this.helper.getRevealInfo(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setCircularRevealScrimColor(int i) { | ||||
|         this.helper.setCircularRevealScrimColor(i); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public int getCircularRevealScrimColor() { | ||||
|         return this.helper.getCircularRevealScrimColor(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public Drawable getCircularRevealOverlayDrawable() { | ||||
|         return this.helper.getCircularRevealOverlayDrawable(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setCircularRevealOverlayDrawable(Drawable drawable) { | ||||
|         this.helper.setCircularRevealOverlayDrawable(drawable); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View, com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void draw(Canvas canvas) { | ||||
|         CircularRevealHelper circularRevealHelper = this.helper; | ||||
|         if (circularRevealHelper != null) { | ||||
|             circularRevealHelper.draw(canvas); | ||||
|         } else { | ||||
|             super.draw(canvas); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealHelper.Delegate | ||||
|     public void actualDraw(Canvas canvas) { | ||||
|         super.draw(canvas); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View, com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public boolean isOpaque() { | ||||
|         CircularRevealHelper circularRevealHelper = this.helper; | ||||
|         if (circularRevealHelper != null) { | ||||
|             return circularRevealHelper.isOpaque(); | ||||
|         } | ||||
|         return super.isOpaque(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealHelper.Delegate | ||||
|     public boolean actualIsOpaque() { | ||||
|         return super.isOpaque(); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,92 @@ | ||||
| package com.google.android.material.circularreveal.coordinatorlayout; | ||||
|  | ||||
| import android.content.Context; | ||||
| import android.graphics.Canvas; | ||||
| import android.graphics.drawable.Drawable; | ||||
| import android.util.AttributeSet; | ||||
| import androidx.coordinatorlayout.widget.CoordinatorLayout; | ||||
| import com.google.android.material.circularreveal.CircularRevealHelper; | ||||
| import com.google.android.material.circularreveal.CircularRevealWidget; | ||||
|  | ||||
| /* loaded from: classes.dex */ | ||||
| public class CircularRevealCoordinatorLayout extends CoordinatorLayout implements CircularRevealWidget { | ||||
|     private final CircularRevealHelper helper; | ||||
|  | ||||
|     public CircularRevealCoordinatorLayout(Context context) { | ||||
|         this(context, null); | ||||
|     } | ||||
|  | ||||
|     public CircularRevealCoordinatorLayout(Context context, AttributeSet attributeSet) { | ||||
|         super(context, attributeSet); | ||||
|         this.helper = new CircularRevealHelper(this); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void buildCircularRevealCache() { | ||||
|         this.helper.buildCircularRevealCache(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void destroyCircularRevealCache() { | ||||
|         this.helper.destroyCircularRevealCache(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setRevealInfo(CircularRevealWidget.RevealInfo revealInfo) { | ||||
|         this.helper.setRevealInfo(revealInfo); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public CircularRevealWidget.RevealInfo getRevealInfo() { | ||||
|         return this.helper.getRevealInfo(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setCircularRevealScrimColor(int i) { | ||||
|         this.helper.setCircularRevealScrimColor(i); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public int getCircularRevealScrimColor() { | ||||
|         return this.helper.getCircularRevealScrimColor(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public Drawable getCircularRevealOverlayDrawable() { | ||||
|         return this.helper.getCircularRevealOverlayDrawable(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void setCircularRevealOverlayDrawable(Drawable drawable) { | ||||
|         this.helper.setCircularRevealOverlayDrawable(drawable); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View, com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public void draw(Canvas canvas) { | ||||
|         CircularRevealHelper circularRevealHelper = this.helper; | ||||
|         if (circularRevealHelper != null) { | ||||
|             circularRevealHelper.draw(canvas); | ||||
|         } else { | ||||
|             super.draw(canvas); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealHelper.Delegate | ||||
|     public void actualDraw(Canvas canvas) { | ||||
|         super.draw(canvas); | ||||
|     } | ||||
|  | ||||
|     @Override // android.view.View, com.google.android.material.circularreveal.CircularRevealWidget | ||||
|     public boolean isOpaque() { | ||||
|         CircularRevealHelper circularRevealHelper = this.helper; | ||||
|         if (circularRevealHelper != null) { | ||||
|             return circularRevealHelper.isOpaque(); | ||||
|         } | ||||
|         return super.isOpaque(); | ||||
|     } | ||||
|  | ||||
|     @Override // com.google.android.material.circularreveal.CircularRevealHelper.Delegate | ||||
|     public boolean actualIsOpaque() { | ||||
|         return super.isOpaque(); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user