AudioDeviceInventoryLowerThanM.smali 
.class public Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;
.super Ljava/lang/Object;
# interfaces
.implements Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;,
        Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;
    }
.end annotation
# static fields
.field private static final ANDROID_SNOW_CONE:I = 0x1f
.field private static final PERMISSION_BLUETOOTH_CONNECT:Ljava/lang/String; = "android.permission.BLUETOOTH_CONNECT"
.field private static final TAG:Ljava/lang/String; = "AudioRoute"
.field private static mockedBroadcaster:Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;
# instance fields
.field private final HEADSET_EXTRA_STATE:Ljava/lang/String;
.field private final STATE_CONNECT:I
.field private final STATE_DISCONNECT:I
.field private mAudioDeviceChangedCb:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedCallback;
.field private mBTAdapter:Landroid/bluetooth/BluetoothAdapter;
.field private mBTHeadset:Landroid/bluetooth/BluetoothHeadset;
.field private mBTHeadsetListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
.field private mBTHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;
.field private final mContext:Ljava/lang/ref/WeakReference;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/lang/ref/WeakReference<",
            "Landroid/content/Context;",
            ">;"
        }
    .end annotation
.end field
.field private mHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;
.field private mHeadsetType:I
# direct methods
.method static constructor <clinit>()V
    .registers 0
    return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
    .registers 4
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "context"
        }
    .end annotation
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V
    const/4 v0, -0x1
    iput v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->STATE_DISCONNECT:I
    const/4 v1, 0x1
    iput v1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->STATE_CONNECT:I
    const-string v1, "state"
    iput-object v1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->HEADSET_EXTRA_STATE:Ljava/lang/String;
    const/4 v1, 0x0
    iput-object v1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;
    iput-object v1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;
    iput v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mHeadsetType:I
    new-instance v0, Ljava/lang/ref/WeakReference;
    invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
    iput-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mContext:Ljava/lang/ref/WeakReference;
    const-string p1, "AudioRoute"
    const-string v0, "AudioDeviceInventoryLowerThanM ctor!"
    invoke-static {p1, v0}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
    return-void
.end method
.method static synthetic access$202(Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;Landroid/bluetooth/BluetoothHeadset;)Landroid/bluetooth/BluetoothHeadset;
    .registers 2
    iput-object p1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadset:Landroid/bluetooth/BluetoothHeadset;
    return-object p1
.end method
.method static synthetic access$300(Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;I)V
    .registers 2
    invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->onAudioDeviceEvent(I)V
    return-void
.end method
.method static synthetic access$400(Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;Landroid/content/Intent;)Z
    .registers 2
    invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->processHeadsetIntent(Landroid/content/Intent;)Z
    move-result p0
    return p0
.end method
.method static synthetic access$500(Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;)I
    .registers 1
    iget p0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mHeadsetType:I
    return p0
.end method
.method static synthetic access$600(Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;IZ)V
    .registers 3
    invoke-direct {p0, p1, p2}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->onAudioDeviceChanged(IZ)V
    return-void
.end method
.method static synthetic access$700(Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;Landroid/content/Intent;)V
    .registers 2
    invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->processBluetoothIntent(Landroid/content/Intent;)V
    return-void
.end method
.method private clearBTResource()V
    .registers 5
    iget-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTAdapter:Landroid/bluetooth/BluetoothAdapter;
    const/4 v1, 0x0
    if-eqz v0, :cond_d
    const/4 v2, 0x1
    iget-object v3, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadset:Landroid/bluetooth/BluetoothHeadset;
    invoke-virtual {v0, v2, v3}, Landroid/bluetooth/BluetoothAdapter;->closeProfileProxy(ILandroid/bluetooth/BluetoothProfile;)V
    iput-object v1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTAdapter:Landroid/bluetooth/BluetoothAdapter;
    :cond_d
    iget-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadsetListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
    if-eqz v0, :cond_13
    iput-object v1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadsetListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
    :cond_13
    return-void
