WebResourceService.smali
.class public Lcom/amazon/device/ads/WebResourceService;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Ljava/lang/Runnable;
# static fields
.field private static final REFRESH_INTERVAL:J = 0x5265c00L
.field private static final WEB_DIR:Ljava/lang/String; = "/mdtb_web/"
.field private static inProgress:Z = false
.field private static theService:Lcom/amazon/device/ads/WebResourceService;
# direct methods
.method static constructor <clinit>()V
.registers 0
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 13
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private createWebDirIfNeeded()V
.registers 4
.line 90
invoke-static {}, Lcom/amazon/device/ads/AdRegistration;->getContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object v0
.line 91
new-instance v1, Ljava/io/File;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v0, "/mdtb_web/"
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 92
invoke-virtual {v1}, Ljava/io/File;->isDirectory()Z
move-result v0
if-eqz v0, :cond_29
return-void
.line 95
:cond_29
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_30
return-void
.line 99
:cond_30
invoke-virtual {v1}, Ljava/io/File;->mkdir()Z
return-void
.end method
.method static getInstance()Lcom/amazon/device/ads/WebResourceService;
.registers 1
.line 41
sget-object v0, Lcom/amazon/device/ads/WebResourceService;->theService:Lcom/amazon/device/ads/WebResourceService;
if-nez v0, :cond_b
.line 42
new-instance v0, Lcom/amazon/device/ads/WebResourceService;
invoke-direct {v0}, Lcom/amazon/device/ads/WebResourceService;-><init>()V
sput-object v0, Lcom/amazon/device/ads/WebResourceService;->theService:Lcom/amazon/device/ads/WebResourceService;
.line 44
:cond_b
sget-object v0, Lcom/amazon/device/ads/WebResourceService;->theService:Lcom/amazon/device/ads/WebResourceService;
return-object v0
.end method
.method public static init()V
.registers 6
.line 24
sget-boolean v0, Lcom/amazon/device/ads/WebResourceService;->inProgress:Z
if-eqz v0, :cond_5
return-void
.line 27
:cond_5
invoke-static {}, Lcom/amazon/device/ads/WebResourceService;->getInstance()Lcom/amazon/device/ads/WebResourceService;
move-result-object v0
.line 28
invoke-static {}, Lcom/amazon/device/ads/DtbSharedPreferences;->getInstance()Lcom/amazon/device/ads/DtbSharedPreferences;
move-result-object v1
.line 29
invoke-virtual {v1}, Lcom/amazon/device/ads/DtbSharedPreferences;->getWebResoucesLastPing()Ljava/lang/Long;
move-result-object v1
if-eqz v1, :cond_28
.line 30
new-instance v2, Ljava/util/Date;
invoke-direct {v2}, Ljava/util/Date;-><init>()V
invoke-virtual {v2}, Ljava/util/Date;->getTime()J
move-result-wide v2
invoke-virtual {v1}, Ljava/lang/Long;->longValue()J
move-result-wide v4
sub-long/2addr v2, v4
const-wide/32 v4, 0x5265c00
cmp-long v1, v2, v4
if-lez v1, :cond_32
:cond_28
const/4 v1, 0x1
.line 31
sput-boolean v1, Lcom/amazon/device/ads/WebResourceService;->inProgress:Z
.line 32
invoke-static {}, Lcom/amazon/device/ads/DtbThreadService;->getInstance()Lcom/amazon/device/ads/DtbThreadService;
move-result-object v1
invoke-virtual {v1, v0}, Lcom/amazon/device/ads/DtbThreadService;->execute(Ljava/lang/Runnable;)V
:cond_32
return-void
.end method
.method private declared-synchronized renameTo(Ljava/io/File;Ljava/io/File;)V
.registers 3
monitor-enter p0
.line 116
:try_start_1
invoke-virtual {p1, p2}, Ljava/io/File;->renameTo(Ljava/io/File;)Z
:try_end_4
.catchall {:try_start_1 .. :try_end_4} :catchall_6
.line 117
monitor-exit p0
return-void
:catchall_6
move-exception p1
monitor-exit p0
throw p1
.end method
# virtual methods
.method deleteWebDirContent()V
.registers 5
.line 105
invoke-static {}, Lcom/amazon/device/ads/AdRegistration;->getContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object v0
.line 106
new-instance v1, Ljava/io/File;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v0, "/mdtb_web/"
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 107
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_3e
invoke-virtual {v1}, Ljava/io/File;->isDirectory()Z
move-result v0
if-eqz v0, :cond_3e
.line 108
invoke-virtual {v1}, Ljava/io/File;->listFiles()[Ljava/io/File;
move-result-object v0
array-length v1, v0
const/4 v2, 0x0
:goto_34
if-ge v2, v1, :cond_3e
aget-object v3, v0, v2
.line 109
invoke-virtual {v3}, Ljava/io/File;->delete()Z
add-int/lit8 v2, v2, 0x1
goto :goto_34
:cond_3e
return-void
.end method
.method declared-synchronized loadFile(Ljava/lang/String;)Ljava/lang/String;
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
monitor-enter p0
.line 120
:try_start_1
invoke-static {}, Lcom/amazon/device/ads/AdRegistration;->getContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object v0
.line 121
new-instance v1, Ljava/io/File;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v0, "/mdtb_web/"
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, ".js"
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v1, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 122
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result p1
:try_end_2f
.catchall {:try_start_1 .. :try_end_2f} :catchall_61
if-nez p1, :cond_34
const/4 p1, 0x0
.line 123
monitor-exit p0
return-object p1
.line 125
:cond_34
:try_start_34
new-instance p1, Ljava/io/FileInputStream;
invoke-direct {p1, v1}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
.line 126
new-instance v0, Ljava/io/BufferedReader;
new-instance v1, Ljava/io/InputStreamReader;
invoke-direct {v1, p1}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
invoke-direct {v0, v1}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
.line 127
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
.line 129
:goto_48
invoke-virtual {v0}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
move-result-object v1
if-eqz v1, :cond_5b
.line 133
invoke-virtual {v1}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v1
.line 135
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "\n"
invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
goto :goto_48
.line 137
:cond_5b
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
:try_end_5f
.catchall {:try_start_34 .. :try_end_5f} :catchall_61
monitor-exit p0
return-object p1
:catchall_61
move-exception p1
monitor-exit p0
goto :goto_65
:goto_64
throw p1
:goto_65
goto :goto_64
.end method
.method public run()V
.registers 12
.line 49
invoke-direct {p0}, Lcom/amazon/device/ads/WebResourceService;->createWebDirIfNeeded()V
.line 51
invoke-static {}, Lcom/amazon/device/ads/WebResourceOptions;->getCDNResources()[Ljava/lang/String;
move-result-object v0
array-length v1, v0
const/4 v2, 0x0
const/4 v3, 0x1
const/4 v4, 0x0
const/4 v5, 0x1
:goto_c
if-ge v4, v1, :cond_ae
aget-object v6, v0, v4
.line 54
:try_start_10
new-instance v7, Lcom/amazon/device/ads/DtbHttpClient;
new-instance v8, Ljava/lang/StringBuilder;
invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
invoke-static {}, Lcom/amazon/device/ads/WebResourceOptions;->getCDNHost()Ljava/lang/String;
move-result-object v9
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v8
invoke-direct {v7, v8}, Lcom/amazon/device/ads/DtbHttpClient;-><init>(Ljava/lang/String;)V
.line 55
invoke-static {v3}, Lcom/amazon/device/ads/DtbDebugProperties;->getIsSecure(Z)Z
move-result v8
invoke-virtual {v7, v8}, Lcom/amazon/device/ads/DtbHttpClient;->setUseSecure(Z)V
.line 57
invoke-virtual {v7}, Lcom/amazon/device/ads/DtbHttpClient;->executeGET()V
.line 59
invoke-virtual {v7}, Lcom/amazon/device/ads/DtbHttpClient;->getResponseCode()I
move-result v8
const/16 v9, 0xc8
if-ne v8, v9, :cond_7a
.line 62
invoke-virtual {v7}, Lcom/amazon/device/ads/DtbHttpClient;->getResponse()Ljava/lang/String;
move-result-object v7
.line 64
invoke-static {}, Lcom/amazon/device/ads/AdRegistration;->getContext()Landroid/content/Context;
move-result-object v8
invoke-virtual {v8}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object v8
const-string v9, "dtb-temp"
const-string v10, "js"
.line 66
invoke-static {v9, v10, v8}, Ljava/io/File;->createTempFile(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
move-result-object v9
.line 68
new-instance v10, Ljava/io/FileWriter;
invoke-direct {v10, v9}, Ljava/io/FileWriter;-><init>(Ljava/io/File;)V
.line 69
invoke-virtual {v10, v7}, Ljava/io/FileWriter;->write(Ljava/lang/String;)V
.line 70
invoke-virtual {v10}, Ljava/io/FileWriter;->close()V
.line 72
new-instance v7, Ljava/io/File;
new-instance v10, Ljava/lang/StringBuilder;
invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v8}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v8
invoke-virtual {v10, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v8, "/mdtb_web/"
invoke-virtual {v10, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v10, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
invoke-direct {v7, v6}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 73
invoke-direct {p0, v9, v7}, Lcom/amazon/device/ads/WebResourceService;->renameTo(Ljava/io/File;Ljava/io/File;)V
goto :goto_aa
.line 60
:cond_7a
new-instance v5, Ljava/lang/RuntimeException;
new-instance v7, Ljava/lang/StringBuilder;
const-string v8, "resource "
invoke-direct {v7, v8}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v7, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v6, " not available"
invoke-virtual {v7, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
invoke-direct {v5, v6}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v5
:try_end_93
.catch Ljava/lang/Exception; {:try_start_10 .. :try_end_93} :catch_93
:catch_93
move-exception v5
.line 76
new-instance v6, Ljava/lang/StringBuilder;
const-string v7, "Error registering device for ads:"
invoke-direct {v6, v7}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v5}, Ljava/lang/Exception;->toString()Ljava/lang/String;
move-result-object v5
invoke-virtual {v6, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
invoke-static {v5}, Lcom/amazon/device/ads/DtbLog;->error(Ljava/lang/String;)V
const/4 v5, 0x0
:goto_aa
add-int/lit8 v4, v4, 0x1
goto/16 :goto_c
:cond_ae
if-eqz v5, :cond_c0
.line 82
invoke-static {}, Lcom/amazon/device/ads/DtbSharedPreferences;->getInstance()Lcom/amazon/device/ads/DtbSharedPreferences;
move-result-object v0
.line 83
new-instance v1, Ljava/util/Date;
invoke-direct {v1}, Ljava/util/Date;-><init>()V
invoke-virtual {v1}, Ljava/util/Date;->getTime()J
move-result-wide v3
invoke-virtual {v0, v3, v4}, Lcom/amazon/device/ads/DtbSharedPreferences;->saveWebResoucesLastPing(J)V
.line 85
:cond_c0
sput-boolean v2, Lcom/amazon/device/ads/WebResourceService;->inProgress:Z
return-void
.end method