USBMonitor$1.smali
.class Lcom/serenegiant/usb/USBMonitor$1;
.super Landroid/content/BroadcastReceiver;
.source "USBMonitor.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/serenegiant/usb/USBMonitor;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x0
name = null
.end annotation
# instance fields
.field final synthetic this$0:Lcom/serenegiant/usb/USBMonitor;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method constructor <init>(Lcom/serenegiant/usb/USBMonitor;)V
.registers 2
.param p1, "this$0" # Lcom/serenegiant/usb/USBMonitor;
.line 469
iput-object p1, p0, Lcom/serenegiant/usb/USBMonitor$1;->this$0:Lcom/serenegiant/usb/USBMonitor;
invoke-direct {p0}, Landroid/content/BroadcastReceiver;-><init>()V
return-void
.end method
# virtual methods
.method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V
.registers 8
.param p1, "context" # Landroid/content/Context;
.param p2, "intent" # Landroid/content/Intent;
.line 473
iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$1;->this$0:Lcom/serenegiant/usb/USBMonitor;
# getter for: Lcom/serenegiant/usb/USBMonitor;->destroyed:Z
invoke-static {v0}, Lcom/serenegiant/usb/USBMonitor;->access$100(Lcom/serenegiant/usb/USBMonitor;)Z
move-result v0
if-eqz v0, :cond_9
return-void
.line 474
:cond_9
invoke-virtual {p2}, Landroid/content/Intent;->getAction()Ljava/lang/String;
move-result-object v0
.line 475
.local v0, "action":Ljava/lang/String;
iget-object v1, p0, Lcom/serenegiant/usb/USBMonitor$1;->this$0:Lcom/serenegiant/usb/USBMonitor;
# getter for: Lcom/serenegiant/usb/USBMonitor;->ACTION_USB_PERMISSION:Ljava/lang/String;
invoke-static {v1}, Lcom/serenegiant/usb/USBMonitor;->access$200(Lcom/serenegiant/usb/USBMonitor;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
const/4 v2, 0x0
if-eqz v1, :cond_3f
.line 477
iget-object v1, p0, Lcom/serenegiant/usb/USBMonitor$1;->this$0:Lcom/serenegiant/usb/USBMonitor;
monitor-enter v1
.line 478
:try_start_1d
const-string v3, "device"
invoke-virtual {p2, v3}, Landroid/content/Intent;->getParcelableExtra(Ljava/lang/String;)Landroid/os/Parcelable;
move-result-object v3
check-cast v3, Landroid/hardware/usb/UsbDevice;
.line 479
.local v3, "device":Landroid/hardware/usb/UsbDevice;
const-string v4, "permission"
invoke-virtual {p2, v4, v2}, Landroid/content/Intent;->getBooleanExtra(Ljava/lang/String;Z)Z
move-result v2
if-eqz v2, :cond_35
.line 480
if-eqz v3, :cond_3a
.line 482
iget-object v2, p0, Lcom/serenegiant/usb/USBMonitor$1;->this$0:Lcom/serenegiant/usb/USBMonitor;
# invokes: Lcom/serenegiant/usb/USBMonitor;->processConnect(Landroid/hardware/usb/UsbDevice;)V
invoke-static {v2, v3}, Lcom/serenegiant/usb/USBMonitor;->access$300(Lcom/serenegiant/usb/USBMonitor;Landroid/hardware/usb/UsbDevice;)V
goto :goto_3a
.line 486
:cond_35
iget-object v2, p0, Lcom/serenegiant/usb/USBMonitor$1;->this$0:Lcom/serenegiant/usb/USBMonitor;
# invokes: Lcom/serenegiant/usb/USBMonitor;->processCancel(Landroid/hardware/usb/UsbDevice;)V
invoke-static {v2, v3}, Lcom/serenegiant/usb/USBMonitor;->access$400(Lcom/serenegiant/usb/USBMonitor;Landroid/hardware/usb/UsbDevice;)V
.line 488
.end local v3 # "device":Landroid/hardware/usb/UsbDevice;
:cond_3a
:goto_3a
monitor-exit v1
goto :goto_8d
:catchall_3c
move-exception v2
monitor-exit v1
:try_end_3e
.catchall {:try_start_1d .. :try_end_3e} :catchall_3c
throw v2
.line 489
:cond_3f
const-string v1, "android.hardware.usb.action.USB_DEVICE_ATTACHED"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_5e
.line 490
const-string v1, "device"
invoke-virtual {p2, v1}, Landroid/content/Intent;->getParcelableExtra(Ljava/lang/String;)Landroid/os/Parcelable;
move-result-object v1
check-cast v1, Landroid/hardware/usb/UsbDevice;
.line 491
.local v1, "device":Landroid/hardware/usb/UsbDevice;
iget-object v2, p0, Lcom/serenegiant/usb/USBMonitor$1;->this$0:Lcom/serenegiant/usb/USBMonitor;
invoke-virtual {v2, v1}, Lcom/serenegiant/usb/USBMonitor;->hasPermission(Landroid/hardware/usb/UsbDevice;)Z
move-result v3
# invokes: Lcom/serenegiant/usb/USBMonitor;->updatePermission(Landroid/hardware/usb/UsbDevice;Z)Z
invoke-static {v2, v1, v3}, Lcom/serenegiant/usb/USBMonitor;->access$500(Lcom/serenegiant/usb/USBMonitor;Landroid/hardware/usb/UsbDevice;Z)Z
.line 492
iget-object v2, p0, Lcom/serenegiant/usb/USBMonitor$1;->this$0:Lcom/serenegiant/usb/USBMonitor;
# invokes: Lcom/serenegiant/usb/USBMonitor;->processAttach(Landroid/hardware/usb/UsbDevice;)V
invoke-static {v2, v1}, Lcom/serenegiant/usb/USBMonitor;->access$600(Lcom/serenegiant/usb/USBMonitor;Landroid/hardware/usb/UsbDevice;)V
.end local v1 # "device":Landroid/hardware/usb/UsbDevice;
goto :goto_8c
.line 493
:cond_5e
const-string v1, "android.hardware.usb.action.USB_DEVICE_DETACHED"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_8c
.line 495
const-string v1, "device"
invoke-virtual {p2, v1}, Landroid/content/Intent;->getParcelableExtra(Ljava/lang/String;)Landroid/os/Parcelable;
move-result-object v1
check-cast v1, Landroid/hardware/usb/UsbDevice;
.line 496
.restart local v1 # "device":Landroid/hardware/usb/UsbDevice;
if-eqz v1, :cond_8d
.line 497
iget-object v3, p0, Lcom/serenegiant/usb/USBMonitor$1;->this$0:Lcom/serenegiant/usb/USBMonitor;
# getter for: Lcom/serenegiant/usb/USBMonitor;->mCtrlBlocks:Ljava/util/concurrent/ConcurrentHashMap;
invoke-static {v3}, Lcom/serenegiant/usb/USBMonitor;->access$700(Lcom/serenegiant/usb/USBMonitor;)Ljava/util/concurrent/ConcurrentHashMap;
move-result-object v3
invoke-virtual {v3, v1}, Ljava/util/concurrent/ConcurrentHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
.line 498
.local v3, "ctrlBlock":Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
if-eqz v3, :cond_81
.line 500
invoke-virtual {v3}, Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;->close()V
.line 502
:cond_81
iget-object v4, p0, Lcom/serenegiant/usb/USBMonitor$1;->this$0:Lcom/serenegiant/usb/USBMonitor;
# setter for: Lcom/serenegiant/usb/USBMonitor;->mDeviceCounts:I
invoke-static {v4, v2}, Lcom/serenegiant/usb/USBMonitor;->access$802(Lcom/serenegiant/usb/USBMonitor;I)I
.line 503
iget-object v2, p0, Lcom/serenegiant/usb/USBMonitor$1;->this$0:Lcom/serenegiant/usb/USBMonitor;
# invokes: Lcom/serenegiant/usb/USBMonitor;->processDettach(Landroid/hardware/usb/UsbDevice;)V
invoke-static {v2, v1}, Lcom/serenegiant/usb/USBMonitor;->access$900(Lcom/serenegiant/usb/USBMonitor;Landroid/hardware/usb/UsbDevice;)V
goto :goto_8d
.line 493
.end local v1 # "device":Landroid/hardware/usb/UsbDevice;
.end local v3 # "ctrlBlock":Lcom/serenegiant/usb/USBMonitor$UsbControlBlock;
:cond_8c
:goto_8c
nop
.line 506
:cond_8d
:goto_8d
return-void
.end method