VpnServiceManager.smali

.class public Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;
.super Ljava/lang/Object;
.source "VpnServiceManager.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/quickbird/mini/vpn/vpn/VpnServiceManager$1;
    }
.end annotation


# static fields
.field public static final APN_TYPE_NET:I = 0x1

.field public static final APN_TYPE_UNKNOWN:I = 0x0

.field public static final APN_TYPE_WAP:I = 0x2

.field private static final DEBUG:Z

.field private static final SWITCH_TIMEOUT:I = 0x4e20

.field private static final TAG:Ljava/lang/String; = "QbSdk"

.field public static final VPN_APPROVE_ERROR:I = 0x0

.field public static final VPN_APPROVE_PENDING:I = 0x2

.field public static final VPN_APPROVE_REQUEST_CODE:I = 0x4b5

.field public static final VPN_APPROVE_SUCCESS:I = 0x1

.field private static final VPN_SERVICE_CLOSE:I = 0x0

.field private static final VPN_SERVICE_OPEN:I = 0x1

.field private static final VPN_SERVICE_PAUSE:I = 0x2

.field private static volatile sInstance:Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;


# instance fields
.field private mAutoCloseVpn:Z

.field private mAutoPauseVpn:Z

.field private mAutoStartVpn:Z

.field private mContext:Landroid/content/Context;

.field private mCurrentApnType:I

.field private mDisconnectListener:Lcom/quickbird/sdk/VpnDisconnectListener;

.field private mIsRegisterNetWorkReceiver:Z

.field private mNetChangeListener:Lcom/quickbird/sdk/NetChangeListener;

.field private mNetWorkChangeReceiver:Landroid/content/BroadcastReceiver;

.field private mQbEncrypt:Lcom/quickbird/sdk/QuickBird$QbEncrypt;

.field private mQbVpnOpened:Z

.field private mSafeVpnOpened:Z

.field private mSafeVpnWhiteList:Ljava/util/HashSet;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/HashSet",
            "<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation
.end field

.field private mSafeVpnWhiteListLoaded:Z

.field private mVpnDaemonTask:Ljava/util/Timer;

.field private mVpnName:Ljava/lang/String;


# direct methods
.method static constructor <clinit>()V
    .registers 1

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

    sput-boolean v0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->DEBUG:Z

    return-void
.end method

.method private constructor <init>(Landroid/content/Context;)V
    .registers 6

    .prologue
    const/4 v3, 0x0

    const/4 v1, 0x1

    const/4 v0, 0x0

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

    .line 74
    const-string v2, "QbSdk"

    iput-object v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mVpnName:Ljava/lang/String;

    .line 80
    iput v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mCurrentApnType:I

    .line 83
    iput-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mAutoStartVpn:Z

    .line 85
    iput-boolean v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mAutoCloseVpn:Z

    .line 87
    iput-boolean v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mAutoPauseVpn:Z

    .line 89
    iput-object v3, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mNetWorkChangeReceiver:Landroid/content/BroadcastReceiver;

    .line 90
    iput-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mIsRegisterNetWorkReceiver:Z

    .line 92
    iput-object v3, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbEncrypt:Lcom/quickbird/sdk/QuickBird$QbEncrypt;

    .line 93
    new-instance v2, Ljava/util/HashSet;

    invoke-direct {v2}, Ljava/util/HashSet;-><init>()V

    iput-object v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnWhiteList:Ljava/util/HashSet;

    .line 94
    iput-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnWhiteListLoaded:Z

    .line 95
    iput-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbVpnOpened:Z

    .line 96
    iput-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnOpened:Z

    .line 99
    iput-object p1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    .line 100
    iget-object v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    invoke-static {v2}, Lcom/quickbird/sdk/internal/QBConfigsMgr;->isAutoStartVpnService(Landroid/content/Context;)Z

    move-result v2

    .line 101
    iget-object v3, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    invoke-static {v3}, Lcom/quickbird/sdk/internal/QBConfigsMgr;->isSafeVpnOpen(Landroid/content/Context;)Z

    move-result v3

    .line 102
    if-nez v3, :cond_37

    if-eqz v2, :cond_38

    :cond_37
    move v0, v1

    :cond_38
    iput-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mAutoStartVpn:Z

    .line 103
    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->initVpnType()V

    .line 104
    return-void
.end method

.method private changeVpnServiceState(I)V
    .registers 6

    .prologue
    .line 304
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->isVpnAvailable()Z

    move-result v0

    if-nez v0, :cond_7

    .line 329
    :cond_6
    :goto_6
    return-void

    .line 308
    :cond_7
    const/4 v0, 0x1

    if-ne p1, v0, :cond_18

    .line 309
    iget-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mAutoStartVpn:Z

    if-eqz v0, :cond_6

    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->isApproved()Z

    move-result v0

    if-eqz v0, :cond_6

    .line 310
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->startVpnService()V

    goto :goto_6

    .line 312
    :cond_18
    if-nez p1, :cond_22

    .line 313
    iget-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mAutoCloseVpn:Z

    if-eqz v0, :cond_6

    .line 314
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->stopVpnService()V

    goto :goto_6

    .line 316
    :cond_22
    const/4 v0, 0x2

    if-ne p1, v0, :cond_6

    .line 317
    iget-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mAutoPauseVpn:Z

    if-eqz v0, :cond_6

    .line 318
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->isApproved()Z

    move-result v0

    .line 319
    sget-boolean v1, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->DEBUG:Z

    if-eqz v1, :cond_55

    .line 320
    const-string v1, "QbSdk"

    new-instance v2, Ljava/lang/StringBuilder;

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

    const-string v3, "Change vpn service state : Pause. auto start : "

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

    move-result-object v2

    iget-boolean v3, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mAutoStartVpn:Z

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

    move-result-object v2

    const-string v3, " ,approved : "

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

    move-result-object v2

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

    move-result-object v2

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

    move-result-object v2

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

    .line 322
    :cond_55
    iget-boolean v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mAutoStartVpn:Z

    if-eqz v1, :cond_5f

    if-eqz v0, :cond_5f

    .line 323
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->pauseVpnService()V

    goto :goto_6

    .line 325
    :cond_5f
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->stopVpnService()V

    goto :goto_6
.end method

