GlideRoundTransform.smali

.class Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;
.super Ljava/lang/Object;
.source "GlideRoundTransform.java"

# interfaces
.implements Lcom/bumptech/glide/load/Transformation;


# annotations
.annotation system Ldalvik/annotation/Signature;
    value = {
        "Ljava/lang/Object;",
        "Lcom/bumptech/glide/load/Transformation<",
        "Landroid/graphics/Bitmap;",
        ">;"
    }
.end annotation


# instance fields
.field private isLeftBottom:Z

.field private isLeftTop:Z

.field private isRightBottom:Z

.field private isRightTop:Z

.field private leftBottom_radius:F

.field private leftTop_radius:F

.field private mBitmapPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;

.field private rightBottom_radius:F

.field private rightTop_radius:F


# direct methods
.method static constructor <clinit>()V
    .registers 1

    return-void
.end method

.method public constructor <init>(Landroid/content/Context;FFFF)V
    .registers 9
    .param p1, "context"    # Landroid/content/Context;
    .param p2, "leftTop_radius"    # F
    .param p3, "leftBottom_radius"    # F
    .param p4, "rightTop_radius"    # F
    .param p5, "rightBottom_radius"    # F

    .line 43
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 44
    invoke-static {p1}, Lcom/bumptech/glide/Glide;->get(Landroid/content/Context;)Lcom/bumptech/glide/Glide;

    move-result-object v0

    invoke-virtual {v0}, Lcom/bumptech/glide/Glide;->getBitmapPool()Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;

    move-result-object v0

    iput-object v0, p0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->mBitmapPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;

    .line 45
    iput p2, p0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->leftTop_radius:F

    .line 46
    const/4 v0, 0x1

    const/4 v1, 0x0

    cmpl-float v2, p2, v1

    if-eqz v2, :cond_17

    .line 47
    iput-boolean v0, p0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->isLeftTop:Z

    .line 49
    :cond_17
    iput p3, p0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->leftBottom_radius:F

    .line 50
    cmpl-float v2, p3, v1

    if-eqz v2, :cond_1f

    .line 51
    iput-boolean v0, p0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->isLeftBottom:Z

    .line 53
    :cond_1f
    iput p4, p0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->rightTop_radius:F

    .line 54
    cmpl-float v2, p4, v1

    if-eqz v2, :cond_27

    .line 55
    iput-boolean v0, p0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->isRightTop:Z

    .line 57
    :cond_27
    iput p5, p0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->rightBottom_radius:F

    .line 58
    cmpl-float v1, p5, v1

    if-eqz v1, :cond_2f

    .line 59
    iput-boolean v0, p0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->isRightBottom:Z

    .line 61
    :cond_2f
    return-void
.end method