.end method
.method private getBtConnectedDevicesSize()I
    .registers 8
    iget-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadset:Landroid/bluetooth/BluetoothHeadset;
    const/4 v1, 0x0
    if-nez v0, :cond_6
    return v1
    :cond_6
    :try_start_6
    invoke-virtual {v0}, Landroid/bluetooth/BluetoothHeadset;->getConnectedDevices()Ljava/util/List;
    move-result-object v0
    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
    move-result-object v2
    :goto_e
    invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
    move-result v3
    if-eqz v3, :cond_35
    invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
    move-result-object v3
    check-cast v3, Landroid/bluetooth/BluetoothDevice;
    const-string v4, "AudioRoute"
    new-instance v5, Ljava/lang/StringBuilder;
    invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
    const-string v6, "connected device name: "
    invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v3}, Landroid/bluetooth/BluetoothDevice;->getName()Ljava/lang/String;
    move-result-object v3
    invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v3
    invoke-static {v4, v3}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
    goto :goto_e
    :cond_35
    invoke-interface {v0}, Ljava/util/List;->size()I
    move-result v1
    :try_end_39
    .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_39} :catch_3a
    goto :goto_3e
    :catch_3a
    move-exception v0
    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
    :goto_3e
    return v1
.end method
.method private initBluetoothProfileListener()V
    .registers 4
    :try_start_0
    new-instance v0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$1;
    invoke-direct {v0, p0}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$1;-><init>(Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;)V
    iput-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadsetListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
    :try_end_7
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_7} :catch_8
    goto :goto_23
    :catch_8
    move-exception v0
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    const-string v2, "initialize failed: unable to create BluetoothProfile.ServiceListener, err="
    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
    move-result-object v0
    invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v0
    const-string v1, "AudioRoute"
    invoke-static {v1, v0}, Lio/agora/rtc2/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
    :goto_23
    return-void
.end method
.method private initBtBroadcastReceiver(Landroid/content/Context;)V
    .registers 6
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "context"
        }
    .end annotation
    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
    const/16 v1, 0x1f
    const-string v2, "AudioRoute"
    if-lt v0, v1, :cond_10
    const-string v0, "android.permission.BLUETOOTH_CONNECT"
    invoke-virtual {p0, p1, v0}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->hasPermission(Landroid/content/Context;Ljava/lang/String;)Z
    move-result v0
    if-eqz v0, :cond_1c
    :cond_10
    sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
    if-ge v0, v1, :cond_22
    const-string v0, "android.permission.BLUETOOTH"
    invoke-virtual {p0, p1, v0}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->hasPermission(Landroid/content/Context;Ljava/lang/String;)Z
    move-result v0
    if-nez v0, :cond_22
    :cond_1c
    const-string p1, "do not support BT monitoring on this device"
    invoke-static {v2, p1}, Lio/agora/rtc2/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
    return-void
    :cond_22
    invoke-direct {p0}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->initBluetoothProfileListener()V
    :try_start_25
    iget-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;
    if-nez v0, :cond_31
    new-instance v0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;
    const/4 v1, 0x0
    invoke-direct {v0, p0, v1}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;-><init>(Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$1;)V
    iput-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;
    :cond_31
    invoke-static {}, Landroid/bluetooth/BluetoothAdapter;->getDefaultAdapter()Landroid/bluetooth/BluetoothAdapter;
    move-result-object v0
    iput-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTAdapter:Landroid/bluetooth/BluetoothAdapter;
    if-eqz v0, :cond_67
    iget-object v1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadsetListener:Landroid/bluetooth/BluetoothProfile$ServiceListener;
    const/4 v3, 0x1
    invoke-virtual {v0, p1, v1, v3}, Landroid/bluetooth/BluetoothAdapter;->getProfileProxy(Landroid/content/Context;Landroid/bluetooth/BluetoothProfile$ServiceListener;I)Z
    new-instance v0, Landroid/content/IntentFilter;
    const-string v1, "android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED"
    invoke-direct {v0, v1}, Landroid/content/IntentFilter;-><init>(Ljava/lang/String;)V
    const-string v1, "android.bluetooth.adapter.action.STATE_CHANGED"
    invoke-virtual {v0, v1}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
    iget-object v1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;
    invoke-virtual {v1}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;->getRegistered()Z
    move-result v1
    if-nez v1, :cond_86
    iget-object v1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;
    invoke-virtual {p1, v1, v0}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
    sget-object p1, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mockedBroadcaster:Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;
    if-eqz p1, :cond_61
    iget-object v1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;
    invoke-interface {p1, v1, v0}, Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)V
    :cond_61
    iget-object p1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;
    invoke-virtual {p1, v3}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;->setRegistered(Z)V
    goto :goto_86
    :cond_67
    const-string p1, "initialize: failed to get bluetooth adapter!!"
    invoke-static {v2, p1}, Lio/agora/rtc2/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
    :try_end_6c
    .catch Ljava/lang/Exception; {:try_start_25 .. :try_end_6c} :catch_6d
    return-void
    :catch_6d
    move-exception p1
    new-instance v0, Ljava/lang/StringBuilder;
    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
    const-string v1, "unable to create BluetoothHeadsetBroadcastReceiver, err:"
    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    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
    invoke-static {v2, p1}, Lio/agora/rtc2/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
    :cond_86
    :goto_86
    return-void
