ConfigRequest.smali

.class Lcom/kwad/sdk/api/loader/ConfigRequest;
.super Ljava/lang/Object;


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/kwad/sdk/api/loader/ConfigRequest$Response;
    }
.end annotation


# static fields
.field private static final CONNECTION_TIME_OUT:I = 0x2710

.field private static final MAX_REDIRECTS:I = 0x15

.field private static final READ_WRITE_TIME_OUT:I = 0x7530


# instance fields
.field private currentNum:I

.field private mCurrentUrl:Ljava/lang/String;

.field private mUrl:Ljava/lang/String;


# direct methods
.method constructor <init>(Ljava/lang/String;)V
    .registers 2

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

    iput-object p1, p0, Lcom/kwad/sdk/api/loader/ConfigRequest;->mUrl:Ljava/lang/String;

    iput-object p1, p0, Lcom/kwad/sdk/api/loader/ConfigRequest;->mCurrentUrl:Ljava/lang/String;

    return-void
.end method

.method static synthetic access$000(Lcom/kwad/sdk/api/loader/ConfigRequest;Lcom/kwad/sdk/api/loader/ConfigRequest$Response;)V
    .registers 2

    invoke-direct {p0, p1}, Lcom/kwad/sdk/api/loader/ConfigRequest;->execute(Lcom/kwad/sdk/api/loader/ConfigRequest$Response;)V

    return-void
.end method

.method private createConnection()Ljava/net/HttpURLConnection;
    .registers 6
    .annotation build Landroid/support/annotation/Nullable;
    .end annotation

    const/4 v4, 0x1

    iget-object v0, p0, Lcom/kwad/sdk/api/loader/ConfigRequest;->mCurrentUrl:Ljava/lang/String;

    invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v0

    if-eqz v0, :cond_b

    const/4 v0, 0x0

    :goto_a
    return-object v0

    :cond_b
    iget-object v0, p0, Lcom/kwad/sdk/api/loader/ConfigRequest;->mCurrentUrl:Ljava/lang/String;

    const/16 v1, 0x2710

    const/16 v2, 0x7530

    const/4 v3, 0x0

    invoke-direct {p0, v0, v1, v2, v3}, Lcom/kwad/sdk/api/loader/ConfigRequest;->createUrlConnection(Ljava/lang/String;IIZ)Ljava/net/URLConnection;

    move-result-object v0

    check-cast v0, Ljava/net/HttpURLConnection;

    const-string v1, "POST"

    invoke-virtual {v0, v1}, Ljava/net/HttpURLConnection;->setRequestMethod(Ljava/lang/String;)V

    invoke-virtual {v0, v4}, Ljava/net/HttpURLConnection;->setDoOutput(Z)V

    invoke-virtual {v0, v4}, Ljava/net/HttpURLConnection;->setInstanceFollowRedirects(Z)V

    const-string v1, "Content-Type"

    const-string v2, "application/json; charset=UTF-8"

    invoke-virtual {v0, v1, v2}, Ljava/net/HttpURLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V

    goto :goto_a
.end method

.method private createUrlConnection(Ljava/lang/String;IIZ)Ljava/net/URLConnection;
    .registers 8

    new-instance v0, Ljava/net/URL;

    invoke-direct {v0, p1}, Ljava/net/URL;-><init>(Ljava/lang/String;)V

    invoke-virtual {v0}, Ljava/net/URL;->openConnection()Ljava/net/URLConnection;

    move-result-object v0

    const-string v1, "Accept-Language"

    const-string v2, "zh-CN"

    invoke-virtual {v0, v1, v2}, Ljava/net/URLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V

    if-lez p2, :cond_15

    invoke-virtual {v0, p2}, Ljava/net/URLConnection;->setConnectTimeout(I)V

    :cond_15
    if-lez p3, :cond_1a

    invoke-virtual {v0, p3}, Ljava/net/URLConnection;->setReadTimeout(I)V

    :cond_1a
    invoke-virtual {v0, p4}, Ljava/net/URLConnection;->setUseCaches(Z)V

    const/4 v1, 0x1

    invoke-virtual {v0, v1}, Ljava/net/URLConnection;->setDoInput(Z)V

    const-string v1, "Connection"

    const-string v2, "keep-alive"

    invoke-virtual {v0, v1, v2}, Ljava/net/URLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V

    const-string v1, "Charset"

    const-string v2, "UTF-8"

    invoke-virtual {v0, v1, v2}, Ljava/net/URLConnection;->setRequestProperty(Ljava/lang/String;Ljava/lang/String;)V

    return-object v0
.end method

