AudioMgr.smali

.class public Lcom/FF/voiceengine/AudioMgr;
.super Ljava/lang/Object;
.source "SourceFile"


# annotations
.annotation build Landroid/annotation/SuppressLint;
    value = {
        "InlinedApi"
    }
.end annotation

.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/FF/voiceengine/AudioMgr$PermissionCheckThread;
    }
.end annotation


# static fields
.field private static NET_CHANGE_ACTION:Ljava/lang/String; = null

.field private static final audioPermissionRequestCode:I = 0x1

.field private static displayListener:Landroid/hardware/display/DisplayManager$DisplayListener;

.field private static displayManager:Landroid/hardware/display/DisplayManager;

.field private static isCheckedPermission:Z

.field private static isStopedByExternalNotify:Z

.field private static mAudioManager:Landroid/media/AudioManager;

.field private static mContext:Landroid/content/Context;

.field private static mHasChangedBoolean:Ljava/lang/Boolean;

.field private static mHasHeadSet:Z

.field private static mIsBluetoothOn:Z

.field private static mIsBluetoothScoOn:Ljava/lang/Boolean;

.field private static mIsHDMIDisplay:Ljava/lang/Boolean;

.field private static mIsOutputToSpeaker:Ljava/lang/Boolean;

.field private static mMode:I

.field private static mPermissionCheckThread:Lcom/FF/voiceengine/AudioMgr$PermissionCheckThread;

.field private static mReceiver:Landroid/content/BroadcastReceiver;

.field private static mSpeakerOnBoolean:Ljava/lang/Boolean;

.field private static requestPermissionCount:I


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

    sget-object v0, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->mSpeakerOnBoolean:Ljava/lang/Boolean;

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->mIsOutputToSpeaker:Ljava/lang/Boolean;

    const/4 v1, -0x1

    sput v1, Lcom/FF/voiceengine/AudioMgr;->mMode:I

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->mHasChangedBoolean:Ljava/lang/Boolean;

    const-string v1, "android.net.conn.CONNECTIVITY_CHANGE"

    sput-object v1, Lcom/FF/voiceengine/AudioMgr;->NET_CHANGE_ACTION:Ljava/lang/String;

    const/4 v1, 0x0

    sput-object v1, Lcom/FF/voiceengine/AudioMgr;->mReceiver:Landroid/content/BroadcastReceiver;

    sput-object v1, Lcom/FF/voiceengine/AudioMgr;->displayManager:Landroid/hardware/display/DisplayManager;

    sput-object v1, Lcom/FF/voiceengine/AudioMgr;->displayListener:Landroid/hardware/display/DisplayManager$DisplayListener;

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->mIsHDMIDisplay:Ljava/lang/Boolean;

    sput-object v1, Lcom/FF/voiceengine/AudioMgr;->mContext:Landroid/content/Context;

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->mIsBluetoothScoOn:Ljava/lang/Boolean;

    const/4 v0, 0x0

    sput-boolean v0, Lcom/FF/voiceengine/AudioMgr;->mHasHeadSet:Z

    sput-boolean v0, Lcom/FF/voiceengine/AudioMgr;->mIsBluetoothOn:Z

    sput v0, Lcom/FF/voiceengine/AudioMgr;->requestPermissionCount:I

    sput-boolean v0, Lcom/FF/voiceengine/AudioMgr;->isStopedByExternalNotify:Z

    sput-boolean v0, Lcom/FF/voiceengine/AudioMgr;->isCheckedPermission:Z

    sput-object v1, Lcom/FF/voiceengine/AudioMgr;->mPermissionCheckThread:Lcom/FF/voiceengine/AudioMgr$PermissionCheckThread;

    return-void
.end method

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

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

    return-void
.end method