.end method
.method private initHeadsetBroadcastReceiver(Landroid/content/Context;)V
    .registers 5
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "context"
        }
    .end annotation
    iget-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;
    if-nez v0, :cond_c
    new-instance v0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;
    const/4 v1, 0x0
    invoke-direct {v0, p0, v1}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;-><init>(Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$1;)V
    iput-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;
    :cond_c
    iget-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;
    invoke-virtual {v0}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;->getRegistered()Z
    move-result v0
    if-nez v0, :cond_3f
    new-instance v0, Landroid/content/IntentFilter;
    const-string v1, "android.intent.action.HEADSET_PLUG"
    invoke-direct {v0, v1}, Landroid/content/IntentFilter;-><init>(Ljava/lang/String;)V
    iget-object v2, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;
    invoke-virtual {p1, v2, v0}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
    move-result-object p1
    if-eqz p1, :cond_30
    invoke-virtual {p1}, Landroid/content/Intent;->getAction()Ljava/lang/String;
    move-result-object v2
    invoke-static {v2, v1}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
    move-result v1
    if-eqz v1, :cond_30
    invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->processHeadsetIntent(Landroid/content/Intent;)Z
    :cond_30
    sget-object p1, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mockedBroadcaster:Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;
    if-eqz p1, :cond_39
    iget-object v1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;
    invoke-interface {p1, v1, v0}, Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)V
    :cond_39
    iget-object p1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;
    const/4 v0, 0x1
    invoke-virtual {p1, v0}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;->setRegistered(Z)V
    :cond_3f
    return-void
.end method
.method private onAudioDeviceChanged(IZ)V
    .registers 5
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "route",
            "connect"
        }
    .end annotation
    new-instance v0, Ljava/lang/StringBuilder;
    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
    const-string v1, "onAudioDeviceChanged route :"
    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    const-string v1, " status: "
    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    if-eqz p2, :cond_17
    const-string v1, "connect"
    goto :goto_19
    :cond_17
    const-string v1, "disconnect"
    :goto_19
    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
    const-string v1, "AudioRoute"
    invoke-static {v1, v0}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
    iget-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mAudioDeviceChangedCb:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedCallback;
    if-eqz v0, :cond_2c
    invoke-interface {v0, p2, p1}, Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedCallback;->onAudioDeviceChanged(ZI)V
    :cond_2c
    return-void
.end method
.method private onAudioDeviceEvent(I)V
    .registers 3
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "devEvt"
        }
    .end annotation
    iget-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mAudioDeviceChangedCb:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedCallback;
    if-eqz v0, :cond_7
    invoke-interface {v0, p1}, Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedCallback;->onAudioDeviceEvent(I)V
    :cond_7
    return-void
