a.smali

.class public final Lhd/a;
.super Lhd/g;
.source "Compressor.kt"


# annotations
.annotation runtime Lkotlin/Metadata;
    bv = {
        0x1,
        0x0,
        0x3
    }
    d1 = {
        "\u0000F\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0008\u0002\n\u0002\u0010\u000e\n\u0000\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0012\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0008\u0002\n\u0002\u0010\u0007\n\u0002\u0008\u0004\n\u0002\u0010\u0008\n\u0000\n\u0002\u0018\u0002\n\u0000\u0008\u00c6\u0002\u0018\u00002\u00020\u0001B\u0007\u0008\u0002\u00a2\u0006\u0002\u0010\u0002J \u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0007\u001a\u00020\u00082\u0006\u0010\t\u001a\u00020\n2\u0006\u0010\u000b\u001a\u00020\u000cH\u0016J \u0010\r\u001a\u00020\u000e2\u0006\u0010\u000f\u001a\u00020\u000e2\u0006\u0010\u0010\u001a\u00020\u00112\u0006\u0010\u0012\u001a\u00020\u0011H\u0002J\u0008\u0010\u0013\u001a\u00020\u0004H\u0016J\u001c\u0010\u0014\u001a\u00020\u000e*\u00020\u000e2\u0006\u0010\u0015\u001a\u00020\u00162\u0006\u0010\u0017\u001a\u00020\u0018H\u0002R\u000e\u0010\u0003\u001a\u00020\u0004X\u0082T\u00a2\u0006\u0002\n\u0000\u00a8\u0006\u0019"
    }
    d2 = {
        "Lcom/shopee/foody/camera/impl/BitmapFactoryCompressor;",
        "Lcom/shopee/foody/camera/impl/Compressor;",
        "()V",
        "TAG",
        "",
        "compress",
        "",
        "fos",
        "Ljava/io/FileOutputStream;",
        "data",
        "",
        "config",
        "Lcom/shopee/foody/camera/impl/Compressor$CompressConfig;",
        "flipBitmap",
        "Landroid/graphics/Bitmap;",
        "srcBitmap",
        "sx",
        "",
        "sy",
        "tag",
        "crop",
        "cameraOrientation",
        "",
        "preferSize",
        "Lcom/shopee/foody/camera/service/Size;",
        "impl_release"
    }
    k = 0x1
    mv = {
        0x1,
        0x1,
        0x10
    }
.end annotation


# static fields
.field public static final a:Lhd/a;


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

    new-instance v0, Lhd/a;

    invoke-direct {v0}, Lhd/a;-><init>()V

    sput-object v0, Lhd/a;->a:Lhd/a;

    return-void
.end method

.method public constructor <init>()V
    .registers 1

    invoke-direct {p0}, Lhd/g;-><init>()V

    return-void
.end method


# virtual methods
.method public final a(Landroid/graphics/Bitmap;FF)Landroid/graphics/Bitmap;
    .registers 11

    new-instance v5, Landroid/graphics/Matrix;

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

    invoke-virtual {v5, p2, p3}, Landroid/graphics/Matrix;->postScale(FF)Z

    invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v3

    invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v4

    const/4 v1, 0x0

    const/4 v2, 0x0

    const/4 v6, 0x1

    move-object v0, p1

    invoke-static/range {v0 .. v6}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIIILandroid/graphics/Matrix;Z)Landroid/graphics/Bitmap;

    move-result-object p2

    new-instance p3, Landroid/graphics/Canvas;

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

    new-instance v0, Landroid/graphics/Rect;

    invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v1

    invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v2

    const/4 v3, 0x0

    invoke-direct {v0, v3, v3, v1, v2}, Landroid/graphics/Rect;-><init>(IIII)V

    new-instance v1, Landroid/graphics/Rect;

    const-string v2, "resultBitmap"

    invoke-static {p2, v2}, Lkotlin/jvm/internal/Intrinsics;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V

    invoke-virtual {p2}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v2

    invoke-virtual {p2}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v4

    invoke-direct {v1, v3, v3, v2, v4}, Landroid/graphics/Rect;-><init>(IIII)V

    const/4 v2, 0x0

    invoke-virtual {p3, p2, v0, v1, v2}, Landroid/graphics/Canvas;->drawBitmap(Landroid/graphics/Bitmap;Landroid/graphics/Rect;Landroid/graphics/Rect;Landroid/graphics/Paint;)V

    if-eq p2, p1, :cond_46

    invoke-virtual {p1}, Landroid/graphics/Bitmap;->recycle()V

    :cond_46
    return-object p2