# virtual methods
.method public transform(Landroid/content/Context;Lcom/bumptech/glide/load/engine/Resource;II)Lcom/bumptech/glide/load/engine/Resource;
    .registers 21
    .param p1, "context"    # Landroid/content/Context;
    .param p3, "outWidth"    # I
    .param p4, "outHeight"    # I
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Landroid/content/Context;",
            "Lcom/bumptech/glide/load/engine/Resource<",
            "Landroid/graphics/Bitmap;",
            ">;II)",
            "Lcom/bumptech/glide/load/engine/Resource<",
            "Landroid/graphics/Bitmap;",
            ">;"
        }
    .end annotation

    .line 67
    .local p2, "resource":Lcom/bumptech/glide/load/engine/Resource;, "Lcom/bumptech/glide/load/engine/Resource<Landroid/graphics/Bitmap;>;"
    move-object/from16 v0, p0

    move/from16 v1, p3

    move/from16 v2, p4

    invoke-interface/range {p2 .. p2}, Lcom/bumptech/glide/load/engine/Resource;->get()Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Landroid/graphics/Bitmap;

    .line 71
    .local v3, "source":Landroid/graphics/Bitmap;
    if-le v1, v2, :cond_33

    .line 74
    int-to-float v4, v2

    int-to-float v5, v1

    div-float/2addr v4, v5

    .line 75
    .local v4, "scale":F
    invoke-virtual {v3}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v5

    .line 77
    .local v5, "finalWidth":I
    invoke-virtual {v3}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v6

    int-to-float v6, v6

    mul-float v6, v6, v4

    float-to-int v6, v6

    .line 78
    .local v6, "finalHeight":I
    invoke-virtual {v3}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v7

    if-le v6, v7, :cond_5f

    .line 81
    int-to-float v7, v1

    int-to-float v8, v2

    div-float/2addr v7, v8

    .line 82
    .end local v4    # "scale":F
    .local v7, "scale":F
    invoke-virtual {v3}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v6

    .line 84
    invoke-virtual {v3}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v4

    int-to-float v4, v4

    mul-float v4, v4, v7

    float-to-int v5, v4

    goto :goto_5f

    .line 86
    .end local v5    # "finalWidth":I
    .end local v6    # "finalHeight":I
    .end local v7    # "scale":F
    :cond_33
    if-ge v1, v2, :cond_5a

    .line 89
    int-to-float v4, v1

    int-to-float v5, v2

    div-float/2addr v4, v5

    .line 90
    .restart local v4    # "scale":F
    invoke-virtual {v3}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v6

    .line 92
    .restart local v6    # "finalHeight":I
    invoke-virtual {v3}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v5

    int-to-float v5, v5

    mul-float v5, v5, v4

    float-to-int v5, v5

    .line 93
    .restart local v5    # "finalWidth":I
    invoke-virtual {v3}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v7

    if-le v5, v7, :cond_5f

    .line 96
    int-to-float v7, v2

    int-to-float v8, v1

    div-float/2addr v7, v8

    .line 97
    .end local v4    # "scale":F
    .restart local v7    # "scale":F
    invoke-virtual {v3}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v5

    .line 98
    invoke-virtual {v3}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v4

    int-to-float v4, v4

    mul-float v4, v4, v7

    float-to-int v6, v4

    goto :goto_5f

    .line 102
    .end local v5    # "finalWidth":I
    .end local v6    # "finalHeight":I
    .end local v7    # "scale":F
    :cond_5a
    invoke-virtual {v3}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v6

    .line 103
    .restart local v6    # "finalHeight":I
    move v5, v6

    .line 107
    .restart local v5    # "finalWidth":I
    :cond_5f
    :goto_5f
    iget v4, v0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->leftTop_radius:F

    int-to-float v7, v6

    int-to-float v8, v2

    div-float/2addr v7, v8

    mul-float v4, v4, v7

    iput v4, v0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->leftTop_radius:F

    .line 108
    iget v4, v0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->leftBottom_radius:F

    int-to-float v7, v6

    int-to-float v8, v2

    div-float/2addr v7, v8

    mul-float v4, v4, v7

    iput v4, v0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->leftBottom_radius:F

    .line 109
    iget v4, v0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->rightTop_radius:F

    int-to-float v7, v6

    int-to-float v8, v2

    div-float/2addr v7, v8

    mul-float v4, v4, v7

    iput v4, v0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->rightTop_radius:F

    .line 110
    iget v4, v0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->rightBottom_radius:F

    int-to-float v7, v6

    int-to-float v8, v2

    div-float/2addr v7, v8

    mul-float v4, v4, v7

    iput v4, v0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->rightBottom_radius:F

    .line 111
    iget-object v4, v0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->mBitmapPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;

    sget-object v7, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;

    invoke-interface {v4, v5, v6, v7}, Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;->get(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;

    move-result-object v4

    .line 112
    .local v4, "outBitmap":Landroid/graphics/Bitmap;
    if-nez v4, :cond_93

    .line 113
    sget-object v7, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;

    invoke-static {v5, v6, v7}, Landroid/graphics/Bitmap;->createBitmap(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;

    move-result-object v4

    .line 116
    :cond_93
    new-instance v7, Landroid/graphics/Canvas;

    invoke-direct {v7, v4}, Landroid/graphics/Canvas;-><init>(Landroid/graphics/Bitmap;)V

    .line 117
    .local v7, "canvas":Landroid/graphics/Canvas;
    new-instance v8, Landroid/graphics/Paint;

    invoke-direct {v8}, Landroid/graphics/Paint;-><init>()V

    .line 119
    .local v8, "paint":Landroid/graphics/Paint;
    new-instance v9, Landroid/graphics/BitmapShader;

    sget-object v10, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode;

    sget-object v11, Landroid/graphics/Shader$TileMode;->CLAMP:Landroid/graphics/Shader$TileMode;

    invoke-direct {v9, v3, v10, v11}, Landroid/graphics/BitmapShader;-><init>(Landroid/graphics/Bitmap;Landroid/graphics/Shader$TileMode;Landroid/graphics/Shader$TileMode;)V

    .line 121
    .local v9, "shader":Landroid/graphics/BitmapShader;
    invoke-virtual {v3}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v10

    sub-int/2addr v10, v5

    const/4 v11, 0x2

    div-int/2addr v10, v11

    .line 122
    .local v10, "width":I
    invoke-virtual {v3}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v12

    sub-int/2addr v12, v6

    div-int/2addr v12, v11

    .line 123
    .local v12, "height":I
    if-nez v10, :cond_b7

    if-eqz v12, :cond_c6

    .line 124
    :cond_b7
    new-instance v13, Landroid/graphics/Matrix;

    invoke-direct {v13}, Landroid/graphics/Matrix;-><init>()V

    .line 125
    .local v13, "matrix":Landroid/graphics/Matrix;
    neg-int v14, v10

    int-to-float v14, v14

    neg-int v15, v12

    int-to-float v15, v15

    invoke-virtual {v13, v14, v15}, Landroid/graphics/Matrix;->setTranslate(FF)V

    .line 126
    invoke-virtual {v9, v13}, Landroid/graphics/BitmapShader;->setLocalMatrix(Landroid/graphics/Matrix;)V

    .line 129
    .end local v13    # "matrix":Landroid/graphics/Matrix;
    :cond_c6
    invoke-virtual {v8, v9}, Landroid/graphics/Paint;->setShader(Landroid/graphics/Shader;)Landroid/graphics/Shader;

    .line 130
    const/4 v13, 0x1

    invoke-virtual {v8, v13}, Landroid/graphics/Paint;->setAntiAlias(Z)V

    .line 131
    new-instance v14, Landroid/graphics/RectF;

    invoke-virtual {v7}, Landroid/graphics/Canvas;->getWidth()I

    move-result v15

    int-to-float v15, v15

    invoke-virtual {v7}, Landroid/graphics/Canvas;->getHeight()I

    move-result v11

    int-to-float v11, v11

    const/4 v13, 0x0

    invoke-direct {v14, v13, v13, v15, v11}, Landroid/graphics/RectF;-><init>(FFFF)V

    move-object v11, v14

    .line 133
    .local v11, "rectF":Landroid/graphics/RectF;
    const/16 v13, 0x8

    new-array v13, v13, [F

    const/4 v14, 0x0

    iget v15, v0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->leftTop_radius:F

    aput v15, v13, v14

    const/4 v14, 0x1

    aput v15, v13, v14

    iget v14, v0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->rightTop_radius:F

    const/4 v15, 0x2

    aput v14, v13, v15

    const/4 v15, 0x3

    aput v14, v13, v15

    const/4 v14, 0x4

    iget v15, v0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->rightBottom_radius:F

    aput v15, v13, v14

    const/4 v14, 0x5

    aput v15, v13, v14

    const/4 v14, 0x6

    iget v15, v0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->leftBottom_radius:F

    aput v15, v13, v14

    const/4 v14, 0x7

    aput v15, v13, v14

    .line 134
    .local v13, "outerR":[F
    new-instance v14, Landroid/graphics/Path;

    invoke-direct {v14}, Landroid/graphics/Path;-><init>()V

    .line 135
    .local v14, "path":Landroid/graphics/Path;
    sget-object v15, Landroid/graphics/Path$Direction;->CW:Landroid/graphics/Path$Direction;

    invoke-virtual {v14, v11, v13, v15}, Landroid/graphics/Path;->addRoundRect(Landroid/graphics/RectF;[FLandroid/graphics/Path$Direction;)V

    .line 136
    invoke-virtual {v7, v14, v8}, Landroid/graphics/Canvas;->drawPath(Landroid/graphics/Path;Landroid/graphics/Paint;)V

    .line 138
    iget-object v15, v0, Lim/tpelyyftgw/ui/components/shadow/GlideRoundTransform;->mBitmapPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;

    invoke-static {v4, v15}, Lcom/bumptech/glide/load/resource/bitmap/BitmapResource;->obtain(Landroid/graphics/Bitmap;Lcom/bumptech/glide/load/engine/bitmap_recycle/BitmapPool;)Lcom/bumptech/glide/load/resource/bitmap/BitmapResource;

    move-result-object v15

    return-object v15
.end method

.method public updateDiskCacheKey(Ljava/security/MessageDigest;)V
    .registers 2
    .param p1, "messageDigest"    # Ljava/security/MessageDigest;

    .line 144
    return-void
.end method