ADD week 5

This commit is contained in:
2025-03-31 16:33:42 +02:00
parent 86f265f22d
commit bf645048e6
4927 changed files with 544053 additions and 0 deletions

View File

@ -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();
}
};
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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);
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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());
}
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}