.end method

.method public final a(Landroid/graphics/Bitmap;ILid/e;)Landroid/graphics/Bitmap;
    .registers 14

    invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v0

    if-lez v0, :cond_74

    invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v0

    if-gtz v0, :cond_d

    goto :goto_74

    :cond_d
    new-instance v4, Lid/e;

    invoke-virtual {p1}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v0

    invoke-virtual {p1}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v1

    invoke-direct {v4, v0, v1}, Lid/e;-><init>(II)V

    invoke-virtual {p3}, Lid/e;->e()Ljava/lang/Float;

    move-result-object v0

    if-eqz v0, :cond_74

    invoke-virtual {v0}, Ljava/lang/Float;->floatValue()F

    move-result v2

    rem-int/lit16 v0, p2, 0xb4

    if-eqz v0, :cond_2b

    const/4 v0, 0x1

    const/4 v7, 0x1

    goto :goto_2d

    :cond_2b
    const/4 v0, 0x0

    const/4 v7, 0x0

    :goto_2d
    new-instance v0, Lid/e;

    invoke-virtual {v4}, Lid/e;->d()I

    move-result v1

    invoke-virtual {v4}, Lid/e;->c()I

    move-result v3

    invoke-direct {v0, v1, v3}, Lid/e;-><init>(II)V

    if-eqz v7, :cond_40

    invoke-virtual {v0}, Lid/e;->f()Lid/e;

    move-result-object v0

    :cond_40
    move-object v8, v0

    invoke-virtual {v8}, Lid/e;->e()Ljava/lang/Float;

    move-result-object v0

    if-eqz v0, :cond_74

    invoke-virtual {v0}, Ljava/lang/Float;->floatValue()F

    move-result v6

    sget-object v0, Lhd/a;->a:Lhd/a;

    new-instance v9, Lhd/g$b;

    move-object v1, v9

    move-object v3, p3

    move v5, p2

    invoke-direct/range {v1 .. v8}, Lhd/g$b;-><init>(FLid/e;Lid/e;IFZLid/e;)V

    invoke-super {v0, v9}, Lhd/g;->a(Lhd/g$b;)Landroid/graphics/Rect;

    move-result-object p2

    iget p3, p2, Landroid/graphics/Rect;->left:I

    iget v0, p2, Landroid/graphics/Rect;->top:I

    invoke-virtual {p2}, Landroid/graphics/Rect;->width()I

    move-result v1

    invoke-virtual {p2}, Landroid/graphics/Rect;->height()I

    move-result p2

    invoke-static {p1, p3, v0, v1, p2}, Landroid/graphics/Bitmap;->createBitmap(Landroid/graphics/Bitmap;IIII)Landroid/graphics/Bitmap;

    move-result-object p2

    if-eq p2, p1, :cond_6e

    invoke-virtual {p1}, Landroid/graphics/Bitmap;->recycle()V

    :cond_6e
    const-string p1, "croppedBmp"

    invoke-static {p2, p1}, Lkotlin/jvm/internal/Intrinsics;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V

    return-object p2

    :cond_74
    :goto_74
    return-object p1
.end method

.method public a()Ljava/lang/String;
    .registers 2

    const-string v0, "BitmapFactoryCompressor"

    return-object v0
.end method