.method public static getInstance(Landroid/content/Context;)Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;
    .registers 3

    .prologue
    .line 107
    sget-object v0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->sInstance:Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;

    if-nez v0, :cond_13

    .line 108
    const-class v1, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;

    monitor-enter v1

    .line 109
    :try_start_7
    sget-object v0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->sInstance:Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;

    if-nez v0, :cond_12

    .line 110
    new-instance v0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;

    invoke-direct {v0, p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;-><init>(Landroid/content/Context;)V

    sput-object v0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->sInstance:Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;

    .line 112
    :cond_12
    monitor-exit v1
    :try_end_13
    .catchall {:try_start_7 .. :try_end_13} :catchall_16

    .line 114
    :cond_13
    sget-object v0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->sInstance:Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;

    return-object v0

    .line 112
    :catchall_16
    move-exception v0

    :try_start_17
    monitor-exit v1
    :try_end_18
    .catchall {:try_start_17 .. :try_end_18} :catchall_16

    throw v0
.end method

.method private getSafeVpnWhiteListFileName()Ljava/lang/String;
    .registers 3

    .prologue
    .line 753
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    const-string v1, "qb_svwl.so"

    invoke-virtual {v0, v1}, Landroid/content/Context;->getFileStreamPath(Ljava/lang/String;)Ljava/io/File;

    move-result-object v0

    invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;

    move-result-object v0

    return-object v0
.end method

.method private initVpnDeamonTimer()V
    .registers 7

    .prologue
    const-wide/16 v2, 0x1388

    .line 133
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mVpnDaemonTask:Ljava/util/Timer;

    if-nez v0, :cond_1a

    .line 134
    new-instance v0, Ljava/util/Timer;

    invoke-direct {v0}, Ljava/util/Timer;-><init>()V

    iput-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mVpnDaemonTask:Ljava/util/Timer;

    .line 135
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mVpnDaemonTask:Ljava/util/Timer;

    new-instance v1, Lcom/quickbird/sdk/internal/KeepAliveTimerTask;

    iget-object v4, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    invoke-direct {v1, v4}, Lcom/quickbird/sdk/internal/KeepAliveTimerTask;-><init>(Landroid/content/Context;)V

    move-wide v4, v2

    invoke-virtual/range {v0 .. v5}, Ljava/util/Timer;->scheduleAtFixedRate(Ljava/util/TimerTask;JJ)V

    .line 138
    :cond_1a
    return-void
.end method

.method private initVpnType()V
    .registers 3

    .prologue
    .line 118
    sget-object v0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager$1;->$SwitchMap$com$quickbird$sdk$NetChangeReceiver$NetType:[I

    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    invoke-static {v1}, Lcom/quickbird/sdk/NetChangeReceiver;->checkNetType(Landroid/content/Context;)Lcom/quickbird/sdk/NetChangeReceiver$NetType;

    move-result-object v1

    invoke-virtual {v1}, Lcom/quickbird/sdk/NetChangeReceiver$NetType;->ordinal()I

    move-result v1

    aget v0, v0, v1

    packed-switch v0, :pswitch_data_1e

    .line 126
    const/4 v0, 0x0

    iput v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mCurrentApnType:I

    .line 129
    :goto_14
    return-void

    .line 120
    :pswitch_15
    const/4 v0, 0x1

    iput v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mCurrentApnType:I

    goto :goto_14

    .line 123
    :pswitch_19
    const/4 v0, 0x2

    iput v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mCurrentApnType:I

    goto :goto_14

    .line 118
    nop

    :pswitch_data_1e
    .packed-switch 0x1
        :pswitch_15
        :pswitch_19
    .end packed-switch
.end method

.method private loadSafeVpnWhiteList()Ljava/util/HashSet;
    .registers 8
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/HashSet",
            "<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation

    .prologue
    .line 725
    new-instance v0, Ljava/util/HashSet;

    invoke-direct {v0}, Ljava/util/HashSet;-><init>()V

    .line 726
    const/4 v3, 0x0

    .line 727
    new-instance v1, Ljava/io/File;

    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->getSafeVpnWhiteListFileName()Ljava/lang/String;

    move-result-object v2

    invoke-direct {v1, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V

    .line 728
    invoke-virtual {v1}, Ljava/io/File;->exists()Z

    move-result v2

    if-nez v2, :cond_16

    .line 749
    :goto_15
    return-object v0

    .line 732
    :cond_16
    :try_start_16
    new-instance v2, Ljava/io/ObjectInputStream;

    new-instance v4, Ljava/io/BufferedInputStream;

    new-instance v5, Ljava/util/zip/GZIPInputStream;

    new-instance v6, Ljava/io/FileInputStream;

    invoke-direct {v6, v1}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V

    invoke-direct {v5, v6}, Ljava/util/zip/GZIPInputStream;-><init>(Ljava/io/InputStream;)V

    invoke-direct {v4, v5}, Ljava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;)V

    invoke-direct {v2, v4}, Ljava/io/ObjectInputStream;-><init>(Ljava/io/InputStream;)V
    :try_end_2a
    .catch Ljava/lang/Exception; {:try_start_16 .. :try_end_2a} :catch_6f
    .catchall {:try_start_16 .. :try_end_2a} :catchall_67

    .line 733
    :try_start_2a
    invoke-virtual {v2}, Ljava/io/ObjectInputStream;->available()I

    move-result v1

    if-lez v1, :cond_63

    .line 734
    invoke-virtual {v2}, Ljava/io/ObjectInputStream;->readUTF()Ljava/lang/String;

    move-result-object v1

    .line 735
    const-string v3, "UTF-8"

    invoke-virtual {v1, v3}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B

    move-result-object v1

    const-string v3, "38fa4288356c4cdd"

    invoke-static {v1, v3}, Lcom/quickbird/mini/utils/EncryptUtils;->decrypt([BLjava/lang/String;)Ljava/lang/String;

    move-result-object v1

    .line 736
    new-instance v3, Ljava/util/StringTokenizer;

    const-string v4, "|"

    invoke-direct {v3, v1, v4}, Ljava/util/StringTokenizer;-><init>(Ljava/lang/String;Ljava/lang/String;)V

    .line 737
    :cond_47
    :goto_47
    invoke-virtual {v3}, Ljava/util/StringTokenizer;->hasMoreTokens()Z

    move-result v1

    if-eqz v1, :cond_63

    .line 738
    invoke-virtual {v3}, Ljava/util/StringTokenizer;->nextToken()Ljava/lang/String;

    move-result-object v1

    .line 739
    invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v4

    if-nez v4, :cond_47

    .line 740
    invoke-virtual {v0, v1}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
    :try_end_5a
    .catch Ljava/lang/Exception; {:try_start_2a .. :try_end_5a} :catch_5b
    .catchall {:try_start_2a .. :try_end_5a} :catchall_6d

    goto :goto_47

    .line 744
    :catch_5b
    move-exception v1

    .line 745
    :goto_5c
    :try_start_5c
    sget-boolean v3, Lcom/quickbird/sdk/QuickBird;->SDK_DEBUG:Z

    if-eqz v3, :cond_63

    invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
    :try_end_63
    .catchall {:try_start_5c .. :try_end_63} :catchall_6d

    .line 747
    :cond_63
    invoke-static {v2}, Lcom/quickbird/mini/utils/EncryptUtils;->close(Ljava/io/Closeable;)V

    goto :goto_15

    :catchall_67
    move-exception v0

    move-object v2, v3

    :goto_69
    invoke-static {v2}, Lcom/quickbird/mini/utils/EncryptUtils;->close(Ljava/io/Closeable;)V

    throw v0

    :catchall_6d
    move-exception v0

    goto :goto_69

    .line 744
    :catch_6f
    move-exception v1

    move-object v2, v3

    goto :goto_5c
.end method

.method private registerNetworkChangeReceiver()V
    .registers 4

    .prologue
    .line 541
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mNetWorkChangeReceiver:Landroid/content/BroadcastReceiver;

    if-nez v0, :cond_b

    .line 542
    new-instance v0, Lcom/quickbird/sdk/NetChangeReceiver;

    invoke-direct {v0}, Lcom/quickbird/sdk/NetChangeReceiver;-><init>()V

    iput-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mNetWorkChangeReceiver:Landroid/content/BroadcastReceiver;

    .line 544
    :cond_b
    iget-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mIsRegisterNetWorkReceiver:Z

    if-nez v0, :cond_20

    .line 545
    new-instance v0, Landroid/content/IntentFilter;

    const-string v1, "android.net.conn.CONNECTIVITY_CHANGE"

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

    .line 546
    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    iget-object v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mNetWorkChangeReceiver:Landroid/content/BroadcastReceiver;

    invoke-virtual {v1, v2, v0}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;

    .line 547
    const/4 v0, 0x1

    iput-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mIsRegisterNetWorkReceiver:Z

    .line 550
    :cond_20
    return-void
.end method

.method private saveSafeVpnWhiteList(Ljava/util/HashSet;)Z
    .registers 9
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/HashSet",
            "<",
            "Ljava/lang/String;",
            ">;)Z"
        }
    .end annotation

    .prologue
    const/4 v1, 0x0

    .line 697
    if-eqz p1, :cond_9

    invoke-virtual {p1}, Ljava/util/HashSet;->size()I

    move-result v0

    if-nez v0, :cond_b

    :cond_9
    move v0, v1

    .line 721
    :goto_a
    return v0

    .line 698
    :cond_b
    new-instance v4, Ljava/lang/StringBuffer;

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

    .line 699
    invoke-virtual {p1}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator;

    move-result-object v2

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

    move-result v0

    if-eqz v0, :cond_2f

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

    move-result-object v0

    check-cast v0, Ljava/lang/String;

    .line 700
    invoke-virtual {v4}, Ljava/lang/StringBuffer;->length()I

    move-result v3

    if-lez v3, :cond_2b

    .line 701
    const-string v3, "|"

    invoke-virtual {v4, v3}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;

    .line 703
    :cond_2b
    invoke-virtual {v4, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;

    goto :goto_14

    .line 705
    :cond_2f
    new-instance v0, Ljava/io/File;

    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->getSafeVpnWhiteListFileName()Ljava/lang/String;

    move-result-object v2

    invoke-direct {v0, v2}, Ljava/io/File;-><init>(Ljava/lang/String;)V

    .line 706
    invoke-virtual {v0}, Ljava/io/File;->exists()Z

    move-result v2

    if-eqz v2, :cond_41

    .line 707
    invoke-virtual {v0}, Ljava/io/File;->delete()Z

    .line 709
    :cond_41
    const/4 v3, 0x0

    .line 711
    :try_start_42
    new-instance v2, Ljava/io/ObjectOutputStream;

    new-instance v5, Ljava/util/zip/GZIPOutputStream;

    new-instance v6, Ljava/io/FileOutputStream;

    invoke-direct {v6, v0}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V

    invoke-direct {v5, v6}, Ljava/util/zip/GZIPOutputStream;-><init>(Ljava/io/OutputStream;)V

    invoke-direct {v2, v5}, Ljava/io/ObjectOutputStream;-><init>(Ljava/io/OutputStream;)V
    :try_end_51
    .catch Ljava/lang/Exception; {:try_start_42 .. :try_end_51} :catch_6a
    .catchall {:try_start_42 .. :try_end_51} :catchall_78

    .line 712
    :try_start_51
    invoke-virtual {v4}, Ljava/lang/StringBuffer;->toString()Ljava/lang/String;

    move-result-object v0

    const-string v3, "38fa4288356c4cdd"

    invoke-static {v0, v3}, Lcom/quickbird/mini/utils/EncryptUtils;->encrypt(Ljava/lang/String;Ljava/lang/String;)[B

    move-result-object v0

    .line 713
    new-instance v3, Ljava/lang/String;

    const-string v4, "UTF-8"

    invoke-direct {v3, v0, v4}, Ljava/lang/String;-><init>([BLjava/lang/String;)V

    .line 714
    invoke-virtual {v2, v3}, Ljava/io/ObjectOutputStream;->writeUTF(Ljava/lang/String;)V
    :try_end_65
    .catch Ljava/lang/Exception; {:try_start_51 .. :try_end_65} :catch_80
    .catchall {:try_start_51 .. :try_end_65} :catchall_7e

    .line 715
    const/4 v0, 0x1

    .line 719
    invoke-static {v2}, Lcom/quickbird/mini/utils/EncryptUtils;->close(Ljava/io/Closeable;)V

    goto :goto_a

    .line 716
    :catch_6a
    move-exception v0

    move-object v2, v3

    .line 717
    :goto_6c
    :try_start_6c
    sget-boolean v3, Lcom/quickbird/sdk/QuickBird;->SDK_DEBUG:Z

    if-eqz v3, :cond_73

    invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
    :try_end_73
    .catchall {:try_start_6c .. :try_end_73} :catchall_7e

    .line 719
    :cond_73
    invoke-static {v2}, Lcom/quickbird/mini/utils/EncryptUtils;->close(Ljava/io/Closeable;)V

    move v0, v1

    .line 721
    goto :goto_a

    .line 719
    :catchall_78
    move-exception v0

    move-object v2, v3

    :goto_7a
    invoke-static {v2}, Lcom/quickbird/mini/utils/EncryptUtils;->close(Ljava/io/Closeable;)V

    throw v0

    :catchall_7e
    move-exception v0

    goto :goto_7a

    .line 716
    :catch_80
    move-exception v0

    goto :goto_6c
.end method

.method private stopVpnDeamonTimer()V
    .registers 2

    .prologue
    .line 142
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mVpnDaemonTask:Ljava/util/Timer;

    if-eqz v0, :cond_c

    .line 143
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mVpnDaemonTask:Ljava/util/Timer;

    invoke-virtual {v0}, Ljava/util/Timer;->cancel()V

    .line 144
    const/4 v0, 0x0

    iput-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mVpnDaemonTask:Ljava/util/Timer;

    .line 146
    :cond_c
    return-void
.end method

.method private unregisterNetworkChangeReceiver()V
    .registers 3

    .prologue
    .line 553
    iget-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnOpened:Z

    if-nez v0, :cond_8

    iget-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbVpnOpened:Z

    if-eqz v0, :cond_9

    .line 566
    :cond_8
    :goto_8
    return-void

    .line 558
    :cond_9
    :try_start_9
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mNetWorkChangeReceiver:Landroid/content/BroadcastReceiver;

    if-eqz v0, :cond_8

    iget-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mIsRegisterNetWorkReceiver:Z

    if-eqz v0, :cond_8

    .line 559
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mNetWorkChangeReceiver:Landroid/content/BroadcastReceiver;

    invoke-virtual {v0, v1}, Landroid/content/Context;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V

    .line 560
    const/4 v0, 0x0

    iput-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mNetWorkChangeReceiver:Landroid/content/BroadcastReceiver;

    .line 561
    const/4 v0, 0x0

    iput-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mIsRegisterNetWorkReceiver:Z
    :try_end_1e
    .catch Ljava/lang/Exception; {:try_start_9 .. :try_end_1e} :catch_1f

    goto :goto_8

    .line 563
    :catch_1f
    move-exception v0

    goto :goto_8
.end method

.method private updateVpnAutoStartState()V
    .registers 3

    .prologue
    .line 149
    iget-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbVpnOpened:Z

    if-nez v0, :cond_8

    iget-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnOpened:Z

    if-eqz v0, :cond_1d

    .line 150
    :cond_8
    const/4 v0, 0x1

    iput-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mAutoStartVpn:Z

    .line 151
    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->initVpnDeamonTimer()V

    .line 156
    :goto_e
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    iget-boolean v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbVpnOpened:Z

    invoke-static {v0, v1}, Lcom/quickbird/sdk/internal/QBConfigsMgr;->setAutoStartVpnServiceState(Landroid/content/Context;Z)V

    .line 157
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    iget-boolean v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnOpened:Z

    invoke-static {v0, v1}, Lcom/quickbird/sdk/internal/QBConfigsMgr;->setSafeVpnOpenState(Landroid/content/Context;Z)V

    .line 158
    return-void

    .line 153
    :cond_1d
    const/4 v0, 0x0

    iput-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mAutoStartVpn:Z

    .line 154
    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->stopVpnDeamonTimer()V

    goto :goto_e
.end method


# virtual methods
.method public addSafeVpnWhiteList(Ljava/util/HashSet;)Z
    .registers 5
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(",
            "Ljava/util/HashSet",
            "<",
            "Ljava/lang/String;",
            ">;)Z"
        }
    .end annotation

    .prologue
    .line 637
    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnWhiteList:Ljava/util/HashSet;

    monitor-enter v1

    .line 638
    :try_start_3
    invoke-direct {p0, p1}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->saveSafeVpnWhiteList(Ljava/util/HashSet;)Z

    move-result v0

    .line 639
    iget-object v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnWhiteList:Ljava/util/HashSet;

    invoke-virtual {v2}, Ljava/util/HashSet;->clear()V

    .line 640
    if-eqz v0, :cond_13

    .line 641
    iget-object v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnWhiteList:Ljava/util/HashSet;

    invoke-virtual {v2, p1}, Ljava/util/HashSet;->addAll(Ljava/util/Collection;)Z

    .line 643
    :cond_13
    monitor-exit v1

    return v0

    .line 644
    :catchall_15
    move-exception v0

    monitor-exit v1
    :try_end_17
    .catchall {:try_start_3 .. :try_end_17} :catchall_15

    throw v0
.end method

.method public approve(Landroid/app/Activity;)I
    .registers 6

    .prologue
    const/4 v0, 0x0

    .line 475
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->isVpnAvailable()Z

    move-result v1

    if-nez v1, :cond_8

    .line 497
    :cond_7
    :goto_7
    return v0

    .line 479
    :cond_8
    invoke-virtual {p0, p1}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->getPrepareVpnIntent(Landroid/content/Context;)Landroid/content/Intent;

    move-result-object v1

    .line 480
    if-nez v1, :cond_10

    .line 481
    const/4 v0, 0x1

    goto :goto_7

    .line 484
    :cond_10
    iget-object v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    invoke-virtual {v2}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;

    move-result-object v2

    .line 485
    if-eqz v2, :cond_7

    .line 489
    const/high16 v3, 0x10000

    invoke-virtual {v2, v1, v3}, Landroid/content/pm/PackageManager;->queryIntentActivities(Landroid/content/Intent;I)Ljava/util/List;

    move-result-object v2

    invoke-interface {v2}, Ljava/util/List;->size()I

    move-result v2

    if-nez v2, :cond_30

    .line 490
    sget-boolean v1, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->DEBUG:Z

    if-eqz v1, :cond_7

    .line 491
    const-string v1, "QbSdk"

    const-string v2, "Vpn approve dialog not found!"

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

    goto :goto_7

    .line 495
    :cond_30
    const/16 v0, 0x4b5

    invoke-virtual {p1, v1, v0}, Landroid/app/Activity;->startActivityForResult(Landroid/content/Intent;I)V

    .line 497
    const/4 v0, 0x2

    goto :goto_7
.end method

.method public declared-synchronized closeSafeVpn()V
    .registers 4

    .prologue
    .line 618
    monitor-enter p0

    const/4 v0, 0x0

    :try_start_2
    iput-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnOpened:Z

    .line 619
    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->unregisterNetworkChangeReceiver()V

    .line 620
    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->updateVpnAutoStartState()V

    .line 622
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->isVpnAvailable()Z
    :try_end_d
    .catchall {:try_start_2 .. :try_end_d} :catchall_2c

    move-result v0

    if-nez v0, :cond_12

    .line 634
    :cond_10
    :goto_10
    monitor-exit p0

    return-void

    .line 626
    :cond_12
    :try_start_12
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->isVpnOpened()Z

    move-result v0

    if-eqz v0, :cond_10

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

    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    const-class v2, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

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

    .line 631
    const-string v1, "STOP_SAFE_VPN"

    invoke-virtual {v0, v1}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;

    .line 632
    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    invoke-virtual {v1, v0}, Landroid/content/Context;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;
    :try_end_2b
    .catchall {:try_start_12 .. :try_end_2b} :catchall_2c

    goto :goto_10

    .line 618
    :catchall_2c
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method public declared-synchronized closeVpnService()V
    .registers 2

    .prologue
    .line 426
    monitor-enter p0

    :try_start_1
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->isVpnAvailable()Z
    :try_end_4
    .catchall {:try_start_1 .. :try_end_4} :catchall_1c

    move-result v0

    if-nez v0, :cond_9

    .line 442
    :cond_7
    :goto_7
    monitor-exit p0

    return-void

    .line 431
    :cond_9
    const/4 v0, 0x0

    :try_start_a
    iput-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbVpnOpened:Z

    .line 432
    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->updateVpnAutoStartState()V

    .line 434
    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->unregisterNetworkChangeReceiver()V

    .line 436
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->isVpnOpened()Z

    move-result v0

    if-eqz v0, :cond_7

    .line 440
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->stopVpnService()V
    :try_end_1b
    .catchall {:try_start_a .. :try_end_1b} :catchall_1c

    goto :goto_7

    .line 426
    :catchall_1c
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method public decrypt([B[B)[B
    .registers 4

    .prologue
    .line 670
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbEncrypt:Lcom/quickbird/sdk/QuickBird$QbEncrypt;

    if-eqz v0, :cond_a

    .line 671
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbEncrypt:Lcom/quickbird/sdk/QuickBird$QbEncrypt;

    invoke-interface {v0, p1, p2}, Lcom/quickbird/sdk/QuickBird$QbEncrypt;->decrypt([B[B)[B

    move-result-object p1

    .line 673
    :cond_a
    return-object p1
.end method

.method public encrypt([B[B[B)[Ljava/lang/Object;
    .registers 8

    .prologue
    const/4 v3, 0x0

    const/4 v2, 0x3

    .line 659
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbEncrypt:Lcom/quickbird/sdk/QuickBird$QbEncrypt;

    if-eqz v0, :cond_19

    .line 660
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbEncrypt:Lcom/quickbird/sdk/QuickBird$QbEncrypt;

    invoke-interface {v0, p1, p2, p3}, Lcom/quickbird/sdk/QuickBird$QbEncrypt;->encrypt([B[B[B)[Ljava/lang/Object;

    move-result-object v0

    .line 661
    if-eqz v0, :cond_11

    array-length v1, v0

    if-eq v1, v2, :cond_24

    .line 662
    :cond_11
    new-instance v0, Ljava/lang/IllegalArgumentException;

    const-string v1, "Encrypt url error! Check encrypt data and keys."

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

    throw v0

    .line 666
    :cond_19
    new-array v0, v2, [Ljava/lang/Object;

    const/4 v1, 0x0

    aput-object p1, v0, v1

    const/4 v1, 0x1

    aput-object v3, v0, v1

    const/4 v1, 0x2

    aput-object v3, v0, v1

    :cond_24
    return-object v0
.end method

.method public getCurrentApnType()I
    .registers 2

    .prologue
    .line 332
    iget v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mCurrentApnType:I

    return v0
.end method

.method public getPrepareVpnIntent(Landroid/content/Context;)Landroid/content/Intent;
    .registers 4

    .prologue
    .line 501
    invoke-static {p1}, Landroid/net/VpnService;->prepare(Landroid/content/Context;)Landroid/content/Intent;

    move-result-object v0

    .line 502
    if-nez v0, :cond_8

    const/4 v0, 0x0

    .line 504
    :goto_7
    return-object v0

    :cond_8
    const-string v1, "VPN_START_ACTION"

    invoke-virtual {v0, v1}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;

    move-result-object v0

    goto :goto_7
.end method

.method public getVpnServiceName()Ljava/lang/String;
    .registers 2

    .prologue
    .line 373
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mVpnName:Ljava/lang/String;

    return-object v0
.end method

.method public isApproved()Z
    .registers 4

    .prologue
    const/4 v0, 0x0

    .line 342
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->isVpnAvailable()Z

    move-result v1

    if-nez v1, :cond_8

    .line 352
    :cond_7
    :goto_7
    return v0

    .line 347
    :cond_8
    :try_start_8
    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    invoke-virtual {p0, v1}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->getPrepareVpnIntent(Landroid/content/Context;)Landroid/content/Intent;
    :try_end_d
    .catch Ljava/lang/Exception; {:try_start_8 .. :try_end_d} :catch_12

    move-result-object v1

    if-nez v1, :cond_7

    const/4 v0, 0x1

    goto :goto_7

    .line 348
    :catch_12
    move-exception v1

    .line 349
    sget-boolean v1, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->DEBUG:Z

    if-eqz v1, :cond_7

    .line 350
    const-string v1, "QbSdk"

    const-string v2, "Get vpn approved state error !"

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

    goto :goto_7
.end method

.method public isInSafeVpnWhiteList(Ljava/lang/String;)Z
    .registers 4

    .prologue
    .line 691
    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnWhiteList:Ljava/util/HashSet;

    monitor-enter v1

    .line 692
    :try_start_3
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnWhiteList:Ljava/util/HashSet;

    invoke-virtual {v0, p1}, Ljava/util/HashSet;->contains(Ljava/lang/Object;)Z

    move-result v0

    monitor-exit v1

    return v0

    .line 693
    :catchall_b
    move-exception v0

    monitor-exit v1
    :try_end_d
    .catchall {:try_start_3 .. :try_end_d} :catchall_b

    throw v0
.end method

.method public isQbVpnOpened()Z
    .registers 2

    .prologue
    .line 569
    iget-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbVpnOpened:Z

    return v0
.end method

.method public isSafeProxy(Ljava/lang/String;)Z
    .registers 3

    .prologue
    .line 677
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbEncrypt:Lcom/quickbird/sdk/QuickBird$QbEncrypt;

    if-eqz v0, :cond_b

    .line 678
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbEncrypt:Lcom/quickbird/sdk/QuickBird$QbEncrypt;

    invoke-interface {v0, p1}, Lcom/quickbird/sdk/QuickBird$QbEncrypt;->isProxy(Ljava/lang/String;)Z

    move-result v0

    .line 680
    :goto_a
    return v0

    :cond_b
    const/4 v0, 0x1

    goto :goto_a
.end method

.method public isSafeVpnOpened()Z
    .registers 2

    .prologue
    .line 614
    iget-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnOpened:Z

    return v0
.end method

.method public isVpnAvailable()Z
    .registers 5

    .prologue
    const/4 v0, 0x0

    .line 211
    sget v1, Landroid/os/Build$VERSION;->SDK_INT:I

    const/16 v2, 0xe

    if-ge v1, v2, :cond_8

    .line 240
    :cond_7
    :goto_7
    return v0

    .line 218
    :cond_8
    :try_start_8
    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    invoke-static {v1}, Landroid/net/VpnService;->prepare(Landroid/content/Context;)Landroid/content/Intent;
    :try_end_d
    .catch Ljava/lang/Exception; {:try_start_8 .. :try_end_d} :catch_12
    .catch Ljava/lang/Error; {:try_start_8 .. :try_end_d} :catch_26

    move-result-object v1

    .line 229
    if-nez v1, :cond_3a

    .line 230
    const/4 v0, 0x1

    goto :goto_7

    .line 219
    :catch_12
    move-exception v1

    .line 220
    sget-boolean v2, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->DEBUG:Z

    if-eqz v2, :cond_1e

    const-string v2, "QbSdk"

    const-string v3, "VpnService prepare unknown exception!"

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

    .line 221
    :cond_1e
    sget-boolean v2, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->DEBUG:Z

    if-eqz v2, :cond_7

    invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V

    goto :goto_7

    .line 223
    :catch_26
    move-exception v1

    .line 224
    sget-boolean v2, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->DEBUG:Z

    if-eqz v2, :cond_32

    const-string v2, "QbSdk"

    const-string v3, "VpnService prepare unknown error!"

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

    .line 225
    :cond_32
    sget-boolean v2, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->DEBUG:Z

    if-eqz v2, :cond_7

    invoke-virtual {v1}, Ljava/lang/Error;->printStackTrace()V

    goto :goto_7

    .line 232
    :cond_3a
    iget-object v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    invoke-virtual {v2}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;

    move-result-object v2

    .line 233
    if-eqz v2, :cond_5a

    const/high16 v3, 0x10000

    invoke-virtual {v2, v1, v3}, Landroid/content/pm/PackageManager;->queryIntentActivities(Landroid/content/Intent;I)Ljava/util/List;

    move-result-object v1

    invoke-interface {v1}, Ljava/util/List;->size()I

    move-result v1

    if-nez v1, :cond_5a

    .line 234
    sget-boolean v1, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->DEBUG:Z

    if-eqz v1, :cond_7

    .line 235
    const-string v1, "QbSdk"

    const-string v2, "Vpn approve dialog not found!"

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

    goto :goto_7

    .line 240
    :cond_5a
    new-instance v0, Ljava/io/File;

    const-string v1, "/dev/tun"

    invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V

    invoke-virtual {v0}, Ljava/io/File;->exists()Z

    move-result v0

    goto :goto_7
.end method

.method public isVpnOpened()Z
    .registers 2

    .prologue
    .line 415
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->isVpnAvailable()Z

    move-result v0

    if-nez v0, :cond_8

    .line 416
    const/4 v0, 0x0

    .line 419
    :goto_7
    return v0

    :cond_8
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    invoke-static {v0}, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;->isVpnConnected(Landroid/content/Context;)Z

    move-result v0

    goto :goto_7
.end method

.method public isVpnServiceAutoClose()Z
    .registers 2

    .prologue
    .line 197
    iget-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mAutoCloseVpn:Z

    return v0
.end method

.method public isVpnServiceAutoPause()Z
    .registers 2

    .prologue
    .line 177
    iget-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mAutoPauseVpn:Z

    return v0
.end method

.method public isVpnServiceAutoStart()Z
    .registers 2

    .prologue
    .line 167
    iget-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mAutoStartVpn:Z

    return v0
.end method

.method public onVpnDisconnect()V
    .registers 3

    .prologue
    const/4 v1, 0x0

    .line 452
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->isVpnAvailable()Z

    move-result v0

    if-nez v0, :cond_8

    .line 468
    :cond_7
    :goto_7
    return-void

    .line 456
    :cond_8
    iput-boolean v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbVpnOpened:Z

    .line 457
    iput-boolean v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnOpened:Z

    .line 458
    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->updateVpnAutoStartState()V

    .line 459
    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->unregisterNetworkChangeReceiver()V

    .line 461
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->isVpnOpened()Z

    move-result v0

    if-eqz v0, :cond_7

    .line 465
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mDisconnectListener:Lcom/quickbird/sdk/VpnDisconnectListener;

    if-eqz v0, :cond_7

    .line 466
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mDisconnectListener:Lcom/quickbird/sdk/VpnDisconnectListener;

    invoke-interface {v0}, Lcom/quickbird/sdk/VpnDisconnectListener;->onVpnDisconnected()V

    goto :goto_7
.end method

.method public declared-synchronized openSafeVpn(Lcom/quickbird/sdk/QuickBird$QbEncrypt;)Z
    .registers 10

    .prologue
    const/4 v0, 0x1

    .line 574
    monitor-enter p0

    :try_start_2
    iput-object p1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbEncrypt:Lcom/quickbird/sdk/QuickBird$QbEncrypt;

    .line 576
    iget-boolean v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnWhiteListLoaded:Z

    if-nez v1, :cond_21

    .line 577
    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnWhiteList:Ljava/util/HashSet;

    monitor-enter v1
    :try_end_b
    .catchall {:try_start_2 .. :try_end_b} :catchall_2f

    .line 578
    :try_start_b
    iget-boolean v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnWhiteListLoaded:Z

    if-nez v2, :cond_1d

    .line 579
    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->loadSafeVpnWhiteList()Ljava/util/HashSet;

    move-result-object v2

    .line 580
    iget-object v3, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnWhiteList:Ljava/util/HashSet;

    invoke-virtual {v3}, Ljava/util/HashSet;->clear()V

    .line 581
    iget-object v3, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnWhiteList:Ljava/util/HashSet;

    invoke-virtual {v3, v2}, Ljava/util/HashSet;->addAll(Ljava/util/Collection;)Z

    .line 583
    :cond_1d
    const/4 v2, 0x1

    iput-boolean v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnWhiteListLoaded:Z

    .line 584
    monitor-exit v1
    :try_end_21
    .catchall {:try_start_b .. :try_end_21} :catchall_2c

    .line 586
    :cond_21
    :try_start_21
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->isVpnOpened()Z

    move-result v1

    if-eqz v1, :cond_32

    .line 587
    const/4 v1, 0x1

    iput-boolean v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnOpened:Z
    :try_end_2a
    .catchall {:try_start_21 .. :try_end_2a} :catchall_2f

    .line 610
    :goto_2a
    monitor-exit p0

    return v0

    .line 584
    :catchall_2c
    move-exception v0

    :try_start_2d
    monitor-exit v1
    :try_end_2e
    .catchall {:try_start_2d .. :try_end_2e} :catchall_2c

    :try_start_2e
    throw v0
    :try_end_2f
    .catchall {:try_start_2e .. :try_end_2f} :catchall_2f

    .line 574
    :catchall_2f
    move-exception v0

    monitor-exit p0

    throw v0

    .line 591
    :cond_32
    :try_start_32
    new-instance v1, Lcom/quickbird/sdk/internal/RegistManager;

    iget-object v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    invoke-direct {v1, v2}, Lcom/quickbird/sdk/internal/RegistManager;-><init>(Landroid/content/Context;)V

    invoke-virtual {v1}, Lcom/quickbird/sdk/internal/RegistManager;->activateQb()V
    :try_end_3c
    .catch Ljava/lang/Exception; {:try_start_32 .. :try_end_3c} :catch_6e
    .catchall {:try_start_32 .. :try_end_3c} :catchall_2f

    .line 595
    :cond_3c
    :goto_3c
    :try_start_3c
    new-instance v1, Landroid/content/Intent;

    iget-object v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    const-class v3, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

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

    .line 596
    const-string v2, "START_SAFE_VPN"

    invoke-virtual {v1, v2}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;

    .line 597
    iget-object v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    invoke-virtual {v2, v1}, Landroid/content/Context;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;

    .line 599
    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->registerNetworkChangeReceiver()V

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

    move-result-wide v2

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

    move-result-wide v4

    sub-long/2addr v4, v2

    const-wide/16 v6, 0x4e20

    cmp-long v1, v4, v6

    if-gez v1, :cond_83

    .line 603
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->isVpnOpened()Z

    move-result v1

    if-eqz v1, :cond_7d

    .line 604
    const/4 v1, 0x1

    iput-boolean v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnOpened:Z

    .line 605
    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->updateVpnAutoStartState()V

    goto :goto_2a

    .line 592
    :catch_6e
    move-exception v1

    .line 593
    sget-boolean v2, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->DEBUG:Z

    if-eqz v2, :cond_3c

    const-string v2, "QbSdk"

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

    move-result-object v1

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

    goto :goto_3c

    .line 608
    :cond_7d
    const-wide/16 v4, 0x64

    invoke-static {v4, v5}, Landroid/os/SystemClock;->sleep(J)V
    :try_end_82
    .catchall {:try_start_3c .. :try_end_82} :catchall_2f

    goto :goto_56

    .line 610
    :cond_83
    const/4 v0, 0x0

    goto :goto_2a
.end method

.method public declared-synchronized openVpnService()Z
    .registers 9

    .prologue
    const/4 v0, 0x0

    const/4 v1, 0x1

    .line 381
    monitor-enter p0

    :try_start_3
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->isVpnAvailable()Z
    :try_end_6
    .catchall {:try_start_3 .. :try_end_6} :catchall_4b

    move-result v2

    if-nez v2, :cond_b

    .line 411
    :cond_9
    :goto_9
    monitor-exit p0

    return v0

    .line 385
    :cond_b
    :try_start_b
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->isVpnOpened()Z

    move-result v2

    if-eqz v2, :cond_16

    .line 386
    const/4 v0, 0x1

    iput-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbVpnOpened:Z

    move v0, v1

    .line 387
    goto :goto_9

    .line 390
    :cond_16
    iget-object v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    invoke-static {v2}, Lcom/quickbird/sdk/NetChangeReceiver;->checkNetType(Landroid/content/Context;)Lcom/quickbird/sdk/NetChangeReceiver$NetType;

    move-result-object v2

    .line 392
    sget-object v3, Lcom/quickbird/sdk/NetChangeReceiver$NetType;->NET_TYPE_NET:Lcom/quickbird/sdk/NetChangeReceiver$NetType;

    if-eq v2, v3, :cond_47

    iget-boolean v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mAutoPauseVpn:Z

    if-eqz v2, :cond_47

    .line 393
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->pauseVpnService()V

    .line 398
    :goto_27
    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->registerNetworkChangeReceiver()V

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

    move-result-wide v2

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

    move-result-wide v4

    sub-long/2addr v4, v2

    const-wide/16 v6, 0x4e20

    cmp-long v4, v4, v6

    if-gez v4, :cond_9

    .line 402
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->isVpnOpened()Z

    move-result v4

    if-eqz v4, :cond_4e

    .line 403
    const/4 v0, 0x1

    iput-boolean v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbVpnOpened:Z

    .line 404
    invoke-direct {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->updateVpnAutoStartState()V

    move v0, v1

    .line 405
    goto :goto_9

    .line 395
    :cond_47
    invoke-virtual {p0}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->startVpnService()V
    :try_end_4a
    .catchall {:try_start_b .. :try_end_4a} :catchall_4b

    goto :goto_27

    .line 381
    :catchall_4b
    move-exception v0

    monitor-exit p0

    throw v0

    .line 408
    :cond_4e
    const-wide/16 v4, 0x64

    :try_start_50
    invoke-static {v4, v5}, Landroid/os/SystemClock;->sleep(J)V
    :try_end_53
    .catchall {:try_start_50 .. :try_end_53} :catchall_4b

    goto :goto_2e
.end method

.method public pauseVpnService()V
    .registers 4

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

    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    const-class v2, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

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

    .line 533
    const-string v1, "PAUSE_VPN_ACTION"

    invoke-virtual {v0, v1}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;

    .line 534
    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    invoke-virtual {v1, v0}, Landroid/content/Context;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;

    .line 535
    sget-boolean v0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->DEBUG:Z

    if-eqz v0, :cond_31

    .line 536
    const-string v0, "QbSdk"

    new-instance v1, Ljava/lang/StringBuilder;

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

    const-string v2, "Pause vpn service! "

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

    move-result-object v1

    iget-object v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mVpnName:Ljava/lang/String;

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)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 538
    :cond_31
    return-void
.end method

.method public querySafeVpnWhiteList()Ljava/util/HashSet;
    .registers 4
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/HashSet",
            "<",
            "Ljava/lang/String;",
            ">;"
        }
    .end annotation

    .prologue
    .line 648
    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnWhiteList:Ljava/util/HashSet;

    monitor-enter v1

    .line 649
    :try_start_3
    new-instance v0, Ljava/util/HashSet;

    iget-object v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mSafeVpnWhiteList:Ljava/util/HashSet;

    invoke-direct {v0, v2}, Ljava/util/HashSet;-><init>(Ljava/util/Collection;)V

    monitor-exit v1

    return-object v0

    .line 650
    :catchall_c
    move-exception v0

    monitor-exit v1
    :try_end_e
    .catchall {:try_start_3 .. :try_end_e} :catchall_c

    throw v0
.end method

.method public refreshVpnServiceState()V
    .registers 6

    .prologue
    const/4 v4, 0x1

    const/4 v3, 0x0

    const/4 v2, 0x2

    .line 249
    sget-object v0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager$1;->$SwitchMap$com$quickbird$sdk$NetChangeReceiver$NetType:[I

    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    invoke-static {v1}, Lcom/quickbird/sdk/NetChangeReceiver;->checkNetType(Landroid/content/Context;)Lcom/quickbird/sdk/NetChangeReceiver$NetType;

    move-result-object v1

    invoke-virtual {v1}, Lcom/quickbird/sdk/NetChangeReceiver$NetType;->ordinal()I

    move-result v1

    aget v0, v0, v1

    packed-switch v0, :pswitch_data_64

    .line 297
    iput v3, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mCurrentApnType:I

    .line 298
    invoke-direct {p0, v2}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->changeVpnServiceState(I)V

    .line 301
    :cond_19
    :goto_19
    return-void

    .line 251
    :pswitch_1a
    iput v4, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mCurrentApnType:I

    .line 252
    invoke-direct {p0, v4}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->changeVpnServiceState(I)V

    .line 253
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mNetChangeListener:Lcom/quickbird/sdk/NetChangeListener;

    if-eqz v0, :cond_19

    .line 254
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mNetChangeListener:Lcom/quickbird/sdk/NetChangeListener;

    invoke-interface {v0, v2}, Lcom/quickbird/sdk/NetChangeListener;->onNetChanged(I)V

    goto :goto_19

    .line 259
    :pswitch_29
    iput v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mCurrentApnType:I

    .line 260
    invoke-direct {p0, v2}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->changeVpnServiceState(I)V

    .line 261
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mNetChangeListener:Lcom/quickbird/sdk/NetChangeListener;

    if-eqz v0, :cond_19

    .line 262
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mNetChangeListener:Lcom/quickbird/sdk/NetChangeListener;

    const/4 v1, 0x3

    invoke-interface {v0, v1}, Lcom/quickbird/sdk/NetChangeListener;->onNetChanged(I)V

    goto :goto_19

    .line 267
    :pswitch_39
    iput v3, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mCurrentApnType:I

    .line 268
    invoke-direct {p0, v2}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->changeVpnServiceState(I)V

    .line 269
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mNetChangeListener:Lcom/quickbird/sdk/NetChangeListener;

    if-eqz v0, :cond_19

    .line 270
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mNetChangeListener:Lcom/quickbird/sdk/NetChangeListener;

    invoke-interface {v0, v4}, Lcom/quickbird/sdk/NetChangeListener;->onNetChanged(I)V

    goto :goto_19

    .line 276
    :pswitch_48
    iput v3, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mCurrentApnType:I

    .line 277
    invoke-direct {p0, v2}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->changeVpnServiceState(I)V

    .line 278
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mNetChangeListener:Lcom/quickbird/sdk/NetChangeListener;

    if-eqz v0, :cond_19

    .line 279
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mNetChangeListener:Lcom/quickbird/sdk/NetChangeListener;

    invoke-interface {v0, v3}, Lcom/quickbird/sdk/NetChangeListener;->onNetChanged(I)V

    goto :goto_19

    .line 285
    :pswitch_57
    iput v3, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mCurrentApnType:I

    .line 286
    invoke-direct {p0, v2}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->changeVpnServiceState(I)V

    goto :goto_19

    .line 291
    :pswitch_5d
    iput v3, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mCurrentApnType:I

    .line 292
    invoke-direct {p0, v2}, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->changeVpnServiceState(I)V

    goto :goto_19

    .line 249
    nop

    :pswitch_data_64
    .packed-switch 0x1
        :pswitch_1a
        :pswitch_29
        :pswitch_39
        :pswitch_48
        :pswitch_57
        :pswitch_5d
    .end packed-switch
.end method

.method public setNetChangeListener(Lcom/quickbird/sdk/NetChangeListener;)V
    .registers 2

    .prologue
    .line 471
    iput-object p1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mNetChangeListener:Lcom/quickbird/sdk/NetChangeListener;

    .line 472
    return-void
.end method

.method public setVpnDisconnectListener(Lcom/quickbird/sdk/VpnDisconnectListener;)V
    .registers 2

    .prologue
    .line 445
    iput-object p1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mDisconnectListener:Lcom/quickbird/sdk/VpnDisconnectListener;

    .line 446
    return-void
.end method

.method public setVpnServiceAutoClose(Z)V
    .registers 2

    .prologue
    .line 207
    iput-boolean p1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mAutoCloseVpn:Z

    .line 208
    return-void
.end method

.method public setVpnServiceAutoPause(Z)V
    .registers 2

    .prologue
    .line 187
    iput-boolean p1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mAutoPauseVpn:Z

    .line 188
    return-void
.end method

.method public setVpnServiceName(Ljava/lang/String;)V
    .registers 2

    .prologue
    .line 363
    iput-object p1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mVpnName:Ljava/lang/String;

    .line 364
    return-void
.end method

.method public skipUrl(Ljava/lang/String;)Z
    .registers 3

    .prologue
    .line 684
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbEncrypt:Lcom/quickbird/sdk/QuickBird$QbEncrypt;

    if-eqz v0, :cond_b

    .line 685
    iget-object v0, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mQbEncrypt:Lcom/quickbird/sdk/QuickBird$QbEncrypt;

    invoke-interface {v0, p1}, Lcom/quickbird/sdk/QuickBird$QbEncrypt;->skipUrl(Ljava/lang/String;)Z

    move-result v0

    .line 687
    :goto_a
    return v0

    :cond_b
    const/4 v0, 0x0

    goto :goto_a
.end method

.method public startVpnService()V
    .registers 4

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

    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    const-class v2, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

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

    .line 513
    const-string v1, "VPN_START_ACTION"

    invoke-virtual {v0, v1}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;

    .line 514
    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    invoke-virtual {v1, v0}, Landroid/content/Context;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;

    .line 515
    sget-boolean v0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->DEBUG:Z

    if-eqz v0, :cond_31

    .line 516
    const-string v0, "QbSdk"

    new-instance v1, Ljava/lang/StringBuilder;

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

    const-string v2, "Start vpn service : "

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

    move-result-object v1

    iget-object v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mVpnName:Ljava/lang/String;

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)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 518
    :cond_31
    return-void
.end method

.method public stopVpnService()V
    .registers 4

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

    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    const-class v2, Lcom/quickbird/mini/vpn/vpn/LocalVpnService;

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

    .line 523
    const-string v1, "VPN_STOP_ACTION"

    invoke-virtual {v0, v1}, Landroid/content/Intent;->setAction(Ljava/lang/String;)Landroid/content/Intent;

    .line 524
    iget-object v1, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mContext:Landroid/content/Context;

    invoke-virtual {v1, v0}, Landroid/content/Context;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;

    .line 525
    sget-boolean v0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->DEBUG:Z

    if-eqz v0, :cond_31

    .line 526
    const-string v0, "QbSdk"

    new-instance v1, Ljava/lang/StringBuilder;

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

    const-string v2, "Stop vpn service! "

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

    move-result-object v1

    iget-object v2, p0, Lcom/quickbird/mini/vpn/vpn/VpnServiceManager;->mVpnName:Ljava/lang/String;

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)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 528
    :cond_31
    return-void
.end method