CameraPreview2.smali
.class public Lcom/imo/android/imoim/camera/CameraPreview2;
.super Landroid/view/TextureView;
.source "SourceFile"
# interfaces
.implements Landroid/view/TextureView$SurfaceTextureListener;
# instance fields
.field public a:I
.field b:Landroid/app/Activity;
.field private c:Landroid/hardware/Camera;
# direct methods
.method public constructor <init>(Landroid/app/Activity;Landroid/hardware/Camera;)V
.registers 3
.line 30
invoke-direct {p0, p1}, Landroid/view/TextureView;-><init>(Landroid/content/Context;)V
.line 31
iput-object p1, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->b:Landroid/app/Activity;
.line 32
iput-object p2, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->c:Landroid/hardware/Camera;
.line 33
invoke-virtual {p0, p0}, Lcom/imo/android/imoim/camera/CameraPreview2;->setSurfaceTextureListener(Landroid/view/TextureView$SurfaceTextureListener;)V
return-void
.end method
.method private a()V
.registers 16
.line 106
iget-object v0, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->c:Landroid/hardware/Camera;
invoke-virtual {v0}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;
move-result-object v0
.line 107
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getPictureSize()Landroid/hardware/Camera$Size;
move-result-object v1
.line 108
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "default picsize wxh: "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget v3, v1, Landroid/hardware/Camera$Size;->width:I
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, " "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, v1, Landroid/hardware/Camera$Size;->height:I
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
const-string v2, "CameraPreview"
.line 10071
invoke-static {v2, v1}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 109
invoke-virtual {v0}, Landroid/hardware/Camera$Parameters;->getSupportedPictureSizes()Ljava/util/List;
move-result-object v1
const/4 v4, 0x0
.line 110
invoke-interface {v1, v4}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroid/hardware/Camera$Size;
.line 112
invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
const v5, 0xf423f
:cond_3b
:goto_3b
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v6
if-eqz v6, :cond_a0
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v6
check-cast v6, Landroid/hardware/Camera$Size;
.line 113
iget v7, v6, Landroid/hardware/Camera$Size;->width:I
iget v8, v6, Landroid/hardware/Camera$Size;->height:I
invoke-static {v7, v8}, Ljava/lang/Math;->max(II)I
move-result v7
const/16 v8, 0x400
if-lt v7, v8, :cond_3b
.line 116
iget v9, v6, Landroid/hardware/Camera$Size;->width:I
int-to-double v9, v9
iget v11, v6, Landroid/hardware/Camera$Size;->height:I
int-to-double v11, v11
invoke-static {v9, v10}, Ljava/lang/Double;->isNaN(D)Z
invoke-static {v11, v12}, Ljava/lang/Double;->isNaN(D)Z
div-double/2addr v9, v11
sub-int/2addr v8, v7
.line 117
invoke-static {v8}, Ljava/lang/Math;->abs(I)I
move-result v7
const-wide v11, 0x40c3880000000000L # 10000.0
const-wide v13, 0x3ffc71c71c71c71cL # 1.7777777777777777
sub-double/2addr v9, v13
invoke-static {v9, v10}, Ljava/lang/Math;->abs(D)D
move-result-wide v8
mul-double v8, v8, v11
double-to-int v8, v8
add-int/2addr v7, v8
if-gt v7, v5, :cond_7c
move-object v4, v6
move v5, v7
.line 122
:cond_7c
new-instance v8, Ljava/lang/StringBuilder;
const-string v9, "Available resolution: "
invoke-direct {v8, v9}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget v9, v6, Landroid/hardware/Camera$Size;->width:I
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v8, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v6, v6, Landroid/hardware/Camera$Size;->height:I
invoke-virtual {v8, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v6, " newDiff: "
invoke-virtual {v8, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
.line 11071
invoke-static {v2, v6}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_3b
.line 124
:cond_a0
new-instance v1, Ljava/lang/StringBuilder;
const-string v5, "chosen size "
invoke-direct {v1, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget v5, v4, Landroid/hardware/Camera$Size;->width:I
invoke-virtual {v1, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v3, v4, Landroid/hardware/Camera$Size;->height:I
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
.line 12071
invoke-static {v2, v1}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 125
iget v1, v4, Landroid/hardware/Camera$Size;->width:I
iget v2, v4, Landroid/hardware/Camera$Size;->height:I
invoke-virtual {v0, v1, v2}, Landroid/hardware/Camera$Parameters;->setPictureSize(II)V
.line 126
iget-object v1, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->c:Landroid/hardware/Camera;
invoke-virtual {v1, v0}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
return-void
.end method
# virtual methods
.method public onSurfaceTextureAvailable(Landroid/graphics/SurfaceTexture;II)V
.registers 5
const-string p2, "CameraPreview"
const-string p3, "surfaceCreate "
.line 13071
invoke-static {p2, p3}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 171
:try_start_7
iget-object p3, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->c:Landroid/hardware/Camera;
invoke-virtual {p3, p1}, Landroid/hardware/Camera;->setPreviewTexture(Landroid/graphics/SurfaceTexture;)V
.line 172
iget-object p1, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->c:Landroid/hardware/Camera;
invoke-virtual {p1}, Landroid/hardware/Camera;->startPreview()V
:try_end_11
.catch Ljava/lang/Exception; {:try_start_7 .. :try_end_11} :catch_12
return-void
:catch_12
move-exception p1
.line 174
new-instance p3, Ljava/lang/StringBuilder;
const-string v0, "Error setting camera preview: "
invoke-direct {p3, v0}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object p1
invoke-virtual {p3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const/4 p3, 0x1
.line 13079
invoke-static {p2, p1, p3}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V
return-void
.end method
.method public onSurfaceTextureDestroyed(Landroid/graphics/SurfaceTexture;)Z
.registers 2
const/4 p1, 0x0
return p1
.end method
.method public onSurfaceTextureSizeChanged(Landroid/graphics/SurfaceTexture;II)V
.registers 4
return-void
.end method
.method public onSurfaceTextureUpdated(Landroid/graphics/SurfaceTexture;)V
.registers 2
return-void
.end method
.method public setCamera(Landroid/hardware/Camera;)V
.registers 10
const-string v0, "continuous-picture"
const-string v1, " "
.line 40
iput-object p1, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->c:Landroid/hardware/Camera;
.line 1051
new-instance p1, Ljava/lang/StringBuilder;
const-string v2, "surfaceChanged "
invoke-direct {p1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
const/4 v2, 0x0
invoke-virtual {p1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
const-string v2, "CameraPreview"
.line 2071
invoke-static {v2, p1}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 1055
invoke-virtual {p0}, Lcom/imo/android/imoim/camera/CameraPreview2;->getSurfaceTexture()Landroid/graphics/SurfaceTexture;
move-result-object p1
if-eqz p1, :cond_131
.line 1064
:try_start_20
iget-object v3, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->c:Landroid/hardware/Camera;
invoke-virtual {v3}, Landroid/hardware/Camera;->stopPreview()V
:try_end_25
.catch Ljava/lang/Exception; {:try_start_20 .. :try_end_25} :catch_25
.line 1072
:catch_25
:try_start_25
new-instance v3, Landroid/hardware/Camera$CameraInfo;
invoke-direct {v3}, Landroid/hardware/Camera$CameraInfo;-><init>()V
.line 1073
iget-object v4, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->b:Landroid/app/Activity;
check-cast v4, Lcom/imo/android/imoim/camera/CameraActivity2;
.line 2596
iget-object v4, v4, Lcom/imo/android/imoim/camera/CameraActivity2;->i:Lcom/imo/android/imoim/camera/g;
.line 3200
iget v4, v4, Lcom/imo/android/imoim/camera/g;->d:I
.line 1073
invoke-static {v4, v3}, Landroid/hardware/Camera;->getCameraInfo(ILandroid/hardware/Camera$CameraInfo;)V
.line 4130
iget-object v4, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->b:Landroid/app/Activity;
const-string v5, "window"
.line 4131
invoke-virtual {v4, v5}, Landroid/app/Activity;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v4
check-cast v4, Landroid/view/WindowManager;
.line 4132
invoke-interface {v4}, Landroid/view/WindowManager;->getDefaultDisplay()Landroid/view/Display;
move-result-object v4
invoke-virtual {v4}, Landroid/view/Display;->getRotation()I
move-result v4
const/4 v5, 0x1
const/4 v6, 0x0
if-eqz v4, :cond_5c
if-eq v4, v5, :cond_5a
const/4 v7, 0x2
if-eq v4, v7, :cond_57
const/4 v7, 0x3
if-eq v4, v7, :cond_54
goto :goto_5c
:cond_54
const/16 v6, 0x10e
goto :goto_5c
:cond_57
const/16 v6, 0xb4
goto :goto_5c
:cond_5a
const/16 v6, 0x5a
.line 4156
:cond_5c
:goto_5c
iget v4, v3, Landroid/hardware/Camera$CameraInfo;->facing:I
if-ne v4, v5, :cond_6a
.line 4157
iget v3, v3, Landroid/hardware/Camera$CameraInfo;->orientation:I
add-int/2addr v3, v6
rem-int/lit16 v3, v3, 0x168
rsub-int v3, v3, 0x168
.line 4158
rem-int/lit16 v3, v3, 0x168
goto :goto_71
.line 4160
:cond_6a
iget v3, v3, Landroid/hardware/Camera$CameraInfo;->orientation:I
sub-int/2addr v3, v6
add-int/lit16 v3, v3, 0x168
rem-int/lit16 v3, v3, 0x168
.line 1075
:goto_71
iput v3, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->a:I
.line 1076
new-instance v3, Ljava/lang/StringBuilder;
const-string v4, "orientation "
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget v4, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->a:I
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
.line 5071
invoke-static {v2, v3}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 1077
iget-object v3, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->c:Landroid/hardware/Camera;
iget v4, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->a:I
invoke-virtual {v3, v4}, Landroid/hardware/Camera;->setDisplayOrientation(I)V
.line 1078
iget-object v3, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->c:Landroid/hardware/Camera;
invoke-virtual {v3}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;
move-result-object v3
iget v4, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->a:I
invoke-virtual {v3, v4}, Landroid/hardware/Camera$Parameters;->setRotation(I)V
.line 1081
iget-object v3, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->c:Landroid/hardware/Camera;
invoke-virtual {v3}, Landroid/hardware/Camera;->getParameters()Landroid/hardware/Camera$Parameters;
move-result-object v3
.line 1082
invoke-virtual {v3}, Landroid/hardware/Camera$Parameters;->getPreviewSize()Landroid/hardware/Camera$Size;
move-result-object v4
.line 1083
invoke-static {}, Lcom/imo/android/imoim/util/ei;->p()Landroid/util/Pair;
move-result-object v5
.line 1084
new-instance v6, Ljava/lang/StringBuilder;
const-string v7, "params wxh: "
invoke-direct {v6, v7}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget v7, v4, Landroid/hardware/Camera$Size;->width:I
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v4, v4, Landroid/hardware/Camera$Size;->height:I
invoke-virtual {v6, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
.line 6071
invoke-static {v2, v4}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 1085
new-instance v4, Ljava/lang/StringBuilder;
const-string v6, "screen wxh: "
invoke-direct {v4, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v6, v5, Landroid/util/Pair;->first:Ljava/lang/Object;
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v5, v5, Landroid/util/Pair;->second:Ljava/lang/Object;
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
.line 7071
invoke-static {v2, v4}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 1086
new-instance v4, Ljava/lang/StringBuilder;
const-string v5, "view wxh: "
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p0}, Lcom/imo/android/imoim/camera/CameraPreview2;->getWidth()I
move-result v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lcom/imo/android/imoim/camera/CameraPreview2;->getHeight()I
move-result v1
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
.line 8071
invoke-static {v2, v1}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V
.line 1088
invoke-virtual {v3}, Landroid/hardware/Camera$Parameters;->getSupportedFocusModes()Ljava/util/List;
move-result-object v1
.line 1089
invoke-interface {v1, v0}, Ljava/util/List;->contains(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_10d
.line 1090
invoke-virtual {v3, v0}, Landroid/hardware/Camera$Parameters;->setFocusMode(Ljava/lang/String;)V
.line 1091
iget-object v0, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->c:Landroid/hardware/Camera;
invoke-virtual {v0, v3}, Landroid/hardware/Camera;->setParameters(Landroid/hardware/Camera$Parameters;)V
.line 1094
:cond_10d
invoke-direct {p0}, Lcom/imo/android/imoim/camera/CameraPreview2;->a()V
.line 1097
iget-object v0, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->c:Landroid/hardware/Camera;
invoke-virtual {v0, p1}, Landroid/hardware/Camera;->setPreviewTexture(Landroid/graphics/SurfaceTexture;)V
.line 1098
iget-object p1, p0, Lcom/imo/android/imoim/camera/CameraPreview2;->c:Landroid/hardware/Camera;
invoke-virtual {p1}, Landroid/hardware/Camera;->startPreview()V
:try_end_11a
.catch Ljava/lang/Exception; {:try_start_25 .. :try_end_11a} :catch_11b
return-void
:catch_11b
move-exception p1
.line 1101
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "Error starting camera preview: "
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
.line 9071
invoke-static {v2, p1}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V
:cond_131
return-void
.end method