d$d.smali

.class final Lcom/imo/android/imoim/mic/a/d$d;
.super Ljava/lang/Object;
.source "SourceFile"

# interfaces
.implements Ljava/lang/Runnable;


# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
    value = Lcom/imo/android/imoim/mic/a/d;-><init>()V
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x18
    name = null
.end annotation


# instance fields
.field final synthetic a:Lcom/imo/android/imoim/mic/a/d;


# direct methods
.method constructor <init>(Lcom/imo/android/imoim/mic/a/d;)V
    .registers 2

    iput-object p1, p0, Lcom/imo/android/imoim/mic/a/d$d;->a:Lcom/imo/android/imoim/mic/a/d;

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

    return-void
.end method


# virtual methods
.method public final run()V
    .registers 13

    .line 182
    iget-object v0, p0, Lcom/imo/android/imoim/mic/a/d$d;->a:Lcom/imo/android/imoim/mic/a/d;

    invoke-static {v0}, Lcom/imo/android/imoim/mic/a/d;->a(Lcom/imo/android/imoim/mic/a/d;)Z

    move-result v0

    const/4 v1, -0x1

    const/4 v2, 0x1

    const-string v3, "IMOBasicAudioRecorder"

    if-nez v0, :cond_1f

    const-string v0, "record -> init AudioRecord failed"

    .line 1079
    invoke-static {v3, v0, v2}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V

    .line 184
    iget-object v0, p0, Lcom/imo/android/imoim/mic/a/d$d;->a:Lcom/imo/android/imoim/mic/a/d;

    invoke-static {v0}, Lcom/imo/android/imoim/mic/a/d;->b(Lcom/imo/android/imoim/mic/a/d;)Lcom/imo/android/imoim/mic/a/f;

    move-result-object v0

    if-eqz v0, :cond_1e

    const-string v2, "init AudioRecord failed"

    invoke-interface {v0, v1, v2}, Lcom/imo/android/imoim/mic/a/f;->onError(ILjava/lang/String;)V

    :cond_1e
    return-void

    .line 188
    :cond_1f
    iget-object v0, p0, Lcom/imo/android/imoim/mic/a/d$d;->a:Lcom/imo/android/imoim/mic/a/d;

    invoke-static {v0}, Lcom/imo/android/imoim/mic/a/d;->c(Lcom/imo/android/imoim/mic/a/d;)Z

    move-result v0

    const/4 v4, -0x2

    if-nez v0, :cond_40

    const-string v0, "record -> init Encoder failed"

    .line 2079
    invoke-static {v3, v0, v2}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V

    .line 190
    iget-object v0, p0, Lcom/imo/android/imoim/mic/a/d$d;->a:Lcom/imo/android/imoim/mic/a/d;

    invoke-static {v0}, Lcom/imo/android/imoim/mic/a/d;->d(Lcom/imo/android/imoim/mic/a/d;)V

    .line 191
    iget-object v0, p0, Lcom/imo/android/imoim/mic/a/d$d;->a:Lcom/imo/android/imoim/mic/a/d;

    invoke-static {v0}, Lcom/imo/android/imoim/mic/a/d;->b(Lcom/imo/android/imoim/mic/a/d;)Lcom/imo/android/imoim/mic/a/f;

    move-result-object v0

    if-eqz v0, :cond_3f

    const-string v1, "init Encoder failed"

    invoke-interface {v0, v4, v1}, Lcom/imo/android/imoim/mic/a/f;->onError(ILjava/lang/String;)V

    :cond_3f
    return-void

    .line 197
    :cond_40
    iget-object v0, p0, Lcom/imo/android/imoim/mic/a/d$d;->a:Lcom/imo/android/imoim/mic/a/d;

    invoke-static {v0}, Lcom/imo/android/imoim/mic/a/d;->e(Lcom/imo/android/imoim/mic/a/d;)Landroid/media/AudioRecord;

    move-result-object v0

    if-eqz v0, :cond_d6

    .line 199
    invoke-virtual {v0}, Landroid/media/AudioRecord;->startRecording()V

    .line 200
    invoke-virtual {v0}, Landroid/media/AudioRecord;->getRecordingState()I

    move-result v5

    const/4 v6, -0x3

    const/4 v7, 0x3

    if-eq v5, v7, :cond_6a

    const-string v5, "startRecording failed"

    .line 3075
    invoke-static {v3, v5}, Lcom/imo/android/imoim/util/bt;->e(Ljava/lang/String;Ljava/lang/String;)V

    .line 202
    iget-object v5, p0, Lcom/imo/android/imoim/mic/a/d$d;->a:Lcom/imo/android/imoim/mic/a/d;

    invoke-static {v5}, Lcom/imo/android/imoim/mic/a/d;->b(Lcom/imo/android/imoim/mic/a/d;)Lcom/imo/android/imoim/mic/a/f;

    move-result-object v5

    if-eqz v5, :cond_65

    const-string v8, "AudioRecord start failed"

    invoke-interface {v5, v6, v8}, Lcom/imo/android/imoim/mic/a/f;->onError(ILjava/lang/String;)V

    .line 203
    :cond_65
    iget-object v5, p0, Lcom/imo/android/imoim/mic/a/d$d;->a:Lcom/imo/android/imoim/mic/a/d;

    invoke-static {v5}, Lcom/imo/android/imoim/mic/a/d;->g(Lcom/imo/android/imoim/mic/a/d;)V

    :cond_6a
    const/4 v5, 0x0

    const/4 v8, 0x0

    .line 206
    :cond_6c
    iget-object v9, p0, Lcom/imo/android/imoim/mic/a/d$d;->a:Lcom/imo/android/imoim/mic/a/d;

    invoke-static {v9}, Lcom/imo/android/imoim/mic/a/d;->f(Lcom/imo/android/imoim/mic/a/d;)Z

    move-result v9

    if-eqz v9, :cond_c8

    .line 207
    iget-object v9, p0, Lcom/imo/android/imoim/mic/a/d$d;->a:Lcom/imo/android/imoim/mic/a/d;

    invoke-static {v9}, Lcom/imo/android/imoim/mic/a/d;->h(Lcom/imo/android/imoim/mic/a/d;)[B

    move-result-object v9

    iget-object v10, p0, Lcom/imo/android/imoim/mic/a/d$d;->a:Lcom/imo/android/imoim/mic/a/d;

    invoke-static {v10}, Lcom/imo/android/imoim/mic/a/d;->h(Lcom/imo/android/imoim/mic/a/d;)[B

    move-result-object v10

    array-length v10, v10

    invoke-virtual {v0, v9, v5, v10}, Landroid/media/AudioRecord;->read([BII)I

    move-result v9

    if-eq v9, v4, :cond_aa

    if-eq v9, v1, :cond_aa

    if-eq v9, v6, :cond_aa

    const/4 v10, -0x6

    if-ne v9, v10, :cond_8f

    goto :goto_aa

    .line 215
    :cond_8f
    iget-object v10, p0, Lcom/imo/android/imoim/mic/a/d$d;->a:Lcom/imo/android/imoim/mic/a/d;

    invoke-static {v10}, Lcom/imo/android/imoim/mic/a/d;->h(Lcom/imo/android/imoim/mic/a/d;)[B

    move-result-object v11

    invoke-static {v10, v11, v9}, Lcom/imo/android/imoim/mic/a/d;->a(Lcom/imo/android/imoim/mic/a/d;[BI)V

    add-int/2addr v8, v9

    .line 218
    iget-object v9, p0, Lcom/imo/android/imoim/mic/a/d$d;->a:Lcom/imo/android/imoim/mic/a/d;

    invoke-static {v9}, Lcom/imo/android/imoim/mic/a/d;->i(Lcom/imo/android/imoim/mic/a/d;)I

    move-result v9

    if-le v8, v9, :cond_6c

    const-string v1, "recording has reached the maximum limit"

    .line 4071
    invoke-static {v3, v1}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V

    .line 220
    invoke-virtual {v0}, Landroid/media/AudioRecord;->stop()V

    goto :goto_c8

    .line 210
    :cond_aa
    :goto_aa
    invoke-static {v9}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;

    move-result-object v1

    const-string v4, "read error:"

    invoke-virtual {v4, v1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v1

    .line 3079
    invoke-static {v3, v1, v2}, Lcom/imo/android/imoim/util/bt;->a(Ljava/lang/String;Ljava/lang/String;Z)V

    .line 211
    invoke-virtual {v0}, Landroid/media/AudioRecord;->stop()V

    .line 212
    iget-object v1, p0, Lcom/imo/android/imoim/mic/a/d$d;->a:Lcom/imo/android/imoim/mic/a/d;

    invoke-static {v1}, Lcom/imo/android/imoim/mic/a/d;->b(Lcom/imo/android/imoim/mic/a/d;)Lcom/imo/android/imoim/mic/a/f;

    move-result-object v1

    if-eqz v1, :cond_c8

    const/4 v2, -0x4

    const-string v4, "AudioRecord read failed"

    invoke-interface {v1, v2, v4}, Lcom/imo/android/imoim/mic/a/f;->onError(ILjava/lang/String;)V

    .line 226
    :cond_c8
    :goto_c8
    invoke-virtual {v0}, Landroid/media/AudioRecord;->getRecordingState()I

    move-result v1

    if-ne v1, v7, :cond_d6

    const-string v1, "stop audio record"

    .line 5071
    invoke-static {v3, v1}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V

    .line 228
    invoke-virtual {v0}, Landroid/media/AudioRecord;->stop()V

    .line 232
    :cond_d6
    iget-object v0, p0, Lcom/imo/android/imoim/mic/a/d$d;->a:Lcom/imo/android/imoim/mic/a/d;

    invoke-static {v0}, Lcom/imo/android/imoim/mic/a/d;->d(Lcom/imo/android/imoim/mic/a/d;)V

    .line 233
    iget-object v0, p0, Lcom/imo/android/imoim/mic/a/d$d;->a:Lcom/imo/android/imoim/mic/a/d;

    invoke-static {v0}, Lcom/imo/android/imoim/mic/a/d;->j(Lcom/imo/android/imoim/mic/a/d;)V

    return-void
.end method