.end method
.method private processBluetoothIntent(Landroid/content/Intent;)V
    .registers 11
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "intent"
        }
    .end annotation
    const-string v0, "AudioRoute"
    invoke-virtual {p1}, Landroid/content/Intent;->getAction()Ljava/lang/String;
    move-result-object v1
    :try_start_6
    const-string v2, "android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED"
    invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    move-result v2
    :try_end_c
    .catch Ljava/lang/Exception; {:try_start_6 .. :try_end_c} :catch_e7
    const/4 v3, 0x0
    const-string v4, ", "
    const/4 v5, 0x5
    const/16 v6, -0x63
    if-eqz v2, :cond_b4
    :try_start_14
    const-string v1, "android.bluetooth.profile.extra.STATE"
    invoke-virtual {p1, v1, v6}, Landroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I
    move-result v1
    const-string v2, "android.bluetooth.profile.extra.PREVIOUS_STATE"
    invoke-virtual {p1, v2, v6}, Landroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I
    move-result v2
    const-string v6, "android.bluetooth.device.extra.DEVICE"
    invoke-virtual {p1, v6}, Landroid/content/Intent;->getParcelableExtra(Ljava/lang/String;)Landroid/os/Parcelable;
    move-result-object p1
    check-cast p1, Landroid/bluetooth/BluetoothDevice;
    if-eqz p1, :cond_2f
    invoke-virtual {p1}, Landroid/bluetooth/BluetoothDevice;->getName()Ljava/lang/String;
    move-result-object v6
    goto :goto_31
    :cond_2f
    const-string v6, "null name"
    :goto_31
    new-instance v7, Ljava/lang/StringBuilder;
    invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
    const-string v8, "BT "
    invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v7, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    const-string v6, " hfp connect state : "
    invoke-virtual {v7, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v7, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    invoke-virtual {v7, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v7, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object v2
    invoke-static {v0, v2}, Lio/agora/rtc2/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
    :try_end_53
    .catch Ljava/lang/Exception; {:try_start_14 .. :try_end_53} :catch_e7
    const/4 v2, 0x1
    const-string v4, "Bluetooth device "
    if-eqz v1, :cond_8f
    const/4 v3, 0x2
    if-eq v1, v3, :cond_74
    :try_start_5b
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    const-string p1, " unknown event, state="
    invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    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 p1
    invoke-static {v0, p1}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
    goto/16 :goto_ed
    :cond_74
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    const-string p1, " connected"
    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p1
    invoke-static {v0, p1}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
    invoke-direct {p0, v5, v2}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->onAudioDeviceChanged(IZ)V
    goto :goto_ed
    :cond_8f
    new-instance v1, Ljava/lang/StringBuilder;
    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
    invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
    const-string p1, " disconnected"
    invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
    move-result-object p1
    invoke-static {v0, p1}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
    invoke-direct {p0}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->getBtConnectedDevicesSize()I
    move-result p1
    if-nez p1, :cond_b0
    :cond_ac
    invoke-direct {p0, v5, v3}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->onAudioDeviceChanged(IZ)V
    goto :goto_ed
    :cond_b0
    invoke-direct {p0, v2}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->onAudioDeviceEvent(I)V
    goto :goto_ed
    :cond_b4
    const-string v2, "android.bluetooth.adapter.action.STATE_CHANGED"
    invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
    move-result v1
    if-eqz v1, :cond_ed
    const-string v1, "android.bluetooth.adapter.extra.STATE"
    invoke-virtual {p1, v1, v6}, Landroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I
    move-result v1
    const-string v2, "android.bluetooth.adapter.extra.PREVIOUS_STATE"
    invoke-virtual {p1, v2, v6}, Landroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I
    move-result p1
    new-instance v2, Ljava/lang/StringBuilder;
    invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
    const-string v6, "BluetoothAdapter.ACTION_STATE_CHANGED prev "
    invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
    invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
    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 p1
    invoke-static {v0, p1}, Lio/agora/rtc2/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
    :try_end_e2
    .catch Ljava/lang/Exception; {:try_start_5b .. :try_end_e2} :catch_e7
    const/16 p1, 0xa
    if-eq v1, p1, :cond_ac
    goto :goto_ed
    :catch_e7
    move-exception p1
    const-string v1, "BT broadcast receiver onReceive fail "
    invoke-static {v0, v1, p1}, Lio/agora/rtc2/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
    :cond_ed
    :goto_ed
    return-void
.end method
.method private processHeadsetIntent(Landroid/content/Intent;)Z
    .registers 5
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "intent"
        }
    .end annotation
    const-string v0, "state"
    const/4 v1, -0x1
    invoke-virtual {p1, v0, v1}, Landroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I
    move-result v0
    const-string v2, "microphone"
    invoke-virtual {p1, v2, v1}, Landroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I
    move-result p1
    const/4 v1, 0x0
    const/4 v2, 0x1
    if-ne v0, v2, :cond_18
    if-ne p1, v2, :cond_15
    move p1, v1
    goto :goto_16
    :cond_15
    const/4 p1, 0x2
    :goto_16
    iput p1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mHeadsetType:I
    :cond_18
    if-ne v0, v2, :cond_1b
    move v1, v2
    :cond_1b
    return v1
.end method
.method public static setMockedBroadcaster(Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;)V
    .registers 1
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "mockedBroadcaster"
        }
    .end annotation
    sput-object p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mockedBroadcaster:Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;
    return-void