.method private execute(Lcom/kwad/sdk/api/loader/ConfigRequest$Response;)V
    .registers 7

    const/4 v1, 0x0

    :try_start_1
    invoke-direct {p0}, Lcom/kwad/sdk/api/loader/ConfigRequest;->createConnection()Ljava/net/HttpURLConnection;

    move-result-object v1

    if-eqz v1, :cond_3e

    invoke-virtual {v1}, Ljava/net/HttpURLConnection;->connect()V

    new-instance v0, Ljava/io/DataOutputStream;

    invoke-virtual {v1}, Ljava/net/HttpURLConnection;->getOutputStream()Ljava/io/OutputStream;

    move-result-object v2

    invoke-direct {v0, v2}, Ljava/io/DataOutputStream;-><init>(Ljava/io/OutputStream;)V

    invoke-direct {p0}, Lcom/kwad/sdk/api/loader/ConfigRequest;->initParameters()Ljava/lang/String;

    move-result-object v2

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

    move-result-object v2

    invoke-virtual {v0, v2}, Ljava/io/DataOutputStream;->write([B)V

    invoke-virtual {v1}, Ljava/net/HttpURLConnection;->getResponseCode()I

    move-result v0

    const/16 v2, 0xc8

    if-ne v0, v2, :cond_44

    invoke-virtual {v1}, Ljava/net/HttpURLConnection;->getInputStream()Ljava/io/InputStream;

    move-result-object v0

    invoke-static {v0}, Lcom/kwad/sdk/api/loader/ConfigRequest;->inputStream2String(Ljava/io/InputStream;)Ljava/lang/String;

    move-result-object v0

    new-instance v2, Lcom/kwad/sdk/api/loader/Api$UpdateData;

    invoke-direct {v2}, Lcom/kwad/sdk/api/loader/Api$UpdateData;-><init>()V

    new-instance v3, Lorg/json/JSONObject;

    invoke-direct {v3, v0}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V

    invoke-virtual {v2, v3}, Lcom/kwad/sdk/api/loader/Api$UpdateData;->parseJson(Lorg/json/JSONObject;)V

    invoke-interface {p1, v2}, Lcom/kwad/sdk/api/loader/ConfigRequest$Response;->onSuccess(Lcom/kwad/sdk/api/loader/Api$UpdateData;)V
    :try_end_3e
    .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_3e} :catch_61
    .catchall {:try_start_1 .. :try_end_3e} :catchall_86

    :cond_3e
    :goto_3e
    if-eqz v1, :cond_43

    :try_start_40
    invoke-virtual {v1}, Ljava/net/HttpURLConnection;->disconnect()V
    :try_end_43
    .catch Ljava/lang/Exception; {:try_start_40 .. :try_end_43} :catch_8d

    :cond_43
    :goto_43
    return-void

    :cond_44
    :try_start_44
    div-int/lit8 v2, v0, 0x64

    const/4 v3, 0x3

    if-ne v2, v3, :cond_6d

    iget v0, p0, Lcom/kwad/sdk/api/loader/ConfigRequest;->currentNum:I

    const/16 v2, 0x15

    if-ge v0, v2, :cond_3e

    const-string v0, "Location"

    invoke-virtual {v1, v0}, Ljava/net/HttpURLConnection;->getHeaderField(Ljava/lang/String;)Ljava/lang/String;

    move-result-object v0

    iput-object v0, p0, Lcom/kwad/sdk/api/loader/ConfigRequest;->mCurrentUrl:Ljava/lang/String;

    iget v0, p0, Lcom/kwad/sdk/api/loader/ConfigRequest;->currentNum:I

    add-int/lit8 v0, v0, 0x1

    iput v0, p0, Lcom/kwad/sdk/api/loader/ConfigRequest;->currentNum:I

    invoke-direct {p0, p1}, Lcom/kwad/sdk/api/loader/ConfigRequest;->execute(Lcom/kwad/sdk/api/loader/ConfigRequest$Response;)V
    :try_end_60
    .catch Ljava/lang/Exception; {:try_start_44 .. :try_end_60} :catch_61
    .catchall {:try_start_44 .. :try_end_60} :catchall_86

    goto :goto_3e

    :catch_61
    move-exception v0

    :try_start_62
    invoke-interface {p1, v0}, Lcom/kwad/sdk/api/loader/ConfigRequest$Response;->onError(Ljava/lang/Exception;)V
    :try_end_65
    .catchall {:try_start_62 .. :try_end_65} :catchall_86

    if-eqz v1, :cond_43

    :try_start_67
    invoke-virtual {v1}, Ljava/net/HttpURLConnection;->disconnect()V
    :try_end_6a
    .catch Ljava/lang/Exception; {:try_start_67 .. :try_end_6a} :catch_6b

    goto :goto_43

    :catch_6b
    move-exception v0

    goto :goto_43

    :cond_6d
    :try_start_6d
    new-instance v2, Ljava/lang/RuntimeException;

    new-instance v3, Ljava/lang/StringBuilder;

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

    const-string v4, "response code = "

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

    move-result-object v3

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

    move-result-object v0

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

    move-result-object v0

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

    throw v2
    :try_end_86
    .catch Ljava/lang/Exception; {:try_start_6d .. :try_end_86} :catch_61
    .catchall {:try_start_6d .. :try_end_86} :catchall_86

    :catchall_86
    move-exception v0

    if-eqz v1, :cond_8c

    :try_start_89
    invoke-virtual {v1}, Ljava/net/HttpURLConnection;->disconnect()V
    :try_end_8c
    .catch Ljava/lang/Exception; {:try_start_89 .. :try_end_8c} :catch_8f

    :cond_8c
    :goto_8c
    throw v0

    :catch_8d
    move-exception v0

    goto :goto_43

    :catch_8f
    move-exception v1

    goto :goto_8c
