LocalVpnService$VpnDisconnectTask.smali

.class Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;
.super Ljava/lang/Thread;
.source "LocalVpnService.java"


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Lcom/quickbird/mini/vpn/vpn/LocalVpnService;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x0
    name = "VpnDisconnectTask"
.end annotation


# instance fields
.field private startTime:J

.field final synthetic this$0:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;


# direct methods
.method private constructor <init>(Lcom/quickbird/mini/vpn/vpn/LocalVpnService;)V
    .registers 4

    .prologue
    .line 260
    iput-object p1, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->this$0:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

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

    .line 262
    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    move-result-wide v0

    iput-wide v0, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->startTime:J

    return-void
.end method

.method synthetic constructor <init>(Lcom/quickbird/mini/vpn/vpn/LocalVpnService;Lcom/quickbird/mini/vpn/vpn/LocalVpnService$1;)V
    .registers 3

    .prologue
    .line 260
    invoke-direct {p0, p1}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;-><init>(Lcom/quickbird/mini/vpn/vpn/LocalVpnService;)V

    return-void
.end method

.method private closeFd()V
    .registers 4

    .prologue
    const/4 v2, 0x0

    .line 293
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->this$0:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

    # getter for: Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->mVpnFD:Landroid/os/ParcelFileDescriptor;
    invoke-static {v0}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->access$300(Lcom/quickbird/mini/vpn/vpn/LocalVpnService;)Landroid/os/ParcelFileDescriptor;

    move-result-object v0

    if-eqz v0, :cond_17

    .line 295
    :try_start_9
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->this$0:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

    # getter for: Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->mVpnFD:Landroid/os/ParcelFileDescriptor;
    invoke-static {v0}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->access$300(Lcom/quickbird/mini/vpn/vpn/LocalVpnService;)Landroid/os/ParcelFileDescriptor;

    move-result-object v0

    invoke-virtual {v0}, Landroid/os/ParcelFileDescriptor;->close()V
    :try_end_12
    .catch Ljava/io/IOException; {:try_start_9 .. :try_end_12} :catch_18
    .catchall {:try_start_9 .. :try_end_12} :catchall_1f

    .line 299
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->this$0:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

    :goto_14
    # setter for: Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->mVpnFD:Landroid/os/ParcelFileDescriptor;
    invoke-static {v0, v2}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->access$302(Lcom/quickbird/mini/vpn/vpn/LocalVpnService;Landroid/os/ParcelFileDescriptor;)Landroid/os/ParcelFileDescriptor;

    .line 302
    :cond_17
    return-void

    .line 296
    :catch_18
    move-exception v0

    .line 297
    :try_start_19
    invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
    :try_end_1c
    .catchall {:try_start_19 .. :try_end_1c} :catchall_1f

    .line 299
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->this$0:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

    goto :goto_14

    :catchall_1f
    move-exception v0

    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->this$0:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

    # setter for: Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->mVpnFD:Landroid/os/ParcelFileDescriptor;
    invoke-static {v1, v2}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->access$302(Lcom/quickbird/mini/vpn/vpn/LocalVpnService;Landroid/os/ParcelFileDescriptor;)Landroid/os/ParcelFileDescriptor;

    throw v0
