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