_Patrons.smali
.class public Lcom/alibaba/android/patronus/_Patrons;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/alibaba/android/patronus/_Patrons$AutoCheckerTask;
}
.end annotation
# static fields
.field private static final ANDROID_VERSION_NOT_SUPPORT:I = 0x7d1
.field private static final ERROR_READ_VSS_FAILED:I = 0x3e9
.field private static final GB:J = 0x40000000L
.field private static final HEAP_SIZE_IS_NOT_BIG_ENOUGH:I = 0x7d2
.field private static final KB:J = 0x400L
.field private static final LOWER_LIMIT_IS_TOO_SMALL:I = 0x7d3
.field private static final MAX_CHECK_OF_STRICT_MODE:I = 0x5
.field private static final MB:J = 0x100000L
.field private static NATIVE_LIB_LOADED:Z = false
.field private static final S:J = 0x3e8L
.field public static final TAG:Ljava/lang/String; = "Patrons"
.field private static final VSS_MAX_IN_V7A:F = 4.2949673E9f
.field private static autoCheckVssTimer:Ljava/util/Timer; = null
.field private static config:Lcom/alibaba/android/patronus/Patrons$PatronsConfig; = null
.field private static currentRegionSpaces:J = 0x0L
.field private static final numPattern:Ljava/util/regex/Pattern;
.field private static final numRegEx:Ljava/lang/String; = "[^0-9]"
.field private static final strictCount:Ljava/util/concurrent/atomic/AtomicInteger;
# direct methods
.method public static constructor <clinit>()V
.registers 2
const-string v0, "[^0-9]"
.line 1
invoke-static {v0}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern;
move-result-object v0
sput-object v0, Lcom/alibaba/android/patronus/_Patrons;->numPattern:Ljava/util/regex/Pattern;
.line 2
new-instance v0, Lcom/alibaba/android/patronus/Patrons$PatronsConfig;
invoke-direct {v0}, Lcom/alibaba/android/patronus/Patrons$PatronsConfig;-><init>()V
sput-object v0, Lcom/alibaba/android/patronus/_Patrons;->config:Lcom/alibaba/android/patronus/Patrons$PatronsConfig;
const/4 v0, 0x0
.line 3
sput-object v0, Lcom/alibaba/android/patronus/_Patrons;->autoCheckVssTimer:Ljava/util/Timer;
const/4 v0, 0x0
.line 4
sput-boolean v0, Lcom/alibaba/android/patronus/_Patrons;->NATIVE_LIB_LOADED:Z
.line 5
new-instance v1, Ljava/util/concurrent/atomic/AtomicInteger;
invoke-direct {v1, v0}, Ljava/util/concurrent/atomic/AtomicInteger;-><init>(I)V
sput-object v1, Lcom/alibaba/android/patronus/_Patrons;->strictCount:Ljava/util/concurrent/atomic/AtomicInteger;
.line 6
invoke-static {}, Lcom/alibaba/android/patronus/_Patrons;->isSupport()Z
move-result v0
if-eqz v0, :cond_2a
const-string v0, "patrons"
.line 7
invoke-static {v0}, Lcom/alibaba/android/patronus/_Patrons;->INVOKESTATIC_com_alibaba_android_patronus__Patrons_com_shopee_app_asm_fix_loadlibrary_SoLoaderFixer_loadLibrary(Ljava/lang/String;)V
const/4 v0, 0x1
.line 8
sput-boolean v0, Lcom/alibaba/android/patronus/_Patrons;->NATIVE_LIB_LOADED:Z
:cond_2a
return-void
.end method
.method private constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static INVOKESTATIC_com_alibaba_android_patronus__Patrons_com_shopee_app_asm_fix_loadlibrary_SoLoaderFixer_loadLibrary(Ljava/lang/String;)V
.registers 3
.annotation build Landroid/annotation/SuppressLint;
value = {
"LogNotTimber"
}
.end annotation
.line 1
:try_start_0
# invokes: Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
invoke-static {p0}, Lcom/alibaba/android/patronus/_Patrons;->access$001(Ljava/lang/String;)V
:try_end_3
.catchall {:try_start_0 .. :try_end_3} :catchall_4
goto :goto_2b
:catchall_4
move-exception v0
.line 2
invoke-static {}, Lcom/shopee/app/asm/fix/loadlibrary/a;->a()Z
move-result v1
if-eqz v1, :cond_37
.line 3
sget-object v0, Lcom/shopee/app/asm/fix/loadlibrary/a;->a:Lcom/getkeepsafe/relinker/e;
if-nez v0, :cond_15
.line 4
invoke-static {}, Lcom/getkeepsafe/relinker/c;->b()Lcom/getkeepsafe/relinker/e;
move-result-object v0
.line 5
sput-object v0, Lcom/shopee/app/asm/fix/loadlibrary/a;->a:Lcom/getkeepsafe/relinker/e;
.line 6
:cond_15
invoke-static {}, Lcom/shopee/app/application/n2;->e()Lcom/shopee/app/application/n2;
move-result-object v0
.line 7
invoke-static {v0}, Landroidx/appcompat/i;->O(Landroid/content/Context;)Landroid/content/Context;
move-result-object v0
if-nez v0, :cond_23
.line 8
invoke-static {}, Lcom/shopee/app/application/n2;->e()Lcom/shopee/app/application/n2;
move-result-object v0
.line 9
:cond_23
invoke-static {v0}, Lcom/shopee/app/asm/fix/loadlibrary/a;->b(Landroid/content/Context;)V
.line 10
:try_start_26
sget-object v1, Lcom/shopee/app/asm/fix/loadlibrary/a;->a:Lcom/getkeepsafe/relinker/e;
.line 11
invoke-virtual {v1, v0, p0}, Lcom/getkeepsafe/relinker/e;->b(Landroid/content/Context;Ljava/lang/String;)V
:try_end_2b
.catch Lcom/getkeepsafe/relinker/b; {:try_start_26 .. :try_end_2b} :catch_2c
:goto_2b
return-void
:catch_2c
move-exception p0
.line 12
new-instance v0, Ljava/lang/UnsatisfiedLinkError;
invoke-virtual {p0}, Ljava/lang/Throwable;->getLocalizedMessage()Ljava/lang/String;
move-result-object p0
invoke-direct {v0, p0}, Ljava/lang/UnsatisfiedLinkError;-><init>(Ljava/lang/String;)V
throw v0
.line 13
:cond_37
throw v0
.end method
.method public static INVOKEVIRTUAL_com_alibaba_android_patronus__Patrons_com_shopee_app_asm_fix_androidx_ThreadFixer_start(Ljava/lang/Thread;)V
.registers 3
.line 1
:try_start_0
invoke-static {}, Lcom/shopee/app/asm/fix/androidx/b;->b()Z
move-result v0
if-eqz v0, :cond_12
.line 2
invoke-static {p0}, Lcom/shopee/app/asm/fix/androidx/b;->a(Ljava/lang/Thread;)V
:try_end_9
.catchall {:try_start_0 .. :try_end_9} :catchall_a
goto :goto_12
:catchall_a
move-exception v0
.line 3
invoke-static {}, Lcom/shopee/app/apm/c;->d()Lcom/shopee/app/apm/nonfatal/a;
move-result-object v1
invoke-virtual {v1, v0}, Lcom/shopee/app/apm/nonfatal/a;->c(Ljava/lang/Throwable;)V
.line 4
:cond_12
:goto_12
invoke-virtual {p0}, Ljava/lang/Thread;->start()V
return-void
.end method
.method public static INVOKEVIRTUAL_com_alibaba_android_patronus__Patrons_com_shopee_app_asm_fix_androidx_ThreadFixer_start1(Ljava/lang/Thread;)V
.registers 3
.line 1
:try_start_0
instance-of v0, p0, Ljava/lang/Thread;
if-eqz v0, :cond_25
.line 2
new-instance v0, Lcom/shopee/app/asm/anr/threadpool/d;
invoke-direct {v0, p0}, Lcom/shopee/app/asm/anr/threadpool/d;-><init>(Ljava/lang/Thread;)V
.line 3
sget-object v1, Lcom/shopee/app/asm/fix/threadpool/config/a;->a:Lcom/shopee/app/asm/fix/threadpool/config/a;
invoke-virtual {v1}, Lcom/shopee/app/asm/fix/threadpool/config/a;->a()Z
move-result v1
if-eqz v1, :cond_1b
.line 4
sget-object v1, Lcom/shopee/app/asm/fix/threadpool/pool/d;->a:Lcom/shopee/app/asm/fix/threadpool/pool/d;
invoke-virtual {v1}, Lcom/shopee/app/asm/fix/threadpool/pool/d;->a()Ljava/util/concurrent/ExecutorService;
move-result-object v1
invoke-interface {v1, v0}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V
return-void
.line 5
:cond_1b
sget-boolean v1, Lcom/shopee/app/asm/fix/threadpool/global/i;->f:Z
if-eqz v1, :cond_25
.line 6
sget-object v1, Lcom/shopee/app/asm/fix/threadpool/global/i;->e:Lcom/shopee/app/asm/fix/threadpool/global/j;
.line 7
invoke-virtual {v1, v0}, Lcom/shopee/app/asm/anr/threadpool/b;->execute(Ljava/lang/Runnable;)V
:try_end_24
.catchall {:try_start_0 .. :try_end_24} :catchall_25
return-void
.line 8
:catchall_25
:cond_25
invoke-static {p0}, Lcom/alibaba/android/patronus/_Patrons;->INVOKEVIRTUAL_com_alibaba_android_patronus__Patrons_com_shopee_app_asm_fix_androidx_ThreadFixer_start(Ljava/lang/Thread;)V
return-void
.end method
.method public static declared-synchronized __init()I
.registers 11
const-class v0, Lcom/alibaba/android/patronus/_Patrons;
monitor-enter v0
.line 1
:try_start_3
invoke-static {}, Lcom/alibaba/android/patronus/_Patrons;->isSupport()Z
move-result v1
:try_end_7
.catchall {:try_start_3 .. :try_end_7} :catchall_5f
if-nez v1, :cond_d
const/16 v1, 0x7d1
.line 2
monitor-exit v0
return v1
:cond_d
const/4 v1, 0x1
.line 3
:try_start_e
sget-object v2, Lcom/alibaba/android/patronus/_Patrons;->config:Lcom/alibaba/android/patronus/Patrons$PatronsConfig;
iget-boolean v3, v2, Lcom/alibaba/android/patronus/Patrons$PatronsConfig;->debuggable:Z
iget-boolean v2, v2, Lcom/alibaba/android/patronus/Patrons$PatronsConfig;->fixHuaweiBinderAbort:Z
invoke-static {v1, v3, v2}, Lcom/alibaba/android/patronus/_Patrons;->__init(ZZZ)I
move-result v1
:try_end_18
.catchall {:try_start_e .. :try_end_18} :catchall_5f
if-eqz v1, :cond_1c
.line 4
monitor-exit v0
return v1
.line 5
:cond_1c
:try_start_1c
invoke-static {}, Lcom/alibaba/android/patronus/_Patrons;->getCurrentRegionSpaceSize()J
move-result-wide v1
const-wide/32 v3, 0x100000
div-long/2addr v1, v3
sput-wide v1, Lcom/alibaba/android/patronus/_Patrons;->currentRegionSpaces:J
const-wide/16 v5, 0x0
cmp-long v7, v1, v5
if-lez v7, :cond_5b
const-wide/16 v7, 0x400
cmp-long v9, v1, v7
if-lez v9, :cond_33
goto :goto_5b
.line 6
:cond_33
sget-object v7, Lcom/alibaba/android/patronus/_Patrons;->config:Lcom/alibaba/android/patronus/Patrons$PatronsConfig;
iget v8, v7, Lcom/alibaba/android/patronus/Patrons$PatronsConfig;->lowerLimit:I
:try_end_37
.catchall {:try_start_1c .. :try_end_37} :catchall_5f
int-to-long v8, v8
cmp-long v10, v1, v8
if-gez v10, :cond_40
const/16 v1, 0x7d3
.line 7
monitor-exit v0
return v1
.line 8
:cond_40
:try_start_40
iget-boolean v1, v7, Lcom/alibaba/android/patronus/Patrons$PatronsConfig;->auto:Z
if-eqz v1, :cond_53
.line 9
invoke-static {}, Lcom/alibaba/android/patronus/_Patrons;->readVssSize()J
move-result-wide v1
:try_end_48
.catchall {:try_start_40 .. :try_end_48} :catchall_5f
cmp-long v7, v1, v5
if-gez v7, :cond_50
const/16 v1, 0x3e9
.line 10
monitor-exit v0
return v1
.line 11
:cond_50
:try_start_50
invoke-static {}, Lcom/alibaba/android/patronus/_Patrons;->toForeground()V
.line 12
:cond_53
invoke-static {}, Lcom/alibaba/android/patronus/_Patrons;->readVssSize()J
move-result-wide v1
div-long/2addr v1, v3
:try_end_58
.catchall {:try_start_50 .. :try_end_58} :catchall_5f
const/4 v1, 0x0
.line 13
monitor-exit v0
return v1
:cond_5b
:goto_5b
const/16 v1, 0x7d2
.line 14
monitor-exit v0
return v1
:catchall_5f
move-exception v1
monitor-exit v0
throw v1
.end method
.method private static native __init(ZZZ)I
.end method
.method private static _start(I)V
.registers 8
.line 1
sget-object v0, Lcom/alibaba/android/patronus/_Patrons;->config:Lcom/alibaba/android/patronus/Patrons$PatronsConfig;
iget-boolean v0, v0, Lcom/alibaba/android/patronus/Patrons$PatronsConfig;->auto:Z
if-eqz v0, :cond_25
.line 2
sget-object v0, Lcom/alibaba/android/patronus/_Patrons;->autoCheckVssTimer:Ljava/util/Timer;
if-eqz v0, :cond_10
.line 3
invoke-virtual {v0}, Ljava/util/Timer;->cancel()V
const/4 v0, 0x0
.line 4
sput-object v0, Lcom/alibaba/android/patronus/_Patrons;->autoCheckVssTimer:Ljava/util/Timer;
.line 5
:cond_10
new-instance v1, Ljava/util/Timer;
invoke-direct {v1}, Ljava/util/Timer;-><init>()V
sput-object v1, Lcom/alibaba/android/patronus/_Patrons;->autoCheckVssTimer:Ljava/util/Timer;
.line 6
new-instance v2, Lcom/alibaba/android/patronus/_Patrons$AutoCheckerTask;
invoke-direct {v2}, Lcom/alibaba/android/patronus/_Patrons$AutoCheckerTask;-><init>()V
int-to-long v3, p0
const-wide/16 v5, 0x3e8
mul-long v5, v5, v3
move-wide v3, v5
invoke-virtual/range {v1 .. v6}, Ljava/util/Timer;->schedule(Ljava/util/TimerTask;JJ)V
:cond_25
return-void
.end method
.method public static synthetic access$000()Ljava/util/concurrent/atomic/AtomicInteger;
.registers 1
sget-object v0, Lcom/alibaba/android/patronus/_Patrons;->strictCount:Ljava/util/concurrent/atomic/AtomicInteger;
return-object v0
.end method
.method public static synthetic access$001(Ljava/lang/String;)V
.registers 1
invoke-static {p0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
return-void
.end method
.method public static synthetic access$100()Lcom/alibaba/android/patronus/Patrons$PatronsConfig;
.registers 1
sget-object v0, Lcom/alibaba/android/patronus/_Patrons;->config:Lcom/alibaba/android/patronus/Patrons$PatronsConfig;
return-object v0
.end method
.method public static synthetic access$200(I)V
.registers 1
invoke-static {p0}, Lcom/alibaba/android/patronus/_Patrons;->_start(I)V
return-void
.end method
.method public static synthetic access$300()J
.registers 2
sget-wide v0, Lcom/alibaba/android/patronus/_Patrons;->currentRegionSpaces:J
return-wide v0
.end method
.method public static synthetic access$302(J)J
.registers 2
sput-wide p0, Lcom/alibaba/android/patronus/_Patrons;->currentRegionSpaces:J
return-wide p0
.end method
.method public static synthetic access$400()V
.registers 0
invoke-static {}, Lcom/alibaba/android/patronus/_Patrons;->stop()V
return-void
.end method
.method public static synthetic access$500(Ljava/lang/String;Ljava/lang/String;)V
.registers 2
invoke-static {p0, p1}, Lcom/alibaba/android/patronus/_Patrons;->stringToFile(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method private static asyncWriteInitResultToFile(Landroid/content/Context;I)V
.registers 4
.line 1
new-instance v0, Ljava/lang/Thread;
new-instance v1, Lcom/alibaba/android/patronus/_Patrons$1;
invoke-direct {v1, p0, p1}, Lcom/alibaba/android/patronus/_Patrons$1;-><init>(Landroid/content/Context;I)V
invoke-direct {v0, v1}, Ljava/lang/Thread;-><init>(Ljava/lang/Runnable;)V
.line 2
invoke-static {v0}, Lcom/alibaba/android/patronus/_Patrons;->INVOKEVIRTUAL_com_alibaba_android_patronus__Patrons_com_shopee_app_asm_fix_androidx_ThreadFixer_start1(Ljava/lang/Thread;)V
return-void
.end method
.method public static native dumpLogs(Z)Ljava/lang/String;
.end method
.method public static dumpNativeLogs(Z)Ljava/lang/String;
.registers 2
.line 1
sget-boolean v0, Lcom/alibaba/android/patronus/_Patrons;->NATIVE_LIB_LOADED:Z
if-eqz v0, :cond_9
.line 2
invoke-static {p0}, Lcom/alibaba/android/patronus/_Patrons;->dumpLogs(Z)Ljava/lang/String;
move-result-object p0
return-object p0
:cond_9
const-string p0, "can not dump logs without native libs"
return-object p0
.end method
.method public static native getCurrentRegionSpaceSize()J
.end method
.method public static inBackground()V
.registers 1
.line 1
sget-object v0, Lcom/alibaba/android/patronus/_Patrons;->config:Lcom/alibaba/android/patronus/Patrons$PatronsConfig;
iget-boolean v0, v0, Lcom/alibaba/android/patronus/Patrons$PatronsConfig;->auto:Z
if-eqz v0, :cond_10
sget-object v0, Lcom/alibaba/android/patronus/_Patrons;->autoCheckVssTimer:Ljava/util/Timer;
if-eqz v0, :cond_10
.line 2
invoke-virtual {v0}, Ljava/util/Timer;->cancel()V
const/4 v0, 0x0
.line 3
sput-object v0, Lcom/alibaba/android/patronus/_Patrons;->autoCheckVssTimer:Ljava/util/Timer;
:cond_10
return-void
.end method
.method public static declared-synchronized init(Landroid/content/Context;Lcom/alibaba/android/patronus/Patrons$PatronsConfig;)I
.registers 4
const-class v0, Lcom/alibaba/android/patronus/_Patrons;
monitor-enter v0
if-eqz p1, :cond_a
.line 1
:try_start_5
sput-object p1, Lcom/alibaba/android/patronus/_Patrons;->config:Lcom/alibaba/android/patronus/Patrons$PatronsConfig;
goto :goto_a
:catchall_8
move-exception p0
goto :goto_20
.line 2
:cond_a
:goto_a
sget-object p1, Lcom/alibaba/android/patronus/_Patrons;->config:Lcom/alibaba/android/patronus/Patrons$PatronsConfig;
invoke-virtual {p1}, Lcom/alibaba/android/patronus/Patrons$PatronsConfig;->toString()Ljava/lang/String;
.line 3
invoke-static {}, Lcom/alibaba/android/patronus/_Patrons;->__init()I
move-result p1
.line 4
sget-object v1, Lcom/alibaba/android/patronus/_Patrons;->config:Lcom/alibaba/android/patronus/Patrons$PatronsConfig;
iget-boolean v1, v1, Lcom/alibaba/android/patronus/Patrons$PatronsConfig;->recordInitResult:Z
if-eqz v1, :cond_1e
if-eqz p0, :cond_1e
.line 5
invoke-static {p0, p1}, Lcom/alibaba/android/patronus/_Patrons;->asyncWriteInitResultToFile(Landroid/content/Context;I)V
:try_end_1e
.catchall {:try_start_5 .. :try_end_1e} :catchall_8
.line 6
:cond_1e
monitor-exit v0
return p1
:goto_20
monitor-exit v0
throw p0
.end method
.method private static isSupport()Z
.registers 2
.line 1
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x1a
if-lt v0, v1, :cond_12
const/16 v1, 0x1f
if-gt v0, v1, :cond_12
.line 2
invoke-static {}, Landroid/os/Process;->is64Bit()Z
move-result v0
if-nez v0, :cond_12
const/4 v0, 0x1
goto :goto_13
:cond_12
const/4 v0, 0x0
:goto_13
return v0
.end method
.method public static readVssSize()J
.registers 6
const-wide/16 v0, -0x1
.line 1
:try_start_2
new-instance v2, Ljava/io/FileInputStream;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "/proc/"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v4, "/status"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v3}, Ljava/io/FileInputStream;-><init>(Ljava/lang/String;)V
.line 2
new-instance v3, Ljava/io/BufferedReader;
new-instance v4, Ljava/io/InputStreamReader;
invoke-direct {v4, v2}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
invoke-direct {v3, v4}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
.line 3
:cond_2b
invoke-virtual {v3}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
move-result-object v4
if-eqz v4, :cond_57
.line 4
invoke-virtual {v4}, Ljava/lang/String;->toLowerCase()Ljava/lang/String;
move-result-object v4
const-string/jumbo v5, "vmsize"
.line 5
invoke-virtual {v4, v5}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v5
if-eqz v5, :cond_2b
.line 6
sget-object v5, Lcom/alibaba/android/patronus/_Patrons;->numPattern:Ljava/util/regex/Pattern;
invoke-virtual {v5, v4}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
move-result-object v4
const-string v5, ""
invoke-virtual {v4, v5}, Ljava/util/regex/Matcher;->replaceAll(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/String;->trim()Ljava/lang/String;
move-result-object v4
invoke-static {v4}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;)I
move-result v0
int-to-long v0, v0
const-wide/16 v4, 0x400
mul-long v0, v0, v4
.line 7
:cond_57
invoke-virtual {v2}, Ljava/io/FileInputStream;->close()V
.line 8
invoke-virtual {v3}, Ljava/io/BufferedReader;->close()V
:try_end_5d
.catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5d} :catch_5d
:catch_5d
return-wide v0
.end method
.method public static native shrinkRegionSpace(I)Z
.end method
.method private static stop()V
.registers 2
.line 1
invoke-static {}, Lcom/alibaba/android/patronus/_Patrons;->inBackground()V
.line 2
sget-object v0, Lcom/alibaba/android/patronus/_Patrons;->config:Lcom/alibaba/android/patronus/Patrons$PatronsConfig;
const/4 v1, 0x0
iput-boolean v1, v0, Lcom/alibaba/android/patronus/Patrons$PatronsConfig;->auto:Z
return-void
.end method
.method private static stringToFile(Ljava/lang/String;Ljava/lang/String;)V
.registers 4
.line 1
:try_start_0
new-instance v0, Ljava/io/FileOutputStream;
new-instance v1, Ljava/io/File;
invoke-direct {v1, p1}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-direct {v0, v1}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
:try_end_a
.catch Ljava/lang/Exception; {:try_start_0 .. :try_end_a} :catch_32
.line 2
:try_start_a
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "\n\n"
invoke-virtual {p1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-virtual {p0}, Ljava/lang/String;->getBytes()[B
move-result-object p0
invoke-virtual {v0, p0}, Ljava/io/FileOutputStream;->write([B)V
:try_end_22
.catchall {:try_start_a .. :try_end_22} :catchall_26
.line 3
:try_start_22
invoke-virtual {v0}, Ljava/io/FileOutputStream;->close()V
:try_end_25
.catch Ljava/lang/Exception; {:try_start_22 .. :try_end_25} :catch_32
goto :goto_32
:catchall_26
move-exception p0
.line 4
:try_start_27
throw p0
:try_end_28
.catchall {:try_start_27 .. :try_end_28} :catchall_28
:catchall_28
move-exception p1
.line 5
:try_start_29
invoke-virtual {v0}, Ljava/io/FileOutputStream;->close()V
:try_end_2c
.catchall {:try_start_29 .. :try_end_2c} :catchall_2d
goto :goto_31
:catchall_2d
move-exception v0
:try_start_2e
invoke-virtual {p0, v0}, Ljava/lang/Throwable;->addSuppressed(Ljava/lang/Throwable;)V
:goto_31
throw p1
:try_end_32
.catch Ljava/lang/Exception; {:try_start_2e .. :try_end_32} :catch_32
:catch_32
:goto_32
return-void
.end method
.method public static toForeground()V
.registers 2
.line 1
sget-object v0, Lcom/alibaba/android/patronus/_Patrons;->strictCount:Ljava/util/concurrent/atomic/AtomicInteger;
const/4 v1, 0x0
invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicInteger;->set(I)V
.line 2
sget-object v0, Lcom/alibaba/android/patronus/_Patrons;->config:Lcom/alibaba/android/patronus/Patrons$PatronsConfig;
iget v0, v0, Lcom/alibaba/android/patronus/Patrons$PatronsConfig;->periodOfCheck:I
invoke-static {v0}, Lcom/alibaba/android/patronus/_Patrons;->_start(I)V
return-void
.end method