.end method

.method private initParameters()Ljava/lang/String;
    .registers 11

    invoke-static {}, Lcom/kwad/sdk/api/loader/Loader;->get()Lcom/kwad/sdk/api/loader/Loader;

    move-result-object v0

    invoke-virtual {v0}, Lcom/kwad/sdk/api/loader/Loader;->getContext()Landroid/content/Context;

    move-result-object v0

    const-string v2, "3.3.0"

    const/16 v3, 0x14a

    sget v4, Lcom/kwad/sdk/api/ApiConst;->SDK_TYPE:I

    const/4 v1, -0x1

    invoke-static {}, Lcom/kwad/sdk/api/loader/Loader;->get()Lcom/kwad/sdk/api/loader/Loader;

    move-result-object v5

    invoke-virtual {v5, v0}, Lcom/kwad/sdk/api/loader/Loader;->getCurrentDynamicVersion(Landroid/content/Context;)Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v0

    invoke-static {}, Lcom/kwad/sdk/api/loader/Loader;->get()Lcom/kwad/sdk/api/loader/Loader;

    move-result-object v5

    invoke-virtual {v5}, Lcom/kwad/sdk/api/loader/Loader;->getKsAdSDKImpl()Lcom/kwad/sdk/api/core/IKsAdSDK;

    move-result-object v5

    if-eqz v5, :cond_33

    invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v1

    if-eqz v1, :cond_2f

    invoke-interface {v5}, Lcom/kwad/sdk/api/core/IKsAdSDK;->getSDKVersion()Ljava/lang/String;

    move-result-object v0

    :cond_2f
    invoke-interface {v5}, Lcom/kwad/sdk/api/core/IKsAdSDK;->getSDKVersionCode()I

    move-result v1

    :cond_33
    invoke-static {}, Lcom/kwad/sdk/api/loader/Loader;->get()Lcom/kwad/sdk/api/loader/Loader;

    move-result-object v5

    invoke-virtual {v5}, Lcom/kwad/sdk/api/loader/Loader;->getKsAdSDKImpl()Lcom/kwad/sdk/api/core/IKsAdSDK;

    move-result-object v5

    invoke-interface {v5}, Lcom/kwad/sdk/api/core/IKsAdSDK;->getAppInfo()Lorg/json/JSONObject;

    move-result-object v5

    invoke-static {}, Lcom/kwad/sdk/api/loader/Loader;->get()Lcom/kwad/sdk/api/loader/Loader;

    move-result-object v6

    invoke-virtual {v6}, Lcom/kwad/sdk/api/loader/Loader;->getKsAdSDKImpl()Lcom/kwad/sdk/api/core/IKsAdSDK;

    move-result-object v6

    invoke-interface {v6}, Lcom/kwad/sdk/api/core/IKsAdSDK;->getDeviceInfo()Lorg/json/JSONObject;

    move-result-object v6

    invoke-static {}, Lcom/kwad/sdk/api/loader/Loader;->get()Lcom/kwad/sdk/api/loader/Loader;

    move-result-object v7

    invoke-virtual {v7}, Lcom/kwad/sdk/api/loader/Loader;->getKsAdSDKImpl()Lcom/kwad/sdk/api/core/IKsAdSDK;

    move-result-object v7

    invoke-interface {v7}, Lcom/kwad/sdk/api/core/IKsAdSDK;->getNetworkInfo()Lorg/json/JSONObject;

    move-result-object v7

    new-instance v8, Lorg/json/JSONObject;

    invoke-direct {v8}, Lorg/json/JSONObject;-><init>()V

    :try_start_5c
    const-string v9, "sdkApiVersion"

    invoke-virtual {v8, v9, v2}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;

    const-string v2, "sdkApiVersionCode"

    invoke-virtual {v8, v2, v3}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;

    const-string v2, "sdkVersion"

    invoke-virtual {v8, v2, v0}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;

    const-string v0, "SDKVersionCode"

    invoke-virtual {v8, v0, v1}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;

    const-string v0, "sdkType"

    invoke-virtual {v8, v0, v4}, Lorg/json/JSONObject;->put(Ljava/lang/String;I)Lorg/json/JSONObject;

    const-string v0, "appInfo"

    invoke-virtual {v8, v0, v5}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;

    const-string v0, "deviceInfo"

    invoke-virtual {v8, v0, v6}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;

    const-string v0, "networkInfo"

    invoke-virtual {v8, v0, v7}, Lorg/json/JSONObject;->put(Ljava/lang/String;Ljava/lang/Object;)Lorg/json/JSONObject;
    :try_end_84
    .catch Lorg/json/JSONException; {:try_start_5c .. :try_end_84} :catch_89

    :goto_84
    invoke-virtual {v8}, Lorg/json/JSONObject;->toString()Ljava/lang/String;

    move-result-object v0

    return-object v0

    :catch_89
    move-exception v0

    invoke-virtual {v0}, Lorg/json/JSONException;->printStackTrace()V

    goto :goto_84
