Changes of com.discord v1325

This commit is contained in:
root 2020-11-12 02:11:44 +00:00
parent d9d9f382c9
commit 3cb9e1231d
28086 changed files with 4880345 additions and 0 deletions

View file

@ -0,0 +1,76 @@
.class public Landroidx/constraintlayout/utils/widget/ImageFilterButton$1;
.super Landroid/view/ViewOutlineProvider;
.source "ImageFilterButton.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/constraintlayout/utils/widget/ImageFilterButton;->setRoundPercent(F)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Landroidx/constraintlayout/utils/widget/ImageFilterButton;
# direct methods
.method public constructor <init>(Landroidx/constraintlayout/utils/widget/ImageFilterButton;)V
.locals 0
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton$1;->this$0:Landroidx/constraintlayout/utils/widget/ImageFilterButton;
invoke-direct {p0}, Landroid/view/ViewOutlineProvider;-><init>()V
return-void
.end method
# virtual methods
.method public getOutline(Landroid/view/View;Landroid/graphics/Outline;)V
.locals 6
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton$1;->this$0:Landroidx/constraintlayout/utils/widget/ImageFilterButton;
invoke-virtual {p1}, Landroid/widget/ImageButton;->getWidth()I
move-result v3
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton$1;->this$0:Landroidx/constraintlayout/utils/widget/ImageFilterButton;
invoke-virtual {p1}, Landroid/widget/ImageButton;->getHeight()I
move-result v4
invoke-static {v3, v4}, Ljava/lang/Math;->min(II)I
move-result p1
int-to-float p1, p1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton$1;->this$0:Landroidx/constraintlayout/utils/widget/ImageFilterButton;
invoke-static {v0}, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->access$000(Landroidx/constraintlayout/utils/widget/ImageFilterButton;)F
move-result v0
mul-float v0, v0, p1
const/high16 p1, 0x40000000 # 2.0f
div-float v5, v0, p1
const/4 v1, 0x0
const/4 v2, 0x0
move-object v0, p2
invoke-virtual/range {v0 .. v5}, Landroid/graphics/Outline;->setRoundRect(IIIIF)V
return-void
.end method

View file

@ -0,0 +1,64 @@
.class public Landroidx/constraintlayout/utils/widget/ImageFilterButton$2;
.super Landroid/view/ViewOutlineProvider;
.source "ImageFilterButton.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/constraintlayout/utils/widget/ImageFilterButton;->setRound(F)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Landroidx/constraintlayout/utils/widget/ImageFilterButton;
# direct methods
.method public constructor <init>(Landroidx/constraintlayout/utils/widget/ImageFilterButton;)V
.locals 0
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton$2;->this$0:Landroidx/constraintlayout/utils/widget/ImageFilterButton;
invoke-direct {p0}, Landroid/view/ViewOutlineProvider;-><init>()V
return-void
.end method
# virtual methods
.method public getOutline(Landroid/view/View;Landroid/graphics/Outline;)V
.locals 6
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton$2;->this$0:Landroidx/constraintlayout/utils/widget/ImageFilterButton;
invoke-virtual {p1}, Landroid/widget/ImageButton;->getWidth()I
move-result v3
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton$2;->this$0:Landroidx/constraintlayout/utils/widget/ImageFilterButton;
invoke-virtual {p1}, Landroid/widget/ImageButton;->getHeight()I
move-result v4
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton$2;->this$0:Landroidx/constraintlayout/utils/widget/ImageFilterButton;
invoke-static {p1}, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->access$100(Landroidx/constraintlayout/utils/widget/ImageFilterButton;)F
move-result v5
const/4 v1, 0x0
const/4 v2, 0x0
move-object v0, p2
invoke-virtual/range {v0 .. v5}, Landroid/graphics/Outline;->setRoundRect(IIIIF)V
return-void
.end method

View file

