AudioRoutingController.smali
.class public Lio/agora/rtc2/internal/AudioRoutingController;
.super Ljava/lang/Object;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/agora/rtc2/internal/AudioRoutingController$AudioManagerScoStateReceiver;,
Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedCallbackImpl;,
Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedCallback;,
Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;,
Lio/agora/rtc2/internal/AudioRoutingController$ControllerAudioDeviceChangeCallback;,
Lio/agora/rtc2/internal/AudioRoutingController$ControllerErrorState;,
Lio/agora/rtc2/internal/AudioRoutingController$ControllerStartState;,
Lio/agora/rtc2/internal/AudioRoutingController$ControllerStopState;,
Lio/agora/rtc2/internal/AudioRoutingController$ControllerBaseState;,
Lio/agora/rtc2/internal/AudioRoutingController$ControllerState;,
Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;,
Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;,
Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedSpecialMonitor;
}
.end annotation
# static fields
.field public static final AUDIO_DEVICE_EVENT_FALLBACK_TO_A2DP:I = 0x4
.field private static final BLUETOOTH_SCO_TIMEOUT_MS:I = 0xbb8
.field private static final BT_SCO_STATE_CONNECTED:I = 0x1
.field private static final BT_SCO_STATE_CONNECTING:I = 0x0
.field private static final BT_SCO_STATE_DISCONNECTED:I = 0x3
.field private static final BT_SCO_STATE_DISCONNECTING:I = 0x2
.field public static final CMD_FORCE_TO_A2DP:I = 0x10
.field public static final CMD_FORCE_TO_SPEAKER:I = 0xb
.field public static final CMD_MUTE_VIDEO_ALL:I = 0xe
.field public static final CMD_MUTE_VIDEO_LOCAL:I = 0xc
.field public static final CMD_MUTE_VIDEO_REMOTES:I = 0xd
.field public static final CMD_SET_DEFAULT_ROUTING:I = 0xa
.field private static final CMD_SET_PREFER_ROUTING:I = 0x19
.field public static final CMD_START_BT_SCO:I = 0xf
.field public static final DEVICE_EVT_BT_OFF:I = 0x0
.field public static final DEVICE_EVT_BT_RECONNECT:I = 0x1
.field public static final DEVICE_OUTPUT_OUT_IP:I = 0x800000
.field public static final DEVICE_OUT_AUX_DIGITAL:I = 0x400
.field public static final DEVICE_OUT_BLUETOOTH_A2DP:I = 0x80
.field public static final DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES:I = 0x100
.field public static final DEVICE_OUT_BLUETOOTH_A2DP_SPEAKER:I = 0x200
.field public static final DEVICE_OUT_EARPIECE:I = 0x1
.field public static final DEVICE_OUT_SPEAKER:I = 0x2
.field public static final DEVICE_OUT_USB_DEVICE:I = 0x4000
.field public static final DEVICE_OUT_USB_HEADSET:I = 0x4000000
.field public static final DEVICE_OUT_WIRED_HEADPHONE:I = 0x8
.field public static final DEVICE_OUT_WIRED_HEADSET:I = 0x4
.field private static final ERROR:I = 0x4
.field private static final EVT_BT_HEADSET:I = 0x2
.field private static final EVT_BT_HEADSET_RECONNECT:I = 0x17
.field private static final EVT_BT_SCO:I = 0x3
.field public static final EVT_CHANNEL_PROFILE:I = 0x14
.field public static final EVT_ENGINE_ROLE_CHANGED:I = 0x15
.field private static final EVT_HDMI:I = 0x6
.field private static final EVT_HEADSET:I = 0x1
.field public static final EVT_PHONE_STATE_CHANGED:I = 0x16
.field private static final EVT_USB:I = 0x4
.field private static final EVT_USB_HEADSET:I = 0x5
.field private static final MAX_SCO_CONNECT_ATTEMPS:I = 0x2
.field public static final OFF:I = 0x0
.field public static final ON:I = 0x1
.field private static final ROUTE_TYPE_TO_EVT:Landroid/util/SparseIntArray;
.field public static final SDK_INT_FOR_DEVICE_INVENTORY:I = 0x1f
.field private static final START:I = 0x1
.field private static final STOP:I = 0x2
.field private static final TAG:Ljava/lang/String; = "AudioRoute"
.field private static final UNINIT:I = 0x0
.field public static final UNSET:I = -0x1
.field private static deviceSpecialMonitor:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedSpecialMonitor;
.field private static mockBlueToothEnable:Z
.field private static mockedAudioManager:Landroid/media/AudioManager;
.field private static mockedBroadcaster:Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;
# instance fields
.field private ROUTING_ATTR_SPEAKER_SWITCH_SUPPORT:I
.field private final bluetoothTimeoutRunnable:Ljava/lang/Runnable;
.field private ctrlAudioDeviceCb:Lio/agora/rtc2/internal/AudioRoutingController$ControllerAudioDeviceChangeCallback;
.field private dynamic_timeout:I
.field private mAudioDeviceInventory:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;
.field private mBtScoState:I
.field private mChannelProfile:I
.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 mCurrentRouting:I
.field private mDefaultRouting:I
.field private mDefaultSystemRouting:I
.field private mDisposed:Z
.field private mEngineRole:I
.field private mErrorState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerErrorState;
.field private mEventHandler:Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;
.field private mForceUseA2dp:Z
.field private mForcedRouting:I
.field private mHeadsetType:I
.field private mIsBTHeadsetPlugged:Z
.field private mIsBTScoStarted:Z
.field private mIsWiredHeadsetPlugged:Z
.field private mMuteLocal:Z
.field private mMuteRemotes:Z
.field private mNativeHandle:J
.field private mPhoneInCall:Z
.field private mScoConnectionAttemps:I
.field mScoStateReceiver:Lio/agora/rtc2/internal/AudioRoutingController$AudioManagerScoStateReceiver;
.field private mSpeakerCommVolume:I
.field private mStartState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerStartState;
.field private mState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerState;
.field private mStopState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerStopState;
.field private final mThreadChecker:Lio/agora/base/internal/ThreadUtils$ThreadChecker;
.field private mVersionInUsed:I
.field private mVideoDisabled:Z
# direct methods
.method static constructor <clinit>()V
.registers 3
new-instance v0, Landroid/util/SparseIntArray;
invoke-direct {v0}, Landroid/util/SparseIntArray;-><init>()V
sput-object v0, Lio/agora/rtc2/internal/AudioRoutingController;->ROUTE_TYPE_TO_EVT:Landroid/util/SparseIntArray;
const/4 v1, 0x0
const/4 v2, 0x1
invoke-virtual {v0, v1, v2}, Landroid/util/SparseIntArray;->put(II)V
const/4 v1, 0x2
invoke-virtual {v0, v1, v2}, Landroid/util/SparseIntArray;->put(II)V
const/4 v2, 0x5
invoke-virtual {v0, v2, v1}, Landroid/util/SparseIntArray;->put(II)V
const/4 v1, 0x6
const/4 v2, 0x4
invoke-virtual {v0, v1, v2}, Landroid/util/SparseIntArray;->put(II)V
const/4 v2, 0x7
invoke-virtual {v0, v2, v1}, Landroid/util/SparseIntArray;->put(II)V
return-void
.end method
.method public constructor <init>(Landroid/content/Context;J)V
.registers 8
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0,
0x0
}
names = {
"context",
"handle"
}
.end annotation
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x0
iput-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsWiredHeadsetPlugged:Z
const/4 v1, -0x1
iput v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mHeadsetType:I
iput-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTHeadsetPlugged:Z
const/4 v2, 0x1
iput v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->ROUTING_ATTR_SPEAKER_SWITCH_SUPPORT:I
iput v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mCurrentRouting:I
const/4 v3, 0x3
iput v3, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mDefaultRouting:I
iput v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mForcedRouting:I
iput v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mDefaultSystemRouting:I
iput v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mChannelProfile:I
iput-boolean v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mVideoDisabled:Z
iput-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mMuteLocal:Z
iput-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mMuteRemotes:Z
iput v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mEngineRole:I
iput-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mPhoneInCall:Z
iput v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mSpeakerCommVolume:I
iput-boolean v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mForceUseA2dp:Z
iput v3, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mBtScoState:I
iput-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTScoStarted:Z
const/16 v1, 0xbb8
iput v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->dynamic_timeout:I
const/4 v1, 0x0
iput-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mStopState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerStopState;
iput-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mStartState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerStartState;
iput-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mErrorState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerErrorState;
new-instance v3, Lio/agora/rtc2/internal/AudioRoutingController$1;
invoke-direct {v3, p0}, Lio/agora/rtc2/internal/AudioRoutingController$1;-><init>(Lio/agora/rtc2/internal/AudioRoutingController;)V
iput-object v3, p0, Lio/agora/rtc2/internal/AudioRoutingController;->bluetoothTimeoutRunnable:Ljava/lang/Runnable;
iput-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->ctrlAudioDeviceCb:Lio/agora/rtc2/internal/AudioRoutingController$ControllerAudioDeviceChangeCallback;
iput-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mDisposed:Z
iput-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mScoStateReceiver:Lio/agora/rtc2/internal/AudioRoutingController$AudioManagerScoStateReceiver;
new-instance v1, Ljava/lang/ref/WeakReference;
invoke-direct {v1, p1}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
iput-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mContext:Ljava/lang/ref/WeakReference;
iput-wide p2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mNativeHandle:J
new-instance p1, Lio/agora/base/internal/ThreadUtils$ThreadChecker;
invoke-direct {p1}, Lio/agora/base/internal/ThreadUtils$ThreadChecker;-><init>()V
iput-object p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mThreadChecker:Lio/agora/base/internal/ThreadUtils$ThreadChecker;
sget p1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 p2, 0x1f
if-lt p1, p2, :cond_5c
iput v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mVersionInUsed:I
goto :goto_5e
:cond_5c
iput v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mVersionInUsed:I
:goto_5e
return-void
.end method
.method static synthetic access$000(Lio/agora/rtc2/internal/AudioRoutingController;)V
.registers 1
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->bluetoothTimeout()V
return-void
.end method
.method static synthetic access$100(Lio/agora/rtc2/internal/AudioRoutingController;)Lio/agora/rtc2/internal/AudioRoutingController$ControllerState;
.registers 1
iget-object p0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerState;
return-object p0
.end method
.method static synthetic access$1000(Lio/agora/rtc2/internal/AudioRoutingController;)I
.registers 1
iget p0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mChannelProfile:I
return p0
.end method
.method static synthetic access$1002(Lio/agora/rtc2/internal/AudioRoutingController;I)I
.registers 2
iput p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mChannelProfile:I
return p1
.end method
.method static synthetic access$102(Lio/agora/rtc2/internal/AudioRoutingController;Lio/agora/rtc2/internal/AudioRoutingController$ControllerState;)Lio/agora/rtc2/internal/AudioRoutingController$ControllerState;
.registers 2
iput-object p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerState;
return-object p1
.end method
.method static synthetic access$1100(Lio/agora/rtc2/internal/AudioRoutingController;)Z
.registers 1
iget-boolean p0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTHeadsetPlugged:Z
return p0
.end method
.method static synthetic access$1102(Lio/agora/rtc2/internal/AudioRoutingController;Z)Z
.registers 2
iput-boolean p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTHeadsetPlugged:Z
return p1
.end method
.method static synthetic access$1200()Z
.registers 1
sget-boolean v0, Lio/agora/rtc2/internal/AudioRoutingController;->mockBlueToothEnable:Z
return v0
.end method
.method static synthetic access$1300(Lio/agora/rtc2/internal/AudioRoutingController;)Z
.registers 1
iget-boolean p0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mForceUseA2dp:Z
return p0
.end method
.method static synthetic access$1302(Lio/agora/rtc2/internal/AudioRoutingController;Z)Z
.registers 2
iput-boolean p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mForceUseA2dp:Z
return p1
.end method
.method static synthetic access$1400(Lio/agora/rtc2/internal/AudioRoutingController;)I
.registers 1
iget p0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mCurrentRouting:I
return p0
.end method
.method static synthetic access$1402(Lio/agora/rtc2/internal/AudioRoutingController;I)I
.registers 2
iput p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mCurrentRouting:I
return p1
.end method
.method static synthetic access$1500(Lio/agora/rtc2/internal/AudioRoutingController;I)I
.registers 2
invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioRoutingController;->updateBluetoothSco(I)I
move-result p0
return p0
.end method
.method static synthetic access$1602(Lio/agora/rtc2/internal/AudioRoutingController;Z)Z
.registers 2
iput-boolean p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mVideoDisabled:Z
return p1
.end method
.method static synthetic access$1702(Lio/agora/rtc2/internal/AudioRoutingController;Z)Z
.registers 2
iput-boolean p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mMuteLocal:Z
return p1
.end method
.method static synthetic access$1802(Lio/agora/rtc2/internal/AudioRoutingController;Z)Z
.registers 2
iput-boolean p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mMuteRemotes:Z
return p1
.end method
.method static synthetic access$1902(Lio/agora/rtc2/internal/AudioRoutingController;I)I
.registers 2
iput p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mEngineRole:I
return p1
.end method
.method static synthetic access$2000(Lio/agora/rtc2/internal/AudioRoutingController;)I
.registers 1
iget p0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mDefaultRouting:I
return p0
.end method
.method static synthetic access$2002(Lio/agora/rtc2/internal/AudioRoutingController;I)I
.registers 2
iput p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mDefaultRouting:I
return p1
.end method
.method static synthetic access$2100(Lio/agora/rtc2/internal/AudioRoutingController;I)Ljava/lang/String;
.registers 2
invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioRouteDesc(I)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method static synthetic access$2200(Lio/agora/rtc2/internal/AudioRoutingController;)Z
.registers 1
iget-boolean p0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mPhoneInCall:Z
return p0
.end method
.method static synthetic access$2202(Lio/agora/rtc2/internal/AudioRoutingController;Z)Z
.registers 2
iput-boolean p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mPhoneInCall:Z
return p1
.end method
.method static synthetic access$2400(Lio/agora/rtc2/internal/AudioRoutingController;)V
.registers 1
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->cancelTimer()V
return-void
.end method
.method static synthetic access$2500(Lio/agora/rtc2/internal/AudioRoutingController;)Landroid/media/AudioManager;
.registers 1
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioManager()Landroid/media/AudioManager;
move-result-object p0
return-object p0
.end method
.method static synthetic access$2600(Lio/agora/rtc2/internal/AudioRoutingController;)Z
.registers 1
iget-boolean p0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTScoStarted:Z
return p0
.end method
.method static synthetic access$2602(Lio/agora/rtc2/internal/AudioRoutingController;Z)Z
.registers 2
iput-boolean p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTScoStarted:Z
return p1
.end method
.method static synthetic access$2700(Lio/agora/rtc2/internal/AudioRoutingController;)V
.registers 1
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->stopBtSco()V
return-void
.end method
.method static synthetic access$2800(Lio/agora/rtc2/internal/AudioRoutingController;I)Ljava/lang/String;
.registers 2
invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioRoutingController;->evtAsString(I)Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method static synthetic access$2902(Lio/agora/rtc2/internal/AudioRoutingController;I)I
.registers 2
iput p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mForcedRouting:I
return p1
.end method
.method static synthetic access$300(Lio/agora/rtc2/internal/AudioRoutingController;I)Lio/agora/rtc2/internal/AudioRoutingController$ControllerState;
.registers 2
invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioRoutingController;->changeState(I)Lio/agora/rtc2/internal/AudioRoutingController$ControllerState;
move-result-object p0
return-object p0
.end method
.method static synthetic access$3000(Lio/agora/rtc2/internal/AudioRoutingController;)I
.registers 1
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->getCurrSystemRouting()I
move-result p0
return p0
.end method
.method static synthetic access$3100(Lio/agora/rtc2/internal/AudioRoutingController;I)I
.registers 2
invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioRoutingController;->doSetAudioOutputRouting(I)I
move-result p0
return p0
.end method
.method static synthetic access$3202(Lio/agora/rtc2/internal/AudioRoutingController;I)I
.registers 2
iput p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mBtScoState:I
return p1
.end method
.method static synthetic access$3302(Lio/agora/rtc2/internal/AudioRoutingController;I)I
.registers 2
iput p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mScoConnectionAttemps:I
return p1
.end method
.method static synthetic access$3400(Lio/agora/rtc2/internal/AudioRoutingController;I)V
.registers 2
invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioRoutingController;->selectRoutingForCommunication(I)V
return-void
.end method
.method static synthetic access$3500()Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedSpecialMonitor;
.registers 1
sget-object v0, Lio/agora/rtc2/internal/AudioRoutingController;->deviceSpecialMonitor:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedSpecialMonitor;
return-object v0
.end method
.method static synthetic access$3600(Lio/agora/rtc2/internal/AudioRoutingController;Ljava/lang/String;Ljava/lang/String;II)V
.registers 5
invoke-direct {p0, p1, p2, p3, p4}, Lio/agora/rtc2/internal/AudioRoutingController;->nativeAudioDeviceStateChanged(Ljava/lang/String;Ljava/lang/String;II)V
return-void
.end method
.method static synthetic access$3700()Landroid/util/SparseIntArray;
.registers 1
sget-object v0, Lio/agora/rtc2/internal/AudioRoutingController;->ROUTE_TYPE_TO_EVT:Landroid/util/SparseIntArray;
return-object v0
.end method
.method static synthetic access$400(Lio/agora/rtc2/internal/AudioRoutingController;)V
.registers 1
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->resetAudioRouting()V
return-void
.end method
.method static synthetic access$502(Lio/agora/rtc2/internal/AudioRoutingController;I)I
.registers 2
iput p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mHeadsetType:I
return p1
.end method
.method static synthetic access$600(Lio/agora/rtc2/internal/AudioRoutingController;)Z
.registers 1
iget-boolean p0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsWiredHeadsetPlugged:Z
return p0
.end method
.method static synthetic access$602(Lio/agora/rtc2/internal/AudioRoutingController;Z)Z
.registers 2
iput-boolean p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsWiredHeadsetPlugged:Z
return p1
.end method
.method static synthetic access$700()Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;
.registers 1
sget-object v0, Lio/agora/rtc2/internal/AudioRoutingController;->mockedBroadcaster:Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;
return-object v0
.end method
.method static synthetic access$802(Lio/agora/rtc2/internal/AudioRoutingController;I)I
.registers 2
iput p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mDefaultSystemRouting:I
return p1
.end method
.method static synthetic access$900(Lio/agora/rtc2/internal/AudioRoutingController;I)V
.registers 2
invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioRoutingController;->notifyAudioRoutingChanged(I)V
return-void
.end method
.method private bluetoothTimeout()V
.registers 6
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioManager()Landroid/media/AudioManager;
move-result-object v0
if-eqz v0, :cond_b
invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothScoOn()Z
move-result v1
goto :goto_c
:cond_b
const/4 v1, 0x0
:goto_c
iget v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mScoConnectionAttemps:I
const/4 v3, 0x2
const-string v4, "AudioRoute"
if-ge v2, v3, :cond_76
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "attemps trying, bt sco started: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-boolean v3, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTScoStarted:Z
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
const-string v3, " sco connected: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
const-string v3, " "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v3, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mScoConnectionAttemps:I
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, " times "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v3, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mBtScoState: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 v3, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mBtScoState:I
invoke-direct {p0, v3}, Lio/agora/rtc2/internal/AudioRoutingController;->btStateAsString(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, "]"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v4, v2}, Lio/agora/rtc2/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
if-nez v1, :cond_6d
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->startTimer()V
iget v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mScoConnectionAttemps:I
add-int/lit8 v1, v1, 0x1
iput v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mScoConnectionAttemps:I
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->stopBtSco()V
invoke-virtual {v0}, Landroid/media/AudioManager;->stopBluetoothSco()V
invoke-direct {p0, v0}, Lio/agora/rtc2/internal/AudioRoutingController;->doStartBTSco(Landroid/media/AudioManager;)V
goto :goto_99
:cond_6d
const-string v0, "soc connected"
invoke-static {v4, v0}, Lio/agora/rtc2/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->cancelTimer()V
goto :goto_99
:cond_76
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "start bluetooth sco timeout, actual routing: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->queryCurrentAudioRouting()I
move-result v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v4, v0}, Lio/agora/rtc2/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->cancelTimer()V
const/16 v0, 0x406
invoke-direct {p0, v0}, Lio/agora/rtc2/internal/AudioRoutingController;->nativeAudioRoutingError(I)V
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->checkFallbackA2dpIfNeed()V
:goto_99
return-void
.end method
.method private btStateAsString(I)Ljava/lang/String;
.registers 4
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"state"
}
.end annotation
if-eqz p1, :cond_26
const/4 v0, 0x1
if-eq p1, v0, :cond_23
const/4 v0, 0x2
if-eq p1, v0, :cond_20
const/4 v0, 0x3
if-eq p1, v0, :cond_1d
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Unknown "
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;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
goto :goto_28
:cond_1d
const-string p1, "SCO_DISCONNECTED"
goto :goto_28
:cond_20
const-string p1, "SCO_DISCONNECTING"
goto :goto_28
:cond_23
const-string p1, "SCO_CONNECTED"
goto :goto_28
:cond_26
const-string p1, "SCO_CONNECTING"
:goto_28
return-object p1
.end method
.method private cancelTimer()V
.registers 3
const/4 v0, 0x0
iput v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mScoConnectionAttemps:I
const-string v0, "AudioRoute"
const-string v1, "cancel bluetooth timer"
invoke-static {v0, v1}, Lio/agora/rtc2/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
iget-object v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mEventHandler:Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;
iget-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->bluetoothTimeoutRunnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;->removeCallbacks(Ljava/lang/Runnable;)V
return-void
.end method
.method private changeState(I)Lio/agora/rtc2/internal/AudioRoutingController$ControllerState;
.registers 3
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"state"
}
.end annotation
const/4 v0, 0x2
if-ne p1, v0, :cond_15
iget-object p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mStopState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerStopState;
if-nez p1, :cond_f
new-instance p1, Lio/agora/rtc2/internal/AudioRoutingController$ControllerStopState;
invoke-direct {p1, p0}, Lio/agora/rtc2/internal/AudioRoutingController$ControllerStopState;-><init>(Lio/agora/rtc2/internal/AudioRoutingController;)V
iput-object p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mStopState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerStopState;
goto :goto_12
:cond_f
invoke-virtual {p1}, Lio/agora/rtc2/internal/AudioRoutingController$ControllerStopState;->reset()V
:goto_12
iget-object p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mStopState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerStopState;
return-object p1
:cond_15
const/4 v0, 0x1
if-ne p1, v0, :cond_2a
iget-object p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mStartState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerStartState;
if-nez p1, :cond_24
new-instance p1, Lio/agora/rtc2/internal/AudioRoutingController$ControllerStartState;
invoke-direct {p1, p0}, Lio/agora/rtc2/internal/AudioRoutingController$ControllerStartState;-><init>(Lio/agora/rtc2/internal/AudioRoutingController;)V
iput-object p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mStartState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerStartState;
goto :goto_27
:cond_24
invoke-virtual {p1}, Lio/agora/rtc2/internal/AudioRoutingController$ControllerStartState;->reset()V
:goto_27
iget-object p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mStartState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerStartState;
return-object p1
:cond_2a
iget-object p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mErrorState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerErrorState;
if-nez p1, :cond_37
new-instance p1, Lio/agora/rtc2/internal/AudioRoutingController$ControllerErrorState;
const/4 v0, 0x0
invoke-direct {p1, p0, v0}, Lio/agora/rtc2/internal/AudioRoutingController$ControllerErrorState;-><init>(Lio/agora/rtc2/internal/AudioRoutingController;Lio/agora/rtc2/internal/AudioRoutingController$1;)V
iput-object p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mErrorState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerErrorState;
goto :goto_3a
:cond_37
invoke-virtual {p1}, Lio/agora/rtc2/internal/AudioRoutingController$ControllerErrorState;->reset()V
:goto_3a
iget-object p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mErrorState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerErrorState;
return-object p1
.end method
.method private checkFallbackA2dpIfNeed()V
.registers 3
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioManager()Landroid/media/AudioManager;
move-result-object v0
if-eqz v0, :cond_16
iget-boolean v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTHeadsetPlugged:Z
if-eqz v1, :cond_16
invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothA2dpOn()Z
move-result v0
if-nez v0, :cond_11
goto :goto_16
:cond_11
const/4 v0, 0x4
invoke-direct {p0, v0}, Lio/agora/rtc2/internal/AudioRoutingController;->nativeAudioRoutingCallbackEvent(I)V
return-void
:cond_16
:goto_16
const-string v0, "AudioRoute"
const-string v1, "could not use a2dp also.."
invoke-static {v0, v1}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
const/4 v0, 0x0
iput-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTHeadsetPlugged:Z
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->resetAudioRouting()V
return-void
.end method
.method private doSetAudioOutputRouting(I)I
.registers 7
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"routing"
}
.end annotation
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "set audio output routing from "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mCurrentRouting:I
invoke-direct {p0, v1}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioRouteDesc(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, " to "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioRouteDesc(I)Ljava/lang/String;
move-result-object v1
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
const/4 v0, 0x0
:try_start_29
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioManager()Landroid/media/AudioManager;
move-result-object v2
if-eqz v2, :cond_38
const/4 v3, 0x3
if-ne p1, v3, :cond_34
const/4 v3, 0x1
goto :goto_35
:cond_34
move v3, v0
:goto_35
invoke-virtual {v2, v3}, Landroid/media/AudioManager;->setSpeakerphoneOn(Z)V
:cond_38
invoke-virtual {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->queryCurrentAudioRouting()I
move-result v2
if-eq v2, p1, :cond_6f
invoke-virtual {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->queryCurrentAudioRouting()I
move-result v2
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "different audio routing from target "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v4, ", actual routing: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v4, "["
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-direct {p0, v2}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioRouteDesc(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, "]"
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
:cond_6f
invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioRoutingController;->updateBluetoothSco(I)I
iget v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mCurrentRouting:I
if-ne p1, v2, :cond_8b
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "audio routing not changed, ignore: "
invoke-virtual {v2, v3}, 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}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v1, p1}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
return v0
:cond_8b
iput p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mCurrentRouting:I
invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioRoutingController;->notifyAudioRoutingChanged(I)V
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "audio routing changed to "
invoke-virtual {p1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mCurrentRouting:I
invoke-direct {p0, v2}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioRouteDesc(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {p1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v1, p1}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
:try_end_aa
.catch Ljava/lang/Exception; {:try_start_29 .. :try_end_aa} :catch_ab
goto :goto_b1
:catch_ab
move-exception p1
const-string v2, "set audio output routing failed:"
invoke-static {v1, v2, p1}, Lio/agora/rtc2/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:goto_b1
return v0
.end method
.method private doStartBTSco(Landroid/media/AudioManager;)V
.registers 10
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"am"
}
.end annotation
const-string v0, "]"
const-string v1, "["
const-string v2, " "
const-string v3, "AudioRoute"
:try_start_8
invoke-virtual {p1}, Landroid/media/AudioManager;->getMode()I
move-result v4
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "doStartBTSco "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget v6, Landroid/os/Build$VERSION;->SDK_INT:I
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v6, " sco on: "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Landroid/media/AudioManager;->isBluetoothScoOn()Z
move-result v6
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v5, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v5, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-direct {p0, v4}, Lio/agora/rtc2/internal/AudioRoutingController;->modeAsString(I)Ljava/lang/String;
move-result-object v4
invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-static {v3, v4}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
sget v4, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v5, 0x16
const/4 v6, 0x1
const/4 v7, 0x0
if-ge v4, v5, :cond_4d
invoke-virtual {p1, v7, v6}, Landroid/media/AudioManager;->setStreamMute(IZ)V
goto :goto_50
:cond_4d
invoke-virtual {p1, v7, v6, v7}, Landroid/media/AudioManager;->setStreamVolume(III)V
:goto_50
invoke-virtual {p1}, Landroid/media/AudioManager;->isBluetoothScoOn()Z
move-result v4
if-eqz v4, :cond_63
invoke-virtual {p1}, Landroid/media/AudioManager;->stopBluetoothSco()V
const-wide/16 v4, 0x258
invoke-static {v4, v5}, Ljava/lang/Thread;->sleep(J)V
const-string v4, "doStartBTSco in sco already on, try stop old connect firstly!"
invoke-static {v3, v4}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
:cond_63
invoke-virtual {p1}, Landroid/media/AudioManager;->startBluetoothSco()V
:try_end_66
.catch Ljava/lang/Exception; {:try_start_8 .. :try_end_66} :catch_67
goto :goto_6d
:catch_67
move-exception v4
const-string v5, "doStartBTSco fail "
invoke-static {v3, v5, v4}, Lio/agora/rtc2/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:goto_6d
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "doStartBTSco done sco on: "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Landroid/media/AudioManager;->isBluetoothScoOn()Z
move-result v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Landroid/media/AudioManager;->getMode()I
move-result v2
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Landroid/media/AudioManager;->getMode()I
move-result p1
invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioRoutingController;->modeAsString(I)Ljava/lang/String;
move-result-object p1
invoke-virtual {v4, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-static {v3, p1}, Lio/agora/rtc2/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method private doStopBTSco(Landroid/media/AudioManager;)V
.registers 4
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"am"
}
.end annotation
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "doStopBTSco "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " sco on: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Landroid/media/AudioManager;->isBluetoothScoOn()Z
move-result v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)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
:try_start_24
invoke-virtual {p1}, Landroid/media/AudioManager;->stopBluetoothSco()V
sget p1, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_29
.catch Ljava/lang/Exception; {:try_start_24 .. :try_end_29} :catch_2a
goto :goto_2e
:catch_2a
move-exception p1
invoke-virtual {p1}, Ljava/lang/Exception;->printStackTrace()V
:goto_2e
return-void
.end method
.method private evtAsString(I)Ljava/lang/String;
.registers 4
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"evt"
}
.end annotation
const/4 v0, 0x1
if-eq p1, v0, :cond_51
const/4 v0, 0x2
if-eq p1, v0, :cond_4e
const/4 v0, 0x3
if-eq p1, v0, :cond_4b
const/4 v0, 0x4
if-eq p1, v0, :cond_48
const/16 v0, 0xa
if-eq p1, v0, :cond_45
const/16 v0, 0xb
if-eq p1, v0, :cond_42
const/16 v0, 0xe
if-eq p1, v0, :cond_3f
const/16 v0, 0x10
if-eq p1, v0, :cond_3c
const/16 v0, 0x14
if-eq p1, v0, :cond_39
const/16 v0, 0x16
if-eq p1, v0, :cond_36
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "evt "
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;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
goto :goto_53
:cond_36
const-string p1, "EVT_PHONE_STATE_CHANGED"
goto :goto_53
:cond_39
const-string p1, "EVT_CHANNEL_PROFILE"
goto :goto_53
:cond_3c
const-string p1, "CMD_FORCE_TO_A2DP"
goto :goto_53
:cond_3f
const-string p1, "CMD_MUTE_VIDEO_REMOTES"
goto :goto_53
:cond_42
const-string p1, "CMD_FORCE_TO_SPEAKER"
goto :goto_53
:cond_45
const-string p1, "CMD_SET_DEFAULT_ROUTING"
goto :goto_53
:cond_48
const-string p1, "EVT_USB"
goto :goto_53
:cond_4b
const-string p1, "EVT_BT_SCO"
goto :goto_53
:cond_4e
const-string p1, "EVT_BT_HEADSET"
goto :goto_53
:cond_51
const-string p1, "EVT_HEADSET"
:goto_53
return-object p1
.end method
.method private getAudioManager()Landroid/media/AudioManager;
.registers 3
sget-object v0, Lio/agora/rtc2/internal/AudioRoutingController;->mockedAudioManager:Landroid/media/AudioManager;
if-eqz v0, :cond_5
return-object v0
:cond_5
iget-object v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->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-nez v0, :cond_11
const/4 v0, 0x0
return-object v0
:cond_11
const-string v1, "audio"
invoke-virtual {v0, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/media/AudioManager;
return-object v0
.end method
.method private getAudioRouteDesc(I)Ljava/lang/String;
.registers 2
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"route"
}
.end annotation
packed-switch p1, :pswitch_data_22
:pswitch_3
const-string p1, "Unknown"
return-object p1
:pswitch_6
const-string p1, "USB_HEADSET"
return-object p1
:pswitch_9
const-string p1, "USBDevice"
return-object p1
:pswitch_c
const-string p1, "HeadsetBluetooth"
return-object p1
:pswitch_f
const-string p1, "Loudspeaker"
return-object p1
:pswitch_12
const-string p1, "Speakerphone"
return-object p1
:pswitch_15
const-string p1, "HeadsetOnly"
return-object p1
:pswitch_18
const-string p1, "Earpiece"
return-object p1
:pswitch_1b
const-string p1, "Headset"
return-object p1
:pswitch_1e
const-string p1, "Default"
return-object p1
nop
:pswitch_data_22
.packed-switch -0x1
:pswitch_1e
:pswitch_1b
:pswitch_18
:pswitch_15
:pswitch_12
:pswitch_f
:pswitch_c
:pswitch_9
:pswitch_3
:pswitch_6
.end packed-switch
.end method
.method private getCurrSystemRouting()I
.registers 10
const-string v0, "AudioRoute"
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioManager()Landroid/media/AudioManager;
move-result-object v1
const/4 v2, 0x3
const/4 v3, 0x0
:try_start_8
const-class v4, Landroid/media/AudioManager;
const-string v5, "getDevicesForStream"
const/4 v6, 0x1
new-array v7, v6, [Ljava/lang/Class;
sget-object v8, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v3
invoke-virtual {v4, v5, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v4
new-array v5, v6, [Ljava/lang/Object;
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v6
aput-object v6, v5, v3
invoke-virtual {v4, v1, v5}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/Integer;
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v1
:try_end_29
.catch Ljava/lang/Exception; {:try_start_8 .. :try_end_29} :catch_40
:try_start_29
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "System playout device: "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
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 v4
invoke-static {v0, v4}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
:try_end_3d
.catch Ljava/lang/Exception; {:try_start_29 .. :try_end_3d} :catch_3e
goto :goto_47
:catch_3e
move-exception v4
goto :goto_42
:catch_40
move-exception v4
move v1, v3
:goto_42
const-string v5, "Error while getDevicesForStream! "
invoke-static {v0, v5, v4}, Lio/agora/rtc2/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:goto_47
const/4 v0, 0x6
const/4 v4, 0x2
if-eq v1, v4, :cond_7b
const/4 v2, 0x4
if-eq v1, v2, :cond_7a
const/16 v2, 0x8
if-eq v1, v2, :cond_78
const/16 v2, 0x80
if-eq v1, v2, :cond_76
const/16 v2, 0x100
if-eq v1, v2, :cond_76
const/16 v2, 0x200
if-eq v1, v2, :cond_76
const/16 v2, 0x400
if-eq v1, v2, :cond_74
const/16 v2, 0x4000
if-eq v1, v2, :cond_72
const/high16 v2, 0x4000000
if-eq v1, v2, :cond_72
const/high16 v2, 0x800000
and-int/2addr v1, v2
if-eqz v1, :cond_70
goto :goto_72
:cond_70
const/4 v2, -0x1
goto :goto_7b
:cond_72
:goto_72
move v2, v0
goto :goto_7b
:cond_74
const/4 v2, 0x7
goto :goto_7b
:cond_76
const/4 v2, 0x5
goto :goto_7b
:cond_78
move v2, v4
goto :goto_7b
:cond_7a
move v2, v3
:cond_7b
:goto_7b
return v2
.end method
.method private isAudioOnly()Z
.registers 2
iget-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mVideoDisabled:Z
if-nez v0, :cond_f
iget-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mMuteLocal:Z
if-eqz v0, :cond_d
iget-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mMuteRemotes:Z
if-eqz v0, :cond_d
goto :goto_f
:cond_d
const/4 v0, 0x0
goto :goto_10
:cond_f
:goto_f
const/4 v0, 0x1
:goto_10
return v0
.end method
.method private modeAsString(I)Ljava/lang/String;
.registers 4
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"mode"
}
.end annotation
if-eqz p1, :cond_26
const/4 v0, 0x1
if-eq p1, v0, :cond_23
const/4 v0, 0x2
if-eq p1, v0, :cond_20
const/4 v0, 0x3
if-eq p1, v0, :cond_1d
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Unknown "
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;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
goto :goto_28
:cond_1d
const-string p1, "MODE_IN_COMMUNICATION"
goto :goto_28
:cond_20
const-string p1, "MODE_IN_CALL"
goto :goto_28
:cond_23
const-string p1, "MODE_RINGTONE"
goto :goto_28
:cond_26
const-string p1, "MODE_NORMAL"
:goto_28
return-object p1
.end method
.method private native nativeAudioDeviceStateChanged(Ljava/lang/String;Ljava/lang/String;II)V
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0,
0x0,
0x0,
0x0
}
names = {
"devId",
"devName",
"devType",
"devState"
}
.end annotation
.end method
.method private native nativeAudioRoutingCallbackEvent(I)V
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"cbEvt"
}
.end annotation
.end method
.method private native nativeAudioRoutingChanged(I)V
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"routing"
}
.end annotation
.end method
.method private native nativeAudioRoutingError(I)V
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"errCode"
}
.end annotation
.end method
.method private notifyAudioRoutingChanged(I)V
.registers 4
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x10
}
names = {
"routing"
}
.end annotation
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Enter notifyAudioRoutingChanged: "
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;
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-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mDisposed:Z
if-eqz v0, :cond_20
const-string p1, "notifyAudioRoutingChanged returned cause of disposed"
invoke-static {v1, p1}, Lio/agora/rtc2/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
return-void
:cond_20
invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioRoutingController;->nativeAudioRoutingChanged(I)V
return-void
.end method
.method private resetAudioRouting()V
.registers 4
iget-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTHeadsetPlugged:Z
const/4 v1, 0x6
if-eqz v0, :cond_c
iget-boolean v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsWiredHeadsetPlugged:Z
if-eqz v2, :cond_c
iget v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mDefaultSystemRouting:I
goto :goto_44
:cond_c
if-eqz v0, :cond_10
const/4 v1, 0x5
goto :goto_44
:cond_10
iget-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsWiredHeadsetPlugged:Z
if-eqz v0, :cond_17
iget v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mHeadsetType:I
goto :goto_44
:cond_17
iget v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mForcedRouting:I
const/4 v2, -0x1
if-eq v0, v2, :cond_1e
:cond_1c
:goto_1c
move v1, v0
goto :goto_44
:cond_1e
sget-object v0, Lio/agora/rtc2/internal/AudioRoutingController;->deviceSpecialMonitor:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedSpecialMonitor;
if-eqz v0, :cond_2f
invoke-interface {v0}, Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedSpecialMonitor;->GetUSBRouteType()I
move-result v0
if-eq v0, v2, :cond_2f
sget-object v0, Lio/agora/rtc2/internal/AudioRoutingController;->deviceSpecialMonitor:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedSpecialMonitor;
invoke-interface {v0}, Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedSpecialMonitor;->GetUSBRouteType()I
move-result v1
goto :goto_44
:cond_2f
iget-object v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mAudioDeviceInventory:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;
invoke-interface {v0, v1}, Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;->isDeviceAvaliable(I)Z
move-result v0
if-eqz v0, :cond_38
goto :goto_44
:cond_38
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->getCurrSystemRouting()I
move-result v0
const/4 v2, 0x7
if-eq v0, v2, :cond_1c
if-ne v0, v1, :cond_42
goto :goto_1c
:cond_42
iget v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mDefaultRouting:I
:goto_44
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "reset audio routing, default routing: "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mDefaultRouting:I
invoke-direct {p0, v2}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioRouteDesc(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, ", current routing: "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mCurrentRouting:I
invoke-direct {p0, v2}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioRouteDesc(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, ", target routing: "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-direct {p0, v1}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioRouteDesc(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, ", actual system routing: "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->queryCurrentAudioRouting()I
move-result v2
invoke-direct {p0, v2}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioRouteDesc(I)Ljava/lang/String;
move-result-object v2
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
const-string v2, "AudioRoute"
invoke-static {v2, v0}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
iget v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mCurrentRouting:I
if-ne v0, v1, :cond_96
invoke-virtual {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->queryCurrentAudioRouting()I
move-result v0
iget v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mCurrentRouting:I
if-eq v0, v2, :cond_99
:cond_96
invoke-direct {p0, v1}, Lio/agora/rtc2/internal/AudioRoutingController;->doSetAudioOutputRouting(I)I
:cond_99
return-void
.end method
.method private selectRoutingForCommunication(I)V
.registers 5
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"route"
}
.end annotation
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioManager()Landroid/media/AudioManager;
move-result-object v0
if-eqz v0, :cond_4f
invoke-virtual {v0}, Landroid/media/AudioManager;->getMode()I
move-result v1
const/4 v2, 0x3
if-eq v1, v2, :cond_e
goto :goto_4f
:cond_e
const/4 v1, 0x1
if-ne p1, v1, :cond_18
invoke-virtual {v0}, Landroid/media/AudioManager;->isWiredHeadsetOn()Z
move-result v0
if-eqz v0, :cond_18
return-void
:cond_18
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, " try select prefere communication 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;
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
if-eqz p1, :cond_3e
const/4 v0, 0x2
if-eq p1, v0, :cond_3e
const/16 v0, 0x8
if-eq p1, v0, :cond_3e
const/4 v0, 0x5
if-eq p1, v0, :cond_3e
const/4 v0, 0x6
if-eq p1, v0, :cond_3e
goto :goto_4c
:cond_3e
iget-object v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mAudioDeviceInventory:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;
invoke-interface {v0, p1}, Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;->isDeviceAvaliable(I)Z
move-result v0
if-nez v0, :cond_4c
const-string p1, " prefere communication targe route is not connected"
invoke-static {v1, p1}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
return-void
:cond_4c
:goto_4c
invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioRoutingController;->doSetAudioOutputRouting(I)I
:cond_4f
:goto_4f
return-void
.end method
.method public static setAudioDeviceChangedSpecialMonitor(Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedSpecialMonitor;)V
.registers 3
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"specialMonitor"
}
.end annotation
const-string v0, "AudioRoute"
const-string v1, "setAudioDeviceChangedSpecialMonitor"
invoke-static {v0, v1}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
sput-object p0, Lio/agora/rtc2/internal/AudioRoutingController;->deviceSpecialMonitor:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedSpecialMonitor;
return-void
.end method
.method public static setMockBlueToothEnable(Z)V
.registers 1
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"mockBlueToothEnable"
}
.end annotation
sput-boolean p0, Lio/agora/rtc2/internal/AudioRoutingController;->mockBlueToothEnable:Z
return-void
.end method
.method public static setMockedAudioManager(Landroid/media/AudioManager;)V
.registers 1
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"mockedAudioManager"
}
.end annotation
sput-object p0, Lio/agora/rtc2/internal/AudioRoutingController;->mockedAudioManager:Landroid/media/AudioManager;
return-void
.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/AudioRoutingController;->mockedBroadcaster:Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;
invoke-static {p0}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;->setMockedBroadcaster(Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;)V
return-void
.end method
.method private setupHotPlugDeviceInitValue()V
.registers 4
iget-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTHeadsetPlugged:Z
const/4 v1, 0x6
const/4 v2, -0x1
if-eqz v0, :cond_8
const/4 v1, 0x5
goto :goto_19
:cond_8
iget-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsWiredHeadsetPlugged:Z
if-eqz v0, :cond_f
iget v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mHeadsetType:I
goto :goto_19
:cond_f
iget-object v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mAudioDeviceInventory:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;
invoke-interface {v0, v1}, Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;->isDeviceAvaliable(I)Z
move-result v0
if-eqz v0, :cond_18
goto :goto_19
:cond_18
move v1, v2
:goto_19
if-eq v1, v2, :cond_1e
invoke-direct {p0, v1}, Lio/agora/rtc2/internal/AudioRoutingController;->notifyAudioRoutingChanged(I)V
:cond_1e
return-void
.end method
.method private startBtSco()V
.registers 5
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioManager()Landroid/media/AudioManager;
move-result-object v0
if-eqz v0, :cond_76
invoke-virtual {v0}, Landroid/media/AudioManager;->getMode()I
move-result v1
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "try to opening bt sco "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v3, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mScoConnectionAttemps: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;
invoke-virtual {v2, v1}, 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;
invoke-direct {p0, v1}, Lio/agora/rtc2/internal/AudioRoutingController;->modeAsString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "] "
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mBtScoState:I
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mBtScoState:I
invoke-direct {p0, v1}, Lio/agora/rtc2/internal/AudioRoutingController;->btStateAsString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "] sco on: "
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothScoOn()Z
move-result v1
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 v1
const-string v2, "AudioRoute"
invoke-static {v2, v1}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Off call sco support = "
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothScoAvailableOffCall()Z
move-result v3
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Lio/agora/rtc2/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
const/4 v1, 0x0
iput v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mBtScoState:I
invoke-direct {p0, v0}, Lio/agora/rtc2/internal/AudioRoutingController;->doStartBTSco(Landroid/media/AudioManager;)V
:cond_76
return-void
.end method
.method private startTimer()V
.registers 5
iget v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->dynamic_timeout:I
iget v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mScoConnectionAttemps:I
mul-int/lit16 v1, v1, 0xbb8
add-int/2addr v0, v1
iput v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->dynamic_timeout:I
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "start bluetooth timer "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->dynamic_timeout:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)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;->w(Ljava/lang/String;Ljava/lang/String;)V
iget-object v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mEventHandler:Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;
iget-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->bluetoothTimeoutRunnable:Ljava/lang/Runnable;
const-wide/16 v2, 0xbb8
invoke-virtual {v0, v1, v2, v3}, Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;->postDelayed(Ljava/lang/Runnable;J)Z
return-void
.end method
.method private stopBtSco()V
.registers 5
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioManager()Landroid/media/AudioManager;
move-result-object v0
if-eqz v0, :cond_5c
invoke-virtual {v0}, Landroid/media/AudioManager;->getMode()I
move-result v1
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "try to stopping bt sco "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, 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;
invoke-direct {p0, v1}, Lio/agora/rtc2/internal/AudioRoutingController;->modeAsString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "] "
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mBtScoState:I
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mBtScoState:I
invoke-direct {p0, v1}, Lio/agora/rtc2/internal/AudioRoutingController;->btStateAsString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "] sco on: "
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothScoOn()Z
move-result v1
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 v1
const-string v2, "AudioRoute"
invoke-static {v2, v1}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothScoOn()Z
move-result v1
if-nez v1, :cond_56
const/4 v1, 0x3
goto :goto_57
:cond_56
const/4 v1, 0x2
:goto_57
iput v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mBtScoState:I
invoke-direct {p0, v0}, Lio/agora/rtc2/internal/AudioRoutingController;->doStopBTSco(Landroid/media/AudioManager;)V
:cond_5c
return-void
.end method
.method private updateBluetoothSco(I)I
.registers 7
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"targetRouting"
}
.end annotation
iget-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mPhoneInCall:Z
const/4 v1, 0x0
const-string v2, "AudioRoute"
if-eqz v0, :cond_d
const-string p1, "not process updateBluetoothSco in call"
invoke-static {v2, p1}, Lio/agora/rtc2/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return v1
:cond_d
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "updateBluetoothSco sco started: "
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-boolean v3, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTScoStarted:Z
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
const-string v3, ", audio route target: "
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, "["
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-direct {p0, p1}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioRouteDesc(I)Ljava/lang/String;
move-result-object v4
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v4, "] current: "
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v4, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mCurrentRouting:I
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v3, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mCurrentRouting:I
invoke-direct {p0, v3}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioRouteDesc(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, "], engine role: "
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v3, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mEngineRole:I
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v2, v0}, Lio/agora/rtc2/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
const/4 v0, 0x5
if-ne p1, v0, :cond_77
iget-boolean p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mForceUseA2dp:Z
if-nez p1, :cond_6d
const-string p1, "enable hfp"
invoke-static {v2, p1}, Lio/agora/rtc2/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
const/4 p1, 0x1
iput-boolean p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTScoStarted:Z
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->startTimer()V
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->startBtSco()V
goto :goto_87
:cond_6d
iget-boolean p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTScoStarted:Z
if-eqz p1, :cond_87
const-string p1, "enable a2dp"
invoke-static {v2, p1}, Lio/agora/rtc2/internal/Logging;->w(Ljava/lang/String;Ljava/lang/String;)V
goto :goto_7f
:cond_77
iget p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mCurrentRouting:I
if-ne p1, v0, :cond_87
iget-boolean p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTScoStarted:Z
if-eqz p1, :cond_87
:goto_7f
iput-boolean v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTScoStarted:Z
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->cancelTimer()V
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->stopBtSco()V
:cond_87
:goto_87
return v1
.end method
# virtual methods
.method public checkVersion(I)Z
.registers 5
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"version"
}
.end annotation
iget v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mVersionInUsed:I
const/4 v1, 0x1
if-nez v0, :cond_d
if-ne p1, v1, :cond_d
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x17
if-ge v0, v2, :cond_13
:cond_d
iget v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mVersionInUsed:I
if-ne v0, v1, :cond_16
if-nez p1, :cond_16
:cond_13
iput p1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mVersionInUsed:I
goto :goto_17
:cond_16
const/4 v1, 0x0
:goto_17
if-eqz v1, :cond_1f
invoke-virtual {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->dispose()V
invoke-virtual {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->initialize()I
:cond_1f
return v1
.end method
.method public dispose()V
.registers 4
const-string v0, "AudioRoute"
iget-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mThreadChecker:Lio/agora/base/internal/ThreadUtils$ThreadChecker;
invoke-virtual {v1}, Lio/agora/base/internal/ThreadUtils$ThreadChecker;->checkIsOnValidThread()V
iget-boolean v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mDisposed:Z
if-eqz v1, :cond_c
return-void
:cond_c
const/4 v1, 0x1
iput-boolean v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mDisposed:Z
const-wide/16 v1, 0x0
iput-wide v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mNativeHandle:J
iget-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mAudioDeviceInventory:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;
if-eqz v1, :cond_1a
invoke-interface {v1}, Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;->dispose()V
:cond_1a
:try_start_1a
iget-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mScoStateReceiver:Lio/agora/rtc2/internal/AudioRoutingController$AudioManagerScoStateReceiver;
if-eqz v1, :cond_42
invoke-virtual {v1}, Lio/agora/rtc2/internal/AudioRoutingController$AudioManagerScoStateReceiver;->getRegistered()Z
move-result v1
if-eqz v1, :cond_42
sget-object v1, Lio/agora/rtc2/internal/AudioRoutingController;->mockedBroadcaster:Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;
if-eqz v1, :cond_2d
iget-object v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mScoStateReceiver:Lio/agora/rtc2/internal/AudioRoutingController$AudioManagerScoStateReceiver;
invoke-interface {v1, v2}, Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;->unRegisterReceiver(Landroid/content/BroadcastReceiver;)V
:cond_2d
iget-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mContext:Ljava/lang/ref/WeakReference;
invoke-virtual {v1}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/content/Context;
if-eqz v1, :cond_3c
iget-object v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mScoStateReceiver:Lio/agora/rtc2/internal/AudioRoutingController$AudioManagerScoStateReceiver;
invoke-virtual {v1, v2}, Landroid/content/Context;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V
:cond_3c
iget-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mScoStateReceiver:Lio/agora/rtc2/internal/AudioRoutingController$AudioManagerScoStateReceiver;
const/4 v2, 0x0
invoke-virtual {v1, v2}, Lio/agora/rtc2/internal/AudioRoutingController$AudioManagerScoStateReceiver;->setRegistered(Z)V
:cond_42
iget-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mEventHandler:Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;
invoke-virtual {v1}, Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;->getLooper()Landroid/os/Looper;
move-result-object v1
invoke-virtual {v1}, Landroid/os/Looper;->quit()V
:try_end_4b
.catch Ljava/lang/Exception; {:try_start_1a .. :try_end_4b} :catch_4c
goto :goto_52
:catch_4c
move-exception v1
const-string v2, "AudioRoutingController dispose fail: "
invoke-static {v0, v2, v1}, Lio/agora/rtc2/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
:goto_52
const-string v1, "dispose"
invoke-static {v0, v1}, Lio/agora/rtc2/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method public getCurrentUsbAudioDevicePID(I)Ljava/lang/String;
.registers 5
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"mic_or_spk"
}
.end annotation
sget-object v0, Lio/agora/rtc2/internal/AudioRoutingController;->deviceSpecialMonitor:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedSpecialMonitor;
if-eqz v0, :cond_9
invoke-interface {v0, p1}, Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedSpecialMonitor;->GetUSBDevicePID(I)Ljava/lang/String;
move-result-object v0
goto :goto_a
:cond_9
const/4 v0, 0x0
:goto_a
const/4 v1, 0x2
new-array v1, v1, [Ljava/lang/Object;
const/4 v2, 0x0
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, v1, v2
const/4 p1, 0x1
if-nez v0, :cond_1a
const-string v2, "null"
goto :goto_1b
:cond_1a
move-object v2, v0
:goto_1b
aput-object v2, v1, p1
const-string p1, "getPIDFromNative: mic_or_spk=%d, pid=%s"
invoke-static {p1, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
const-string v1, "AudioRoute"
invoke-static {v1, p1}, Lio/agora/rtc2/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-object v0
.end method
.method public getCurrentUsbAudioDeviceVID(I)Ljava/lang/String;
.registers 5
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"mic_or_spk"
}
.end annotation
sget-object v0, Lio/agora/rtc2/internal/AudioRoutingController;->deviceSpecialMonitor:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedSpecialMonitor;
if-eqz v0, :cond_9
invoke-interface {v0, p1}, Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedSpecialMonitor;->GetUSBDeviceVID(I)Ljava/lang/String;
move-result-object v0
goto :goto_a
:cond_9
const/4 v0, 0x0
:goto_a
const/4 v1, 0x2
new-array v1, v1, [Ljava/lang/Object;
const/4 v2, 0x0
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, v1, v2
const/4 p1, 0x1
if-nez v0, :cond_1a
const-string v2, "null"
goto :goto_1b
:cond_1a
move-object v2, v0
:goto_1b
aput-object v2, v1, p1
const-string p1, "getVIDFromNative: mic_or_spk=%d, vid=%s"
invoke-static {p1, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
const-string v1, "AudioRoute"
invoke-static {v1, p1}, Lio/agora/rtc2/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
return-object v0
.end method
.method public getNativeHandle()J
.registers 3
iget-object v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mThreadChecker:Lio/agora/base/internal/ThreadUtils$ThreadChecker;
invoke-virtual {v0}, Lio/agora/base/internal/ThreadUtils$ThreadChecker;->checkIsOnValidThread()V
iget-wide v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mNativeHandle:J
return-wide v0
.end method
.method public initialize()I
.registers 10
const-string v0, "AudioRoute"
const-string v1, "initialize +"
invoke-static {v0, v1}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
iget-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mContext:Ljava/lang/ref/WeakReference;
invoke-virtual {v1}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/content/Context;
const/4 v2, -0x1
if-nez v1, :cond_18
const-string v1, "context has been GCed"
:goto_14
invoke-static {v0, v1}, Lio/agora/rtc2/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;)V
return v2
:cond_18
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioManager()Landroid/media/AudioManager;
move-result-object v3
if-nez v3, :cond_21
const-string v1, "invalid context: can\'t get AudioManager"
goto :goto_14
:cond_21
new-instance v4, Lio/agora/rtc2/internal/AudioRoutingController$ControllerAudioDeviceChangeCallback;
const/4 v5, 0x0
invoke-direct {v4, p0, v5}, Lio/agora/rtc2/internal/AudioRoutingController$ControllerAudioDeviceChangeCallback;-><init>(Lio/agora/rtc2/internal/AudioRoutingController;Lio/agora/rtc2/internal/AudioRoutingController$1;)V
iput-object v4, p0, Lio/agora/rtc2/internal/AudioRoutingController;->ctrlAudioDeviceCb:Lio/agora/rtc2/internal/AudioRoutingController$ControllerAudioDeviceChangeCallback;
invoke-static {v4}, Lio/agora/base/internal/voiceengine/WebRtcAudioRecord;->setRecordRouteCallback(Lio/agora/base/internal/voiceengine/WebRtcAudioRecord$AudioRecordRouteCallback;)V
iget-object v4, p0, Lio/agora/rtc2/internal/AudioRoutingController;->ctrlAudioDeviceCb:Lio/agora/rtc2/internal/AudioRoutingController$ControllerAudioDeviceChangeCallback;
invoke-static {v4}, Lio/agora/base/internal/voiceengine/WebRtcAudioTrack;->setTrackRouteCallback(Lio/agora/base/internal/voiceengine/WebRtcAudioTrack$AudioTrackRouteCallback;)V
new-instance v4, Landroid/os/HandlerThread;
invoke-direct {v4, v0}, Landroid/os/HandlerThread;-><init>(Ljava/lang/String;)V
invoke-virtual {v4}, Landroid/os/HandlerThread;->start()V
new-instance v6, Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;
invoke-virtual {v4}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper;
move-result-object v4
invoke-direct {v6, p0, v4}, Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;-><init>(Lio/agora/rtc2/internal/AudioRoutingController;Landroid/os/Looper;)V
iput-object v6, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mEventHandler:Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;
iget v4, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mVersionInUsed:I
const/4 v6, 0x1
if-ne v4, v6, :cond_55
sget v4, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v7, 0x17
if-lt v4, v7, :cond_55
new-instance v4, Lio/agora/rtc2/internal/AudioDeviceInventoryMorHigher;
invoke-direct {v4, v1}, Lio/agora/rtc2/internal/AudioDeviceInventoryMorHigher;-><init>(Landroid/content/Context;)V
goto :goto_5a
:cond_55
new-instance v4, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;
invoke-direct {v4, v1}, Lio/agora/rtc2/internal/AudioDeviceInventoryLowerThanM;-><init>(Landroid/content/Context;)V
:goto_5a
iput-object v4, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mAudioDeviceInventory:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;
iget-object v4, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mAudioDeviceInventory:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;
new-instance v7, Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedCallbackImpl;
invoke-direct {v7, p0, v5}, Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedCallbackImpl;-><init>(Lio/agora/rtc2/internal/AudioRoutingController;Lio/agora/rtc2/internal/AudioRoutingController$1;)V
invoke-interface {v4, v7}, Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;->setAudioDeviceChangeCallback(Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceChangedCallback;)V
iget-object v4, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mAudioDeviceInventory:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;
invoke-interface {v4}, Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;->initialize()V
sget-object v4, Lio/agora/rtc2/internal/AudioRoutingController;->mockedBroadcaster:Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;
const/4 v7, 0x0
if-eqz v4, :cond_7b
invoke-virtual {v3}, Landroid/media/AudioManager;->isWiredHeadsetOn()Z
move-result v4
iput-boolean v4, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsWiredHeadsetPlugged:Z
if-eqz v4, :cond_79
move v2, v7
:cond_79
iput v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mHeadsetType:I
:cond_7b
iget-object v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mAudioDeviceInventory:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;
invoke-interface {v2, v7}, Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;->isDeviceAvaliable(I)Z
move-result v2
const/4 v4, 0x2
if-eqz v2, :cond_89
iput-boolean v6, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsWiredHeadsetPlugged:Z
iput v7, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mHeadsetType:I
goto :goto_95
:cond_89
iget-object v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mAudioDeviceInventory:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;
invoke-interface {v2, v4}, Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;->isDeviceAvaliable(I)Z
move-result v2
if-eqz v2, :cond_95
iput-boolean v6, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsWiredHeadsetPlugged:Z
iput v4, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mHeadsetType:I
:cond_95
:goto_95
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, "Headset setup: Plugged = "
invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-boolean v8, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsWiredHeadsetPlugged:Z
invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
const-string v8, " mHeadsetType "
invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v8, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mHeadsetType:I
invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v0, v2}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
iget-object v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mAudioDeviceInventory:Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;
const/4 v8, 0x5
invoke-interface {v2, v8}, Lio/agora/rtc2/internal/AudioRoutingController$AudioDeviceInventory;->isDeviceAvaliable(I)Z
move-result v2
iput-boolean v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTHeadsetPlugged:Z
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, "BT Headset setup: Plugged = "
invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-boolean v8, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTHeadsetPlugged:Z
invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v0, v2}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
invoke-virtual {v3}, Landroid/media/AudioManager;->isBluetoothScoOn()Z
move-result v2
if-eqz v2, :cond_dc
move v2, v6
goto :goto_dd
:cond_dc
const/4 v2, 0x3
:goto_dd
iput v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mBtScoState:I
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "initial Bluetooth SCO state "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v3, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mBtScoState:I
if-ne v3, v6, :cond_f0
const-string v3, " enable "
goto :goto_f2
:cond_f0
const-string v3, " disable"
:goto_f2
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v0, v2}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
new-instance v2, Lio/agora/rtc2/internal/AudioRoutingController$AudioManagerScoStateReceiver;
invoke-direct {v2, p0, v5}, Lio/agora/rtc2/internal/AudioRoutingController$AudioManagerScoStateReceiver;-><init>(Lio/agora/rtc2/internal/AudioRoutingController;Lio/agora/rtc2/internal/AudioRoutingController$1;)V
iput-object v2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mScoStateReceiver:Lio/agora/rtc2/internal/AudioRoutingController$AudioManagerScoStateReceiver;
new-instance v2, Landroid/content/IntentFilter;
const-string v3, "android.media.ACTION_SCO_AUDIO_STATE_UPDATED"
invoke-direct {v2, v3}, Landroid/content/IntentFilter;-><init>(Ljava/lang/String;)V
iget-object v3, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mScoStateReceiver:Lio/agora/rtc2/internal/AudioRoutingController$AudioManagerScoStateReceiver;
invoke-virtual {v1, v3, v2}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
sget-object v1, Lio/agora/rtc2/internal/AudioRoutingController;->mockedBroadcaster:Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;
if-eqz v1, :cond_118
iget-object v3, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mScoStateReceiver:Lio/agora/rtc2/internal/AudioRoutingController$AudioManagerScoStateReceiver;
invoke-interface {v1, v3, v2}, Lio/agora/rtc2/internal/AudioRoutingController$MockedBroadcaseter;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)V
:cond_118
iget-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mScoStateReceiver:Lio/agora/rtc2/internal/AudioRoutingController$AudioManagerScoStateReceiver;
invoke-virtual {v1, v6}, Lio/agora/rtc2/internal/AudioRoutingController$AudioManagerScoStateReceiver;->setRegistered(Z)V
iput-boolean v7, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mDisposed:Z
invoke-direct {p0, v4}, Lio/agora/rtc2/internal/AudioRoutingController;->changeState(I)Lio/agora/rtc2/internal/AudioRoutingController$ControllerState;
move-result-object v1
iput-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mState:Lio/agora/rtc2/internal/AudioRoutingController$ControllerState;
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->setupHotPlugDeviceInitValue()V
const-string v1, "initialize -"
invoke-static {v0, v1}, Lio/agora/rtc2/internal/Logging;->i(Ljava/lang/String;Ljava/lang/String;)V
return v7
.end method
.method public queryCurrentAudioRouting()I
.registers 4
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->getAudioManager()Landroid/media/AudioManager;
move-result-object v0
:try_start_4
invoke-virtual {v0}, Landroid/media/AudioManager;->isSpeakerphoneOn()Z
move-result v1
if-eqz v1, :cond_c
const/4 v0, 0x3
return v0
:cond_c
invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothScoOn()Z
move-result v1
if-nez v1, :cond_2e
invoke-virtual {v0}, Landroid/media/AudioManager;->isBluetoothA2dpOn()Z
move-result v1
if-eqz v1, :cond_19
goto :goto_2e
:cond_19
invoke-virtual {v0}, Landroid/media/AudioManager;->isWiredHeadsetOn()Z
move-result v0
if-eqz v0, :cond_21
const/4 v0, 0x0
return v0
:cond_21
invoke-direct {p0}, Lio/agora/rtc2/internal/AudioRoutingController;->getCurrSystemRouting()I
move-result v0
:try_end_25
.catch Ljava/lang/Exception; {:try_start_4 .. :try_end_25} :catch_30
const/4 v1, 0x7
if-eq v0, v1, :cond_2d
const/4 v1, 0x6
if-ne v0, v1, :cond_2c
goto :goto_2d
:cond_2c
const/4 v0, 0x1
:cond_2d
:goto_2d
return v0
:cond_2e
:goto_2e
const/4 v0, 0x5
return v0
:catch_30
move-exception v0
const-string v1, "AudioRoute"
const-string v2, "fatal error @queryCurrentAudioRouting"
invoke-static {v1, v2, v0}, Lio/agora/rtc2/internal/Logging;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
const/4 v0, -0x1
return v0
.end method
.method public sendEvent(II)V
.registers 5
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0,
0x0
}
names = {
"event",
"arg"
}
.end annotation
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "sendEvent: ["
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, "], extra arg: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, "... "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mEventHandler:Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)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;->d(Ljava/lang/String;Ljava/lang/String;)V
iget-object v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mEventHandler:Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;
if-eqz v0, :cond_36
const/4 v1, 0x0
invoke-virtual {v0, p1, p2, v1}, Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;->obtainMessage(III)Landroid/os/Message;
move-result-object p1
iget-object p2, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mEventHandler:Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;
invoke-virtual {p2, p1}, Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;->sendMessage(Landroid/os/Message;)Z
:cond_36
return-void
.end method
.method public startMonitoring()I
.registers 3
const-string v0, "AudioRoute"
const-string v1, "startMonitoring()"
invoke-static {v0, v1}, Lio/agora/rtc2/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
iget-object v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mEventHandler:Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;
new-instance v1, Lio/agora/rtc2/internal/AudioRoutingController$2;
invoke-direct {v1, p0}, Lio/agora/rtc2/internal/AudioRoutingController$2;-><init>(Lio/agora/rtc2/internal/AudioRoutingController;)V
invoke-virtual {v0, v1}, Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;->post(Ljava/lang/Runnable;)Z
iget-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsBTHeadsetPlugged:Z
if-eqz v0, :cond_17
const/4 v0, 0x5
goto :goto_20
:cond_17
iget-boolean v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mIsWiredHeadsetPlugged:Z
if-eqz v0, :cond_1e
iget v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mHeadsetType:I
goto :goto_20
:cond_1e
iget v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mDefaultRouting:I
:goto_20
return v0
.end method
.method public stopMonitoring()V
.registers 3
const-string v0, "AudioRoute"
const-string v1, "stopMonitoring()"
invoke-static {v0, v1}, Lio/agora/rtc2/internal/Logging;->d(Ljava/lang/String;Ljava/lang/String;)V
iget-object v0, p0, Lio/agora/rtc2/internal/AudioRoutingController;->mEventHandler:Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;
new-instance v1, Lio/agora/rtc2/internal/AudioRoutingController$3;
invoke-direct {v1, p0}, Lio/agora/rtc2/internal/AudioRoutingController$3;-><init>(Lio/agora/rtc2/internal/AudioRoutingController;)V
invoke-virtual {v0, v1}, Lio/agora/rtc2/internal/AudioRoutingController$EventHandler;->post(Ljava/lang/Runnable;)Z
return-void
.end method