DefaultPatchReporter.smali
.class public Lcom/tencent/tinker/lib/reporter/DefaultPatchReporter;
.super Ljava/lang/Object;
# interfaces
.implements Lcom/tencent/tinker/lib/reporter/PatchReporter;
# static fields
.field private static final TAG:Ljava/lang/String; = "Tinker.DefaultPatchReporter"
.field private static shouldRetry:Z
# instance fields
.field protected final context:Landroid/content/Context;
# direct methods
.method static constructor <clinit>()V
.registers 1
const/4 v0, 0x0
sput-boolean v0, Lcom/tencent/tinker/lib/reporter/DefaultPatchReporter;->shouldRetry:Z
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.registers 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lcom/tencent/tinker/lib/reporter/DefaultPatchReporter;->context:Landroid/content/Context;
return-void
.end method
.method private deleteOptFiles(Ljava/util/List;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/List",
"<",
"Ljava/io/File;",
">;)V"
}
.end annotation
invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v1
:goto_4
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_14
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/io/File;
invoke-static {v0}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->safeDeleteFile(Ljava/io/File;)Z
goto :goto_4
:cond_14
return-void
.end method
# virtual methods
.method public onPatchDexOptFail(Ljava/io/File;Ljava/util/List;Ljava/lang/Throwable;)V
.registers 10
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/io/File;",
"Ljava/util/List",
"<",
"Ljava/io/File;",
">;",
"Ljava/lang/Throwable;",
")V"
}
.end annotation
const/4 v5, 0x1
const/4 v4, 0x0
const-string/jumbo v0, "Tinker.DefaultPatchReporter"
const-string/jumbo v1, "patchReporter onPatchDexOptFail: dex opt fail path: %s, dex size: %d"
const/4 v2, 0x2
new-array v2, v2, [Ljava/lang/Object;
invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v3
aput-object v3, v2, v4
invoke-interface {p2}, Ljava/util/List;->size()I
move-result v3
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
aput-object v3, v2, v5
invoke-static {v0, v1, v2}, Lcom/tencent/tinker/lib/util/TinkerLog;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
const-string/jumbo v0, "Tinker.DefaultPatchReporter"
const-string/jumbo v1, "onPatchDexOptFail:"
new-array v2, v4, [Ljava/lang/Object;
invoke-static {v0, p3, v1, v2}, Lcom/tencent/tinker/lib/util/TinkerLog;->printErrStackTrace(Ljava/lang/String;Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {p3}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v0
const-string/jumbo v1, "checkDexOptExist failed"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_43
invoke-virtual {p3}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v0
const-string/jumbo v1, "checkDexOptFormat failed"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_49
:cond_43
sput-boolean v5, Lcom/tencent/tinker/lib/reporter/DefaultPatchReporter;->shouldRetry:Z
invoke-direct {p0, p2}, Lcom/tencent/tinker/lib/reporter/DefaultPatchReporter;->deleteOptFiles(Ljava/util/List;)V
:goto_48
return-void
:cond_49
iget-object v0, p0, Lcom/tencent/tinker/lib/reporter/DefaultPatchReporter;->context:Landroid/content/Context;
invoke-static {v0}, Lcom/tencent/tinker/lib/tinker/Tinker;->with(Landroid/content/Context;)Lcom/tencent/tinker/lib/tinker/Tinker;
move-result-object v0
invoke-virtual {v0, p1}, Lcom/tencent/tinker/lib/tinker/Tinker;->cleanPatchByVersion(Ljava/io/File;)V
goto :goto_48
.end method
.method public onPatchException(Ljava/io/File;Ljava/lang/Throwable;)V
.registers 9
const/4 v5, 0x0
const-string/jumbo v0, "Tinker.DefaultPatchReporter"
const-string/jumbo v1, "patchReporter onPatchException: patch exception path: %s, throwable: %s"
const/4 v2, 0x2
new-array v2, v2, [Ljava/lang/Object;
invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v3
aput-object v3, v2, v5
const/4 v3, 0x1
invoke-virtual {p2}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v4
aput-object v4, v2, v3
invoke-static {v0, v1, v2}, Lcom/tencent/tinker/lib/util/TinkerLog;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
const-string/jumbo v0, "Tinker.DefaultPatchReporter"
const-string/jumbo v1, "tinker patch exception, welcome to submit issue to us: https://github.com/Tencent/tinker/issues"
new-array v2, v5, [Ljava/lang/Object;
invoke-static {v0, v1, v2}, Lcom/tencent/tinker/lib/util/TinkerLog;->e(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
const-string/jumbo v0, "Tinker.DefaultPatchReporter"
const-string/jumbo v1, "tinker patch exception"
new-array v2, v5, [Ljava/lang/Object;
invoke-static {v0, p2, v1, v2}, Lcom/tencent/tinker/lib/util/TinkerLog;->printErrStackTrace(Ljava/lang/String;Ljava/lang/Throwable;Ljava/lang/String;[Ljava/lang/Object;)V
iget-object v0, p0, Lcom/tencent/tinker/lib/reporter/DefaultPatchReporter;->context:Landroid/content/Context;
invoke-static {v0}, Lcom/tencent/tinker/lib/tinker/Tinker;->with(Landroid/content/Context;)Lcom/tencent/tinker/lib/tinker/Tinker;
move-result-object v0
invoke-virtual {v0}, Lcom/tencent/tinker/lib/tinker/Tinker;->setTinkerDisable()V
iget-object v0, p0, Lcom/tencent/tinker/lib/reporter/DefaultPatchReporter;->context:Landroid/content/Context;
invoke-static {v0}, Lcom/tencent/tinker/lib/tinker/Tinker;->with(Landroid/content/Context;)Lcom/tencent/tinker/lib/tinker/Tinker;
move-result-object v0
invoke-virtual {v0, p1}, Lcom/tencent/tinker/lib/tinker/Tinker;->cleanPatchByVersion(Ljava/io/File;)V
return-void
.end method
.method public onPatchInfoCorrupted(Ljava/io/File;Ljava/lang/String;Ljava/lang/String;)V
.registers 8
const-string/jumbo v0, "Tinker.DefaultPatchReporter"
const-string/jumbo v1, "patchReporter onPatchInfoCorrupted: patch info is corrupted. old: %s, new: %s"
const/4 v2, 0x2
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
aput-object p2, v2, v3
const/4 v3, 0x1
aput-object p3, v2, v3
invoke-static {v0, v1, v2}, Lcom/tencent/tinker/lib/util/TinkerLog;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
iget-object v0, p0, Lcom/tencent/tinker/lib/reporter/DefaultPatchReporter;->context:Landroid/content/Context;
invoke-static {v0}, Lcom/tencent/tinker/lib/tinker/Tinker;->with(Landroid/content/Context;)Lcom/tencent/tinker/lib/tinker/Tinker;
move-result-object v0
invoke-virtual {v0}, Lcom/tencent/tinker/lib/tinker/Tinker;->cleanPatch()V
return-void
.end method
.method public onPatchPackageCheckFail(Ljava/io/File;I)V
.registers 8
const-string/jumbo v0, "Tinker.DefaultPatchReporter"
const-string/jumbo v1, "patchReporter onPatchPackageCheckFail: package check failed. path: %s, code: %d"
const/4 v2, 0x2
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v4
aput-object v4, v2, v3
const/4 v3, 0x1
invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
aput-object v4, v2, v3
invoke-static {v0, v1, v2}, Lcom/tencent/tinker/lib/util/TinkerLog;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
const/4 v0, -0x3
if-eq p2, v0, :cond_23
const/4 v0, -0x4
if-eq p2, v0, :cond_23
const/4 v0, -0x8
if-ne p2, v0, :cond_2c
:cond_23
iget-object v0, p0, Lcom/tencent/tinker/lib/reporter/DefaultPatchReporter;->context:Landroid/content/Context;
invoke-static {v0}, Lcom/tencent/tinker/lib/tinker/Tinker;->with(Landroid/content/Context;)Lcom/tencent/tinker/lib/tinker/Tinker;
move-result-object v0
invoke-virtual {v0, p1}, Lcom/tencent/tinker/lib/tinker/Tinker;->cleanPatchByVersion(Ljava/io/File;)V
:cond_2c
return-void
.end method
.method public onPatchResult(Ljava/io/File;ZJ)V
.registers 10
const-string/jumbo v0, "Tinker.DefaultPatchReporter"
const-string/jumbo v1, "patchReporter onPatchResult: patch all result path: %s, success: %b, cost: %d"
const/4 v2, 0x3
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v4
aput-object v4, v2, v3
const/4 v3, 0x1
invoke-static {p2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v4
aput-object v4, v2, v3
const/4 v3, 0x2
invoke-static {p3, p4}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v4
aput-object v4, v2, v3
invoke-static {v0, v1, v2}, Lcom/tencent/tinker/lib/util/TinkerLog;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
sget-boolean v0, Lcom/tencent/tinker/lib/reporter/DefaultPatchReporter;->shouldRetry:Z
if-nez v0, :cond_2e
iget-object v0, p0, Lcom/tencent/tinker/lib/reporter/DefaultPatchReporter;->context:Landroid/content/Context;
invoke-static {v0}, Lcom/tencent/tinker/lib/util/UpgradePatchRetry;->getInstance(Landroid/content/Context;)Lcom/tencent/tinker/lib/util/UpgradePatchRetry;
move-result-object v0
invoke-virtual {v0}, Lcom/tencent/tinker/lib/util/UpgradePatchRetry;->onPatchServiceResult()V
:cond_2e
return-void
.end method
.method public onPatchServiceStart(Landroid/content/Intent;)V
.registers 6
const/4 v3, 0x0
const-string/jumbo v0, "Tinker.DefaultPatchReporter"
const-string/jumbo v1, "patchReporter onPatchServiceStart: patch service start"
new-array v2, v3, [Ljava/lang/Object;
invoke-static {v0, v1, v2}, Lcom/tencent/tinker/lib/util/TinkerLog;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
sput-boolean v3, Lcom/tencent/tinker/lib/reporter/DefaultPatchReporter;->shouldRetry:Z
iget-object v0, p0, Lcom/tencent/tinker/lib/reporter/DefaultPatchReporter;->context:Landroid/content/Context;
invoke-static {v0}, Lcom/tencent/tinker/lib/util/UpgradePatchRetry;->getInstance(Landroid/content/Context;)Lcom/tencent/tinker/lib/util/UpgradePatchRetry;
move-result-object v0
invoke-virtual {v0, p1}, Lcom/tencent/tinker/lib/util/UpgradePatchRetry;->onPatchServiceStart(Landroid/content/Intent;)V
return-void
.end method
.method public onPatchTypeExtractFail(Ljava/io/File;Ljava/io/File;Ljava/lang/String;I)V
.registers 10
const-string/jumbo v0, "Tinker.DefaultPatchReporter"
const-string/jumbo v1, "patchReporter onPatchTypeExtractFail: file extract fail type: %s, path: %s, extractTo: %s, filename: %s"
const/4 v2, 0x4
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
invoke-static {p4}, Lcom/tencent/tinker/loader/shareutil/ShareTinkerInternals;->getTypeString(I)Ljava/lang/String;
move-result-object v4
aput-object v4, v2, v3
const/4 v3, 0x1
invoke-virtual {p1}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v4
aput-object v4, v2, v3
const/4 v3, 0x2
invoke-virtual {p2}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v4
aput-object v4, v2, v3
const/4 v3, 0x3
aput-object p3, v2, v3
invoke-static {v0, v1, v2}, Lcom/tencent/tinker/lib/util/TinkerLog;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
iget-object v0, p0, Lcom/tencent/tinker/lib/reporter/DefaultPatchReporter;->context:Landroid/content/Context;
invoke-static {v0}, Lcom/tencent/tinker/lib/tinker/Tinker;->with(Landroid/content/Context;)Lcom/tencent/tinker/lib/tinker/Tinker;
move-result-object v0
invoke-virtual {v0, p1}, Lcom/tencent/tinker/lib/tinker/Tinker;->cleanPatchByVersion(Ljava/io/File;)V
return-void
.end method
.method public onPatchVersionCheckFail(Ljava/io/File;Lcom/tencent/tinker/loader/shareutil/SharePatchInfo;Ljava/lang/String;)V
.registers 9
const-string/jumbo v0, "Tinker.DefaultPatchReporter"
const-string/jumbo v1, "patchReporter onPatchVersionCheckFail: patch version exist. path: %s, version: %s"
const/4 v2, 0x2
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v4
aput-object v4, v2, v3
const/4 v3, 0x1
aput-object p3, v2, v3
invoke-static {v0, v1, v2}, Lcom/tencent/tinker/lib/util/TinkerLog;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
return-void
.end method