USBMonitor$2.smali

.class Lcom/serenegiant/usb/USBMonitor$2;
.super Ljava/lang/Object;
.source "USBMonitor.java"

# interfaces
.implements Ljava/lang/Runnable;


# 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 514
    iput-object p1, p0, Lcom/serenegiant/usb/USBMonitor$2;->this$0:Lcom/serenegiant/usb/USBMonitor;

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method


# virtual methods
.method public run()V
    .registers 9

    .line 517
    iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$2;->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 518
    :cond_9
    iget-object v0, p0, Lcom/serenegiant/usb/USBMonitor$2;->this$0:Lcom/serenegiant/usb/USBMonitor;

    invoke-virtual {v0}, Lcom/serenegiant/usb/USBMonitor;->getDeviceList()Ljava/util/List;

    move-result-object v0

    .line 519
    .local v0, "devices":Ljava/util/List;, "Ljava/util/List<Landroid/hardware/usb/UsbDevice;>;"
    invoke-interface {v0}, Ljava/util/List;->size()I

    move-result v1

    .line 522
    .local v1, "n":I
    iget-object v2, p0, Lcom/serenegiant/usb/USBMonitor$2;->this$0:Lcom/serenegiant/usb/USBMonitor;

    # getter for: Lcom/serenegiant/usb/USBMonitor;->mHasPermissions:Landroid/util/SparseArray;
    invoke-static {v2}, Lcom/serenegiant/usb/USBMonitor;->access$1000(Lcom/serenegiant/usb/USBMonitor;)Landroid/util/SparseArray;

    move-result-object v2

    monitor-enter v2

    .line 523
    :try_start_1a
    iget-object v3, p0, Lcom/serenegiant/usb/USBMonitor$2;->this$0:Lcom/serenegiant/usb/USBMonitor;

    # getter for: Lcom/serenegiant/usb/USBMonitor;->mHasPermissions:Landroid/util/SparseArray;
    invoke-static {v3}, Lcom/serenegiant/usb/USBMonitor;->access$1000(Lcom/serenegiant/usb/USBMonitor;)Landroid/util/SparseArray;

    move-result-object v3

    invoke-virtual {v3}, Landroid/util/SparseArray;->size()I

    move-result v3

    .line 524
    .local v3, "hasPermissionCounts":I
    iget-object v4, p0, Lcom/serenegiant/usb/USBMonitor$2;->this$0:Lcom/serenegiant/usb/USBMonitor;

    # getter for: Lcom/serenegiant/usb/USBMonitor;->mHasPermissions:Landroid/util/SparseArray;
    invoke-static {v4}, Lcom/serenegiant/usb/USBMonitor;->access$1000(Lcom/serenegiant/usb/USBMonitor;)Landroid/util/SparseArray;

    move-result-object v4

    invoke-virtual {v4}, Landroid/util/SparseArray;->clear()V

    .line 525
    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v4

    :goto_31
    invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z

    move-result v5

    if-eqz v5, :cond_44

    invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v5

    check-cast v5, Landroid/hardware/usb/UsbDevice;

    .line 526
    .local v5, "device":Landroid/hardware/usb/UsbDevice;
    iget-object v6, p0, Lcom/serenegiant/usb/USBMonitor$2;->this$0:Lcom/serenegiant/usb/USBMonitor;

    invoke-virtual {v6, v5}, Lcom/serenegiant/usb/USBMonitor;->hasPermission(Landroid/hardware/usb/UsbDevice;)Z

    .line 527
    nop

    .end local v5    # "device":Landroid/hardware/usb/UsbDevice;
    goto :goto_31

    .line 528
    :cond_44
    iget-object v4, p0, Lcom/serenegiant/usb/USBMonitor$2;->this$0:Lcom/serenegiant/usb/USBMonitor;

    # getter for: Lcom/serenegiant/usb/USBMonitor;->mHasPermissions:Landroid/util/SparseArray;
    invoke-static {v4}, Lcom/serenegiant/usb/USBMonitor;->access$1000(Lcom/serenegiant/usb/USBMonitor;)Landroid/util/SparseArray;

    move-result-object v4

    invoke-virtual {v4}, Landroid/util/SparseArray;->size()I

    move-result v4

    .line 529
    .local v4, "m":I
    monitor-exit v2
    :try_end_4f
    .catchall {:try_start_1a .. :try_end_4f} :catchall_8c

    .line 530
    iget-object v2, p0, Lcom/serenegiant/usb/USBMonitor$2;->this$0:Lcom/serenegiant/usb/USBMonitor;

    # getter for: Lcom/serenegiant/usb/USBMonitor;->mDeviceCounts:I
    invoke-static {v2}, Lcom/serenegiant/usb/USBMonitor;->access$800(Lcom/serenegiant/usb/USBMonitor;)I

    move-result v2

    if-gt v1, v2, :cond_59

    if-le v4, v3, :cond_80

    .line 531
    :cond_59
    iget-object v2, p0, Lcom/serenegiant/usb/USBMonitor$2;->this$0:Lcom/serenegiant/usb/USBMonitor;

    # setter for: Lcom/serenegiant/usb/USBMonitor;->mDeviceCounts:I
    invoke-static {v2, v1}, Lcom/serenegiant/usb/USBMonitor;->access$802(Lcom/serenegiant/usb/USBMonitor;I)I

    .line 532
    iget-object v2, p0, Lcom/serenegiant/usb/USBMonitor$2;->this$0:Lcom/serenegiant/usb/USBMonitor;

    # getter for: Lcom/serenegiant/usb/USBMonitor;->mOnDeviceConnectListener:Lcom/serenegiant/usb/USBMonitor$OnDeviceConnectListener;
    invoke-static {v2}, Lcom/serenegiant/usb/USBMonitor;->access$1100(Lcom/serenegiant/usb/USBMonitor;)Lcom/serenegiant/usb/USBMonitor$OnDeviceConnectListener;

    move-result-object v2

    if-eqz v2, :cond_80

    .line 533
    const/4 v2, 0x0

    .local v2, "i":I
    :goto_67
    if-ge v2, v1, :cond_80

    .line 534
    invoke-interface {v0, v2}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v5

    check-cast v5, Landroid/hardware/usb/UsbDevice;

    .line 535
    .restart local v5    # "device":Landroid/hardware/usb/UsbDevice;
    iget-object v6, p0, Lcom/serenegiant/usb/USBMonitor$2;->this$0:Lcom/serenegiant/usb/USBMonitor;

    # getter for: Lcom/serenegiant/usb/USBMonitor;->mAsyncHandler:Landroid/os/Handler;
    invoke-static {v6}, Lcom/serenegiant/usb/USBMonitor;->access$1200(Lcom/serenegiant/usb/USBMonitor;)Landroid/os/Handler;

    move-result-object v6

    new-instance v7, Lcom/serenegiant/usb/USBMonitor$2$1;

    invoke-direct {v7, p0, v5}, Lcom/serenegiant/usb/USBMonitor$2$1;-><init>(Lcom/serenegiant/usb/USBMonitor$2;Landroid/hardware/usb/UsbDevice;)V

    invoke-virtual {v6, v7}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z

    .line 533
    .end local v5    # "device":Landroid/hardware/usb/UsbDevice;
    add-int/lit8 v2, v2, 0x1

    goto :goto_67

    .line 544
    .end local v2    # "i":I
    :cond_80
    iget-object v2, p0, Lcom/serenegiant/usb/USBMonitor$2;->this$0:Lcom/serenegiant/usb/USBMonitor;

    # getter for: Lcom/serenegiant/usb/USBMonitor;->mAsyncHandler:Landroid/os/Handler;
    invoke-static {v2}, Lcom/serenegiant/usb/USBMonitor;->access$1200(Lcom/serenegiant/usb/USBMonitor;)Landroid/os/Handler;

    move-result-object v2

    const-wide/16 v5, 0x7d0

    invoke-virtual {v2, p0, v5, v6}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z

    .line 545
    return-void

    .line 529
    .end local v3    # "hasPermissionCounts":I
    .end local v4    # "m":I
    :catchall_8c
    move-exception v3

    :try_start_8d
    monitor-exit v2
    :try_end_8e
    .catchall {:try_start_8d .. :try_end_8e} :catchall_8c

    goto :goto_90

    :goto_8f
    throw v3

    :goto_90
    goto :goto_8f
.end method