.end method
# virtual methods
.method public dispose()V
    .registers 5
    :try_start_0
    invoke-direct {p0}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->clearBTResource()V
    iget-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mContext:Ljava/lang/ref/WeakReference;
    invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
    move-result-object v0
    check-cast v0, Landroid/content/Context;
    if-eqz v0, :cond_48
    iget-object v1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;
    const/4 v2, 0x0
    if-eqz v1, :cond_2b
    invoke-virtual {v1}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;->getRegistered()Z
    move-result v1
    if-eqz v1, :cond_2b
    iget-object v1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;
    invoke-virtual {v0, v1}, Landroid/content/Context;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
    sget-object v1, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mockedBroadcaster:Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;
    if-eqz v1, :cond_26
    iget-object v3, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;
    invoke-interface {v1, v3}, Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;->unRegisterReceiver(Landroid/content/BroadcastReceiver;)V
    :cond_26
    iget-object v1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;
    invoke-virtual {v1, v2}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;->setRegistered(Z)V
    :cond_2b
    iget-object v1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;
    if-eqz v1, :cond_48
    invoke-virtual {v1}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;->getRegistered()Z
    move-result v1
    if-eqz v1, :cond_48
    iget-object v1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;
    invoke-virtual {v0, v1}, Landroid/content/Context;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
    sget-object v0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mockedBroadcaster:Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;
    if-eqz v0, :cond_43
    iget-object v1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;
    invoke-interface {v0, v1}, Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;->unRegisterReceiver(Landroid/content/BroadcastReceiver;)V
    :cond_43
    iget-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;
    invoke-virtual {v0, v2}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;->setRegistered(Z)V
    :cond_48
    const/4 v0, 0x0
    iput-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$HeadsetBroadcastReceiver;
    iput-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTHeadsetReceiver:Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM$BTHeadsetBroadcastReceiver;
    :try_end_4d
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_4d} :catch_4e
    goto :goto_56
    :catch_4e
    move-exception v0
    const-string v1, "AudioRoute"
    const-string v2, "AudioDeviceInventoryLowerThanM dispose fail: "
    invoke-static {v1, v2, v0}, Lio/agora/rtc2/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
    :goto_56
    return-void
.end method
.method protected hasPermission(Landroid/content/Context;Ljava/lang/String;)Z
    .registers 3
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0,
            0x0
        }
        names = {
            "context",
            "permission"
        }
    .end annotation
    invoke-virtual {p1, p2}, Landroid/content/Context;->checkCallingOrSelfPermission(Ljava/lang/String;)I
    move-result p1
    if-nez p1, :cond_8
    const/4 p1, 0x1
    goto :goto_9
    :cond_8
    const/4 p1, 0x0
    :goto_9
    return p1
.end method
.method public initialize()V
    .registers 4
    iget-object v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mContext:Ljava/lang/ref/WeakReference;
    invoke-virtual {v0}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
    move-result-object v0
    check-cast v0, Landroid/content/Context;
    const-string v1, "AudioRoute"
    const-string v2, "AudioDeviceInventoryLowerThanM initialize +"
    invoke-static {v1, v2}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
    invoke-direct {p0, v0}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->initHeadsetBroadcastReceiver(Landroid/content/Context;)V
    invoke-direct {p0, v0}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->initBtBroadcastReceiver(Landroid/content/Context;)V
    return-void
.end method
.method public isDeviceAvaliable(I)Z
    .registers 6
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "route"
        }
    .end annotation
    const/4 v0, 0x2
    const/4 v1, 0x0
    const/4 v2, 0x1
    const/4 v3, 0x5
    if-ne p1, v3, :cond_12
    iget-object p1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mBTAdapter:Landroid/bluetooth/BluetoothAdapter;
    if-eqz p1, :cond_1b
    invoke-virtual {p1, v2}, Landroid/bluetooth/BluetoothAdapter;->getProfileConnectionState(I)I
    move-result p1
    if-ne v0, p1, :cond_1b
    :goto_10
    move v1, v2
    goto :goto_1b
    :cond_12
    if-eqz p1, :cond_16
    if-ne p1, v0, :cond_1b
    :cond_16
    iget v0, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mHeadsetType:I
    if-ne v0, p1, :cond_1b
    goto :goto_10
    :cond_1b
    :goto_1b
    return v1
.end method
.method public setAudioDeviceChangeCallback(Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedCallback;)V
    .registers 2
    .annotation system Ldalvik/annotation/MethodParameters;
        accessFlags = {
            0x0
        }
        names = {
            "cb"
        }
    .end annotation
    iput-object p1, p0, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->mAudioDeviceChangedCb:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedCallback;
    return-void
.end method