DefaultTinkerResultService.smali
.class public Lcom/tencent/tinker/lib/service/DefaultTinkerResultService;
.super Lcom/tencent/tinker/lib/service/AbstractResultService;
# static fields
.field private static final TAG:Ljava/lang/String; = "Tinker.DefaultTinkerResultService"
# direct methods
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Lcom/tencent/tinker/lib/service/AbstractResultService;-><init>()V
return-void
.end method
# virtual methods
.method public checkIfNeedKill(Lcom/tencent/tinker/lib/service/PatchResult;)Z
.registers 4
invoke-virtual {p0}, Lcom/tencent/tinker/lib/service/DefaultTinkerResultService;->getApplicationContext()Landroid/content/Context;
move-result-object v0
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;->isTinkerLoaded()Z
move-result v1
if-eqz v1, :cond_24
invoke-virtual {v0}, Lcom/tencent/tinker/lib/tinker/Tinker;->getTinkerLoadResultIfPresent()Lcom/tencent/tinker/lib/tinker/TinkerLoadResult;
move-result-object v0
if-eqz v0, :cond_24
iget-object v0, v0, Lcom/tencent/tinker/lib/tinker/TinkerLoadResult;->currentVersion:Ljava/lang/String;
iget-object v1, p1, Lcom/tencent/tinker/lib/service/PatchResult;->patchVersion:Ljava/lang/String;
if-eqz v1, :cond_24
iget-object v1, p1, Lcom/tencent/tinker/lib/service/PatchResult;->patchVersion:Ljava/lang/String;
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_24
const/4 v0, 0x0
:goto_23
return v0
:cond_24
const/4 v0, 0x1
goto :goto_23
.end method
.method public deleteRawPatchFile(Ljava/io/File;)V
.registers 7
invoke-static {p1}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->isLegalFile(Ljava/io/File;)Z
move-result v0
if-nez v0, :cond_7
:cond_6
:goto_6
return-void
:cond_7
const-string/jumbo v0, "Tinker.DefaultTinkerResultService"
const-string/jumbo v1, "deleteRawPatchFile rawFile path: %s"
const/4 v2, 0x1
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x0
invoke-virtual {p1}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v4
aput-object v4, v2, v3
invoke-static {v0, v1, v2}, Lcom/tencent/tinker/lib/util/TinkerLog;->w(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {p1}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v0
const-string/jumbo v1, "patch-"
invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v1
if-eqz v1, :cond_30
const-string/jumbo v1, ".apk"
invoke-virtual {v0, v1}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_34
:cond_30
invoke-static {p1}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->safeDeleteFile(Ljava/io/File;)Z
goto :goto_6
:cond_34
invoke-virtual {p1}, Ljava/io/File;->getParentFile()Ljava/io/File;
move-result-object v0
invoke-virtual {v0}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v1
const-string/jumbo v2, "patch-"
invoke-virtual {v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v1
if-nez v1, :cond_49
invoke-static {p1}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->safeDeleteFile(Ljava/io/File;)Z
goto :goto_6
:cond_49
invoke-virtual {v0}, Ljava/io/File;->getParentFile()Ljava/io/File;
move-result-object v0
invoke-virtual {v0}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v0
const-string/jumbo v1, "tinker"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_6
invoke-static {p1}, Lcom/tencent/tinker/loader/shareutil/SharePatchFileUtil;->safeDeleteFile(Ljava/io/File;)Z
goto :goto_6
.end method
.method public onPatchResult(Lcom/tencent/tinker/lib/service/PatchResult;)V
.registers 7
const/4 v4, 0x0
if-nez p1, :cond_f
const-string/jumbo v0, "Tinker.DefaultTinkerResultService"
const-string/jumbo v1, "DefaultTinkerResultService received null result!!!!"
new-array v2, v4, [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
:cond_e
:goto_e
return-void
:cond_f
const-string/jumbo v0, "Tinker.DefaultTinkerResultService"
const-string/jumbo v1, "DefaultTinkerResultService received a result:%s "
const/4 v2, 0x1
new-array v2, v2, [Ljava/lang/Object;
invoke-virtual {p1}, Lcom/tencent/tinker/lib/service/PatchResult;->toString()Ljava/lang/String;
move-result-object v3
aput-object v3, v2, v4
invoke-static {v0, v1, v2}, Lcom/tencent/tinker/lib/util/TinkerLog;->i(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-virtual {p0}, Lcom/tencent/tinker/lib/service/DefaultTinkerResultService;->getApplicationContext()Landroid/content/Context;
move-result-object v0
invoke-static {v0}, Lcom/tencent/tinker/lib/util/TinkerServiceInternals;->killTinkerPatchServiceProcess(Landroid/content/Context;)V
iget-boolean v0, p1, Lcom/tencent/tinker/lib/service/PatchResult;->isSuccess:Z
if-eqz v0, :cond_e
new-instance v0, Ljava/io/File;
iget-object v1, p1, Lcom/tencent/tinker/lib/service/PatchResult;->rawPatchFilePath:Ljava/lang/String;
invoke-direct {v0, v1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-virtual {p0, v0}, Lcom/tencent/tinker/lib/service/DefaultTinkerResultService;->deleteRawPatchFile(Ljava/io/File;)V
invoke-virtual {p0, p1}, Lcom/tencent/tinker/lib/service/DefaultTinkerResultService;->checkIfNeedKill(Lcom/tencent/tinker/lib/service/PatchResult;)Z
move-result v0
if-eqz v0, :cond_44
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v0
invoke-static {v0}, Landroid/os/Process;->killProcess(I)V
goto :goto_e
:cond_44
const-string/jumbo v0, "Tinker.DefaultTinkerResultService"
const-string/jumbo v1, "I have already install the newly patch version!"
new-array v2, v4, [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
goto :goto_e
.end method