.class public Lcom/google/android/material/shadow/ShadowRenderer; .super Ljava/lang/Object; .source "ShadowRenderer.java" # annotations .annotation build Landroidx/annotation/RestrictTo; value = { .enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY_GROUP:Landroidx/annotation/RestrictTo$Scope; } .end annotation # static fields .field private static final COLOR_ALPHA_END:I = 0x0 .field private static final COLOR_ALPHA_MIDDLE:I = 0x14 .field private static final COLOR_ALPHA_START:I = 0x44 .field private static final cornerColors:[I .field private static final cornerPositions:[F .field private static final edgeColors:[I .field private static final edgePositions:[F # instance fields .field private final cornerShadowPaint:Landroid/graphics/Paint; .annotation build Landroidx/annotation/NonNull; .end annotation .end field .field private final edgeShadowPaint:Landroid/graphics/Paint; .annotation build Landroidx/annotation/NonNull; .end annotation .end field .field private final scratch:Landroid/graphics/Path; .field private shadowEndColor:I .field private shadowMiddleColor:I .field private final shadowPaint:Landroid/graphics/Paint; .annotation build Landroidx/annotation/NonNull; .end annotation .end field .field private shadowStartColor:I .field private transparentPaint:Landroid/graphics/Paint; # direct methods .method public static constructor ()V .locals 2 const/4 v0, 0x3 new-array v1, v0, [I .line 1 sput-object v1, Lcom/google/android/material/shadow/ShadowRenderer;->edgeColors:[I new-array v0, v0, [F .line 2 fill-array-data v0, :array_0 sput-object v0, Lcom/google/android/material/shadow/ShadowRenderer;->edgePositions:[F const/4 v0, 0x4 new-array v1, v0, [I .line 3 sput-object v1, Lcom/google/android/material/shadow/ShadowRenderer;->cornerColors:[I new-array v0, v0, [F .line 4 fill-array-data v0, :array_1 sput-object v0, Lcom/google/android/material/shadow/ShadowRenderer;->cornerPositions:[F return-void nop :array_0 .array-data 4 0x0 0x3f000000 # 0.5f 0x3f800000 # 1.0f .end array-data :array_1 .array-data 4 0x0 0x0 0x3f000000 # 0.5f 0x3f800000 # 1.0f .end array-data .end method .method public constructor ()V .locals 1 const/high16 v0, -0x1000000 .line 1 invoke-direct {p0, v0}, Lcom/google/android/material/shadow/ShadowRenderer;->(I)V return-void .end method .method public constructor (I)V .locals 1 .line 2 invoke-direct {p0}, Ljava/lang/Object;->()V .line 3 new-instance v0, Landroid/graphics/Path; invoke-direct {v0}, Landroid/graphics/Path;->()V iput-object v0, p0, Lcom/google/android/material/shadow/ShadowRenderer;->scratch:Landroid/graphics/Path; .line 4 new-instance v0, Landroid/graphics/Paint; invoke-direct {v0}, Landroid/graphics/Paint;->()V iput-object v0, p0, Lcom/google/android/material/shadow/ShadowRenderer;->transparentPaint:Landroid/graphics/Paint; .line 5 new-instance v0, Landroid/graphics/Paint; invoke-direct {v0}, Landroid/graphics/Paint;->()V iput-object v0, p0, Lcom/google/android/material/shadow/ShadowRenderer;->shadowPaint:Landroid/graphics/Paint; .line 6 invoke-virtual {p0, p1}, Lcom/google/android/material/shadow/ShadowRenderer;->setShadowColor(I)V .line 7 iget-object p1, p0, Lcom/google/android/material/shadow/ShadowRenderer;->transparentPaint:Landroid/graphics/Paint; const/4 v0, 0x0 invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setColor(I)V .line 8 new-instance p1, Landroid/graphics/Paint; const/4 v0, 0x4 invoke-direct {p1, v0}, Landroid/graphics/Paint;->(I)V iput-object p1, p0, Lcom/google/android/material/shadow/ShadowRenderer;->cornerShadowPaint:Landroid/graphics/Paint; .line 9 sget-object v0, Landroid/graphics/Paint$Style;->FILL:Landroid/graphics/Paint$Style; invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setStyle(Landroid/graphics/Paint$Style;)V .line 10 new-instance v0, Landroid/graphics/Paint; invoke-direct {v0, p1}, Landroid/graphics/Paint;->(Landroid/graphics/Paint;)V iput-object v0, p0, Lcom/google/android/material/shadow/ShadowRenderer;->edgeShadowPaint:Landroid/graphics/Paint; return-void .end method # virtual methods .method public drawCornerShadow(Landroid/graphics/Canvas;Landroid/graphics/Matrix;Landroid/graphics/RectF;IFF)V .locals 20 .param p1 # Landroid/graphics/Canvas; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .param p2 # Landroid/graphics/Matrix; .annotation build Landroidx/annotation/Nullable; .end annotation .end param .param p3 # Landroid/graphics/RectF; .annotation build Landroidx/annotation/NonNull; .end annotation .end param move-object/from16 v0, p0 move-object/from16 v7, p1 move-object/from16 v2, p3 move/from16 v1, p4 move/from16 v4, p6 const/4 v3, 0x0 cmpg-float v5, v4, v3 const/4 v6, 0x1 const/4 v8, 0x0 if-gez v5, :cond_0 move v5, v6 goto :goto_0 :cond_0 move v5, v8 .line 1 :goto_0 iget-object v9, v0, Lcom/google/android/material/shadow/ShadowRenderer;->scratch:Landroid/graphics/Path; const/4 v10, 0x3 const/4 v11, 0x2 if-eqz v5, :cond_1 .line 2 sget-object v12, Lcom/google/android/material/shadow/ShadowRenderer;->cornerColors:[I aput v8, v12, v8 .line 3 iget v8, v0, Lcom/google/android/material/shadow/ShadowRenderer;->shadowEndColor:I aput v8, v12, v6 .line 4 iget v8, v0, Lcom/google/android/material/shadow/ShadowRenderer;->shadowMiddleColor:I aput v8, v12, v11 .line 5 iget v8, v0, Lcom/google/android/material/shadow/ShadowRenderer;->shadowStartColor:I aput v8, v12, v10 move/from16 v12, p5 goto :goto_1 .line 6 :cond_1 invoke-virtual {v9}, Landroid/graphics/Path;->rewind()V .line 7 invoke-virtual/range {p3 .. p3}, Landroid/graphics/RectF;->centerX()F move-result v12 invoke-virtual/range {p3 .. p3}, Landroid/graphics/RectF;->centerY()F move-result v13 invoke-virtual {v9, v12, v13}, Landroid/graphics/Path;->moveTo(FF)V move/from16 v12, p5 .line 8 invoke-virtual {v9, v2, v12, v4}, Landroid/graphics/Path;->arcTo(Landroid/graphics/RectF;FF)V .line 9 invoke-virtual {v9}, Landroid/graphics/Path;->close()V neg-int v13, v1 int-to-float v13, v13 .line 10 invoke-virtual {v2, v13, v13}, Landroid/graphics/RectF;->inset(FF)V .line 11 sget-object v13, Lcom/google/android/material/shadow/ShadowRenderer;->cornerColors:[I aput v8, v13, v8 .line 12 iget v8, v0, Lcom/google/android/material/shadow/ShadowRenderer;->shadowStartColor:I aput v8, v13, v6 .line 13 iget v8, v0, Lcom/google/android/material/shadow/ShadowRenderer;->shadowMiddleColor:I aput v8, v13, v11 .line 14 iget v8, v0, Lcom/google/android/material/shadow/ShadowRenderer;->shadowEndColor:I aput v8, v13, v10 .line 15 :goto_1 invoke-virtual/range {p3 .. p3}, Landroid/graphics/RectF;->width()F move-result v8 const/high16 v10, 0x40000000 # 2.0f div-float v16, v8, v10 cmpg-float v3, v16, v3 if-gtz v3, :cond_2 return-void :cond_2 int-to-float v1, v1 div-float v1, v1, v16 const/high16 v3, 0x3f800000 # 1.0f sub-float v1, v3, v1 sub-float/2addr v3, v1 div-float/2addr v3, v10 add-float/2addr v3, v1 .line 16 sget-object v18, Lcom/google/android/material/shadow/ShadowRenderer;->cornerPositions:[F aput v1, v18, v6 .line 17 aput v3, v18, v11 .line 18 iget-object v1, v0, Lcom/google/android/material/shadow/ShadowRenderer;->cornerShadowPaint:Landroid/graphics/Paint; new-instance v3, Landroid/graphics/RadialGradient; .line 19 invoke-virtual/range {p3 .. p3}, Landroid/graphics/RectF;->centerX()F move-result v14 .line 20 invoke-virtual/range {p3 .. p3}, Landroid/graphics/RectF;->centerY()F move-result v15 sget-object v17, Lcom/google/android/material/shadow/ShadowRenderer;->cornerColors:[I sget-object v19, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode; move-object v13, v3 invoke-direct/range {v13 .. v19}, Landroid/graphics/RadialGradient;->(FFF[I[FLandroid/graphics/Shader$TileMode;)V .line 21 invoke-virtual {v1, v3}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader; .line 22 invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->save()I .line 23 invoke-virtual/range {p1 .. p2}, Landroid/graphics/Canvas;->concat(Landroid/graphics/Matrix;)V if-nez v5, :cond_3 .line 24 sget-object v1, Landroid/graphics/Region$Op;->DIFFERENCE:Landroid/graphics/Region$Op; invoke-virtual {v7, v9, v1}, Landroid/graphics/Canvas;->clipPath(Landroid/graphics/Path;Landroid/graphics/Region$Op;)Z .line 25 iget-object v1, v0, Lcom/google/android/material/shadow/ShadowRenderer;->transparentPaint:Landroid/graphics/Paint; invoke-virtual {v7, v9, v1}, Landroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V :cond_3 const/4 v5, 0x1 .line 26 iget-object v6, v0, Lcom/google/android/material/shadow/ShadowRenderer;->cornerShadowPaint:Landroid/graphics/Paint; move-object/from16 v1, p1 move-object/from16 v2, p3 move/from16 v3, p5 move/from16 v4, p6 invoke-virtual/range {v1 .. v6}, Landroid/graphics/Canvas;->drawArc(Landroid/graphics/RectF;FFZLandroid/graphics/Paint;)V .line 27 invoke-virtual/range {p1 .. p1}, Landroid/graphics/Canvas;->restore()V return-void .end method .method public drawEdgeShadow(Landroid/graphics/Canvas;Landroid/graphics/Matrix;Landroid/graphics/RectF;I)V .locals 9 .param p1 # Landroid/graphics/Canvas; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .param p2 # Landroid/graphics/Matrix; .annotation build Landroidx/annotation/Nullable; .end annotation .end param .param p3 # Landroid/graphics/RectF; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .line 1 iget v0, p3, Landroid/graphics/RectF;->bottom:F int-to-float v1, p4 add-float/2addr v0, v1 iput v0, p3, Landroid/graphics/RectF;->bottom:F neg-int p4, p4 int-to-float p4, p4 const/4 v0, 0x0 .line 2 invoke-virtual {p3, v0, p4}, Landroid/graphics/RectF;->offset(FF)V .line 3 sget-object v6, Lcom/google/android/material/shadow/ShadowRenderer;->edgeColors:[I iget p4, p0, Lcom/google/android/material/shadow/ShadowRenderer;->shadowEndColor:I const/4 v0, 0x0 aput p4, v6, v0 .line 4 iget p4, p0, Lcom/google/android/material/shadow/ShadowRenderer;->shadowMiddleColor:I const/4 v0, 0x1 aput p4, v6, v0 .line 5 iget p4, p0, Lcom/google/android/material/shadow/ShadowRenderer;->shadowStartColor:I const/4 v0, 0x2 aput p4, v6, v0 .line 6 iget-object p4, p0, Lcom/google/android/material/shadow/ShadowRenderer;->edgeShadowPaint:Landroid/graphics/Paint; new-instance v0, Landroid/graphics/LinearGradient; iget v4, p3, Landroid/graphics/RectF;->left:F iget v3, p3, Landroid/graphics/RectF;->top:F iget v5, p3, Landroid/graphics/RectF;->bottom:F sget-object v7, Lcom/google/android/material/shadow/ShadowRenderer;->edgePositions:[F sget-object v8, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode; move-object v1, v0 move v2, v4 invoke-direct/range {v1 .. v8}, Landroid/graphics/LinearGradient;->(FFFF[I[FLandroid/graphics/Shader$TileMode;)V invoke-virtual {p4, v0}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader; .line 7 invoke-virtual {p1}, Landroid/graphics/Canvas;->save()I .line 8 invoke-virtual {p1, p2}, Landroid/graphics/Canvas;->concat(Landroid/graphics/Matrix;)V .line 9 iget-object p2, p0, Lcom/google/android/material/shadow/ShadowRenderer;->edgeShadowPaint:Landroid/graphics/Paint; invoke-virtual {p1, p3, p2}, Landroid/graphics/Canvas;->drawRect(Landroid/graphics/RectF;Landroid/graphics/Paint;)V .line 10 invoke-virtual {p1}, Landroid/graphics/Canvas;->restore()V return-void .end method .method public getShadowPaint()Landroid/graphics/Paint; .locals 1 .annotation build Landroidx/annotation/NonNull; .end annotation .line 1 iget-object v0, p0, Lcom/google/android/material/shadow/ShadowRenderer;->shadowPaint:Landroid/graphics/Paint; return-object v0 .end method .method public setShadowColor(I)V .locals 1 const/16 v0, 0x44 .line 1 invoke-static {p1, v0}, Lc1/i;->B(II)I move-result v0 iput v0, p0, Lcom/google/android/material/shadow/ShadowRenderer;->shadowStartColor:I const/16 v0, 0x14 .line 2 invoke-static {p1, v0}, Lc1/i;->B(II)I move-result v0 iput v0, p0, Lcom/google/android/material/shadow/ShadowRenderer;->shadowMiddleColor:I const/4 v0, 0x0 .line 3 invoke-static {p1, v0}, Lc1/i;->B(II)I move-result p1 iput p1, p0, Lcom/google/android/material/shadow/ShadowRenderer;->shadowEndColor:I .line 4 iget-object p1, p0, Lcom/google/android/material/shadow/ShadowRenderer;->shadowPaint:Landroid/graphics/Paint; iget v0, p0, Lcom/google/android/material/shadow/ShadowRenderer;->shadowStartColor:I invoke-virtual {p1, v0}, Landroid/graphics/Paint;->setColor(I)V return-void .end method