SecurityChecker.smali

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


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/kwad/sdk/api/loader/SecurityChecker$SecurityListener;,
        Lcom/kwad/sdk/api/loader/SecurityChecker$State;
    }
.end annotation


# static fields
.field private static final FILE_NAME_SUFFIX:Ljava/lang/String; = ".apk"

.field private static volatile sState:Lcom/kwad/sdk/api/loader/SecurityChecker$State;


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

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

    return-void
.end method

.method static synthetic access$000()Lcom/kwad/sdk/api/loader/SecurityChecker$State;
    .registers 1

    sget-object v0, Lcom/kwad/sdk/api/loader/SecurityChecker;->sState:Lcom/kwad/sdk/api/loader/SecurityChecker$State;

    return-object v0
.end method

.method static synthetic access$002(Lcom/kwad/sdk/api/loader/SecurityChecker$State;)Lcom/kwad/sdk/api/loader/SecurityChecker$State;
    .registers 1

    sput-object p0, Lcom/kwad/sdk/api/loader/SecurityChecker;->sState:Lcom/kwad/sdk/api/loader/SecurityChecker$State;

    return-object p0
.end method

.method static synthetic access$100(Ljava/io/File;)Z
    .registers 2

    invoke-static {p0}, Lcom/kwad/sdk/api/loader/SecurityChecker;->checkFileValid(Ljava/io/File;)Z

    move-result v0

    return v0
.end method

.method static synthetic access$200(Ljava/io/File;Ljava/lang/String;)Z
    .registers 3

    invoke-static {p0, p1}, Lcom/kwad/sdk/api/loader/SecurityChecker;->checkMd5(Ljava/io/File;Ljava/lang/String;)Z

    move-result v0

    return v0
.end method

.method private static checkFileValid(Ljava/io/File;)Z
    .registers 5

    sget-object v0, Lcom/kwad/sdk/api/loader/SecurityChecker$State;->DATA_VALID:Lcom/kwad/sdk/api/loader/SecurityChecker$State;

    sput-object v0, Lcom/kwad/sdk/api/loader/SecurityChecker;->sState:Lcom/kwad/sdk/api/loader/SecurityChecker$State;

    if-eqz p0, :cond_24

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

    move-result v0

    if-eqz v0, :cond_24

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

    move-result-object v0

    const-string v1, ".apk"

    invoke-virtual {v0, v1}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z

    move-result v0

    if-eqz v0, :cond_24

    invoke-virtual {p0}, Ljava/io/File;->length()J

    move-result-wide v0

    const-wide/16 v2, 0x0

    cmp-long v0, v0, v2

    if-lez v0, :cond_24

    const/4 v0, 0x1

    :goto_23
    return v0

    :cond_24
    const/4 v0, 0x0

    goto :goto_23
.end method

.method private static checkMd5(Ljava/io/File;Ljava/lang/String;)Z
    .registers 4

    sget-object v0, Lcom/kwad/sdk/api/loader/SecurityChecker$State;->MD5:Lcom/kwad/sdk/api/loader/SecurityChecker$State;

    sput-object v0, Lcom/kwad/sdk/api/loader/SecurityChecker;->sState:Lcom/kwad/sdk/api/loader/SecurityChecker$State;

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

    move-result v0

    if-eqz v0, :cond_c

    const/4 v0, 0x0

    :goto_b
    return v0

    :cond_c
    invoke-virtual {p1}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;

    move-result-object v0

    invoke-static {p0}, Lcom/kwad/sdk/api/loader/SecurityUtils;->getFileMD5(Ljava/io/File;)Ljava/lang/String;

    move-result-object v1

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

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z

    move-result v0

    goto :goto_b
.end method

.method static checkSecurity(Ljava/io/File;Lcom/kwad/sdk/api/loader/Api$Data;Lcom/kwad/sdk/api/loader/SecurityChecker$SecurityListener;)V
    .registers 4

    new-instance v0, Lcom/kwad/sdk/api/loader/SecurityChecker$1;

    invoke-direct {v0, p1, p0, p2}, Lcom/kwad/sdk/api/loader/SecurityChecker$1;-><init>(Lcom/kwad/sdk/api/loader/Api$Data;Ljava/io/File;Lcom/kwad/sdk/api/loader/SecurityChecker$SecurityListener;)V

    invoke-static {v0}, Lcom/kwad/sdk/api/loader/ExecutorUtils;->submit(Ljava/lang/Runnable;)Ljava/util/concurrent/Future;

    return-void
.end method