.method public static OnHeadsetChange(Landroid/media/AudioManager;Ljava/lang/Boolean;Ljava/lang/Boolean;)V
    .registers 9

    invoke-virtual {p0}, Landroid/media/AudioManager;->isBluetoothScoOn()Z

    move-result v0

    invoke-virtual {p0}, Landroid/media/AudioManager;->isBluetoothA2dpOn()Z

    move-result v1

    new-instance v2, Ljava/lang/StringBuilder;

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

    const-string v3, "OnHeadsetChange hasHeadSet:"

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

    invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    const-string v3, ", isBluetoothOn:"

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

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

    const-string v3, ", isBluetoothScoOn:"

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

    invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    const-string v0, ",  isBluetoothA2dpOn:"

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

    invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

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

    move-result-object v0

    const-string v2, "AudioMgr"

    invoke-static {v2, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

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

    move-result v0

    const-string v3, "hasHeadSet:"

    const-string v4, "setSpeakerphoneOn "

    const/4 v5, 0x0

    if-eqz v0, :cond_7f

    invoke-virtual {p0, v5}, Landroid/media/AudioManager;->setSpeakerphoneOn(Z)V

    new-instance v0, Ljava/lang/StringBuilder;

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

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

    sget-object v1, Lcom/FF/voiceengine/AudioMgr;->mSpeakerOnBoolean:Ljava/lang/Boolean;

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    const-string v1, " 4"

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

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

    move-result-object v0

    invoke-static {v2, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    invoke-virtual {p0, v5}, Landroid/media/AudioManager;->setBluetoothScoOn(Z)V

    const/4 p0, 0x1

    invoke-static {p0}, Lcom/FF/voiceengine/AppPara;->onHeadSetPlugin(I)V

    new-instance p0, Ljava/lang/StringBuilder;

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

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

    invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    const-string p1, " isBluetoothOn:"

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

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

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

    move-result-object p0

    invoke-static {v2, p0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    goto :goto_de

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

    move-result v0

    if-eqz v0, :cond_95

    new-instance v0, Lcom/FF/voiceengine/AudioMgr$3;

    invoke-direct {v0, p0, p1, p2}, Lcom/FF/voiceengine/AudioMgr$3;-><init>(Landroid/media/AudioManager;Ljava/lang/Boolean;Ljava/lang/Boolean;)V

    new-instance p0, Ljava/util/Timer;

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

    const-wide/16 p1, 0xc8

    invoke-virtual {p0, v0, p1, p2}, Ljava/util/Timer;->schedule(Ljava/util/TimerTask;J)V

    goto :goto_de

    :cond_95
    invoke-virtual {p0}, Landroid/media/AudioManager;->stopBluetoothSco()V

    invoke-virtual {p0, v5}, Landroid/media/AudioManager;->setBluetoothScoOn(Z)V

    sget-object p2, Lcom/FF/voiceengine/AudioMgr;->mIsOutputToSpeaker:Ljava/lang/Boolean;

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

    move-result p2

    invoke-virtual {p0, p2}, Landroid/media/AudioManager;->setSpeakerphoneOn(Z)V

    new-instance p0, Ljava/lang/StringBuilder;

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

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

    sget-object p2, Lcom/FF/voiceengine/AudioMgr;->mIsOutputToSpeaker:Ljava/lang/Boolean;

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

    const-string p2, " 6"

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

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

    move-result-object p0

    invoke-static {v2, p0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    invoke-static {v5}, Lcom/FF/voiceengine/AppPara;->onHeadSetPlugin(I)V

    new-instance p0, Ljava/lang/StringBuilder;

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

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

    invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    const-string p1, " isBluetoothA2dpOn:"

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

    invoke-virtual {p0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    const-string p1, " output2Speaker:"

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

    sget-object p1, Lcom/FF/voiceengine/AudioMgr;->mIsOutputToSpeaker:Ljava/lang/Boolean;

    invoke-virtual {p0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    goto :goto_77

    :goto_de
    return-void
.end method

.method public static OnReqeustPermissionResult(I[Ljava/lang/String;[I)V
    .registers 5
    .param p1    # [Ljava/lang/String;
        .annotation build Landroidx/annotation/NonNull;
        .end annotation
    .end param
    .param p2    # [I
        .annotation build Landroidx/annotation/NonNull;
        .end annotation
    .end param

    array-length p0, p2

    if-lez p0, :cond_2e

    const/4 p0, 0x0

    :goto_4
    array-length v0, p2

    if-ge p0, v0, :cond_2e

    aget-object v0, p1, p0

    const-string v1, "android.permission.RECORD_AUDIO"

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    if-eqz v0, :cond_2b

    const/4 v0, 0x1

    sput-boolean v0, Lcom/FF/voiceengine/AudioMgr;->isStopedByExternalNotify:Z

    invoke-static {}, Lcom/FF/voiceengine/AudioMgr;->stopRequestPermissionForApi23()V

    aget v0, p2, p0

    const-string v1, "AudioMgr"

    if-nez v0, :cond_20

    const-string v0, "OnReqeustPermissionResult Already got record permission"

    goto :goto_22

    :cond_20
    const-string v0, "OnReqeustPermissionResult user not granted permission"

    :goto_22
    invoke-static {v1, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    invoke-static {}, Lcom/FF/voiceengine/AudioMgr;->stopRequestPermissionForApi23()V

    invoke-static {}, Lcom/FF/voiceengine/NativeEngine;->resetMicrophone()V

    :cond_2b
    add-int/lit8 p0, p0, 0x1

    goto :goto_4

    :cond_2e
    return-void
.end method

.method static synthetic access$000()Landroid/content/Context;
    .registers 1

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mContext:Landroid/content/Context;

    return-object v0
.end method

.method static synthetic access$100()Ljava/lang/String;
    .registers 1

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->NET_CHANGE_ACTION:Ljava/lang/String;

    return-object v0
.end method

.method static synthetic access$200()Z
    .registers 1

    sget-boolean v0, Lcom/FF/voiceengine/AudioMgr;->mHasHeadSet:Z

    return v0
.end method

.method static synthetic access$202(Z)Z
    .registers 1

    sput-boolean p0, Lcom/FF/voiceengine/AudioMgr;->mHasHeadSet:Z

    return p0
.end method

.method static synthetic access$300()Z
    .registers 1

    sget-boolean v0, Lcom/FF/voiceengine/AudioMgr;->mIsBluetoothOn:Z

    return v0
.end method

.method static synthetic access$302(Z)Z
    .registers 1

    sput-boolean p0, Lcom/FF/voiceengine/AudioMgr;->mIsBluetoothOn:Z

    return p0
.end method

.method static synthetic access$400()Landroid/hardware/display/DisplayManager;
    .registers 1

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->displayManager:Landroid/hardware/display/DisplayManager;

    return-object v0
.end method

.method static synthetic access$500()Ljava/lang/Boolean;
    .registers 1

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mIsHDMIDisplay:Ljava/lang/Boolean;

    return-object v0
.end method

.method static synthetic access$600()I
    .registers 1

    sget v0, Lcom/FF/voiceengine/AudioMgr;->requestPermissionCount:I

    return v0
.end method

.method static synthetic access$602(I)I
    .registers 1

    sput p0, Lcom/FF/voiceengine/AudioMgr;->requestPermissionCount:I

    return p0
.end method

.method static synthetic access$608()I
    .registers 2

    sget v0, Lcom/FF/voiceengine/AudioMgr;->requestPermissionCount:I

    add-int/lit8 v1, v0, 0x1

    sput v1, Lcom/FF/voiceengine/AudioMgr;->requestPermissionCount:I

    return v0
.end method

.method static synthetic access$800()I
    .registers 1

    sget v0, Lcom/FF/voiceengine/AudioMgr;->mMode:I

    return v0
.end method

.method public static hasChangedCoutum()Z
    .registers 1

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mHasChangedBoolean:Ljava/lang/Boolean;

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

    move-result v0

    return v0
.end method

.method public static hdmiDisplayCheck()V
    .registers 3

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mContext:Landroid/content/Context;

    if-eqz v0, :cond_2f

    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v1, 0x15

    if-lt v0, v1, :cond_2f

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mContext:Landroid/content/Context;

    const-string v1, "display"

    invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Landroid/hardware/display/DisplayManager;

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->displayManager:Landroid/hardware/display/DisplayManager;

    new-instance v0, Lcom/FF/voiceengine/AudioMgr$2;

    invoke-direct {v0}, Lcom/FF/voiceengine/AudioMgr$2;-><init>()V

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->displayListener:Landroid/hardware/display/DisplayManager$DisplayListener;

    :try_start_1d
    sget-object v1, Lcom/FF/voiceengine/AudioMgr;->displayManager:Landroid/hardware/display/DisplayManager;

    const/4 v2, 0x0

    invoke-virtual {v1, v0, v2}, Landroid/hardware/display/DisplayManager;->registerDisplayListener(Landroid/hardware/display/DisplayManager$DisplayListener;Landroid/os/Handler;)V
    :try_end_23
    .catchall {:try_start_1d .. :try_end_23} :catchall_24

    goto :goto_2f

    :catchall_24
    move-exception v0

    const-string v1, "AudioMgr"

    const-string v2, "registerDisplayListener fail:"

    invoke-static {v1, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V

    :cond_2f
    :goto_2f
    return-void
.end method

.method public static init(Landroid/content/Context;)V
    .registers 3

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mContext:Landroid/content/Context;

    if-eqz v0, :cond_b

    instance-of v0, p0, Landroid/app/Activity;

    if-eqz v0, :cond_a

    sput-object p0, Lcom/FF/voiceengine/AudioMgr;->mContext:Landroid/content/Context;

    :cond_a
    return-void

    :cond_b
    sput-object p0, Lcom/FF/voiceengine/AudioMgr;->mContext:Landroid/content/Context;

    const-string v0, "audio"

    invoke-virtual {p0, v0}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Landroid/media/AudioManager;

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isSpeakerphoneOn()Z

    move-result v0

    invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v0

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->mIsOutputToSpeaker:Ljava/lang/Boolean;

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mContext:Landroid/content/Context;

    invoke-static {v0}, Lcom/FF/voiceengine/NetUtil;->getNetworkState(Landroid/content/Context;)I

    move-result v0

    invoke-static {v0}, Lcom/FF/voiceengine/AppPara;->onNetWorkChange(I)V

    new-instance v0, Lcom/FF/voiceengine/AudioMgr$1;

    invoke-direct {v0}, Lcom/FF/voiceengine/AudioMgr$1;-><init>()V

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->mReceiver:Landroid/content/BroadcastReceiver;

    new-instance v0, Landroid/content/IntentFilter;

    invoke-direct {v0}, Landroid/content/IntentFilter;-><init>()V

    const-string v1, "android.net.conn.CONNECTIVITY_CHANGE"

    invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V

    const-string v1, "android.intent.action.HEADSET_PLUG"

    invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V

    const-string v1, "android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED"

    invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V

    const-string v1, "android.bluetooth.headset.profile.action.AUDIO_STATE_CHANGED"

    invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V

    const-string v1, "android.intent.action.PHONE_STATE"

    invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V

    :try_start_4f
    sget-object v1, Lcom/FF/voiceengine/AudioMgr;->mReceiver:Landroid/content/BroadcastReceiver;

    invoke-virtual {p0, v1, v0}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
    :try_end_54
    .catchall {:try_start_4f .. :try_end_54} :catchall_55

    goto :goto_60

    :catchall_55
    move-exception p0

    const-string v0, "AudioMgr"

    const-string v1, "registerReceiver fail:"

    invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    invoke-virtual {p0}, Ljava/lang/Throwable;->printStackTrace()V

    :goto_60
    invoke-static {}, Lcom/FF/voiceengine/AudioMgr;->hdmiDisplayCheck()V

    return-void
.end method

.method public static initAudioSettings(Z)V
    .registers 6

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isWiredHeadsetOn()Z

    move-result v0

    sget-object v1, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v1}, Landroid/media/AudioManager;->isBluetoothScoOn()Z

    move-result v1

    sget-object v2, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v2}, Landroid/media/AudioManager;->isBluetoothA2dpOn()Z

    move-result v2

    invoke-static {p0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v3

    sput-object v3, Lcom/FF/voiceengine/AudioMgr;->mIsOutputToSpeaker:Ljava/lang/Boolean;

    const-string v3, "AudioMgr"

    if-nez v0, :cond_3b

    if-nez v1, :cond_3b

    if-eqz v2, :cond_21

    goto :goto_3b

    :cond_21
    :try_start_21
    new-instance v0, Ljava/lang/StringBuilder;

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

    const-string v1, "initAudioSetting setSpeakerphoneOn:"

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

    invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

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

    move-result-object v0

    invoke-static {v3, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0, p0}, Landroid/media/AudioManager;->setSpeakerphoneOn(Z)V

    goto :goto_6f

    :cond_3b
    :goto_3b
    sget-object p0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    const/4 v4, 0x0

    invoke-virtual {p0, v4}, Landroid/media/AudioManager;->setSpeakerphoneOn(Z)V

    new-instance p0, Ljava/lang/StringBuilder;

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

    const-string v4, "initAudioSettings setSpeakerphoneOn:false (isWiredHeadsetOn:"

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

    invoke-virtual {p0, v0}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    const-string v0, " isBluetoothScoOn:"

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

    invoke-virtual {p0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    const-string v0, " isBluetoothA2dpOn:"

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

    invoke-virtual {p0, v2}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    const-string v0, ")"

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

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

    move-result-object p0

    invoke-static {v3, p0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
    :try_end_6a
    .catchall {:try_start_21 .. :try_end_6a} :catchall_6b

    goto :goto_6f

    :catchall_6b
    move-exception p0

    invoke-virtual {p0}, Ljava/lang/Throwable;->printStackTrace()V

    :goto_6f
    return-void
.end method

.method public static isBluetoothOn()I
    .registers 2

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    const/4 v1, 0x0

    if-eqz v0, :cond_14

    invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothScoOn()Z

    move-result v0

    if-nez v0, :cond_13

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothA2dpOn()Z

    move-result v0

    if-eqz v0, :cond_14

    :cond_13
    const/4 v1, 0x1

    :cond_14
    return v1
.end method

.method public static isHdmiOutput()Z
    .registers 7

    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v1, 0x15

    const-string v2, "AudioMgr"

    const/4 v3, 0x0

    if-lt v0, v1, :cond_30

    :try_start_9
    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->displayManager:Landroid/hardware/display/DisplayManager;

    invoke-virtual {v0}, Landroid/hardware/display/DisplayManager;->getDisplays()[Landroid/view/Display;

    move-result-object v0

    array-length v1, v0

    const/4 v4, 0x0

    :goto_11
    if-ge v4, v1, :cond_30

    aget-object v5, v0, v4

    invoke-virtual {v5}, Landroid/view/Display;->getName()Ljava/lang/String;

    move-result-object v5

    const-string v6, "HDMI"

    invoke-virtual {v5, v6}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z

    move-result v5
    :try_end_1f
    .catchall {:try_start_9 .. :try_end_1f} :catchall_27

    if-eqz v5, :cond_24

    const/4 v0, 0x1

    const/4 v3, 0x1

    goto :goto_30

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

    goto :goto_11

    :catchall_27
    move-exception v0

    const-string v1, "catch isHdmiOutput fail:"

    invoke-static {v2, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V

    :cond_30
    :goto_30
    invoke-static {v3}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v0

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->mIsHDMIDisplay:Ljava/lang/Boolean;

    new-instance v0, Ljava/lang/StringBuilder;

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

    const-string v1, "mark hdmi:"

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

    invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

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

    move-result-object v0

    invoke-static {v2, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    return v3
.end method

.method public static isWiredHeadsetOn()I
    .registers 1

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    if-eqz v0, :cond_9

    invoke-virtual {v0}, Landroid/media/AudioManager;->isWiredHeadsetOn()Z

    move-result v0

    return v0

    :cond_9
    const/4 v0, 0x0

    return v0
.end method

.method public static restoreOldMode()V
    .registers 4

    const-string v0, "AudioMgr"

    :try_start_2
    sget-object v1, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    if-nez v1, :cond_7

    return-void

    :cond_7
    sget-object v1, Lcom/FF/voiceengine/AudioMgr;->mSpeakerOnBoolean:Ljava/lang/Boolean;

    sput-object v1, Lcom/FF/voiceengine/AudioMgr;->mIsOutputToSpeaker:Ljava/lang/Boolean;

    sget-object v1, Lcom/FF/voiceengine/AudioMgr;->mHasChangedBoolean:Ljava/lang/Boolean;

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

    move-result v1

    if-nez v1, :cond_14

    return-void

    :cond_14
    sget-object v1, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;

    sput-object v1, Lcom/FF/voiceengine/AudioMgr;->mHasChangedBoolean:Ljava/lang/Boolean;

    sget-object v1, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v1}, Landroid/media/AudioManager;->isSpeakerphoneOn()Z

    move-result v1

    invoke-static {v1}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v1

    sput-object v1, Lcom/FF/voiceengine/AudioMgr;->mSpeakerOnBoolean:Ljava/lang/Boolean;

    new-instance v1, Ljava/lang/StringBuilder;

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

    const-string v2, "restoreOldMode old:"

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

    sget v2, Lcom/FF/voiceengine/AudioMgr;->mMode:I

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

    const-string v2, ", mIsBluetoothScoOn:"

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

    sget-object v2, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v2}, Landroid/media/AudioManager;->isBluetoothScoOn()Z

    move-result v2

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

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

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    sget v1, Lcom/FF/voiceengine/AudioMgr;->mMode:I

    const/4 v2, 0x0

    if-eqz v1, :cond_98

    new-instance v1, Ljava/lang/StringBuilder;

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

    const-string v3, "stop setmode:"

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

    sget v3, Lcom/FF/voiceengine/AudioMgr;->mMode:I

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

    const-string v3, " setSpeakerphoneOn:"

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

    sget-object v3, Lcom/FF/voiceengine/AudioMgr;->mSpeakerOnBoolean:Ljava/lang/Boolean;

    invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

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

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    sget-object v1, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v1, v2}, Landroid/media/AudioManager;->setMode(I)V

    sget-object v1, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    sget-object v3, Lcom/FF/voiceengine/AudioMgr;->mSpeakerOnBoolean:Ljava/lang/Boolean;

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

    move-result v3

    invoke-virtual {v1, v3}, Landroid/media/AudioManager;->setSpeakerphoneOn(Z)V

    new-instance v1, Ljava/lang/StringBuilder;

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

    const-string v3, "setSpeakerphoneOn "

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

    sget-object v3, Lcom/FF/voiceengine/AudioMgr;->mSpeakerOnBoolean:Ljava/lang/Boolean;

    invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    const-string v3, " 3"

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

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

    move-result-object v1

    invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    :cond_98
    const/4 v1, -0x1

    sput v1, Lcom/FF/voiceengine/AudioMgr;->mMode:I

    sget-object v1, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v1}, Landroid/media/AudioManager;->isBluetoothScoOn()Z

    move-result v1

    if-eqz v1, :cond_b7

    const-string v1, "restoreOldMode stop BluetoothSco"

    invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->stopBluetoothSco()V

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0, v2}, Landroid/media/AudioManager;->setBluetoothScoOn(Z)V
    :try_end_b2
    .catchall {:try_start_2 .. :try_end_b2} :catchall_b3

    goto :goto_b7

    :catchall_b3
    move-exception v0

    invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V

    :cond_b7
    :goto_b7
    return-void
.end method

.method public static setVoiceModeRTCCoutum()V
    .registers 4
    .annotation build Landroid/annotation/TargetApi;
        value = 0x10
    .end annotation

    :try_start_0
    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;
    :try_end_2
    .catchall {:try_start_0 .. :try_end_2} :catchall_fc

    const-string v1, "AudioMgr"

    if-nez v0, :cond_c

    :try_start_6
    const-string v0, "mAudioManager is null"

    invoke-static {v1, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    return-void

    :cond_c
    invoke-virtual {v0}, Landroid/media/AudioManager;->isSpeakerphoneOn()Z

    move-result v0

    invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v0

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->mSpeakerOnBoolean:Ljava/lang/Boolean;

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothScoOn()Z

    move-result v0

    invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;

    move-result-object v0

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->mIsBluetoothScoOn:Ljava/lang/Boolean;

    new-instance v0, Ljava/lang/StringBuilder;

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

    const-string v2, "==mMode:"

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

    sget v2, Lcom/FF/voiceengine/AudioMgr;->mMode:I

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

    const-string v2, " mSpeakerOnBoolean:"

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

    sget-object v2, Lcom/FF/voiceengine/AudioMgr;->mSpeakerOnBoolean:Ljava/lang/Boolean;

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    const-string v2, " mIsBluetoothScoOn:"

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

    sget-object v2, Lcom/FF/voiceengine/AudioMgr;->mIsBluetoothScoOn:Ljava/lang/Boolean;

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;

    const-string v2, " isBluetoothA2dpOn:"

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

    sget-object v2, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v2}, Landroid/media/AudioManager;->isBluetoothA2dpOn()Z

    move-result v2

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

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

    move-result-object v0

    invoke-static {v1, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    sget v0, Lcom/FF/voiceengine/AudioMgr;->mMode:I

    const/4 v2, -0x1

    if-ne v0, v2, :cond_8b

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->getMode()I

    move-result v0

    sput v0, Lcom/FF/voiceengine/AudioMgr;->mMode:I

    const/4 v2, 0x3

    if-eq v0, v2, :cond_86

    new-instance v0, Ljava/lang/StringBuilder;

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

    const-string v3, "start setmode:"

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

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

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

    move-result-object v0

    invoke-static {v1, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0, v2}, Landroid/media/AudioManager;->setMode(I)V

    sput v2, Lcom/FF/voiceengine/AudioMgr;->mMode:I

    goto :goto_8b

    :cond_86
    const-string v0, "Already in MODE_IN_COMMUNICATION"

    invoke-static {v1, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I

    :cond_8b
    :goto_8b
    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothA2dpOn()Z

    move-result v0

    const/4 v2, 0x1

    const/4 v3, 0x0

    if-nez v0, :cond_db

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mIsBluetoothScoOn:Ljava/lang/Boolean;

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

    move-result v0

    if-eqz v0, :cond_9e

    goto :goto_db

    :cond_9e
    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->isWiredHeadsetOn()Z

    move-result v0

    if-nez v0, :cond_a7

    goto :goto_a8

    :cond_a7
    const/4 v2, 0x0

    :goto_a8
    new-instance v0, Ljava/lang/StringBuilder;

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

    const-string v3, "isToSpeaker:"

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

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

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

    move-result-object v0

    invoke-static {v1, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0, v2}, Landroid/media/AudioManager;->setSpeakerphoneOn(Z)V

    new-instance v0, Ljava/lang/StringBuilder;

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

    const-string v3, "setSpeakerphoneOn "

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

    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;

    const-string v2, " 2"

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

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

    move-result-object v0

    :goto_d7
    invoke-static {v1, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    goto :goto_f2

    :cond_db
    :goto_db
    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0}, Landroid/media/AudioManager;->startBluetoothSco()V

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0, v3}, Landroid/media/AudioManager;->setSpeakerphoneOn(Z)V

    const-string v0, "setSpeakerphoneOn false 1"

    invoke-static {v1, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mAudioManager:Landroid/media/AudioManager;

    invoke-virtual {v0, v2}, Landroid/media/AudioManager;->setBluetoothScoOn(Z)V

    const-string v0, "to bluetooth"

    goto :goto_d7

    :goto_f2
    const-string v0, "set communication"

    invoke-static {v1, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    sget-object v0, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->mHasChangedBoolean:Ljava/lang/Boolean;
    :try_end_fb
    .catchall {:try_start_6 .. :try_end_fb} :catchall_fc

    goto :goto_100

    :catchall_fc
    move-exception v0

    invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V

    :goto_100
    return-void
.end method

.method public static startRequestPermissionForApi23()Z
    .registers 7

    const-string v0, "android.permission.RECORD_AUDIO"

    const-string v1, "AudioMgr"

    const/4 v2, 0x1

    sput-boolean v2, Lcom/FF/voiceengine/AudioMgr;->isCheckedPermission:Z

    sget-boolean v3, Lcom/FF/voiceengine/AudioMgr;->isStopedByExternalNotify:Z

    const/4 v4, 0x0

    if-eqz v3, :cond_d

    return v4

    :cond_d
    :try_start_d
    sget v3, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v5, 0x17

    if-lt v3, v5, :cond_5f

    sget-object v3, Lcom/FF/voiceengine/AudioMgr;->mContext:Landroid/content/Context;

    if-eqz v3, :cond_5f

    instance-of v6, v3, Landroid/app/Activity;

    if-eqz v6, :cond_5f

    invoke-virtual {v3}, Landroid/content/Context;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;

    move-result-object v3

    iget v3, v3, Landroid/content/pm/ApplicationInfo;->targetSdkVersion:I
    :try_end_21
    .catchall {:try_start_d .. :try_end_21} :catchall_61

    if-lt v3, v5, :cond_5f

    :try_start_23
    sget-object v3, Lcom/FF/voiceengine/AudioMgr;->mContext:Landroid/content/Context;

    check-cast v3, Landroid/app/Activity;

    invoke-static {v3, v0}, Landroidx/core/content/a;->a(Landroid/content/Context;Ljava/lang/String;)I

    move-result v3

    if-eqz v3, :cond_57

    const-string v3, "Request for record permission"

    invoke-static {v1, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    sget-object v3, Lcom/FF/voiceengine/AudioMgr;->mContext:Landroid/content/Context;

    check-cast v3, Landroid/app/Activity;

    filled-new-array {v0}, [Ljava/lang/String;

    move-result-object v0

    invoke-static {v3, v0, v2}, Landroidx/core/app/b;->t(Landroid/app/Activity;[Ljava/lang/String;I)V

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mPermissionCheckThread:Lcom/FF/voiceengine/AudioMgr$PermissionCheckThread;

    if-eqz v0, :cond_4b

    invoke-virtual {v0}, Ljava/lang/Thread;->interrupt()V

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mPermissionCheckThread:Lcom/FF/voiceengine/AudioMgr$PermissionCheckThread;

    const-wide/16 v3, 0x7d0

    invoke-virtual {v0, v3, v4}, Ljava/lang/Thread;->join(J)V

    :cond_4b
    new-instance v0, Lcom/FF/voiceengine/AudioMgr$PermissionCheckThread;

    const/4 v3, 0x0

    invoke-direct {v0, v3}, Lcom/FF/voiceengine/AudioMgr$PermissionCheckThread;-><init>(Lcom/FF/voiceengine/AudioMgr$1;)V

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->mPermissionCheckThread:Lcom/FF/voiceengine/AudioMgr$PermissionCheckThread;

    invoke-virtual {v0}, Ljava/lang/Thread;->start()V

    goto :goto_6b

    :cond_57
    const-string v0, "Already got record permission"

    invoke-static {v1, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
    :try_end_5c
    .catchall {:try_start_23 .. :try_end_5c} :catchall_5d

    goto :goto_6b

    :catchall_5d
    move-exception v0

    goto :goto_63

    :cond_5f
    const/4 v2, 0x0

    goto :goto_6b

    :catchall_61
    move-exception v0

    const/4 v2, 0x0

    :goto_63
    const-string v3, "Exception for startRequirePermiForApi23"

    invoke-static {v1, v3}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V

    :goto_6b
    return v2
.end method

.method public static stopRequestPermissionForApi23()V
    .registers 3

    :try_start_0
    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mPermissionCheckThread:Lcom/FF/voiceengine/AudioMgr$PermissionCheckThread;

    if-eqz v0, :cond_16

    invoke-virtual {v0}, Ljava/lang/Thread;->interrupt()V

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mPermissionCheckThread:Lcom/FF/voiceengine/AudioMgr$PermissionCheckThread;

    const-wide/16 v1, 0x7d0

    invoke-virtual {v0, v1, v2}, Ljava/lang/Thread;->join(J)V

    const/4 v0, 0x0

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->mPermissionCheckThread:Lcom/FF/voiceengine/AudioMgr$PermissionCheckThread;
    :try_end_11
    .catchall {:try_start_0 .. :try_end_11} :catchall_12

    goto :goto_16

    :catchall_12
    move-exception v0

    invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V

    :cond_16
    :goto_16
    return-void
.end method

.method public static uinit()V
    .registers 2

    const-string v0, "AudioMgr"

    const-string v1, "uinit"

    invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I

    sget-object v0, Lcom/FF/voiceengine/AudioMgr;->mContext:Landroid/content/Context;

    sget-object v1, Lcom/FF/voiceengine/AudioMgr;->mReceiver:Landroid/content/BroadcastReceiver;

    invoke-virtual {v0, v1}, Landroid/content/Context;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V

    const/4 v0, 0x0

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->mContext:Landroid/content/Context;

    sput-object v0, Lcom/FF/voiceengine/AudioMgr;->mReceiver:Landroid/content/BroadcastReceiver;

    return-void
.end method