@ -0,0 +1,768 @@
.class public Landroidx/constraintlayout/utils/widget/ImageFilterButton;
.super Landroidx/appcompat/widget/AppCompatImageButton;
.source "ImageFilterButton.java"
# instance fields
.field public mCrossfade:F
.field public mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
.field public mLayer:Landroid/graphics/drawable/LayerDrawable;
.field public mLayers:[Landroid/graphics/drawable/Drawable;
.field public mOverlay:Z
.field public mPath:Landroid/graphics/Path;
.field public mRect:Landroid/graphics/RectF;
.field public mRound:F
.field public mRoundPercent:F
.field public mViewOutlineProvider:Landroid/view/ViewOutlineProvider;
# direct methods
.method public constructor <init>(Landroid/content/Context;)V
.locals 1
invoke-direct {p0, p1}, Landroidx/appcompat/widget/AppCompatImageButton;-><init>(Landroid/content/Context;)V
new-instance v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
invoke-direct {v0}, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;-><init>()V
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
const/4 v0, 0x0
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mCrossfade:F
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRoundPercent:F
const/high16 v0, 0x7fc00000 # Float.NaN
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRound:F
const/4 v0, 0x1
iput-boolean v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mOverlay:Z
const/4 v0, 0x0
invoke-direct {p0, p1, v0}, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->init(Landroid/content/Context;Landroid/util/AttributeSet;)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.locals 1
invoke-direct {p0, p1, p2}, Landroidx/appcompat/widget/AppCompatImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
new-instance v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
invoke-direct {v0}, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;-><init>()V
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
const/4 v0, 0x0
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mCrossfade:F
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRoundPercent:F
const/high16 v0, 0x7fc00000 # Float.NaN
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRound:F
const/4 v0, 0x1
iput-boolean v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mOverlay:Z
invoke-direct {p0, p1, p2}, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->init(Landroid/content/Context;Landroid/util/AttributeSet;)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
.locals 0
invoke-direct {p0, p1, p2, p3}, Landroidx/appcompat/widget/AppCompatImageButton;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
new-instance p3, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
invoke-direct {p3}, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;-><init>()V
iput-object p3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
const/4 p3, 0x0
iput p3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mCrossfade:F
iput p3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRoundPercent:F
const/high16 p3, 0x7fc00000 # Float.NaN
iput p3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRound:F
const/4 p3, 0x1
iput-boolean p3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mOverlay:Z
invoke-direct {p0, p1, p2}, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->init(Landroid/content/Context;Landroid/util/AttributeSet;)V
return-void
.end method
.method public static synthetic access$000(Landroidx/constraintlayout/utils/widget/ImageFilterButton;)F
.locals 0
iget p0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRoundPercent:F
return p0
.end method
.method public static synthetic access$100(Landroidx/constraintlayout/utils/widget/ImageFilterButton;)F
.locals 0
iget p0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRound:F
return p0
.end method
.method private init(Landroid/content/Context;Landroid/util/AttributeSet;)V
.locals 6
const/4 p1, 0x0
invoke-virtual {p0, p1, p1, p1, p1}, Landroid/widget/ImageButton;->setPadding(IIII)V
if-eqz p2, :cond_8
invoke-virtual {p0}, Landroid/widget/ImageButton;->getContext()Landroid/content/Context;
move-result-object v0
sget-object v1, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView:[I
invoke-virtual {v0, p2, v1}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object p2
invoke-virtual {p2}, Landroid/content/res/TypedArray;->getIndexCount()I
move-result v0
sget v1, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView_altSrc:I
invoke-virtual {p2, v1}, Landroid/content/res/TypedArray;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object v1
const/4 v2, 0x0
:goto_0
if-ge v2, v0, :cond_7
invoke-virtual {p2, v2}, Landroid/content/res/TypedArray;->getIndex(I)I
move-result v3
sget v4, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView_crossfade:I
const/4 v5, 0x0
if-ne v3, v4, :cond_0
invoke-virtual {p2, v3, v5}, Landroid/content/res/TypedArray;->getFloat(IF)F
move-result v3
iput v3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mCrossfade:F
goto :goto_1
:cond_0
sget v4, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView_warmth:I
if-ne v3, v4, :cond_1
invoke-virtual {p2, v3, v5}, Landroid/content/res/TypedArray;->getFloat(IF)F
move-result v3
invoke-virtual {p0, v3}, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->setWarmth(F)V
goto :goto_1
:cond_1
sget v4, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView_saturation:I
if-ne v3, v4, :cond_2
invoke-virtual {p2, v3, v5}, Landroid/content/res/TypedArray;->getFloat(IF)F
move-result v3
invoke-virtual {p0, v3}, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->setSaturation(F)V
goto :goto_1
:cond_2
sget v4, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView_contrast:I
if-ne v3, v4, :cond_3
invoke-virtual {p2, v3, v5}, Landroid/content/res/TypedArray;->getFloat(IF)F
move-result v3
invoke-virtual {p0, v3}, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->setContrast(F)V
goto :goto_1
:cond_3
sget v4, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView_round:I
if-ne v3, v4, :cond_4
invoke-virtual {p2, v3, v5}, Landroid/content/res/TypedArray;->getDimension(IF)F
move-result v3
invoke-virtual {p0, v3}, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->setRound(F)V
goto :goto_1
:cond_4
sget v4, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView_roundPercent:I
if-ne v3, v4, :cond_5
invoke-virtual {p2, v3, v5}, Landroid/content/res/TypedArray;->getFloat(IF)F
move-result v3
invoke-virtual {p0, v3}, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->setRoundPercent(F)V
goto :goto_1
:cond_5
sget v4, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView_overlay:I
if-ne v3, v4, :cond_6
iget-boolean v4, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mOverlay:Z
invoke-virtual {p2, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
invoke-direct {p0, v3}, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->setOverlay(Z)V
:cond_6
:goto_1
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_7
invoke-virtual {p2}, Landroid/content/res/TypedArray;->recycle()V
if-eqz v1, :cond_8
const/4 p2, 0x2
new-array p2, p2, [Landroid/graphics/drawable/Drawable;
iput-object p2, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mLayers:[Landroid/graphics/drawable/Drawable;
invoke-virtual {p0}, Landroid/widget/ImageButton;->getDrawable()Landroid/graphics/drawable/Drawable;
move-result-object v0
aput-object v0, p2, p1
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mLayers:[Landroid/graphics/drawable/Drawable;
const/4 p2, 0x1
aput-object v1, p1, p2
new-instance p1, Landroid/graphics/drawable/LayerDrawable;
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mLayers:[Landroid/graphics/drawable/Drawable;
invoke-direct {p1, v0}, Landroid/graphics/drawable/LayerDrawable;-><init>([Landroid/graphics/drawable/Drawable;)V
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mLayer:Landroid/graphics/drawable/LayerDrawable;
invoke-virtual {p1, p2}, Landroid/graphics/drawable/LayerDrawable;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object p1
const/high16 p2, 0x437f0000 # 255.0f
iget v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mCrossfade:F
mul-float v0, v0, p2
float-to-int p2, v0
invoke-virtual {p1, p2}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mLayer:Landroid/graphics/drawable/LayerDrawable;
invoke-super {p0, p1}, Landroidx/appcompat/widget/AppCompatImageButton;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V
:cond_8
return-void
.end method
.method private setOverlay(Z)V
.locals 0
iput-boolean p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mOverlay:Z
return-void
.end method
# virtual methods
.method public draw(Landroid/graphics/Canvas;)V
.locals 1
invoke-super {p0, p1}, Landroid/widget/ImageButton;->draw(Landroid/graphics/Canvas;)V
const/4 v0, 0x0
if-eqz v0, :cond_0
invoke-virtual {p1}, Landroid/graphics/Canvas;->restore()V
:cond_0
return-void
.end method
.method public getContrast()F
.locals 1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
iget v0, v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mContrast:F
return v0
.end method
.method public getCrossfade()F
.locals 1
iget v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mCrossfade:F
return v0
.end method
.method public getRound()F
.locals 1
iget v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRound:F
return v0
.end method
.method public getRoundPercent()F
.locals 1
iget v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRoundPercent:F
return v0
.end method
.method public getSaturation()F
.locals 1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
iget v0, v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mSaturation:F
return v0
.end method
.method public getWarmth()F
.locals 1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
iget v0, v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mWarmth:F
return v0
.end method
.method public setBrightness(F)V
.locals 1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
iput p1, v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mBrightness:F
invoke-virtual {v0, p0}, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->updateMatrix(Landroid/widget/ImageView;)V
return-void
.end method
.method public setContrast(F)V
.locals 1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
iput p1, v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mContrast:F
invoke-virtual {v0, p0}, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->updateMatrix(Landroid/widget/ImageView;)V
return-void
.end method
.method public setCrossfade(F)V
.locals 3
iput p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mCrossfade:F
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mLayers:[Landroid/graphics/drawable/Drawable;
if-eqz p1, :cond_1
iget-boolean p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mOverlay:Z
const/high16 v0, 0x437f0000 # 255.0f
if-nez p1, :cond_0
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mLayer:Landroid/graphics/drawable/LayerDrawable;
const/4 v1, 0x0
invoke-virtual {p1, v1}, Landroid/graphics/drawable/LayerDrawable;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object p1
const/high16 v1, 0x3f800000 # 1.0f
iget v2, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mCrossfade:F
sub-float/2addr v1, v2
mul-float v1, v1, v0
float-to-int v1, v1
invoke-virtual {p1, v1}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V
:cond_0
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mLayer:Landroid/graphics/drawable/LayerDrawable;
const/4 v1, 0x1
invoke-virtual {p1, v1}, Landroid/graphics/drawable/LayerDrawable;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object p1
iget v1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mCrossfade:F
mul-float v1, v1, v0
float-to-int v0, v1
invoke-virtual {p1, v0}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mLayer:Landroid/graphics/drawable/LayerDrawable;
invoke-super {p0, p1}, Landroidx/appcompat/widget/AppCompatImageButton;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V
:cond_1
return-void
.end method
.method public setRound(F)V
.locals 4
.annotation build Landroidx/annotation/RequiresApi;
value = 0x15
.end annotation
invoke-static {p1}, Ljava/lang/Float;->isNaN(F)Z
move-result v0
if-eqz v0, :cond_0
iput p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRound:F
iget p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRoundPercent:F
const/high16 v0, -0x40800000 # -1.0f
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRoundPercent:F
invoke-virtual {p0, p1}, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->setRoundPercent(F)V
return-void
:cond_0
iget v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRound:F
const/4 v1, 0x1
const/4 v2, 0x0
cmpl-float v0, v0, p1
if-eqz v0, :cond_1
const/4 v0, 0x1
goto :goto_0
:cond_1
const/4 v0, 0x0
:goto_0
iput p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRound:F
const/4 v3, 0x0
cmpl-float p1, p1, v3
if-eqz p1, :cond_5
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mPath:Landroid/graphics/Path;
if-nez p1, :cond_2
new-instance p1, Landroid/graphics/Path;
invoke-direct {p1}, Landroid/graphics/Path;-><init>()V
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mPath:Landroid/graphics/Path;
:cond_2
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRect:Landroid/graphics/RectF;
if-nez p1, :cond_3
new-instance p1, Landroid/graphics/RectF;
invoke-direct {p1}, Landroid/graphics/RectF;-><init>()V
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRect:Landroid/graphics/RectF;
:cond_3
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mViewOutlineProvider:Landroid/view/ViewOutlineProvider;
if-nez p1, :cond_4
new-instance p1, Landroidx/constraintlayout/utils/widget/ImageFilterButton$2;
invoke-direct {p1, p0}, Landroidx/constraintlayout/utils/widget/ImageFilterButton$2;-><init>(Landroidx/constraintlayout/utils/widget/ImageFilterButton;)V
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mViewOutlineProvider:Landroid/view/ViewOutlineProvider;
invoke-virtual {p0, p1}, Landroid/widget/ImageButton;->setOutlineProvider(Landroid/view/ViewOutlineProvider;)V
:cond_4
invoke-virtual {p0, v1}, Landroid/widget/ImageButton;->setClipToOutline(Z)V
invoke-virtual {p0}, Landroid/widget/ImageButton;->getWidth()I
move-result p1
invoke-virtual {p0}, Landroid/widget/ImageButton;->getHeight()I
move-result v1
iget-object v2, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRect:Landroid/graphics/RectF;
int-to-float p1, p1
int-to-float v1, v1
invoke-virtual {v2, v3, v3, p1, v1}, Landroid/graphics/RectF;->set(FFFF)V
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mPath:Landroid/graphics/Path;
invoke-virtual {p1}, Landroid/graphics/Path;->reset()V
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mPath:Landroid/graphics/Path;
iget-object v1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRect:Landroid/graphics/RectF;
iget v2, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRound:F
sget-object v3, Landroid/graphics/Path$Direction;->CW:Landroid/graphics/Path$Direction;
invoke-virtual {p1, v1, v2, v2, v3}, Landroid/graphics/Path;->addRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Path$Direction;)V
goto :goto_1
:cond_5
invoke-virtual {p0, v2}, Landroid/widget/ImageButton;->setClipToOutline(Z)V
:goto_1
if-eqz v0, :cond_6
invoke-virtual {p0}, Landroid/widget/ImageButton;->invalidateOutline()V
:cond_6
return-void
.end method
.method public setRoundPercent(F)V
.locals 5
.annotation build Landroidx/annotation/RequiresApi;
value = 0x15
.end annotation
iget v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRoundPercent:F
const/4 v1, 0x1
const/4 v2, 0x0
cmpl-float v0, v0, p1
if-eqz v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
iput p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRoundPercent:F
const/4 v3, 0x0
cmpl-float p1, p1, v3
if-eqz p1, :cond_4
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mPath:Landroid/graphics/Path;
if-nez p1, :cond_1
new-instance p1, Landroid/graphics/Path;
invoke-direct {p1}, Landroid/graphics/Path;-><init>()V
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mPath:Landroid/graphics/Path;
:cond_1
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRect:Landroid/graphics/RectF;
if-nez p1, :cond_2
new-instance p1, Landroid/graphics/RectF;
invoke-direct {p1}, Landroid/graphics/RectF;-><init>()V
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRect:Landroid/graphics/RectF;
:cond_2
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mViewOutlineProvider:Landroid/view/ViewOutlineProvider;
if-nez p1, :cond_3
new-instance p1, Landroidx/constraintlayout/utils/widget/ImageFilterButton$1;
invoke-direct {p1, p0}, Landroidx/constraintlayout/utils/widget/ImageFilterButton$1;-><init>(Landroidx/constraintlayout/utils/widget/ImageFilterButton;)V
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mViewOutlineProvider:Landroid/view/ViewOutlineProvider;
invoke-virtual {p0, p1}, Landroid/widget/ImageButton;->setOutlineProvider(Landroid/view/ViewOutlineProvider;)V
:cond_3
invoke-virtual {p0, v1}, Landroid/widget/ImageButton;->setClipToOutline(Z)V
invoke-virtual {p0}, Landroid/widget/ImageButton;->getWidth()I
move-result p1
invoke-virtual {p0}, Landroid/widget/ImageButton;->getHeight()I
move-result v1
invoke-static {p1, v1}, Ljava/lang/Math;->min(II)I
move-result v2
int-to-float v2, v2
iget v4, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRoundPercent:F
mul-float v2, v2, v4
const/high16 v4, 0x40000000 # 2.0f
div-float/2addr v2, v4
iget-object v4, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRect:Landroid/graphics/RectF;
int-to-float p1, p1
int-to-float v1, v1
invoke-virtual {v4, v3, v3, p1, v1}, Landroid/graphics/RectF;->set(FFFF)V
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mPath:Landroid/graphics/Path;
invoke-virtual {p1}, Landroid/graphics/Path;->reset()V
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mPath:Landroid/graphics/Path;
iget-object v1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mRect:Landroid/graphics/RectF;
sget-object v3, Landroid/graphics/Path$Direction;->CW:Landroid/graphics/Path$Direction;
invoke-virtual {p1, v1, v2, v2, v3}, Landroid/graphics/Path;->addRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Path$Direction;)V
goto :goto_1
:cond_4
invoke-virtual {p0, v2}, Landroid/widget/ImageButton;->setClipToOutline(Z)V
:goto_1
if-eqz v0, :cond_5
invoke-virtual {p0}, Landroid/widget/ImageButton;->invalidateOutline()V
:cond_5
return-void
.end method
.method public setSaturation(F)V
.locals 1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
iput p1, v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mSaturation:F
invoke-virtual {v0, p0}, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->updateMatrix(Landroid/widget/ImageView;)V
return-void
.end method
.method public setWarmth(F)V
.locals 1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterButton;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
iput p1, v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mWarmth:F
invoke-virtual {v0, p0}, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->updateMatrix(Landroid/widget/ImageView;)V
return-void
.end method

View file

@ -0,0 +1,76 @@
.class public Landroidx/constraintlayout/utils/widget/ImageFilterView$1;
.super Landroid/view/ViewOutlineProvider;
.source "ImageFilterView.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/constraintlayout/utils/widget/ImageFilterView;->setRoundPercent(F)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Landroidx/constraintlayout/utils/widget/ImageFilterView;
# direct methods
.method public constructor <init>(Landroidx/constraintlayout/utils/widget/ImageFilterView;)V
.locals 0
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$1;->this$0:Landroidx/constraintlayout/utils/widget/ImageFilterView;
invoke-direct {p0}, Landroid/view/ViewOutlineProvider;-><init>()V
return-void
.end method
# virtual methods
.method public getOutline(Landroid/view/View;Landroid/graphics/Outline;)V
.locals 6
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$1;->this$0:Landroidx/constraintlayout/utils/widget/ImageFilterView;
invoke-virtual {p1}, Landroid/widget/ImageView;->getWidth()I
move-result v3
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$1;->this$0:Landroidx/constraintlayout/utils/widget/ImageFilterView;
invoke-virtual {p1}, Landroid/widget/ImageView;->getHeight()I
move-result v4
invoke-static {v3, v4}, Ljava/lang/Math;->min(II)I
move-result p1
int-to-float p1, p1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$1;->this$0:Landroidx/constraintlayout/utils/widget/ImageFilterView;
invoke-static {v0}, Landroidx/constraintlayout/utils/widget/ImageFilterView;->access$000(Landroidx/constraintlayout/utils/widget/ImageFilterView;)F
move-result v0
mul-float v0, v0, p1
const/high16 p1, 0x40000000 # 2.0f
div-float v5, v0, p1
const/4 v1, 0x0
const/4 v2, 0x0
move-object v0, p2
invoke-virtual/range {v0 .. v5}, Landroid/graphics/Outline;->setRoundRect(IIIIF)V
return-void
.end method

View file

@ -0,0 +1,64 @@
.class public Landroidx/constraintlayout/utils/widget/ImageFilterView$2;
.super Landroid/view/ViewOutlineProvider;
.source "ImageFilterView.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
value = Landroidx/constraintlayout/utils/widget/ImageFilterView;->setRound(F)V
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1
name = null
.end annotation
# instance fields
.field public final synthetic this$0:Landroidx/constraintlayout/utils/widget/ImageFilterView;
# direct methods
.method public constructor <init>(Landroidx/constraintlayout/utils/widget/ImageFilterView;)V
.locals 0
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$2;->this$0:Landroidx/constraintlayout/utils/widget/ImageFilterView;
invoke-direct {p0}, Landroid/view/ViewOutlineProvider;-><init>()V
return-void
.end method
# virtual methods
.method public getOutline(Landroid/view/View;Landroid/graphics/Outline;)V
.locals 6
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$2;->this$0:Landroidx/constraintlayout/utils/widget/ImageFilterView;
invoke-virtual {p1}, Landroid/widget/ImageView;->getWidth()I
move-result v3
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$2;->this$0:Landroidx/constraintlayout/utils/widget/ImageFilterView;
invoke-virtual {p1}, Landroid/widget/ImageView;->getHeight()I
move-result v4
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$2;->this$0:Landroidx/constraintlayout/utils/widget/ImageFilterView;
invoke-static {p1}, Landroidx/constraintlayout/utils/widget/ImageFilterView;->access$100(Landroidx/constraintlayout/utils/widget/ImageFilterView;)F
move-result v5
const/4 v1, 0x0
const/4 v2, 0x0
move-object v0, p2
invoke-virtual/range {v0 .. v5}, Landroid/graphics/Outline;->setRoundRect(IIIIF)V
return-void
.end method

View file

@ -0,0 +1,684 @@
.class public Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
.super Ljava/lang/Object;
.source "ImageFilterView.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/constraintlayout/utils/widget/ImageFilterView;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "ImageMatrix"
.end annotation
# instance fields
.field public m:[F
.field public mBrightness:F
.field public mColorMatrix:Landroid/graphics/ColorMatrix;
.field public mContrast:F
.field public mSaturation:F
.field public mTmpColorMatrix:Landroid/graphics/ColorMatrix;
.field public mWarmth:F
# direct methods
.method public constructor <init>()V
.locals 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/16 v0, 0x14
new-array v0, v0, [F
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->m:[F
new-instance v0, Landroid/graphics/ColorMatrix;
invoke-direct {v0}, Landroid/graphics/ColorMatrix;-><init>()V
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mColorMatrix:Landroid/graphics/ColorMatrix;
new-instance v0, Landroid/graphics/ColorMatrix;
invoke-direct {v0}, Landroid/graphics/ColorMatrix;-><init>()V
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mTmpColorMatrix:Landroid/graphics/ColorMatrix;
const/high16 v0, 0x3f800000 # 1.0f
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mBrightness:F
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mSaturation:F
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mContrast:F
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mWarmth:F
return-void
.end method
.method private brightness(F)V
.locals 3
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->m:[F
const/4 v1, 0x0
aput p1, v0, v1
const/4 v1, 0x1
const/4 v2, 0x0
aput v2, v0, v1
const/4 v1, 0x2
aput v2, v0, v1
const/4 v1, 0x3
aput v2, v0, v1
const/4 v1, 0x4
aput v2, v0, v1
const/4 v1, 0x5
aput v2, v0, v1
const/4 v1, 0x6
aput p1, v0, v1
const/4 v1, 0x7
aput v2, v0, v1
const/16 v1, 0x8
aput v2, v0, v1
const/16 v1, 0x9
aput v2, v0, v1
const/16 v1, 0xa
aput v2, v0, v1
const/16 v1, 0xb
aput v2, v0, v1
const/16 v1, 0xc
aput p1, v0, v1
const/16 p1, 0xd
aput v2, v0, p1
const/16 p1, 0xe
aput v2, v0, p1
const/16 p1, 0xf
aput v2, v0, p1
const/16 p1, 0x10
aput v2, v0, p1
const/16 p1, 0x11
aput v2, v0, p1
const/16 p1, 0x12
const/high16 v1, 0x3f800000 # 1.0f
aput v1, v0, p1
const/16 p1, 0x13
aput v2, v0, p1
return-void
.end method
.method private saturation(F)V
.locals 8
const/high16 v0, 0x3f800000 # 1.0f
sub-float v1, v0, p1
const v2, 0x3e998c7e # 0.2999f
mul-float v2, v2, v1
const v3, 0x3f1645a2 # 0.587f
mul-float v3, v3, v1
const v4, 0x3de978d5 # 0.114f
mul-float v1, v1, v4
iget-object v4, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->m:[F
add-float v5, v2, p1
const/4 v6, 0x0
aput v5, v4, v6
const/4 v5, 0x1
aput v3, v4, v5
const/4 v5, 0x2
aput v1, v4, v5
const/4 v5, 0x3
const/4 v6, 0x0
aput v6, v4, v5
const/4 v5, 0x4
aput v6, v4, v5
const/4 v5, 0x5
aput v2, v4, v5
add-float v5, v3, p1
const/4 v7, 0x6
aput v5, v4, v7
const/4 v5, 0x7
aput v1, v4, v5
const/16 v5, 0x8
aput v6, v4, v5
const/16 v5, 0x9
aput v6, v4, v5
const/16 v5, 0xa
aput v2, v4, v5
const/16 v2, 0xb
aput v3, v4, v2
add-float/2addr v1, p1
const/16 p1, 0xc
aput v1, v4, p1
const/16 p1, 0xd
aput v6, v4, p1
const/16 p1, 0xe
aput v6, v4, p1
const/16 p1, 0xf
aput v6, v4, p1
const/16 p1, 0x10
aput v6, v4, p1
const/16 p1, 0x11
aput v6, v4, p1
const/16 p1, 0x12
aput v0, v4, p1
const/16 p1, 0x13
aput v6, v4, p1
return-void
.end method
.method private warmth(F)V
.locals 11
const/4 v0, 0x0
cmpg-float v1, p1, v0
if-gtz v1, :cond_0
const p1, 0x3c23d70a # 0.01f
:cond_0
const v1, 0x459c4000 # 5000.0f
div-float/2addr v1, p1
const/high16 p1, 0x42c80000 # 100.0f
div-float/2addr v1, p1
const p1, 0x43211e9c
const v2, 0x42c6f10d
const/high16 v3, 0x42840000 # 66.0f
const/high16 v4, 0x437f0000 # 255.0f
cmpl-float v5, v1, v3
if-lez v5, :cond_1
const/high16 v5, 0x42700000 # 60.0f
sub-float v5, v1, v5
const v6, 0x43a4d970
float-to-double v7, v5
const-wide v9, -0x403ef32580000000L # -0.13320475816726685
invoke-static {v7, v8, v9, v10}, Ljava/lang/Math;->pow(DD)D
move-result-wide v9
double-to-float v5, v9
mul-float v5, v5, v6
const v6, 0x43900fa3
const-wide v9, 0x3fb354f0e0000000L
invoke-static {v7, v8, v9, v10}, Ljava/lang/Math;->pow(DD)D
move-result-wide v7
double-to-float v7, v7
mul-float v7, v7, v6
goto :goto_0
:cond_1
float-to-double v5, v1
invoke-static {v5, v6}, Ljava/lang/Math;->log(D)D
move-result-wide v5
double-to-float v5, v5
mul-float v5, v5, v2
sub-float v7, v5, p1
const/high16 v5, 0x437f0000 # 255.0f
:goto_0
const v6, 0x439885bc
const v8, 0x430a848a
cmpg-float v3, v1, v3
if-gez v3, :cond_3
const/high16 v3, 0x41980000 # 19.0f
cmpl-float v3, v1, v3
if-lez v3, :cond_2
const/high16 v3, 0x41200000 # 10.0f
sub-float/2addr v1, v3
float-to-double v9, v1
invoke-static {v9, v10}, Ljava/lang/Math;->log(D)D
move-result-wide v9
double-to-float v1, v9
mul-float v1, v1, v8
sub-float/2addr v1, v6
goto :goto_1
:cond_2
const/4 v1, 0x0
goto :goto_1
:cond_3
const/high16 v1, 0x437f0000 # 255.0f
:goto_1
invoke-static {v5, v0}, Ljava/lang/Math;->max(FF)F
move-result v3
invoke-static {v4, v3}, Ljava/lang/Math;->min(FF)F
move-result v3
invoke-static {v7, v0}, Ljava/lang/Math;->max(FF)F
move-result v5
invoke-static {v4, v5}, Ljava/lang/Math;->min(FF)F
move-result v5
invoke-static {v1, v0}, Ljava/lang/Math;->max(FF)F
move-result v1
invoke-static {v4, v1}, Ljava/lang/Math;->min(FF)F
move-result v1
const/high16 v7, 0x42480000 # 50.0f
float-to-double v9, v7
invoke-static {v9, v10}, Ljava/lang/Math;->log(D)D
move-result-wide v9
double-to-float v7, v9
mul-float v7, v7, v2
sub-float/2addr v7, p1
const/high16 p1, 0x42200000 # 40.0f
float-to-double v9, p1
invoke-static {v9, v10}, Ljava/lang/Math;->log(D)D
move-result-wide v9
double-to-float p1, v9
mul-float p1, p1, v8
sub-float/2addr p1, v6
invoke-static {v4, v0}, Ljava/lang/Math;->max(FF)F
move-result v2
invoke-static {v4, v2}, Ljava/lang/Math;->min(FF)F
move-result v2
invoke-static {v7, v0}, Ljava/lang/Math;->max(FF)F
move-result v6
invoke-static {v4, v6}, Ljava/lang/Math;->min(FF)F
move-result v6
invoke-static {p1, v0}, Ljava/lang/Math;->max(FF)F
move-result p1
invoke-static {v4, p1}, Ljava/lang/Math;->min(FF)F
move-result p1
div-float/2addr v3, v2
div-float/2addr v5, v6
div-float/2addr v1, p1
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->m:[F
const/4 v2, 0x0
aput v3, p1, v2
const/4 v2, 0x1
aput v0, p1, v2
const/4 v2, 0x2
aput v0, p1, v2
const/4 v2, 0x3
aput v0, p1, v2
const/4 v2, 0x4
aput v0, p1, v2
const/4 v2, 0x5
aput v0, p1, v2
const/4 v2, 0x6
aput v5, p1, v2
const/4 v2, 0x7
aput v0, p1, v2
const/16 v2, 0x8
aput v0, p1, v2
const/16 v2, 0x9
aput v0, p1, v2
const/16 v2, 0xa
aput v0, p1, v2
const/16 v2, 0xb
aput v0, p1, v2
const/16 v2, 0xc
aput v1, p1, v2
const/16 v1, 0xd
aput v0, p1, v1
const/16 v1, 0xe
aput v0, p1, v1
const/16 v1, 0xf
aput v0, p1, v1
const/16 v1, 0x10
aput v0, p1, v1
const/16 v1, 0x11
aput v0, p1, v1
const/16 v1, 0x12
const/high16 v2, 0x3f800000 # 1.0f
aput v2, p1, v1
const/16 v1, 0x13
aput v0, p1, v1
return-void
.end method
# virtual methods
.method public updateMatrix(Landroid/widget/ImageView;)V
.locals 5
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mColorMatrix:Landroid/graphics/ColorMatrix;
invoke-virtual {v0}, Landroid/graphics/ColorMatrix;->reset()V
iget v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mSaturation:F
const/4 v1, 0x1
const/high16 v2, 0x3f800000 # 1.0f
cmpl-float v3, v0, v2
if-eqz v3, :cond_0
invoke-direct {p0, v0}, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->saturation(F)V
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mColorMatrix:Landroid/graphics/ColorMatrix;
iget-object v3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->m:[F
invoke-virtual {v0, v3}, Landroid/graphics/ColorMatrix;->set([F)V
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
iget v3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mContrast:F
cmpl-float v4, v3, v2
if-eqz v4, :cond_1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mTmpColorMatrix:Landroid/graphics/ColorMatrix;
invoke-virtual {v0, v3, v3, v3, v2}, Landroid/graphics/ColorMatrix;->setScale(FFFF)V
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mColorMatrix:Landroid/graphics/ColorMatrix;
iget-object v3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mTmpColorMatrix:Landroid/graphics/ColorMatrix;
invoke-virtual {v0, v3}, Landroid/graphics/ColorMatrix;->postConcat(Landroid/graphics/ColorMatrix;)V
const/4 v0, 0x1
:cond_1
iget v3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mWarmth:F
cmpl-float v4, v3, v2
if-eqz v4, :cond_2
invoke-direct {p0, v3}, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->warmth(F)V
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mTmpColorMatrix:Landroid/graphics/ColorMatrix;
iget-object v3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->m:[F
invoke-virtual {v0, v3}, Landroid/graphics/ColorMatrix;->set([F)V
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mColorMatrix:Landroid/graphics/ColorMatrix;
iget-object v3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mTmpColorMatrix:Landroid/graphics/ColorMatrix;
invoke-virtual {v0, v3}, Landroid/graphics/ColorMatrix;->postConcat(Landroid/graphics/ColorMatrix;)V
const/4 v0, 0x1
:cond_2
iget v3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mBrightness:F
cmpl-float v2, v3, v2
if-eqz v2, :cond_3
invoke-direct {p0, v3}, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->brightness(F)V
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mTmpColorMatrix:Landroid/graphics/ColorMatrix;
iget-object v2, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->m:[F
invoke-virtual {v0, v2}, Landroid/graphics/ColorMatrix;->set([F)V
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mColorMatrix:Landroid/graphics/ColorMatrix;
iget-object v2, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mTmpColorMatrix:Landroid/graphics/ColorMatrix;
invoke-virtual {v0, v2}, Landroid/graphics/ColorMatrix;->postConcat(Landroid/graphics/ColorMatrix;)V
goto :goto_1
:cond_3
move v1, v0
:goto_1
if-eqz v1, :cond_4
new-instance v0, Landroid/graphics/ColorMatrixColorFilter;
iget-object v1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mColorMatrix:Landroid/graphics/ColorMatrix;
invoke-direct {v0, v1}, Landroid/graphics/ColorMatrixColorFilter;-><init>(Landroid/graphics/ColorMatrix;)V
invoke-virtual {p1, v0}, Landroid/widget/ImageView;->setColorFilter(Landroid/graphics/ColorFilter;)V
goto :goto_2
:cond_4
invoke-virtual {p1}, Landroid/widget/ImageView;->clearColorFilter()V
:goto_2
return-void
.end method

View file

@ -0,0 +1,784 @@
.class public Landroidx/constraintlayout/utils/widget/ImageFilterView;
.super Landroidx/appcompat/widget/AppCompatImageView;
.source "ImageFilterView.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
}
.end annotation
# instance fields
.field public mCrossfade:F
.field public mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
.field public mLayer:Landroid/graphics/drawable/LayerDrawable;
.field public mLayers:[Landroid/graphics/drawable/Drawable;
.field public mOverlay:Z
.field public mPath:Landroid/graphics/Path;
.field public mRect:Landroid/graphics/RectF;
.field public mRound:F
.field public mRoundPercent:F
.field public mViewOutlineProvider:Landroid/view/ViewOutlineProvider;
# direct methods
.method public constructor <init>(Landroid/content/Context;)V
.locals 1
invoke-direct {p0, p1}, Landroidx/appcompat/widget/AppCompatImageView;-><init>(Landroid/content/Context;)V
new-instance v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
invoke-direct {v0}, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;-><init>()V
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
const/4 v0, 0x1
iput-boolean v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mOverlay:Z
const/4 v0, 0x0
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mCrossfade:F
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRoundPercent:F
const/high16 v0, 0x7fc00000 # Float.NaN
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRound:F
const/4 v0, 0x0
invoke-direct {p0, p1, v0}, Landroidx/constraintlayout/utils/widget/ImageFilterView;->init(Landroid/content/Context;Landroid/util/AttributeSet;)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.locals 1
invoke-direct {p0, p1, p2}, Landroidx/appcompat/widget/AppCompatImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
new-instance v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
invoke-direct {v0}, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;-><init>()V
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
const/4 v0, 0x1
iput-boolean v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mOverlay:Z
const/4 v0, 0x0
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mCrossfade:F
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRoundPercent:F
const/high16 v0, 0x7fc00000 # Float.NaN
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRound:F
invoke-direct {p0, p1, p2}, Landroidx/constraintlayout/utils/widget/ImageFilterView;->init(Landroid/content/Context;Landroid/util/AttributeSet;)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
.locals 0
invoke-direct {p0, p1, p2, p3}, Landroidx/appcompat/widget/AppCompatImageView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
new-instance p3, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
invoke-direct {p3}, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;-><init>()V
iput-object p3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
const/4 p3, 0x1
iput-boolean p3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mOverlay:Z
const/4 p3, 0x0
iput p3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mCrossfade:F
iput p3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRoundPercent:F
const/high16 p3, 0x7fc00000 # Float.NaN
iput p3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRound:F
invoke-direct {p0, p1, p2}, Landroidx/constraintlayout/utils/widget/ImageFilterView;->init(Landroid/content/Context;Landroid/util/AttributeSet;)V
return-void
.end method
.method public static synthetic access$000(Landroidx/constraintlayout/utils/widget/ImageFilterView;)F
.locals 0
iget p0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRoundPercent:F
return p0
.end method
.method public static synthetic access$100(Landroidx/constraintlayout/utils/widget/ImageFilterView;)F
.locals 0
iget p0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRound:F
return p0
.end method
.method private init(Landroid/content/Context;Landroid/util/AttributeSet;)V
.locals 6
if-eqz p2, :cond_8
invoke-virtual {p0}, Landroid/widget/ImageView;->getContext()Landroid/content/Context;
move-result-object p1
sget-object v0, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView:[I
invoke-virtual {p1, p2, v0}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object p1
invoke-virtual {p1}, Landroid/content/res/TypedArray;->getIndexCount()I
move-result p2
sget v0, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView_altSrc:I
invoke-virtual {p1, v0}, Landroid/content/res/TypedArray;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object v0
const/4 v1, 0x0
const/4 v2, 0x0
:goto_0
if-ge v2, p2, :cond_7
invoke-virtual {p1, v2}, Landroid/content/res/TypedArray;->getIndex(I)I
move-result v3
sget v4, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView_crossfade:I
const/4 v5, 0x0
if-ne v3, v4, :cond_0
invoke-virtual {p1, v3, v5}, Landroid/content/res/TypedArray;->getFloat(IF)F
move-result v3
iput v3, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mCrossfade:F
goto :goto_1
:cond_0
sget v4, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView_warmth:I
if-ne v3, v4, :cond_1
invoke-virtual {p1, v3, v5}, Landroid/content/res/TypedArray;->getFloat(IF)F
move-result v3
invoke-virtual {p0, v3}, Landroidx/constraintlayout/utils/widget/ImageFilterView;->setWarmth(F)V
goto :goto_1
:cond_1
sget v4, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView_saturation:I
if-ne v3, v4, :cond_2
invoke-virtual {p1, v3, v5}, Landroid/content/res/TypedArray;->getFloat(IF)F
move-result v3
invoke-virtual {p0, v3}, Landroidx/constraintlayout/utils/widget/ImageFilterView;->setSaturation(F)V
goto :goto_1
:cond_2
sget v4, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView_contrast:I
if-ne v3, v4, :cond_3
invoke-virtual {p1, v3, v5}, Landroid/content/res/TypedArray;->getFloat(IF)F
move-result v3
invoke-virtual {p0, v3}, Landroidx/constraintlayout/utils/widget/ImageFilterView;->setContrast(F)V
goto :goto_1
:cond_3
sget v4, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView_round:I
if-ne v3, v4, :cond_4
invoke-virtual {p1, v3, v5}, Landroid/content/res/TypedArray;->getDimension(IF)F
move-result v3
invoke-virtual {p0, v3}, Landroidx/constraintlayout/utils/widget/ImageFilterView;->setRound(F)V
goto :goto_1
:cond_4
sget v4, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView_roundPercent:I
if-ne v3, v4, :cond_5
invoke-virtual {p1, v3, v5}, Landroid/content/res/TypedArray;->getFloat(IF)F
move-result v3
invoke-virtual {p0, v3}, Landroidx/constraintlayout/utils/widget/ImageFilterView;->setRoundPercent(F)V
goto :goto_1
:cond_5
sget v4, Landroidx/constraintlayout/widget/R$styleable;->ImageFilterView_overlay:I
if-ne v3, v4, :cond_6
iget-boolean v4, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mOverlay:Z
invoke-virtual {p1, v3, v4}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v3
invoke-direct {p0, v3}, Landroidx/constraintlayout/utils/widget/ImageFilterView;->setOverlay(Z)V
:cond_6
:goto_1
add-int/lit8 v2, v2, 0x1
goto :goto_0
:cond_7
invoke-virtual {p1}, Landroid/content/res/TypedArray;->recycle()V
if-eqz v0, :cond_8
const/4 p1, 0x2
new-array p1, p1, [Landroid/graphics/drawable/Drawable;
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mLayers:[Landroid/graphics/drawable/Drawable;
invoke-virtual {p0}, Landroid/widget/ImageView;->getDrawable()Landroid/graphics/drawable/Drawable;
move-result-object p2
aput-object p2, p1, v1
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mLayers:[Landroid/graphics/drawable/Drawable;
const/4 p2, 0x1
aput-object v0, p1, p2
new-instance p1, Landroid/graphics/drawable/LayerDrawable;
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mLayers:[Landroid/graphics/drawable/Drawable;
invoke-direct {p1, v0}, Landroid/graphics/drawable/LayerDrawable;-><init>([Landroid/graphics/drawable/Drawable;)V
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mLayer:Landroid/graphics/drawable/LayerDrawable;
invoke-virtual {p1, p2}, Landroid/graphics/drawable/LayerDrawable;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object p1
const/high16 p2, 0x437f0000 # 255.0f
iget v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mCrossfade:F
mul-float v0, v0, p2
float-to-int p2, v0
invoke-virtual {p1, p2}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mLayer:Landroid/graphics/drawable/LayerDrawable;
invoke-super {p0, p1}, Landroidx/appcompat/widget/AppCompatImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V
:cond_8
return-void
.end method
.method private setOverlay(Z)V
.locals 0
iput-boolean p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mOverlay:Z
return-void
.end method
# virtual methods
.method public draw(Landroid/graphics/Canvas;)V
.locals 1
invoke-super {p0, p1}, Landroid/widget/ImageView;->draw(Landroid/graphics/Canvas;)V
const/4 v0, 0x0
if-eqz v0, :cond_0
invoke-virtual {p1}, Landroid/graphics/Canvas;->restore()V
:cond_0
return-void
.end method
.method public getBrightness()F
.locals 1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
iget v0, v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mBrightness:F
return v0
.end method
.method public getContrast()F
.locals 1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
iget v0, v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mContrast:F
return v0
.end method
.method public getCrossfade()F
.locals 1
iget v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mCrossfade:F
return v0
.end method
.method public getRound()F
.locals 1
iget v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRound:F
return v0
.end method
.method public getRoundPercent()F
.locals 1
iget v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRoundPercent:F
return v0
.end method
.method public getSaturation()F
.locals 1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
iget v0, v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mSaturation:F
return v0
.end method
.method public getWarmth()F
.locals 1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
iget v0, v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mWarmth:F
return v0
.end method
.method public setBrightness(F)V
.locals 1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
iput p1, v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mBrightness:F
invoke-virtual {v0, p0}, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->updateMatrix(Landroid/widget/ImageView;)V
return-void
.end method
.method public setContrast(F)V
.locals 1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
iput p1, v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mContrast:F
invoke-virtual {v0, p0}, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->updateMatrix(Landroid/widget/ImageView;)V
return-void
.end method
.method public setCrossfade(F)V
.locals 3
iput p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mCrossfade:F
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mLayers:[Landroid/graphics/drawable/Drawable;
if-eqz p1, :cond_1
iget-boolean p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mOverlay:Z
const/high16 v0, 0x437f0000 # 255.0f
if-nez p1, :cond_0
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mLayer:Landroid/graphics/drawable/LayerDrawable;
const/4 v1, 0x0
invoke-virtual {p1, v1}, Landroid/graphics/drawable/LayerDrawable;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object p1
const/high16 v1, 0x3f800000 # 1.0f
iget v2, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mCrossfade:F
sub-float/2addr v1, v2
mul-float v1, v1, v0
float-to-int v1, v1
invoke-virtual {p1, v1}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V
:cond_0
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mLayer:Landroid/graphics/drawable/LayerDrawable;
const/4 v1, 0x1
invoke-virtual {p1, v1}, Landroid/graphics/drawable/LayerDrawable;->getDrawable(I)Landroid/graphics/drawable/Drawable;
move-result-object p1
iget v1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mCrossfade:F
mul-float v1, v1, v0
float-to-int v0, v1
invoke-virtual {p1, v0}, Landroid/graphics/drawable/Drawable;->setAlpha(I)V
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mLayer:Landroid/graphics/drawable/LayerDrawable;
invoke-super {p0, p1}, Landroidx/appcompat/widget/AppCompatImageView;->setImageDrawable(Landroid/graphics/drawable/Drawable;)V
:cond_1
return-void
.end method
.method public setRound(F)V
.locals 4
.annotation build Landroidx/annotation/RequiresApi;
value = 0x15
.end annotation
invoke-static {p1}, Ljava/lang/Float;->isNaN(F)Z
move-result v0
if-eqz v0, :cond_0
iput p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRound:F
iget p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRoundPercent:F
const/high16 v0, -0x40800000 # -1.0f
iput v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRoundPercent:F
invoke-virtual {p0, p1}, Landroidx/constraintlayout/utils/widget/ImageFilterView;->setRoundPercent(F)V
return-void
:cond_0
iget v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRound:F
const/4 v1, 0x1
const/4 v2, 0x0
cmpl-float v0, v0, p1
if-eqz v0, :cond_1
const/4 v0, 0x1
goto :goto_0
:cond_1
const/4 v0, 0x0
:goto_0
iput p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRound:F
const/4 v3, 0x0
cmpl-float p1, p1, v3
if-eqz p1, :cond_5
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mPath:Landroid/graphics/Path;
if-nez p1, :cond_2
new-instance p1, Landroid/graphics/Path;
invoke-direct {p1}, Landroid/graphics/Path;-><init>()V
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mPath:Landroid/graphics/Path;
:cond_2
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRect:Landroid/graphics/RectF;
if-nez p1, :cond_3
new-instance p1, Landroid/graphics/RectF;
invoke-direct {p1}, Landroid/graphics/RectF;-><init>()V
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRect:Landroid/graphics/RectF;
:cond_3
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mViewOutlineProvider:Landroid/view/ViewOutlineProvider;
if-nez p1, :cond_4
new-instance p1, Landroidx/constraintlayout/utils/widget/ImageFilterView$2;
invoke-direct {p1, p0}, Landroidx/constraintlayout/utils/widget/ImageFilterView$2;-><init>(Landroidx/constraintlayout/utils/widget/ImageFilterView;)V
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mViewOutlineProvider:Landroid/view/ViewOutlineProvider;
invoke-virtual {p0, p1}, Landroid/widget/ImageView;->setOutlineProvider(Landroid/view/ViewOutlineProvider;)V
:cond_4
invoke-virtual {p0, v1}, Landroid/widget/ImageView;->setClipToOutline(Z)V
invoke-virtual {p0}, Landroid/widget/ImageView;->getWidth()I
move-result p1
invoke-virtual {p0}, Landroid/widget/ImageView;->getHeight()I
move-result v1
iget-object v2, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRect:Landroid/graphics/RectF;
int-to-float p1, p1
int-to-float v1, v1
invoke-virtual {v2, v3, v3, p1, v1}, Landroid/graphics/RectF;->set(FFFF)V
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mPath:Landroid/graphics/Path;
invoke-virtual {p1}, Landroid/graphics/Path;->reset()V
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mPath:Landroid/graphics/Path;
iget-object v1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRect:Landroid/graphics/RectF;
iget v2, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRound:F
sget-object v3, Landroid/graphics/Path$Direction;->CW:Landroid/graphics/Path$Direction;
invoke-virtual {p1, v1, v2, v2, v3}, Landroid/graphics/Path;->addRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Path$Direction;)V
goto :goto_1
:cond_5
invoke-virtual {p0, v2}, Landroid/widget/ImageView;->setClipToOutline(Z)V
:goto_1
if-eqz v0, :cond_6
invoke-virtual {p0}, Landroid/widget/ImageView;->invalidateOutline()V
:cond_6
return-void
.end method
.method public setRoundPercent(F)V
.locals 5
.annotation build Landroidx/annotation/RequiresApi;
value = 0x15
.end annotation
iget v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRoundPercent:F
const/4 v1, 0x1
const/4 v2, 0x0
cmpl-float v0, v0, p1
if-eqz v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
iput p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRoundPercent:F
const/4 v3, 0x0
cmpl-float p1, p1, v3
if-eqz p1, :cond_4
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mPath:Landroid/graphics/Path;
if-nez p1, :cond_1
new-instance p1, Landroid/graphics/Path;
invoke-direct {p1}, Landroid/graphics/Path;-><init>()V
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mPath:Landroid/graphics/Path;
:cond_1
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRect:Landroid/graphics/RectF;
if-nez p1, :cond_2
new-instance p1, Landroid/graphics/RectF;
invoke-direct {p1}, Landroid/graphics/RectF;-><init>()V
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRect:Landroid/graphics/RectF;
:cond_2
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mViewOutlineProvider:Landroid/view/ViewOutlineProvider;
if-nez p1, :cond_3
new-instance p1, Landroidx/constraintlayout/utils/widget/ImageFilterView$1;
invoke-direct {p1, p0}, Landroidx/constraintlayout/utils/widget/ImageFilterView$1;-><init>(Landroidx/constraintlayout/utils/widget/ImageFilterView;)V
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mViewOutlineProvider:Landroid/view/ViewOutlineProvider;
invoke-virtual {p0, p1}, Landroid/widget/ImageView;->setOutlineProvider(Landroid/view/ViewOutlineProvider;)V
:cond_3
invoke-virtual {p0, v1}, Landroid/widget/ImageView;->setClipToOutline(Z)V
invoke-virtual {p0}, Landroid/widget/ImageView;->getWidth()I
move-result p1
invoke-virtual {p0}, Landroid/widget/ImageView;->getHeight()I
move-result v1
invoke-static {p1, v1}, Ljava/lang/Math;->min(II)I
move-result v2
int-to-float v2, v2
iget v4, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRoundPercent:F
mul-float v2, v2, v4
const/high16 v4, 0x40000000 # 2.0f
div-float/2addr v2, v4
iget-object v4, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRect:Landroid/graphics/RectF;
int-to-float p1, p1
int-to-float v1, v1
invoke-virtual {v4, v3, v3, p1, v1}, Landroid/graphics/RectF;->set(FFFF)V
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mPath:Landroid/graphics/Path;
invoke-virtual {p1}, Landroid/graphics/Path;->reset()V
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mPath:Landroid/graphics/Path;
iget-object v1, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mRect:Landroid/graphics/RectF;
sget-object v3, Landroid/graphics/Path$Direction;->CW:Landroid/graphics/Path$Direction;
invoke-virtual {p1, v1, v2, v2, v3}, Landroid/graphics/Path;->addRoundRect(Landroid/graphics/RectF;FFLandroid/graphics/Path$Direction;)V
goto :goto_1
:cond_4
invoke-virtual {p0, v2}, Landroid/widget/ImageView;->setClipToOutline(Z)V
:goto_1
if-eqz v0, :cond_5
invoke-virtual {p0}, Landroid/widget/ImageView;->invalidateOutline()V
:cond_5
return-void
.end method
.method public setSaturation(F)V
.locals 1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
iput p1, v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mSaturation:F
invoke-virtual {v0, p0}, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->updateMatrix(Landroid/widget/ImageView;)V
return-void
.end method
.method public setWarmth(F)V
.locals 1
iget-object v0, p0, Landroidx/constraintlayout/utils/widget/ImageFilterView;->mImageMatrix:Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;
iput p1, v0, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->mWarmth:F
invoke-virtual {v0, p0}, Landroidx/constraintlayout/utils/widget/ImageFilterView$ImageMatrix;->updateMatrix(Landroid/widget/ImageView;)V
return-void
.end method

View file

@ -0,0 +1,635 @@
.class public Landroidx/constraintlayout/utils/widget/MockView;
.super Landroid/view/View;
.source "MockView.java"
# instance fields
.field public mDiagonalsColor:I
.field public mDrawDiagonals:Z
.field public mDrawLabel:Z
.field public mMargin:I
.field public mPaintDiagonals:Landroid/graphics/Paint;
.field public mPaintText:Landroid/graphics/Paint;
.field public mPaintTextBackground:Landroid/graphics/Paint;
.field public mText:Ljava/lang/String;
.field public mTextBackgroundColor:I
.field public mTextBounds:Landroid/graphics/Rect;
.field public mTextColor:I
# direct methods
.method public constructor <init>(Landroid/content/Context;)V
.locals 3
invoke-direct {p0, p1}, Landroid/view/View;-><init>(Landroid/content/Context;)V
new-instance v0, Landroid/graphics/Paint;
invoke-direct {v0}, Landroid/graphics/Paint;-><init>()V
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintDiagonals:Landroid/graphics/Paint;
new-instance v0, Landroid/graphics/Paint;
invoke-direct {v0}, Landroid/graphics/Paint;-><init>()V
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintText:Landroid/graphics/Paint;
new-instance v0, Landroid/graphics/Paint;
invoke-direct {v0}, Landroid/graphics/Paint;-><init>()V
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintTextBackground:Landroid/graphics/Paint;
const/4 v0, 0x1
iput-boolean v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDrawDiagonals:Z
iput-boolean v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDrawLabel:Z
const/4 v0, 0x0
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mText:Ljava/lang/String;
new-instance v1, Landroid/graphics/Rect;
invoke-direct {v1}, Landroid/graphics/Rect;-><init>()V
iput-object v1, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextBounds:Landroid/graphics/Rect;
const/16 v1, 0xff
const/4 v2, 0x0
invoke-static {v1, v2, v2, v2}, Landroid/graphics/Color;->argb(IIII)I
move-result v2
iput v2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDiagonalsColor:I
const/16 v2, 0xc8
invoke-static {v1, v2, v2, v2}, Landroid/graphics/Color;->argb(IIII)I
move-result v2
iput v2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextColor:I
const/16 v2, 0x32
invoke-static {v1, v2, v2, v2}, Landroid/graphics/Color;->argb(IIII)I
move-result v1
iput v1, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextBackgroundColor:I
const/4 v1, 0x4
iput v1, p0, Landroidx/constraintlayout/utils/widget/MockView;->mMargin:I
invoke-direct {p0, p1, v0}, Landroidx/constraintlayout/utils/widget/MockView;->init(Landroid/content/Context;Landroid/util/AttributeSet;)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.locals 2
invoke-direct {p0, p1, p2}, Landroid/view/View;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
new-instance v0, Landroid/graphics/Paint;
invoke-direct {v0}, Landroid/graphics/Paint;-><init>()V
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintDiagonals:Landroid/graphics/Paint;
new-instance v0, Landroid/graphics/Paint;
invoke-direct {v0}, Landroid/graphics/Paint;-><init>()V
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintText:Landroid/graphics/Paint;
new-instance v0, Landroid/graphics/Paint;
invoke-direct {v0}, Landroid/graphics/Paint;-><init>()V
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintTextBackground:Landroid/graphics/Paint;
const/4 v0, 0x1
iput-boolean v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDrawDiagonals:Z
iput-boolean v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDrawLabel:Z
const/4 v0, 0x0
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mText:Ljava/lang/String;
new-instance v0, Landroid/graphics/Rect;
invoke-direct {v0}, Landroid/graphics/Rect;-><init>()V
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextBounds:Landroid/graphics/Rect;
const/16 v0, 0xff
const/4 v1, 0x0
invoke-static {v0, v1, v1, v1}, Landroid/graphics/Color;->argb(IIII)I
move-result v1
iput v1, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDiagonalsColor:I
const/16 v1, 0xc8
invoke-static {v0, v1, v1, v1}, Landroid/graphics/Color;->argb(IIII)I
move-result v1
iput v1, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextColor:I
const/16 v1, 0x32
invoke-static {v0, v1, v1, v1}, Landroid/graphics/Color;->argb(IIII)I
move-result v0
iput v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextBackgroundColor:I
const/4 v0, 0x4
iput v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mMargin:I
invoke-direct {p0, p1, p2}, Landroidx/constraintlayout/utils/widget/MockView;->init(Landroid/content/Context;Landroid/util/AttributeSet;)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
.locals 1
invoke-direct {p0, p1, p2, p3}, Landroid/view/View;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
new-instance p3, Landroid/graphics/Paint;
invoke-direct {p3}, Landroid/graphics/Paint;-><init>()V
iput-object p3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintDiagonals:Landroid/graphics/Paint;
new-instance p3, Landroid/graphics/Paint;
invoke-direct {p3}, Landroid/graphics/Paint;-><init>()V
iput-object p3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintText:Landroid/graphics/Paint;
new-instance p3, Landroid/graphics/Paint;
invoke-direct {p3}, Landroid/graphics/Paint;-><init>()V
iput-object p3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintTextBackground:Landroid/graphics/Paint;
const/4 p3, 0x1
iput-boolean p3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDrawDiagonals:Z
iput-boolean p3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDrawLabel:Z
const/4 p3, 0x0
iput-object p3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mText:Ljava/lang/String;
new-instance p3, Landroid/graphics/Rect;
invoke-direct {p3}, Landroid/graphics/Rect;-><init>()V
iput-object p3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextBounds:Landroid/graphics/Rect;
const/16 p3, 0xff
const/4 v0, 0x0
invoke-static {p3, v0, v0, v0}, Landroid/graphics/Color;->argb(IIII)I
move-result v0
iput v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDiagonalsColor:I
const/16 v0, 0xc8
invoke-static {p3, v0, v0, v0}, Landroid/graphics/Color;->argb(IIII)I
move-result v0
iput v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextColor:I
const/16 v0, 0x32
invoke-static {p3, v0, v0, v0}, Landroid/graphics/Color;->argb(IIII)I
move-result p3
iput p3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextBackgroundColor:I
const/4 p3, 0x4
iput p3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mMargin:I
invoke-direct {p0, p1, p2}, Landroidx/constraintlayout/utils/widget/MockView;->init(Landroid/content/Context;Landroid/util/AttributeSet;)V
return-void
.end method
.method private init(Landroid/content/Context;Landroid/util/AttributeSet;)V
.locals 4
if-eqz p2, :cond_6
sget-object v0, Landroidx/constraintlayout/widget/R$styleable;->MockView:[I
invoke-virtual {p1, p2, v0}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object p2
invoke-virtual {p2}, Landroid/content/res/TypedArray;->getIndexCount()I
move-result v0
const/4 v1, 0x0
:goto_0
if-ge v1, v0, :cond_6
invoke-virtual {p2, v1}, Landroid/content/res/TypedArray;->getIndex(I)I
move-result v2
sget v3, Landroidx/constraintlayout/widget/R$styleable;->MockView_mock_label:I
if-ne v2, v3, :cond_0
invoke-virtual {p2, v2}, Landroid/content/res/TypedArray;->getString(I)Ljava/lang/String;
move-result-object v2
iput-object v2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mText:Ljava/lang/String;
goto :goto_1
:cond_0
sget v3, Landroidx/constraintlayout/widget/R$styleable;->MockView_mock_showDiagonals:I
if-ne v2, v3, :cond_1
iget-boolean v3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDrawDiagonals:Z
invoke-virtual {p2, v2, v3}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v2
iput-boolean v2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDrawDiagonals:Z
goto :goto_1
:cond_1
sget v3, Landroidx/constraintlayout/widget/R$styleable;->MockView_mock_diagonalsColor:I
if-ne v2, v3, :cond_2
iget v3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDiagonalsColor:I
invoke-virtual {p2, v2, v3}, Landroid/content/res/TypedArray;->getColor(II)I
move-result v2
iput v2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDiagonalsColor:I
goto :goto_1
:cond_2
sget v3, Landroidx/constraintlayout/widget/R$styleable;->MockView_mock_labelBackgroundColor:I
if-ne v2, v3, :cond_3
iget v3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextBackgroundColor:I
invoke-virtual {p2, v2, v3}, Landroid/content/res/TypedArray;->getColor(II)I
move-result v2
iput v2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextBackgroundColor:I
goto :goto_1
:cond_3
sget v3, Landroidx/constraintlayout/widget/R$styleable;->MockView_mock_labelColor:I
if-ne v2, v3, :cond_4
iget v3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextColor:I
invoke-virtual {p2, v2, v3}, Landroid/content/res/TypedArray;->getColor(II)I
move-result v2
iput v2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextColor:I
goto :goto_1
:cond_4
sget v3, Landroidx/constraintlayout/widget/R$styleable;->MockView_mock_showLabel:I
if-ne v2, v3, :cond_5
iget-boolean v3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDrawLabel:Z
invoke-virtual {p2, v2, v3}, Landroid/content/res/TypedArray;->getBoolean(IZ)Z
move-result v2
iput-boolean v2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDrawLabel:Z
:cond_5
:goto_1
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_6
iget-object p2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mText:Ljava/lang/String;
if-nez p2, :cond_7
:try_start_0
invoke-virtual {p1}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object p1
invoke-virtual {p0}, Landroid/view/View;->getId()I
move-result p2
invoke-virtual {p1, p2}, Landroid/content/res/Resources;->getResourceEntryName(I)Ljava/lang/String;
move-result-object p1
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/MockView;->mText:Ljava/lang/String;
:try_end_0
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0
:catch_0
:cond_7
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintDiagonals:Landroid/graphics/Paint;
iget p2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDiagonalsColor:I
invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setColor(I)V
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintDiagonals:Landroid/graphics/Paint;
const/4 p2, 0x1
invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setAntiAlias(Z)V
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintText:Landroid/graphics/Paint;
iget v0, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextColor:I
invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setColor(I)V
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintText:Landroid/graphics/Paint;
invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setAntiAlias(Z)V
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintTextBackground:Landroid/graphics/Paint;
iget p2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextBackgroundColor:I
invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setColor(I)V
iget p1, p0, Landroidx/constraintlayout/utils/widget/MockView;->mMargin:I
int-to-float p1, p1
invoke-virtual {p0}, Landroid/view/View;->getResources()Landroid/content/res/Resources;
move-result-object p2
invoke-virtual {p2}, Landroid/content/res/Resources;->getDisplayMetrics()Landroid/util/DisplayMetrics;
move-result-object p2
iget p2, p2, Landroid/util/DisplayMetrics;->xdpi:F
const/high16 v0, 0x43200000 # 160.0f
div-float/2addr p2, v0
mul-float p2, p2, p1
invoke-static {p2}, Ljava/lang/Math;->round(F)I
move-result p1
iput p1, p0, Landroidx/constraintlayout/utils/widget/MockView;->mMargin:I
return-void
.end method
# virtual methods
.method public onDraw(Landroid/graphics/Canvas;)V
.locals 13
invoke-super {p0, p1}, Landroid/view/View;->onDraw(Landroid/graphics/Canvas;)V
invoke-virtual {p0}, Landroid/view/View;->getWidth()I
move-result v0
invoke-virtual {p0}, Landroid/view/View;->getHeight()I
move-result v1
iget-boolean v2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDrawDiagonals:Z
if-eqz v2, :cond_0
add-int/lit8 v0, v0, -0x1
add-int/lit8 v1, v1, -0x1
const/4 v3, 0x0
const/4 v4, 0x0
int-to-float v11, v0
int-to-float v12, v1
iget-object v7, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintDiagonals:Landroid/graphics/Paint;
move-object v2, p1
move v5, v11
move v6, v12
invoke-virtual/range {v2 .. v7}, Landroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V
const/4 v6, 0x0
const/4 v9, 0x0
iget-object v10, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintDiagonals:Landroid/graphics/Paint;
move-object v5, p1
move v7, v12
move v8, v11
invoke-virtual/range {v5 .. v10}, Landroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V
const/4 v7, 0x0
iget-object v10, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintDiagonals:Landroid/graphics/Paint;
invoke-virtual/range {v5 .. v10}, Landroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V
iget-object v10, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintDiagonals:Landroid/graphics/Paint;
move v6, v11
move v9, v12
invoke-virtual/range {v5 .. v10}, Landroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V
const/4 v8, 0x0
iget-object v10, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintDiagonals:Landroid/graphics/Paint;
move v7, v12
invoke-virtual/range {v5 .. v10}, Landroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V
const/4 v6, 0x0
const/4 v9, 0x0
iget-object v10, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintDiagonals:Landroid/graphics/Paint;
invoke-virtual/range {v5 .. v10}, Landroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V
:cond_0
iget-object v2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mText:Ljava/lang/String;
if-eqz v2, :cond_1
iget-boolean v3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mDrawLabel:Z
if-eqz v3, :cond_1
iget-object v3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintText:Landroid/graphics/Paint;
const/4 v4, 0x0
invoke-virtual {v2}, Ljava/lang/String;->length()I
move-result v5
iget-object v6, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextBounds:Landroid/graphics/Rect;
invoke-virtual {v3, v2, v4, v5, v6}, Landroid/graphics/Paint;->getTextBounds(Ljava/lang/String;IILandroid/graphics/Rect;)V
iget-object v2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextBounds:Landroid/graphics/Rect;
invoke-virtual {v2}, Landroid/graphics/Rect;->width()I
move-result v2
sub-int/2addr v0, v2
int-to-float v0, v0
const/high16 v2, 0x40000000 # 2.0f
div-float/2addr v0, v2
iget-object v3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextBounds:Landroid/graphics/Rect;
invoke-virtual {v3}, Landroid/graphics/Rect;->height()I
move-result v3
sub-int/2addr v1, v3
int-to-float v1, v1
div-float/2addr v1, v2
iget-object v2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextBounds:Landroid/graphics/Rect;
invoke-virtual {v2}, Landroid/graphics/Rect;->height()I
move-result v2
int-to-float v2, v2
add-float/2addr v1, v2
iget-object v2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextBounds:Landroid/graphics/Rect;
float-to-int v3, v0
float-to-int v4, v1
invoke-virtual {v2, v3, v4}, Landroid/graphics/Rect;->offset(II)V
iget-object v2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextBounds:Landroid/graphics/Rect;
iget v3, v2, Landroid/graphics/Rect;->left:I
iget v4, p0, Landroidx/constraintlayout/utils/widget/MockView;->mMargin:I
sub-int/2addr v3, v4
iget v5, v2, Landroid/graphics/Rect;->top:I
sub-int/2addr v5, v4
iget v6, v2, Landroid/graphics/Rect;->right:I
add-int/2addr v6, v4
iget v7, v2, Landroid/graphics/Rect;->bottom:I
add-int/2addr v7, v4
invoke-virtual {v2, v3, v5, v6, v7}, Landroid/graphics/Rect;->set(IIII)V
iget-object v2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mTextBounds:Landroid/graphics/Rect;
iget-object v3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintTextBackground:Landroid/graphics/Paint;
invoke-virtual {p1, v2, v3}, Landroid/graphics/Canvas;->drawRect(Landroid/graphics/Rect;Landroid/graphics/Paint;)V
iget-object v2, p0, Landroidx/constraintlayout/utils/widget/MockView;->mText:Ljava/lang/String;
iget-object v3, p0, Landroidx/constraintlayout/utils/widget/MockView;->mPaintText:Landroid/graphics/Paint;
invoke-virtual {p1, v2, v0, v1, v3}, Landroid/graphics/Canvas;->drawText(Ljava/lang/String;FFLandroid/graphics/Paint;)V
:cond_1
return-void
.end method

View file

@ -0,0 +1,414 @@
.class public Landroidx/constraintlayout/utils/widget/MotionTelltales;
.super Landroidx/constraintlayout/utils/widget/MockView;
.source "MotionTelltales.java"
# static fields
.field public static final TAG:Ljava/lang/String; = "MotionTelltales"
# instance fields
.field public mInvertMatrix:Landroid/graphics/Matrix;
.field public mMotionLayout:Landroidx/constraintlayout/motion/widget/MotionLayout;
.field public mPaintTelltales:Landroid/graphics/Paint;
.field public mTailColor:I
.field public mTailScale:F
.field public mVelocityMode:I
.field public velocity:[F
# direct methods
.method public constructor <init>(Landroid/content/Context;)V
.locals 1
invoke-direct {p0, p1}, Landroidx/constraintlayout/utils/widget/MockView;-><init>(Landroid/content/Context;)V
new-instance v0, Landroid/graphics/Paint;
invoke-direct {v0}, Landroid/graphics/Paint;-><init>()V
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mPaintTelltales:Landroid/graphics/Paint;
const/4 v0, 0x2
new-array v0, v0, [F
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->velocity:[F
new-instance v0, Landroid/graphics/Matrix;
invoke-direct {v0}, Landroid/graphics/Matrix;-><init>()V
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mInvertMatrix:Landroid/graphics/Matrix;
const/4 v0, 0x0
iput v0, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mVelocityMode:I
const v0, -0xff01
iput v0, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mTailColor:I
const/high16 v0, 0x3e800000 # 0.25f
iput v0, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mTailScale:F
const/4 v0, 0x0
invoke-direct {p0, p1, v0}, Landroidx/constraintlayout/utils/widget/MotionTelltales;->init(Landroid/content/Context;Landroid/util/AttributeSet;)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
.locals 1
invoke-direct {p0, p1, p2}, Landroidx/constraintlayout/utils/widget/MockView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;)V
new-instance v0, Landroid/graphics/Paint;
invoke-direct {v0}, Landroid/graphics/Paint;-><init>()V
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mPaintTelltales:Landroid/graphics/Paint;
const/4 v0, 0x2
new-array v0, v0, [F
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->velocity:[F
new-instance v0, Landroid/graphics/Matrix;
invoke-direct {v0}, Landroid/graphics/Matrix;-><init>()V
iput-object v0, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mInvertMatrix:Landroid/graphics/Matrix;
const/4 v0, 0x0
iput v0, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mVelocityMode:I
const v0, -0xff01
iput v0, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mTailColor:I
const/high16 v0, 0x3e800000 # 0.25f
iput v0, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mTailScale:F
invoke-direct {p0, p1, p2}, Landroidx/constraintlayout/utils/widget/MotionTelltales;->init(Landroid/content/Context;Landroid/util/AttributeSet;)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
.locals 0
invoke-direct {p0, p1, p2, p3}, Landroidx/constraintlayout/utils/widget/MockView;-><init>(Landroid/content/Context;Landroid/util/AttributeSet;I)V
new-instance p3, Landroid/graphics/Paint;
invoke-direct {p3}, Landroid/graphics/Paint;-><init>()V
iput-object p3, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mPaintTelltales:Landroid/graphics/Paint;
const/4 p3, 0x2
new-array p3, p3, [F
iput-object p3, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->velocity:[F
new-instance p3, Landroid/graphics/Matrix;
invoke-direct {p3}, Landroid/graphics/Matrix;-><init>()V
iput-object p3, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mInvertMatrix:Landroid/graphics/Matrix;
const/4 p3, 0x0
iput p3, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mVelocityMode:I
const p3, -0xff01
iput p3, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mTailColor:I
const/high16 p3, 0x3e800000 # 0.25f
iput p3, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mTailScale:F
invoke-direct {p0, p1, p2}, Landroidx/constraintlayout/utils/widget/MotionTelltales;->init(Landroid/content/Context;Landroid/util/AttributeSet;)V
return-void
.end method
.method private init(Landroid/content/Context;Landroid/util/AttributeSet;)V
.locals 3
if-eqz p2, :cond_3
sget-object v0, Landroidx/constraintlayout/widget/R$styleable;->MotionTelltales:[I
invoke-virtual {p1, p2, v0}, Landroid/content/Context;->obtainStyledAttributes(Landroid/util/AttributeSet;[I)Landroid/content/res/TypedArray;
move-result-object p1
invoke-virtual {p1}, Landroid/content/res/TypedArray;->getIndexCount()I
move-result p2
const/4 v0, 0x0
:goto_0
if-ge v0, p2, :cond_3
invoke-virtual {p1, v0}, Landroid/content/res/TypedArray;->getIndex(I)I
move-result v1
sget v2, Landroidx/constraintlayout/widget/R$styleable;->MotionTelltales_telltales_tailColor:I
if-ne v1, v2, :cond_0
iget v2, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mTailColor:I
invoke-virtual {p1, v1, v2}, Landroid/content/res/TypedArray;->getColor(II)I
move-result v1
iput v1, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mTailColor:I
goto :goto_1
:cond_0
sget v2, Landroidx/constraintlayout/widget/R$styleable;->MotionTelltales_telltales_velocityMode:I
if-ne v1, v2, :cond_1
iget v2, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mVelocityMode:I
invoke-virtual {p1, v1, v2}, Landroid/content/res/TypedArray;->getInt(II)I
move-result v1
iput v1, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mVelocityMode:I
goto :goto_1
:cond_1
sget v2, Landroidx/constraintlayout/widget/R$styleable;->MotionTelltales_telltales_tailScale:I
if-ne v1, v2, :cond_2
iget v2, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mTailScale:F
invoke-virtual {p1, v1, v2}, Landroid/content/res/TypedArray;->getFloat(IF)F
move-result v1
iput v1, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mTailScale:F
:cond_2
:goto_1
add-int/lit8 v0, v0, 0x1
goto :goto_0
:cond_3
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mPaintTelltales:Landroid/graphics/Paint;
iget p2, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mTailColor:I
invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setColor(I)V
iget-object p1, p0, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mPaintTelltales:Landroid/graphics/Paint;
const/high16 p2, 0x40a00000 # 5.0f
invoke-virtual {p1, p2}, Landroid/graphics/Paint;->setStrokeWidth(F)V
return-void
.end method
# virtual methods
.method public onAttachedToWindow()V
.locals 0
invoke-super {p0}, Landroid/view/View;->onAttachedToWindow()V
return-void
.end method
.method public onDraw(Landroid/graphics/Canvas;)V
.locals 22
move-object/from16 v6, p0
invoke-super/range {p0 .. p1}, Landroidx/constraintlayout/utils/widget/MockView;->onDraw(Landroid/graphics/Canvas;)V
invoke-virtual/range {p0 .. p0}, Landroid/view/View;->getMatrix()Landroid/graphics/Matrix;
move-result-object v0
iget-object v1, v6, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mInvertMatrix:Landroid/graphics/Matrix;
invoke-virtual {v0, v1}, Landroid/graphics/Matrix;->invert(Landroid/graphics/Matrix;)Z
iget-object v0, v6, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mMotionLayout:Landroidx/constraintlayout/motion/widget/MotionLayout;
if-nez v0, :cond_1
invoke-virtual/range {p0 .. p0}, Landroid/view/View;->getParent()Landroid/view/ViewParent;
move-result-object v0
instance-of v1, v0, Landroidx/constraintlayout/motion/widget/MotionLayout;
if-eqz v1, :cond_0
check-cast v0, Landroidx/constraintlayout/motion/widget/MotionLayout;
iput-object v0, v6, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mMotionLayout:Landroidx/constraintlayout/motion/widget/MotionLayout;
:cond_0
return-void
:cond_1
invoke-virtual/range {p0 .. p0}, Landroid/view/View;->getWidth()I
move-result v7
invoke-virtual/range {p0 .. p0}, Landroid/view/View;->getHeight()I
move-result v8
const/4 v9, 0x5
new-array v10, v9, [F
fill-array-data v10, :array_0
const/4 v11, 0x0
const/4 v12, 0x0
:goto_0
if-ge v12, v9, :cond_3
aget v13, v10, v12
const/4 v14, 0x0
:goto_1
if-ge v14, v9, :cond_2
aget v15, v10, v14
iget-object v0, v6, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mMotionLayout:Landroidx/constraintlayout/motion/widget/MotionLayout;
iget-object v4, v6, Landroidx/constraintlayout/utils/widget/MotionTelltales;->velocity:[F
iget v5, v6, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mVelocityMode:I
move-object/from16 v1, p0
move v2, v15
move v3, v13
invoke-virtual/range {v0 .. v5}, Landroidx/constraintlayout/motion/widget/MotionLayout;->getViewVelocity(Landroid/view/View;FF[FI)V
iget-object v0, v6, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mInvertMatrix:Landroid/graphics/Matrix;
iget-object v1, v6, Landroidx/constraintlayout/utils/widget/MotionTelltales;->velocity:[F
invoke-virtual {v0, v1}, Landroid/graphics/Matrix;->mapVectors([F)V
int-to-float v0, v7
mul-float v17, v0, v15
int-to-float v0, v8
mul-float v18, v0, v13
iget-object v0, v6, Landroidx/constraintlayout/utils/widget/MotionTelltales;->velocity:[F
aget v1, v0, v11
iget v2, v6, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mTailScale:F
mul-float v1, v1, v2
sub-float v19, v17, v1
const/4 v1, 0x1
aget v1, v0, v1
mul-float v1, v1, v2
sub-float v20, v18, v1
iget-object v1, v6, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mInvertMatrix:Landroid/graphics/Matrix;
invoke-virtual {v1, v0}, Landroid/graphics/Matrix;->mapVectors([F)V
iget-object v0, v6, Landroidx/constraintlayout/utils/widget/MotionTelltales;->mPaintTelltales:Landroid/graphics/Paint;
move-object/from16 v16, p1
move-object/from16 v21, v0
invoke-virtual/range {v16 .. v21}, Landroid/graphics/Canvas;->drawLine(FFFFLandroid/graphics/Paint;)V
add-int/lit8 v14, v14, 0x1
goto :goto_1
:cond_2
add-int/lit8 v12, v12, 0x1
goto :goto_0
:cond_3
return-void
:array_0
.array-data 4
0x3dcccccd # 0.1f
0x3e800000 # 0.25f
0x3f000000 # 0.5f
0x3f400000 # 0.75f
0x3f666666 # 0.9f
.end array-data
.end method
.method public onLayout(ZIIII)V
.locals 0
invoke-super/range {p0 .. p5}, Landroid/view/View;->onLayout(ZIIII)V
invoke-virtual {p0}, Landroid/view/View;->postInvalidate()V
return-void
.end method
.method public setText(Ljava/lang/CharSequence;)V
.locals 0
invoke-interface {p1}, Ljava/lang/CharSequence;->toString()Ljava/lang/String;
move-result-object p1
iput-object p1, p0, Landroidx/constraintlayout/utils/widget/MockView;->mText:Ljava/lang/String;
invoke-virtual {p0}, Landroid/view/View;->requestLayout()V
return-void
.end method