.method public a(Ljava/io/FileOutputStream;[BLhd/g$a;)V
    .registers 10
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Throwable;
        }
    .end annotation

    const-string v0, "BitmapFactoryCompressor"

    array-length v1, p2

    new-instance v2, Landroid/graphics/BitmapFactory$Options;

    invoke-direct {v2}, Landroid/graphics/BitmapFactory$Options;-><init>()V

    const/4 v3, 0x0

    invoke-static {p2, v3, v1, v2}, Landroid/graphics/BitmapFactory;->decodeByteArray([BIILandroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;

    move-result-object v1

    if-eqz v1, :cond_91

    new-instance v2, Lid/e;

    invoke-virtual {v1}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v4

    invoke-virtual {v1}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v5

    invoke-direct {v2, v4, v5}, Lid/e;-><init>(II)V

    invoke-super {p0, v2, p3}, Lhd/g;->a(Lid/e;Lhd/g$a;)Lid/e;

    move-result-object v2

    const/4 v4, 0x0

    :try_start_21
    invoke-virtual {v2}, Lid/e;->d()I

    move-result v5

    invoke-virtual {v2}, Lid/e;->c()I

    move-result v2

    invoke-static {v1, v5, v2, v3}, Landroid/graphics/Bitmap;->createScaledBitmap(Landroid/graphics/Bitmap;IIZ)Landroid/graphics/Bitmap;

    move-result-object v4
    :try_end_2d
    .catch Ljava/lang/OutOfMemoryError; {:try_start_21 .. :try_end_2d} :catch_3a
    .catch Ljava/lang/Exception; {:try_start_21 .. :try_end_2d} :catch_2e

    goto :goto_45

    :catch_2e
    move-exception v2

    sget-object v3, Lqa/d;->e:Lqa/d$a;

    new-instance v5, Lhd/a$b;

    invoke-direct {v5, v2}, Lhd/a$b;-><init>(Ljava/lang/Exception;)V

    invoke-virtual {v3, v0, v5}, Lqa/d$a;->b(Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V

    goto :goto_45

    :catch_3a
    move-exception v2

    sget-object v3, Lqa/d;->e:Lqa/d$a;

    new-instance v5, Lhd/a$a;

    invoke-direct {v5, v2}, Lhd/a$a;-><init>(Ljava/lang/OutOfMemoryError;)V

    invoke-virtual {v3, v0, v5}, Lqa/d$a;->b(Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V

    :goto_45
    if-eq v4, v1, :cond_4a

    invoke-virtual {v1}, Landroid/graphics/Bitmap;->recycle()V

    :cond_4a
    if-eqz v4, :cond_90

    invoke-virtual {p3}, Lhd/g$a;->a()I

    move-result v0

    invoke-virtual {p3}, Lhd/g$a;->d()Lid/e;

    move-result-object v1

    invoke-virtual {p0, v4, v0, v1}, Lhd/a;->a(Landroid/graphics/Bitmap;ILid/e;)Landroid/graphics/Bitmap;

    move-result-object v0

    invoke-virtual {p3}, Lhd/g$a;->b()Z

    move-result v1

    if-nez v1, :cond_64

    invoke-virtual {p3}, Lhd/g$a;->c()Z

    move-result v1

    if-eqz v1, :cond_81

    :cond_64
    sget-object v1, Lhd/a;->a:Lhd/a;

    invoke-virtual {p3}, Lhd/g$a;->b()Z

    move-result v2

    const/high16 v3, 0x3f800000    # 1.0f

    const/high16 v4, -0x40800000    # -1.0f

    if-eqz v2, :cond_73

    const/high16 v2, -0x40800000    # -1.0f

    goto :goto_75

    :cond_73
    const/high16 v2, 0x3f800000    # 1.0f

    :goto_75
    invoke-virtual {p3}, Lhd/g$a;->c()Z

    move-result v5

    if-eqz v5, :cond_7d

    const/high16 v3, -0x40800000    # -1.0f

    :cond_7d
    invoke-virtual {v1, v0, v2, v3}, Lhd/a;->a(Landroid/graphics/Bitmap;FF)Landroid/graphics/Bitmap;

    move-result-object v0

    :cond_81
    sget-object v1, Landroid/graphics/Bitmap$CompressFormat;->JPEG:Landroid/graphics/Bitmap$CompressFormat;

    invoke-virtual {p3}, Lhd/g$a;->e()I

    move-result p3

    invoke-virtual {v0, v1, p3, p1}, Landroid/graphics/Bitmap;->compress(Landroid/graphics/Bitmap$CompressFormat;ILjava/io/OutputStream;)Z

    invoke-virtual {p1, p2}, Ljava/io/FileOutputStream;->write([B)V

    invoke-virtual {v0}, Landroid/graphics/Bitmap;->recycle()V

    :cond_90
    return-void

    :cond_91
    new-instance p1, Ljava/lang/IllegalArgumentException;

    const-string p2, "fail to decode bitmap from bytes"

    invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw p1
.end method