b.smali

.class public Le7/b;
.super Lw6/d;
.source "Camera2Options.java"


# annotations
.annotation build Landroidx/annotation/RequiresApi;
    value = 0x15
.end annotation


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

    return-void
.end method

.method public constructor <init>(Landroid/hardware/camera2/CameraManager;Ljava/lang/String;ZI)V
    .registers 14
    .param p1    # Landroid/hardware/camera2/CameraManager;
        .annotation build Landroidx/annotation/NonNull;
        .end annotation
    .end param
    .param p2    # Ljava/lang/String;
        .annotation build Landroidx/annotation/NonNull;
        .end annotation
    .end param
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Landroid/hardware/camera2/CameraAccessException;
        }
    .end annotation

    invoke-direct {p0}, Lw6/d;-><init>()V

    invoke-static {}, La7/b;->a()La7/b;

    move-result-object v0

    invoke-virtual {p1, p2}, Landroid/hardware/camera2/CameraManager;->getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/CameraCharacteristics;

    move-result-object v1

    invoke-virtual {p1}, Landroid/hardware/camera2/CameraManager;->getCameraIdList()[Ljava/lang/String;

    move-result-object v2

    array-length v3, v2

    const/4 v4, 0x0

    const/4 v5, 0x0

    :goto_12
    if-ge v5, v3, :cond_36

    aget-object v6, v2, v5

    invoke-virtual {p1, v6}, Landroid/hardware/camera2/CameraManager;->getCameraCharacteristics(Ljava/lang/String;)Landroid/hardware/camera2/CameraCharacteristics;

    move-result-object v6

    sget-object v7, Landroid/hardware/camera2/CameraCharacteristics;->LENS_FACING:Landroid/hardware/camera2/CameraCharacteristics$Key;

    invoke-virtual {v6, v7}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;

    move-result-object v6

    check-cast v6, Ljava/lang/Integer;

    if-eqz v6, :cond_33

    invoke-virtual {v6}, Ljava/lang/Integer;->intValue()I

    move-result v6

    invoke-virtual {v0, v6}, La7/b;->a(I)Lcom/otaliastudios/cameraview/controls/Facing;

    move-result-object v6

    if-eqz v6, :cond_33

    iget-object v7, p0, Lw6/d;->b:Ljava/util/Set;

    invoke-interface {v7, v6}, Ljava/util/Set;->add(Ljava/lang/Object;)Z

    :cond_33
    add-int/lit8 v5, v5, 0x1

    goto :goto_12

    :cond_36
    sget-object p1, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AWB_AVAILABLE_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;

    invoke-virtual {v1, p1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;

    move-result-object p1

    check-cast p1, [I

    array-length v2, p1

    const/4 v3, 0x0

    :goto_40
    if-ge v3, v2, :cond_52

    aget v5, p1, v3

    invoke-virtual {v0, v5}, La7/b;->d(I)Lcom/otaliastudios/cameraview/controls/WhiteBalance;

    move-result-object v5

    if-eqz v5, :cond_4f

    iget-object v6, p0, Lw6/d;->a:Ljava/util/Set;

    invoke-interface {v6, v5}, Ljava/util/Set;->add(Ljava/lang/Object;)Z

    :cond_4f
    add-int/lit8 v3, v3, 0x1

    goto :goto_40

    :cond_52
    iget-object p1, p0, Lw6/d;->c:Ljava/util/Set;

    sget-object v2, Lcom/otaliastudios/cameraview/controls/Flash;->OFF:Lcom/otaliastudios/cameraview/controls/Flash;

    invoke-interface {p1, v2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z

    sget-object p1, Landroid/hardware/camera2/CameraCharacteristics;->FLASH_INFO_AVAILABLE:Landroid/hardware/camera2/CameraCharacteristics$Key;

    invoke-virtual {v1, p1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;

    move-result-object p1

    check-cast p1, Ljava/lang/Boolean;

    if-eqz p1, :cond_83

    invoke-virtual {p1}, Ljava/lang/Boolean;->booleanValue()Z

    move-result p1

    if-eqz p1, :cond_83

    sget-object p1, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AE_AVAILABLE_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;

    invoke-virtual {v1, p1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;

    move-result-object p1

    check-cast p1, [I

    array-length v2, p1

    const/4 v3, 0x0

    :goto_73
    if-ge v3, v2, :cond_83

    aget v5, p1, v3

    invoke-virtual {v0, v5}, La7/b;->b(I)Ljava/util/Set;

    move-result-object v5

    iget-object v6, p0, Lw6/d;->c:Ljava/util/Set;

    invoke-interface {v6, v5}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z

    add-int/lit8 v3, v3, 0x1

    goto :goto_73

    :cond_83
    iget-object p1, p0, Lw6/d;->d:Ljava/util/Set;

    sget-object v2, Lcom/otaliastudios/cameraview/controls/Hdr;->OFF:Lcom/otaliastudios/cameraview/controls/Hdr;

    invoke-interface {p1, v2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z

    sget-object p1, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AVAILABLE_SCENE_MODES:Landroid/hardware/camera2/CameraCharacteristics$Key;

    invoke-virtual {v1, p1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;

    move-result-object p1

    check-cast p1, [I

    array-length v2, p1

    const/4 v3, 0x0

    :goto_94
    if-ge v3, v2, :cond_a6

    aget v5, p1, v3

    invoke-virtual {v0, v5}, La7/b;->c(I)Lcom/otaliastudios/cameraview/controls/Hdr;

    move-result-object v5

    if-eqz v5, :cond_a3

    iget-object v6, p0, Lw6/d;->d:Ljava/util/Set;

    invoke-interface {v6, v5}, Ljava/util/Set;->add(Ljava/lang/Object;)Z

    :cond_a3
    add-int/lit8 v3, v3, 0x1

    goto :goto_94

    :cond_a6
    sget-object p1, Landroid/hardware/camera2/CameraCharacteristics;->SCALER_AVAILABLE_MAX_DIGITAL_ZOOM:Landroid/hardware/camera2/CameraCharacteristics$Key;

    invoke-virtual {v1, p1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;

    move-result-object p1

    check-cast p1, Ljava/lang/Float;

    const/4 v0, 0x1

    if-eqz p1, :cond_c0

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

    move-result p1

    const/high16 v2, 0x3f800000    # 1.0f

    cmpl-float p1, p1, v2

    if-lez p1, :cond_bd

    const/4 p1, 0x1

    goto :goto_be

    :cond_bd
    const/4 p1, 0x0

    :goto_be
    iput-boolean p1, p0, Lw6/d;->k:Z

    :cond_c0
    sget-object p1, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_MAX_REGIONS_AF:Landroid/hardware/camera2/CameraCharacteristics$Key;

    invoke-virtual {v1, p1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;

    move-result-object p1

    check-cast p1, Ljava/lang/Integer;

    sget-object v2, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_MAX_REGIONS_AE:Landroid/hardware/camera2/CameraCharacteristics$Key;

    invoke-virtual {v1, v2}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Ljava/lang/Integer;

    sget-object v3, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_MAX_REGIONS_AWB:Landroid/hardware/camera2/CameraCharacteristics$Key;

    invoke-virtual {v1, v3}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;

    move-result-object v3

    check-cast v3, Ljava/lang/Integer;

    if-eqz p1, :cond_e0

    invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I

    move-result p1

    if-gtz p1, :cond_f0

    :cond_e0
    if-eqz v2, :cond_e8

    invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I

    move-result p1

    if-gtz p1, :cond_f0

    :cond_e8
    if-eqz v3, :cond_f2

    invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I

    move-result p1

    if-lez p1, :cond_f2

    :cond_f0
    const/4 p1, 0x1

    goto :goto_f3

    :cond_f2
    const/4 p1, 0x0

    :goto_f3
    iput-boolean p1, p0, Lw6/d;->o:Z

    sget-object p1, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AE_COMPENSATION_RANGE:Landroid/hardware/camera2/CameraCharacteristics$Key;

    invoke-virtual {v1, p1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;

    move-result-object p1

    check-cast p1, Landroid/util/Range;

    sget-object v2, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AE_COMPENSATION_STEP:Landroid/hardware/camera2/CameraCharacteristics$Key;

    invoke-virtual {v1, v2}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Landroid/util/Rational;

    const/4 v3, 0x0

    if-eqz p1, :cond_136

    if-eqz v2, :cond_136

    invoke-virtual {v2}, Landroid/util/Rational;->floatValue()F

    move-result v5

    cmpl-float v5, v5, v3

    if-eqz v5, :cond_136

    invoke-virtual {p1}, Landroid/util/Range;->getLower()Ljava/lang/Comparable;

    move-result-object v5

    check-cast v5, Ljava/lang/Integer;

    invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I

    move-result v5

    int-to-float v5, v5

    invoke-virtual {v2}, Landroid/util/Rational;->floatValue()F

    move-result v6

    div-float/2addr v5, v6

    iput v5, p0, Lw6/d;->m:F

    invoke-virtual {p1}, Landroid/util/Range;->getUpper()Ljava/lang/Comparable;

    move-result-object p1

    check-cast p1, Ljava/lang/Integer;

    invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I

    move-result p1

    int-to-float p1, p1

    invoke-virtual {v2}, Landroid/util/Rational;->floatValue()F

    move-result v2

    div-float/2addr p1, v2

    iput p1, p0, Lw6/d;->n:F

    :cond_136
    iget p1, p0, Lw6/d;->m:F

    cmpl-float p1, p1, v3

    if-eqz p1, :cond_144

    iget p1, p0, Lw6/d;->n:F

    cmpl-float p1, p1, v3

    if-eqz p1, :cond_144

    const/4 p1, 0x1

    goto :goto_145

    :cond_144
    const/4 p1, 0x0

    :goto_145
    iput-boolean p1, p0, Lw6/d;->l:Z

    sget-object p1, Landroid/hardware/camera2/CameraCharacteristics;->SCALER_STREAM_CONFIGURATION_MAP:Landroid/hardware/camera2/CameraCharacteristics$Key;

    invoke-virtual {v1, p1}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;

    move-result-object p1

    check-cast p1, Landroid/hardware/camera2/params/StreamConfigurationMap;

    if-eqz p1, :cond_2a4

    invoke-virtual {p1}, Landroid/hardware/camera2/params/StreamConfigurationMap;->getOutputFormats()[I

    move-result-object v2

    array-length v5, v2

    const/4 v6, 0x0

    :goto_157
    if-ge v6, v5, :cond_161

    aget v7, v2, v6

    if-ne v7, p4, :cond_15e

    goto :goto_162

    :cond_15e
    add-int/lit8 v6, v6, 0x1

    goto :goto_157

    :cond_161
    const/4 v0, 0x0

    :goto_162
    if-eqz v0, :cond_28d

    invoke-virtual {p1, p4}, Landroid/hardware/camera2/params/StreamConfigurationMap;->getOutputSizes(I)[Landroid/util/Size;

    move-result-object p4

    array-length v0, p4

    const/4 v2, 0x0

    :goto_16a
    if-ge v2, v0, :cond_19a

    aget-object v5, p4, v2

    if-eqz p3, :cond_175

    invoke-virtual {v5}, Landroid/util/Size;->getHeight()I

    move-result v6

    goto :goto_179

    :cond_175
    invoke-virtual {v5}, Landroid/util/Size;->getWidth()I

    move-result v6

    :goto_179
    if-eqz p3, :cond_180

    invoke-virtual {v5}, Landroid/util/Size;->getWidth()I

    move-result v5

    goto :goto_184

    :cond_180
    invoke-virtual {v5}, Landroid/util/Size;->getHeight()I

    move-result v5

    :goto_184
    iget-object v7, p0, Lw6/d;->e:Ljava/util/Set;

    new-instance v8, Lq7/b;

    invoke-direct {v8, v6, v5}, Lq7/b;-><init>(II)V

    invoke-interface {v7, v8}, Ljava/util/Set;->add(Ljava/lang/Object;)Z

    iget-object v7, p0, Lw6/d;->g:Ljava/util/Set;

    invoke-static {v6, v5}, Lq7/a;->b(II)Lq7/a;

    move-result-object v5

    invoke-interface {v7, v5}, Ljava/util/Set;->add(Ljava/lang/Object;)Z

    add-int/lit8 v2, v2, 0x1

    goto :goto_16a

    :cond_19a
    new-instance p4, Lq7/b;

    const v0, 0x7fffffff

    invoke-direct {p4, v0, v0}, Lq7/b;-><init>(II)V

    invoke-static {p2, p4}, Lk7/a;->a(Ljava/lang/String;Lq7/b;)Landroid/media/CamcorderProfile;

    move-result-object p2

    new-instance p4, Lq7/b;

    iget v0, p2, Landroid/media/CamcorderProfile;->videoFrameWidth:I

    iget p2, p2, Landroid/media/CamcorderProfile;->videoFrameHeight:I

    invoke-direct {p4, v0, p2}, Lq7/b;-><init>(II)V

    const-class p2, Landroid/media/MediaRecorder;

    invoke-virtual {p1, p2}, Landroid/hardware/camera2/params/StreamConfigurationMap;->getOutputSizes(Ljava/lang/Class;)[Landroid/util/Size;

    move-result-object p2

    array-length v0, p2

    const/4 v2, 0x0

    :goto_1b7
    if-ge v2, v0, :cond_1fb

    aget-object v5, p2, v2

    invoke-virtual {v5}, Landroid/util/Size;->getWidth()I

    move-result v6

    invoke-virtual {p4}, Lq7/b;->c()I

    move-result v7

    if-gt v6, v7, :cond_1f8

    invoke-virtual {v5}, Landroid/util/Size;->getHeight()I

    move-result v6

    invoke-virtual {p4}, Lq7/b;->b()I

    move-result v7

    if-gt v6, v7, :cond_1f8

    if-eqz p3, :cond_1d6

    invoke-virtual {v5}, Landroid/util/Size;->getHeight()I

    move-result v6

    goto :goto_1da

    :cond_1d6
    invoke-virtual {v5}, Landroid/util/Size;->getWidth()I

    move-result v6

    :goto_1da
    if-eqz p3, :cond_1e1

    invoke-virtual {v5}, Landroid/util/Size;->getWidth()I

    move-result v5

    goto :goto_1e5

    :cond_1e1
    invoke-virtual {v5}, Landroid/util/Size;->getHeight()I

    move-result v5

    :goto_1e5
    iget-object v7, p0, Lw6/d;->f:Ljava/util/Set;

    new-instance v8, Lq7/b;

    invoke-direct {v8, v6, v5}, Lq7/b;-><init>(II)V

    invoke-interface {v7, v8}, Ljava/util/Set;->add(Ljava/lang/Object;)Z

    iget-object v7, p0, Lw6/d;->h:Ljava/util/Set;

    invoke-static {v6, v5}, Lq7/a;->b(II)Lq7/a;

    move-result-object v5

    invoke-interface {v7, v5}, Ljava/util/Set;->add(Ljava/lang/Object;)Z

    :cond_1f8
    add-int/lit8 v2, v2, 0x1

    goto :goto_1b7

    :cond_1fb
    sget-object p2, Landroid/hardware/camera2/CameraCharacteristics;->CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES:Landroid/hardware/camera2/CameraCharacteristics$Key;

    invoke-virtual {v1, p2}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;

    move-result-object p2

    check-cast p2, [Landroid/util/Range;

    if-eqz p2, :cond_23e

    const p3, 0x7f7fffff    # Float.MAX_VALUE

    iput p3, p0, Lw6/d;->p:F

    const p3, -0x800001

    iput p3, p0, Lw6/d;->q:F

    array-length p3, p2

    const/4 p4, 0x0

    :goto_211
    if-ge p4, p3, :cond_242

    aget-object v0, p2, p4

    iget v2, p0, Lw6/d;->p:F

    invoke-virtual {v0}, Landroid/util/Range;->getLower()Ljava/lang/Comparable;

    move-result-object v3

    check-cast v3, Ljava/lang/Integer;

    invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I

    move-result v3

    int-to-float v3, v3

    invoke-static {v2, v3}, Ljava/lang/Math;->min(FF)F

    move-result v2

    iput v2, p0, Lw6/d;->p:F

    iget v2, p0, Lw6/d;->q:F

    invoke-virtual {v0}, Landroid/util/Range;->getUpper()Ljava/lang/Comparable;

    move-result-object v0

    check-cast v0, Ljava/lang/Integer;

    invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I

    move-result v0

    int-to-float v0, v0

    invoke-static {v2, v0}, Ljava/lang/Math;->max(FF)F

    move-result v0

    iput v0, p0, Lw6/d;->q:F

    add-int/lit8 p4, p4, 0x1

    goto :goto_211

    :cond_23e
    iput v3, p0, Lw6/d;->p:F

    iput v3, p0, Lw6/d;->q:F

    :cond_242
    iget-object p2, p0, Lw6/d;->i:Ljava/util/Set;

    sget-object p3, Lcom/otaliastudios/cameraview/controls/PictureFormat;->JPEG:Lcom/otaliastudios/cameraview/controls/PictureFormat;

    invoke-interface {p2, p3}, Ljava/util/Set;->add(Ljava/lang/Object;)Z

    sget-object p2, Landroid/hardware/camera2/CameraCharacteristics;->REQUEST_AVAILABLE_CAPABILITIES:Landroid/hardware/camera2/CameraCharacteristics$Key;

    invoke-virtual {v1, p2}, Landroid/hardware/camera2/CameraCharacteristics;->get(Landroid/hardware/camera2/CameraCharacteristics$Key;)Ljava/lang/Object;

    move-result-object p2

    check-cast p2, [I

    if-eqz p2, :cond_266

    array-length p3, p2

    const/4 p4, 0x0

    :goto_255
    if-ge p4, p3, :cond_266

    aget v0, p2, p4

    const/4 v1, 0x3

    if-ne v0, v1, :cond_263

    iget-object v0, p0, Lw6/d;->i:Ljava/util/Set;

    sget-object v1, Lcom/otaliastudios/cameraview/controls/PictureFormat;->DNG:Lcom/otaliastudios/cameraview/controls/PictureFormat;

    invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z

    :cond_263
    add-int/lit8 p4, p4, 0x1

    goto :goto_255

    :cond_266
    iget-object p2, p0, Lw6/d;->j:Ljava/util/Set;

    const/16 p3, 0x23

    invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object p3

    invoke-interface {p2, p3}, Ljava/util/Set;->add(Ljava/lang/Object;)Z

    invoke-virtual {p1}, Landroid/hardware/camera2/params/StreamConfigurationMap;->getOutputFormats()[I

    move-result-object p1

    array-length p2, p1

    :goto_276
    if-ge v4, p2, :cond_28c

    aget p3, p1, v4

    invoke-static {p3}, Landroid/graphics/ImageFormat;->getBitsPerPixel(I)I

    move-result p4

    if-lez p4, :cond_289

    iget-object p4, p0, Lw6/d;->j:Ljava/util/Set;

    invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object p3

    invoke-interface {p4, p3}, Ljava/util/Set;->add(Ljava/lang/Object;)Z

    :cond_289
    add-int/lit8 v4, v4, 0x1

    goto :goto_276

    :cond_28c
    return-void

    :cond_28d
    new-instance p1, Ljava/lang/IllegalStateException;

    new-instance p2, Ljava/lang/StringBuilder;

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

    const-string p3, "Picture format not supported: "

    invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p2, p4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object p2

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

    throw p1

    :cond_2a4
    new-instance p1, Ljava/lang/RuntimeException;

    const-string p2, "StreamConfigurationMap is null. Should not happen."

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

    goto :goto_2ad

    :goto_2ac
    throw p1

    :goto_2ad
    goto :goto_2ac
.end method