.end method


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

    .prologue
    .line 267
    :try_start_0
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->this$0:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

    # getter for: Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->mWatchdogThread:Lcom/quickbird/mini/vpn/vpn/VpnWatchdogThread;
    invoke-static {v0}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->access$600(Lcom/quickbird/mini/vpn/vpn/LocalVpnService;)Lcom/quickbird/mini/vpn/vpn/VpnWatchdogThread;

    move-result-object v0

    if-eqz v0, :cond_2f

    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->this$0:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

    # getter for: Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->mWatchdogThread:Lcom/quickbird/mini/vpn/vpn/VpnWatchdogThread;
    invoke-static {v0}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->access$600(Lcom/quickbird/mini/vpn/vpn/LocalVpnService;)Lcom/quickbird/mini/vpn/vpn/VpnWatchdogThread;

    move-result-object v0

    invoke-virtual {v0}, Lcom/quickbird/mini/vpn/vpn/VpnWatchdogThread;->isAlive()Z

    move-result v0

    if-eqz v0, :cond_2f

    .line 268
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->this$0:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

    # getter for: Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->mWatchdogThread:Lcom/quickbird/mini/vpn/vpn/VpnWatchdogThread;
    invoke-static {v0}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->access$600(Lcom/quickbird/mini/vpn/vpn/LocalVpnService;)Lcom/quickbird/mini/vpn/vpn/VpnWatchdogThread;

    move-result-object v0

    invoke-virtual {v0}, Lcom/quickbird/mini/vpn/vpn/VpnWatchdogThread;->terminate()V

    .line 269
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->this$0:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

    # getter for: Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->mWatchdogThread:Lcom/quickbird/mini/vpn/vpn/VpnWatchdogThread;
    invoke-static {v0}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->access$600(Lcom/quickbird/mini/vpn/vpn/LocalVpnService;)Lcom/quickbird/mini/vpn/vpn/VpnWatchdogThread;

    move-result-object v0

    const-wide/32 v2, 0xea60

    invoke-virtual {v0, v2, v3}, Lcom/quickbird/mini/vpn/vpn/VpnWatchdogThread;->join(J)V

    .line 270
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->this$0:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

    const/4 v1, 0x0

    # setter for: Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->mWatchdogThread:Lcom/quickbird/mini/vpn/vpn/VpnWatchdogThread;
    invoke-static {v0, v1}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->access$602(Lcom/quickbird/mini/vpn/vpn/LocalVpnService;Lcom/quickbird/mini/vpn/vpn/VpnWatchdogThread;)Lcom/quickbird/mini/vpn/vpn/VpnWatchdogThread;
    :try_end_2f
    .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_2f} :catch_79
    .catchall {:try_start_0 .. :try_end_2f} :catchall_8a

    .line 275
    :cond_2f
    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->closeFd()V

    .line 276
    new-instance v0, Landroid/content/Intent;

    const-string v1, "com.dianxinos.optimizer.action.VPN_STOP"

    invoke-direct {v0, v1}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V

    .line 277
    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->this$0:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

    :goto_3b
    invoke-virtual {v1, v0}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->sendBroadcast(Landroid/content/Intent;)V

    .line 280
    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->this$0:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

    monitor-enter v1

    .line 281
    :try_start_41
    # getter for: Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->sIntance:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;
    invoke-static {}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->access$700()Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

    move-result-object v0

    if-eqz v0, :cond_4e

    .line 282
    # getter for: Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->sIntance:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;
    invoke-static {}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->access$700()Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

    move-result-object v0

    invoke-virtual {v0}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->stopSelf()V

    .line 284
    :cond_4e
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->this$0:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

    const/4 v2, 0x0

    # setter for: Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->mVpnDisconnectTask:Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;
    invoke-static {v0, v2}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->access$802(Lcom/quickbird/mini/vpn/vpn/LocalVpnService;Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;)Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;

    .line 285
    monitor-exit v1
    :try_end_55
    .catchall {:try_start_41 .. :try_end_55} :catchall_9b

    .line 287
    sget-boolean v0, Lcom/quickbird/sdk/QuickBird;->SDK_DEBUG:Z

    if-eqz v0, :cond_78

    .line 288
    const-string v0, "QbSdk"

    new-instance v1, Ljava/lang/StringBuilder;

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

    const-string v2, "Vpn disconnect used time : "

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    move-result-wide v2

    iget-wide v4, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->startTime:J

    sub-long/2addr v2, v4

    invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-static {v0, v1}, Lcom/quickbird/sdk/utils/QBLogger;->d(Ljava/lang/String;Ljava/lang/String;)V

    .line 290
    :cond_78
    return-void

    .line 272
    :catch_79
    move-exception v0

    .line 273
    :try_start_7a
    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
    :try_end_7d
    .catchall {:try_start_7a .. :try_end_7d} :catchall_8a

    .line 275
    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->closeFd()V

    .line 276
    new-instance v0, Landroid/content/Intent;

    const-string v1, "com.dianxinos.optimizer.action.VPN_STOP"

    invoke-direct {v0, v1}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V

    .line 277
    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->this$0:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

    goto :goto_3b

    .line 275
    :catchall_8a
    move-exception v0

    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->closeFd()V

    .line 276
    new-instance v1, Landroid/content/Intent;

    const-string v2, "com.dianxinos.optimizer.action.VPN_STOP"

    invoke-direct {v1, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V

    .line 277
    iget-object v2, p0, Lcom/quickbird/mini/vpn/vpn/LocalVpnService$VpnDisconnectTask;->this$0:Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

    invoke-virtual {v2, v1}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->sendBroadcast(Landroid/content/Intent;)V

    .line 275
    throw v0

    .line 285
    :catchall_9b
    move-exception v0

    :try_start_9c
    monitor-exit v1
    :try_end_9d
    .catchall {:try_start_9c .. :try_end_9d} :catchall_9b

    throw v0
.end method