s.smali
.class public final Lcom/tencent/liteav/audio/route/s;
.super Landroid/content/BroadcastReceiver;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/tencent/liteav/audio/route/s$b;,
Lcom/tencent/liteav/audio/route/s$a;
}
.end annotation
# instance fields
.field final a:Landroid/content/Context;
.field b:Lcom/tencent/liteav/audio/route/s$b;
.field c:Z
.field private final d:Lcom/tencent/liteav/audio/route/s$a;
# direct methods
.method public constructor <init>(Landroid/content/Context;Lcom/tencent/liteav/audio/route/s$a;)V
.registers 4
.line 42
invoke-direct {p0}, Landroid/content/BroadcastReceiver;-><init>()V
const/4 v0, 0x0
.line 39
iput-object v0, p0, Lcom/tencent/liteav/audio/route/s;->b:Lcom/tencent/liteav/audio/route/s$b;
const/4 v0, 0x0
.line 40
iput-boolean v0, p0, Lcom/tencent/liteav/audio/route/s;->c:Z
.line 43
iput-object p1, p0, Lcom/tencent/liteav/audio/route/s;->a:Landroid/content/Context;
.line 44
iput-object p2, p0, Lcom/tencent/liteav/audio/route/s;->d:Lcom/tencent/liteav/audio/route/s$a;
return-void
.end method
.method private static a(Landroid/content/Intent;Ljava/lang/String;I)I
.registers 3
.line 268
:try_start_0
invoke-virtual {p0, p1, p2}, Landroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I
move-result p2
:try_end_4
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_4} :catch_5
goto :goto_15
:catch_5
move-exception p0
.line 270
invoke-static {p0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p0
const-string p1, "getIntentIntExtra "
invoke-virtual {p1, p0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
const-string p1, "AudioSystemBroadcastReceiver"
invoke-static {p1, p0}, Lcom/tencent/liteav/base/util/LiteavLog;->e(Ljava/lang/String;Ljava/lang/String;)V
:goto_15
return p2
.end method
.method private static a(I)Ljava/lang/String;
.registers 1
packed-switch p0, :pswitch_data_12
const-string p0, "unknown"
return-object p0
:pswitch_6
const-string p0, "STATE_TURNING_OFF"
return-object p0
:pswitch_9
const-string p0, "STATE_ON"
return-object p0
:pswitch_c
const-string p0, "STATE_TURNING_ON"
return-object p0
:pswitch_f
const-string p0, "STATE_OFF"
return-object p0
:pswitch_data_12
.packed-switch 0xa
:pswitch_f
:pswitch_c
:pswitch_9
:pswitch_6
.end packed-switch
.end method
.method public static a(Landroid/content/Context;)Z
.registers 5
const/4 v0, 0x1
if-eqz p0, :cond_1e
.line 280
invoke-static {}, Lcom/tencent/liteav/base/system/LiteavSystemInfo;->getSystemOSVersionInt()I
move-result v1
const/16 v2, 0x1f
if-lt v1, v2, :cond_1e
.line 283
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v1
invoke-static {}, Landroid/os/Process;->myUid()I
move-result v2
const-string v3, "android.permission.BLUETOOTH_CONNECT"
.line 282
invoke-virtual {p0, v3, v1, v2}, Landroid/content/Context;->checkPermission(Ljava/lang/String;II)I
move-result p0
if-nez p0, :cond_1c
goto :goto_1e
:cond_1c
const/4 p0, 0x0
move v0, p0
:cond_1e
:goto_1e
return v0
.end method
.method static a(Landroid/hardware/usb/UsbDevice;)Z
.registers 5
const/4 v0, 0x0
if-nez p0, :cond_4
return v0
:cond_4
move v1, v0
.line 251
:goto_5
:try_start_5
invoke-virtual {p0}, Landroid/hardware/usb/UsbDevice;->getInterfaceCount()I
move-result v2
if-ge v1, v2, :cond_34
.line 253
invoke-virtual {p0, v1}, Landroid/hardware/usb/UsbDevice;->getInterface(I)Landroid/hardware/usb/UsbInterface;
move-result-object v2
invoke-virtual {v2}, Landroid/hardware/usb/UsbInterface;->getInterfaceClass()I
move-result v2
:try_end_13
.catchall {:try_start_5 .. :try_end_13} :catchall_1a
const/4 v3, 0x1
if-ne v2, v3, :cond_17
return v3
:cond_17
add-int/lit8 v1, v1, 0x1
goto :goto_5
:catchall_1a
move-exception p0
.line 259
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Get interface exception "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object p0
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
new-array v1, v0, [Ljava/lang/Object;
const-string v2, "AudioSystemBroadcastReceiver"
invoke-static {v2, p0, v1}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
:cond_34
return v0
.end method
# virtual methods
.method public final onReceive(Landroid/content/Context;Landroid/content/Intent;)V
.registers 14
const-string v0, "AudioSystemBroadcastReceiver"
const/4 v1, 0x0
if-eqz p2, :cond_192
if-nez p1, :cond_9
goto/16 :goto_192
.line 112
:cond_9
invoke-virtual {p2}, Landroid/content/Intent;->getAction()Ljava/lang/String;
move-result-object p1
if-nez p1, :cond_10
return-void
:cond_10
const/4 v2, 0x1
new-array v3, v2, [Ljava/lang/Object;
aput-object p1, v3, v1
const-string v4, "receive Action: %s"
.line 116
invoke-static {v0, v4, v3}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
.line 117
invoke-virtual {p1}, Ljava/lang/String;->hashCode()I
invoke-virtual {p1}, Ljava/lang/String;->hashCode()I
move-result v3
const/4 v4, 0x3
const-string v5, "android.hardware.usb.action.USB_DEVICE_DETACHED"
const-string v6, "android.hardware.usb.action.USB_DEVICE_ATTACHED"
const/4 v7, 0x2
const/4 v8, -0x1
sparse-switch v3, :sswitch_data_19a
:goto_2b
move v3, v8
goto :goto_6a
:sswitch_2d
const-string v3, "android.bluetooth.headset.profile.action.CONNECTION_STATE_CHANGED"
invoke-virtual {p1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_36
goto :goto_2b
:cond_36
const/4 v3, 0x5
goto :goto_6a
:sswitch_38
const-string v3, "android.bluetooth.headset.profile.action.AUDIO_STATE_CHANGED"
invoke-virtual {p1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_41
goto :goto_2b
:cond_41
const/4 v3, 0x4
goto :goto_6a
:sswitch_43
const-string v3, "android.bluetooth.adapter.action.STATE_CHANGED"
invoke-virtual {p1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_4c
goto :goto_2b
:cond_4c
move v3, v4
goto :goto_6a
:sswitch_4e
invoke-virtual {p1, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_55
goto :goto_2b
:cond_55
move v3, v7
goto :goto_6a
:sswitch_57
const-string v3, "android.intent.action.HEADSET_PLUG"
invoke-virtual {p1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_60
goto :goto_2b
:cond_60
move v3, v2
goto :goto_6a
:sswitch_62
invoke-virtual {p1, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_69
goto :goto_2b
:cond_69
move v3, v1
:goto_6a
const-string v9, "android.bluetooth.profile.extra.STATE"
const/16 v10, 0xa
packed-switch v3, :pswitch_data_1b4
new-array p2, v2, [Ljava/lang/Object;
aput-object p1, p2, v1
const-string p1, "ignore unknown Action: %s"
.line 135
invoke-static {v0, p1, p2}, Lcom/tencent/liteav/base/Log;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.line 1191
:pswitch_7b
invoke-static {p2, v9, v8}, Lcom/tencent/liteav/audio/route/s;->a(Landroid/content/Intent;Ljava/lang/String;I)I
move-result p1
new-array p2, v2, [Ljava/lang/Object;
if-eqz p1, :cond_95
if-eq p1, v2, :cond_92
if-eq p1, v7, :cond_8f
if-eq p1, v4, :cond_8c
const-string v3, "unknown"
goto :goto_97
:cond_8c
const-string v3, "STATE_DISCONNECTING"
goto :goto_97
:cond_8f
const-string v3, "STATE_CONNECTED"
goto :goto_97
:cond_92
const-string v3, "STATE_CONNECTING"
goto :goto_97
:cond_95
const-string v3, "STATE_DISCONNECTED"
:goto_97
aput-object v3, p2, v1
const-string v3, "receive bluetooth headset connection state changed: %s"
.line 1192
invoke-static {v0, v3, p2}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
if-eqz p1, :cond_a9
if-eq p1, v7, :cond_a3
goto :goto_a8
.line 1199
:cond_a3
iget-object p1, p0, Lcom/tencent/liteav/audio/route/s;->d:Lcom/tencent/liteav/audio/route/s$a;
invoke-virtual {p1, v2}, Lcom/tencent/liteav/audio/route/s$a;->onBluetoothConnectionChanged(Z)V
:goto_a8
return-void
.line 1196
:cond_a9
iget-object p1, p0, Lcom/tencent/liteav/audio/route/s;->d:Lcom/tencent/liteav/audio/route/s$a;
invoke-virtual {p1, v1}, Lcom/tencent/liteav/audio/route/s$a;->onBluetoothConnectionChanged(Z)V
return-void
.line 2206
:pswitch_af
invoke-static {p2, v9, v10}, Lcom/tencent/liteav/audio/route/s;->a(Landroid/content/Intent;Ljava/lang/String;I)I
move-result p1
const/16 p2, 0xc
if-ne p1, p2, :cond_c4
new-array p1, v1, [Ljava/lang/Object;
const-string p2, "receive bluetooth audio state changed to STATE_AUDIO_CONNECTED"
.line 2209
invoke-static {v0, p2, p1}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
.line 2210
iget-object p1, p0, Lcom/tencent/liteav/audio/route/s;->d:Lcom/tencent/liteav/audio/route/s$a;
invoke-virtual {p1, v2}, Lcom/tencent/liteav/audio/route/s$a;->onBluetoothSCOConnected(Z)V
return-void
:cond_c4
if-ne p1, v10, :cond_d2
new-array p1, v1, [Ljava/lang/Object;
const-string p2, "receive bluetooth audio state changed to STATE_AUDIO_DISCONNECTED"
.line 2212
invoke-static {v0, p2, p1}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
.line 2213
iget-object p1, p0, Lcom/tencent/liteav/audio/route/s;->d:Lcom/tencent/liteav/audio/route/s$a;
invoke-virtual {p1, v1}, Lcom/tencent/liteav/audio/route/s$a;->onBluetoothSCOConnected(Z)V
:cond_d2
return-void
:pswitch_d3
const-string p1, "android.bluetooth.adapter.extra.STATE"
.line 1180
invoke-static {p2, p1, v1}, Lcom/tencent/liteav/audio/route/s;->a(Landroid/content/Intent;Ljava/lang/String;I)I
move-result p1
const-string v3, "android.bluetooth.adapter.extra.PREVIOUS_STATE"
.line 1181
invoke-static {p2, v3, v1}, Lcom/tencent/liteav/audio/route/s;->a(Landroid/content/Intent;Ljava/lang/String;I)I
move-result p2
new-array v3, v7, [Ljava/lang/Object;
.line 1184
invoke-static {p1}, Lcom/tencent/liteav/audio/route/s;->a(I)Ljava/lang/String;
move-result-object v4
aput-object v4, v3, v1
invoke-static {p2}, Lcom/tencent/liteav/audio/route/s;->a(I)Ljava/lang/String;
move-result-object p2
aput-object p2, v3, v2
const-string p2, "receive ACTION_STATE_CHANGED, EXTRA_STATE: %s, EXTRA_PREVIOUS_STATE: %s"
.line 1183
invoke-static {v0, p2, v3}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
if-ne p1, v10, :cond_f9
.line 1186
iget-object p1, p0, Lcom/tencent/liteav/audio/route/s;->d:Lcom/tencent/liteav/audio/route/s$a;
invoke-virtual {p1, v1}, Lcom/tencent/liteav/audio/route/s$a;->onBluetoothConnectionChanged(Z)V
:cond_f9
return-void
:pswitch_fa
const-string p1, "state"
.line 1170
invoke-static {p2, p1, v8}, Lcom/tencent/liteav/audio/route/s;->a(Landroid/content/Intent;Ljava/lang/String;I)I
move-result p1
if-ne p1, v8, :cond_10a
new-array p1, v1, [Ljava/lang/Object;
const-string p2, "unknown headset state, ignore..."
.line 1172
invoke-static {v0, p2, p1}, Lcom/tencent/liteav/base/Log;->e(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.line 1175
:cond_10a
iget-object p2, p0, Lcom/tencent/liteav/audio/route/s;->d:Lcom/tencent/liteav/audio/route/s$a;
if-eqz p1, :cond_10f
move v1, v2
:cond_10f
invoke-virtual {p2, v1}, Lcom/tencent/liteav/audio/route/s$a;->onWiredHeadsetConnectionChanged(Z)V
return-void
.line 2219
:pswitch_113
iget-boolean p1, p0, Lcom/tencent/liteav/audio/route/s;->c:Z
if-nez p1, :cond_11f
new-array p1, v1, [Ljava/lang/Object;
const-string p2, "Do not enable usb device"
.line 2220
invoke-static {v0, p2, p1}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
return-void
:cond_11f
const-string p1, "device"
.line 2223
invoke-virtual {p2, p1}, Landroid/content/Intent;->getParcelableExtra(Ljava/lang/String;)Landroid/os/Parcelable;
move-result-object p1
check-cast p1, Landroid/hardware/usb/UsbDevice;
if-eqz p1, :cond_191
.line 2227
invoke-static {}, Lcom/tencent/liteav/base/system/LiteavSystemInfo;->getSystemOSVersionInt()I
move-result v3
const/16 v4, 0x15
if-lt v3, v4, :cond_154
.line 2228
new-instance v3, Ljava/lang/StringBuilder;
const-string v4, "Usb device attached "
invoke-direct {v3, v4}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 2229
invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getProductName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v4, " manufacture "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 2230
invoke-virtual {p1}, Landroid/hardware/usb/UsbDevice;->getManufacturerName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
new-array v4, v1, [Ljava/lang/Object;
.line 2228
invoke-static {v0, v3, v4}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
.line 2232
:cond_154
invoke-static {p1}, Lcom/tencent/liteav/audio/route/s;->a(Landroid/hardware/usb/UsbDevice;)Z
move-result p1
if-nez p1, :cond_162
new-array p1, v1, [Ljava/lang/Object;
const-string p2, "the attached usb device doesn\'t seem to support audio, ignore it"
.line 2233
invoke-static {v0, p2, p1}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.line 2236
:cond_162
invoke-virtual {p2}, Landroid/content/Intent;->getAction()Ljava/lang/String;
move-result-object p1
if-ne p1, v6, :cond_16e
.line 2237
iget-object p1, p0, Lcom/tencent/liteav/audio/route/s;->d:Lcom/tencent/liteav/audio/route/s$a;
invoke-virtual {p1, v2}, Lcom/tencent/liteav/audio/route/s$a;->onUsbConnectionChanged(Z)V
return-void
.line 2238
:cond_16e
invoke-virtual {p2}, Landroid/content/Intent;->getAction()Ljava/lang/String;
move-result-object p1
if-ne p1, v5, :cond_17a
.line 2239
iget-object p1, p0, Lcom/tencent/liteav/audio/route/s;->d:Lcom/tencent/liteav/audio/route/s$a;
invoke-virtual {p1, v1}, Lcom/tencent/liteav/audio/route/s$a;->onUsbConnectionChanged(Z)V
return-void
.line 2241
:cond_17a
new-instance p1, Ljava/lang/StringBuilder;
const-string v2, "Unknown action, ignore it "
invoke-direct {p1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p2}, Landroid/content/Intent;->getAction()Ljava/lang/String;
move-result-object p2
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
new-array p2, v1, [Ljava/lang/Object;
invoke-static {v0, p1, p2}, Lcom/tencent/liteav/base/Log;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
:cond_191
return-void
:cond_192
:goto_192
new-array p1, v1, [Ljava/lang/Object;
const-string p2, "onReceive intent or context is null!"
.line 108
invoke-static {v0, p2, p1}, Lcom/tencent/liteav/base/Log;->e(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
return-void
:sswitch_data_19a
.sparse-switch
-0x7e02a835 -> :sswitch_62
-0x63ecb970 -> :sswitch_57
-0x5fdc9a67 -> :sswitch_4e
-0x5b36f014 -> :sswitch_43
-0x5591500b -> :sswitch_38
0x2083ec2d -> :sswitch_2d
.end sparse-switch
:pswitch_data_1b4
.packed-switch 0x0
:pswitch_113
:pswitch_fa
:pswitch_113
:pswitch_d3
:pswitch_af
:pswitch_7b
.end packed-switch
.end method