.end method

.method private static inputStream2String(Ljava/io/InputStream;)Ljava/lang/String;
    .registers 5

    new-instance v1, Ljava/io/ByteArrayOutputStream;

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

    const/16 v0, 0x400

    new-array v0, v0, [B

    :goto_9
    :try_start_9
    invoke-virtual {p0, v0}, Ljava/io/InputStream;->read([B)I

    move-result v2

    const/4 v3, -0x1

    if-eq v2, v3, :cond_25

    const/4 v3, 0x0

    invoke-virtual {v1, v0, v3, v2}, Ljava/io/ByteArrayOutputStream;->write([BII)V
    :try_end_14
    .catch Ljava/io/IOException; {:try_start_9 .. :try_end_14} :catch_15
    .catchall {:try_start_9 .. :try_end_14} :catchall_4d

    goto :goto_9

    :catch_15
    move-exception v0

    :try_start_16
    invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
    :try_end_19
    .catchall {:try_start_16 .. :try_end_19} :catchall_4d

    if-eqz p0, :cond_1e

    :try_start_1b
    invoke-virtual {p0}, Ljava/io/InputStream;->close()V
    :try_end_1e
    .catch Ljava/io/IOException; {:try_start_1b .. :try_end_1e} :catch_43

    :cond_1e
    :goto_1e
    if-eqz v1, :cond_23

    :try_start_20
    invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->close()V
    :try_end_23
    .catch Ljava/io/IOException; {:try_start_20 .. :try_end_23} :catch_48

    :cond_23
    :goto_23
    const/4 v0, 0x0

    :cond_24
    :goto_24
    return-object v0

    :cond_25
    :try_start_25
    new-instance v0, Ljava/lang/String;

    invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->toByteArray()[B

    move-result-object v2

    invoke-direct {v0, v2}, Ljava/lang/String;-><init>([B)V
    :try_end_2e
    .catch Ljava/io/IOException; {:try_start_25 .. :try_end_2e} :catch_15
    .catchall {:try_start_25 .. :try_end_2e} :catchall_4d

    if-eqz p0, :cond_33

    :try_start_30
    invoke-virtual {p0}, Ljava/io/InputStream;->close()V
    :try_end_33
    .catch Ljava/io/IOException; {:try_start_30 .. :try_end_33} :catch_3e

    :cond_33
    :goto_33
    if-eqz v1, :cond_24

    :try_start_35
    invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->close()V
    :try_end_38
    .catch Ljava/io/IOException; {:try_start_35 .. :try_end_38} :catch_39

    goto :goto_24

    :catch_39
    move-exception v1

    invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_24

    :catch_3e
    move-exception v2

    invoke-virtual {v2}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_33

    :catch_43
    move-exception v0

    invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_1e

    :catch_48
    move-exception v0

    invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V

    goto :goto_23

    :catchall_4d
    move-exception v0

    if-eqz p0, :cond_53

    :try_start_50
    invoke-virtual {p0}, Ljava/io/InputStream;->close()V
    :try_end_53
    .catch Ljava/io/IOException; {:try_start_50 .. :try_end_53} :catch_59

    :cond_53
    :goto_53
    if-eqz v1, :cond_58

    :try_start_55
    invoke-virtual {v1}, Ljava/io/ByteArrayOutputStream;->close()V
    :