MMKV.smali
.class public Lcom/tencent/mmkv/MMKV;
.super Ljava/lang/Object;
.source "MMKV.java"
# interfaces
.implements Landroid/content/SharedPreferences;
.implements Landroid/content/SharedPreferences$Editor;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/tencent/mmkv/MMKV$LibLoader;
}
.end annotation
# static fields
.field private static final ASHMEM_MODE:I = 0x8
.field private static final CONTEXT_MODE_MULTI_PROCESS:I = 0x4
.field public static final MULTI_PROCESS_MODE:I = 0x2
.field public static final SINGLE_PROCESS_MODE:I = 0x1
.field private static gCallbackHandler:Lcom/tencent/mmkv/MMKVHandler;
.field private static gContentChangeNotify:Lcom/tencent/mmkv/MMKVContentChangeNotification;
.field private static gWantLogReDirecting:Z
.field private static index2LogLevel:[Lcom/tencent/mmkv/MMKVLogLevel;
.field private static logLevel2Index:Ljava/util/EnumMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/EnumMap",
"<",
"Lcom/tencent/mmkv/MMKVLogLevel;",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.end field
.field private static final mCreators:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap",
"<",
"Ljava/lang/String;",
"Landroid/os/Parcelable$Creator",
"<*>;>;"
}
.end annotation
.end field
.field private static recoverIndex:Ljava/util/EnumMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/EnumMap",
"<",
"Lcom/tencent/mmkv/MMKVRecoverStrategic;",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.end field
.field private static rootDir:Ljava/lang/String;
# instance fields
.field private nativeHandle:J
# direct methods
.method static constructor <clinit>()V
.registers 8
.prologue
const/4 v7, 0x4
const/4 v6, 0x3
const/4 v5, 0x2
const/4 v4, 0x1
const/4 v3, 0x0
.line 46
new-instance v0, Ljava/util/EnumMap;
const-class v1, Lcom/tencent/mmkv/MMKVRecoverStrategic;
invoke-direct {v0, v1}, Ljava/util/EnumMap;-><init>(Ljava/lang/Class;)V
sput-object v0, Lcom/tencent/mmkv/MMKV;->recoverIndex:Ljava/util/EnumMap;
.line 47
sget-object v0, Lcom/tencent/mmkv/MMKV;->recoverIndex:Ljava/util/EnumMap;
sget-object v1, Lcom/tencent/mmkv/MMKVRecoverStrategic;->OnErrorDiscard:Lcom/tencent/mmkv/MMKVRecoverStrategic;
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
invoke-virtual {v0, v1, v2}, Ljava/util/EnumMap;->put(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
.line 48
sget-object v0, Lcom/tencent/mmkv/MMKV;->recoverIndex:Ljava/util/EnumMap;
sget-object v1, Lcom/tencent/mmkv/MMKVRecoverStrategic;->OnErrorRecover:Lcom/tencent/mmkv/MMKVRecoverStrategic;
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
invoke-virtual {v0, v1, v2}, Ljava/util/EnumMap;->put(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
.line 50
new-instance v0, Ljava/util/EnumMap;
const-class v1, Lcom/tencent/mmkv/MMKVLogLevel;
invoke-direct {v0, v1}, Ljava/util/EnumMap;-><init>(Ljava/lang/Class;)V
sput-object v0, Lcom/tencent/mmkv/MMKV;->logLevel2Index:Ljava/util/EnumMap;
.line 51
sget-object v0, Lcom/tencent/mmkv/MMKV;->logLevel2Index:Ljava/util/EnumMap;
sget-object v1, Lcom/tencent/mmkv/MMKVLogLevel;->LevelDebug:Lcom/tencent/mmkv/MMKVLogLevel;
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
invoke-virtual {v0, v1, v2}, Ljava/util/EnumMap;->put(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
.line 52
sget-object v0, Lcom/tencent/mmkv/MMKV;->logLevel2Index:Ljava/util/EnumMap;
sget-object v1, Lcom/tencent/mmkv/MMKVLogLevel;->LevelInfo:Lcom/tencent/mmkv/MMKVLogLevel;
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
invoke-virtual {v0, v1, v2}, Ljava/util/EnumMap;->put(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
.line 53
sget-object v0, Lcom/tencent/mmkv/MMKV;->logLevel2Index:Ljava/util/EnumMap;
sget-object v1, Lcom/tencent/mmkv/MMKVLogLevel;->LevelWarning:Lcom/tencent/mmkv/MMKVLogLevel;
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
invoke-virtual {v0, v1, v2}, Ljava/util/EnumMap;->put(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
.line 54
sget-object v0, Lcom/tencent/mmkv/MMKV;->logLevel2Index:Ljava/util/EnumMap;
sget-object v1, Lcom/tencent/mmkv/MMKVLogLevel;->LevelError:Lcom/tencent/mmkv/MMKVLogLevel;
invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
invoke-virtual {v0, v1, v2}, Ljava/util/EnumMap;->put(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
.line 55
sget-object v0, Lcom/tencent/mmkv/MMKV;->logLevel2Index:Ljava/util/EnumMap;
sget-object v1, Lcom/tencent/mmkv/MMKVLogLevel;->LevelNone:Lcom/tencent/mmkv/MMKVLogLevel;
invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
invoke-virtual {v0, v1, v2}, Ljava/util/EnumMap;->put(Ljava/lang/Enum;Ljava/lang/Object;)Ljava/lang/Object;
.line 57
const/4 v0, 0x5
new-array v0, v0, [Lcom/tencent/mmkv/MMKVLogLevel;
sget-object v1, Lcom/tencent/mmkv/MMKVLogLevel;->LevelDebug:Lcom/tencent/mmkv/MMKVLogLevel;
aput-object v1, v0, v3
sget-object v1, Lcom/tencent/mmkv/MMKVLogLevel;->LevelInfo:Lcom/tencent/mmkv/MMKVLogLevel;
aput-object v1, v0, v4
sget-object v1, Lcom/tencent/mmkv/MMKVLogLevel;->LevelWarning:Lcom/tencent/mmkv/MMKVLogLevel;
aput-object v1, v0, v5
sget-object v1, Lcom/tencent/mmkv/MMKVLogLevel;->LevelError:Lcom/tencent/mmkv/MMKVLogLevel;
aput-object v1, v0, v6
sget-object v1, Lcom/tencent/mmkv/MMKVLogLevel;->LevelNone:Lcom/tencent/mmkv/MMKVLogLevel;
aput-object v1, v0, v7
sput-object v0, Lcom/tencent/mmkv/MMKV;->index2LogLevel:[Lcom/tencent/mmkv/MMKVLogLevel;
.line 107
const/4 v0, 0x0
sput-object v0, Lcom/tencent/mmkv/MMKV;->rootDir:Ljava/lang/String;
.line 420
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Lcom/tencent/mmkv/MMKV;->mCreators:Ljava/util/HashMap;
.line 735
sput-boolean v3, Lcom/tencent/mmkv/MMKV;->gWantLogReDirecting:Z
return-void
.end method
.method private constructor <init>(J)V
.registers 4
.prologue
.line 832
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 833
iput-wide p1, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
.line 834
return-void
.end method
.method private native containsKey(JLjava/lang/String;)Z
.end method
.method private native count(J)J
.end method
.method private static native createNB(I)J
.end method
.method public static createNativeBuffer(I)Lcom/tencent/mmkv/NativeBuffer;
.registers 5
.prologue
.line 717
invoke-static {p0}, Lcom/tencent/mmkv/MMKV;->createNB(I)J
move-result-wide v2
.line 718
const-wide/16 v0, 0x0
cmp-long v0, v2, v0
if-gtz v0, :cond_c
.line 719
const/4 v0, 0x0
.line 721
:goto_b
return-object v0
:cond_c
new-instance v0, Lcom/tencent/mmkv/NativeBuffer;
invoke-direct {v0, v2, v3, p0}, Lcom/tencent/mmkv/NativeBuffer;-><init>(JI)V
goto :goto_b
.end method
.method private native decodeBool(JLjava/lang/String;Z)Z
.end method
.method private native decodeBytes(JLjava/lang/String;)[B
.end method
.method private native decodeDouble(JLjava/lang/String;D)D
.end method
.method private native decodeFloat(JLjava/lang/String;F)F
.end method
.method private native decodeInt(JLjava/lang/String;I)I
.end method
.method private native decodeLong(JLjava/lang/String;J)J
.end method
.method private native decodeString(JLjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.end method
.method private native decodeStringSet(JLjava/lang/String;)[Ljava/lang/String;
.end method
.method public static defaultMMKV()Lcom/tencent/mmkv/MMKV;
.registers 3
.prologue
.line 264
sget-object v0, Lcom/tencent/mmkv/MMKV;->rootDir:Ljava/lang/String;
if-nez v0, :cond_c
.line 265
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "You should Call MMKV.initialize() first."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 268
:cond_c
const/4 v0, 0x1
const/4 v1, 0x0
invoke-static {v0, v1}, Lcom/tencent/mmkv/MMKV;->getDefaultMMKV(ILjava/lang/String;)J
move-result-wide v0
.line 269
new-instance v2, Lcom/tencent/mmkv/MMKV;
invoke-direct {v2, v0, v1}, Lcom/tencent/mmkv/MMKV;-><init>(J)V
return-object v2
.end method
.method public static defaultMMKV(ILjava/lang/String;)Lcom/tencent/mmkv/MMKV;
.registers 5
.prologue
.line 273
sget-object v0, Lcom/tencent/mmkv/MMKV;->rootDir:Ljava/lang/String;
if-nez v0, :cond_c
.line 274
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "You should Call MMKV.initialize() first."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 277
:cond_c
invoke-static {p0, p1}, Lcom/tencent/mmkv/MMKV;->getDefaultMMKV(ILjava/lang/String;)J
move-result-wide v0
.line 278
new-instance v2, Lcom/tencent/mmkv/MMKV;
invoke-direct {v2, v0, v1}, Lcom/tencent/mmkv/MMKV;-><init>(J)V
return-object v2
.end method
.method private static native destroyNB(JI)V
.end method
.method public static destroyNativeBuffer(Lcom/tencent/mmkv/NativeBuffer;)V
.registers 4
.prologue
.line 725
iget-wide v0, p0, Lcom/tencent/mmkv/NativeBuffer;->pointer:J
iget v2, p0, Lcom/tencent/mmkv/NativeBuffer;->size:I
invoke-static {v0, v1, v2}, Lcom/tencent/mmkv/MMKV;->destroyNB(JI)V
.line 726
return-void
.end method
.method private native encodeBool(JLjava/lang/String;Z)Z
.end method
.method private native encodeBytes(JLjava/lang/String;[B)Z
.end method
.method private native encodeDouble(JLjava/lang/String;D)Z
.end method
.method private native encodeFloat(JLjava/lang/String;F)Z
.end method
.method private native encodeInt(JLjava/lang/String;I)Z
.end method
.method private native encodeLong(JLjava/lang/String;J)Z
.end method
.method private native encodeSet(JLjava/lang/String;[Ljava/lang/String;)Z
.end method
.method private native encodeString(JLjava/lang/String;Ljava/lang/String;)Z
.end method
.method private static native getDefaultMMKV(ILjava/lang/String;)J
.end method
.method private static native getMMKVWithAshmemFD(Ljava/lang/String;IILjava/lang/String;)J
.end method
.method private static native getMMKVWithID(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)J
.end method
.method private static native getMMKVWithIDAndSize(Ljava/lang/String;IILjava/lang/String;)J
.end method
.method public static getRootDir()Ljava/lang/String;
.registers 1
.prologue
.line 109
sget-object v0, Lcom/tencent/mmkv/MMKV;->rootDir:Ljava/lang/String;
return-object v0
.end method
.method public static initialize(Landroid/content/Context;)Ljava/lang/String;
.registers 4
.prologue
.line 66
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object v1
invoke-virtual {v1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "/mmkv"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 67
sget-object v1, Lcom/tencent/mmkv/MMKVLogLevel;->LevelInfo:Lcom/tencent/mmkv/MMKVLogLevel;
.line 69
const/4 v2, 0x0
invoke-static {v0, v2, v1}, Lcom/tencent/mmkv/MMKV;->initialize(Ljava/lang/String;Lcom/tencent/mmkv/MMKV$LibLoader;Lcom/tencent/mmkv/MMKVLogLevel;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static initialize(Landroid/content/Context;Lcom/tencent/mmkv/MMKVLogLevel;)Ljava/lang/String;
.registers 4
.prologue
.line 72
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object v1
invoke-virtual {v1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "/mmkv"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 73
const/4 v1, 0x0
invoke-static {v0, v1, p1}, Lcom/tencent/mmkv/MMKV;->initialize(Ljava/lang/String;Lcom/tencent/mmkv/MMKV$LibLoader;Lcom/tencent/mmkv/MMKVLogLevel;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static initialize(Ljava/lang/String;)Ljava/lang/String;
.registers 3
.prologue
.line 77
sget-object v0, Lcom/tencent/mmkv/MMKVLogLevel;->LevelInfo:Lcom/tencent/mmkv/MMKVLogLevel;
.line 79
const/4 v1, 0x0
invoke-static {p0, v1, v0}, Lcom/tencent/mmkv/MMKV;->initialize(Ljava/lang/String;Lcom/tencent/mmkv/MMKV$LibLoader;Lcom/tencent/mmkv/MMKVLogLevel;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static initialize(Ljava/lang/String;Lcom/tencent/mmkv/MMKV$LibLoader;)Ljava/lang/String;
.registers 3
.prologue
.line 86
sget-object v0, Lcom/tencent/mmkv/MMKVLogLevel;->LevelInfo:Lcom/tencent/mmkv/MMKVLogLevel;
.line 88
invoke-static {p0, p1, v0}, Lcom/tencent/mmkv/MMKV;->initialize(Ljava/lang/String;Lcom/tencent/mmkv/MMKV$LibLoader;Lcom/tencent/mmkv/MMKVLogLevel;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static initialize(Ljava/lang/String;Lcom/tencent/mmkv/MMKV$LibLoader;Lcom/tencent/mmkv/MMKVLogLevel;)Ljava/lang/String;
.registers 5
.prologue
.line 91
if-eqz p1, :cond_22
.line 92
const-string v0, "SharedCpp"
const-string v1, "SharedCpp"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_11
.line 93
const-string v0, "c++_shared"
invoke-interface {p1, v0}, Lcom/tencent/mmkv/MMKV$LibLoader;->loadLibrary(Ljava/lang/String;)V
.line 95
:cond_11
const-string v0, "mmkv"
invoke-interface {p1, v0}, Lcom/tencent/mmkv/MMKV$LibLoader;->loadLibrary(Ljava/lang/String;)V
.line 102
:goto_16
sput-object p0, Lcom/tencent/mmkv/MMKV;->rootDir:Ljava/lang/String;
.line 103
sget-object v0, Lcom/tencent/mmkv/MMKV;->rootDir:Ljava/lang/String;
invoke-static {p2}, Lcom/tencent/mmkv/MMKV;->logLevel2Int(Lcom/tencent/mmkv/MMKVLogLevel;)I
move-result v1
invoke-static {v0, v1}, Lcom/tencent/mmkv/MMKV;->jniInitialize(Ljava/lang/String;I)V
.line 104
return-object p0
.line 97
:cond_22
const-string v0, "SharedCpp"
const-string v1, "SharedCpp"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_31
.line 98
const-string v0, "c++_shared"
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
.line 100
:cond_31
const-string v0, "mmkv"
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
goto :goto_16
.end method
.method public static initialize(Ljava/lang/String;Lcom/tencent/mmkv/MMKVLogLevel;)Ljava/lang/String;
.registers 3
.prologue
.line 82
const/4 v0, 0x0
invoke-static {p0, v0, p1}, Lcom/tencent/mmkv/MMKV;->initialize(Ljava/lang/String;Lcom/tencent/mmkv/MMKV$LibLoader;Lcom/tencent/mmkv/MMKVLogLevel;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static native isFileValid(Ljava/lang/String;)Z
.end method
.method private static native jniInitialize(Ljava/lang/String;I)V
.end method
.method private static logLevel2Int(Lcom/tencent/mmkv/MMKVLogLevel;)I
.registers 4
.prologue
const/4 v0, 0x1
.line 114
sget-object v1, Lcom/tencent/mmkv/MMKV$1;->$SwitchMap$com$tencent$mmkv$MMKVLogLevel:[I
invoke-virtual {p0}, Lcom/tencent/mmkv/MMKVLogLevel;->ordinal()I
move-result v2
aget v1, v1, v2
packed-switch v1, :pswitch_data_16
.line 134
:goto_c
:pswitch_c
return v0
.line 116
:pswitch_d
const/4 v0, 0x0
.line 117
goto :goto_c
.line 122
:pswitch_f
const/4 v0, 0x2
.line 123
goto :goto_c
.line 125
:pswitch_11
const/4 v0, 0x3
.line 126
goto :goto_c
.line 128
:pswitch_13
const/4 v0, 0x4
.line 129
goto :goto_c
.line 114
nop
:pswitch_data_16
.packed-switch 0x1
:pswitch_d
:pswitch_c
:pswitch_f
:pswitch_11
:pswitch_13
.end packed-switch
.end method
.method private static mmkvLogImp(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
.registers 11
.prologue
.line 777
sget-object v0, Lcom/tencent/mmkv/MMKV;->gCallbackHandler:Lcom/tencent/mmkv/MMKVHandler;
if-eqz v0, :cond_16
sget-boolean v0, Lcom/tencent/mmkv/MMKV;->gWantLogReDirecting:Z
if-eqz v0, :cond_16
.line 778
sget-object v0, Lcom/tencent/mmkv/MMKV;->gCallbackHandler:Lcom/tencent/mmkv/MMKVHandler;
sget-object v1, Lcom/tencent/mmkv/MMKV;->index2LogLevel:[Lcom/tencent/mmkv/MMKVLogLevel;
aget-object v1, v1, p0
move-object v2, p1
move v3, p2
move-object v4, p3
move-object v5, p4
invoke-interface/range {v0 .. v5}, Lcom/tencent/mmkv/MMKVHandler;->mmkvLog(Lcom/tencent/mmkv/MMKVLogLevel;Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
.line 797
:goto_15
return-void
.line 780
:cond_16
sget-object v0, Lcom/tencent/mmkv/MMKV$1;->$SwitchMap$com$tencent$mmkv$MMKVLogLevel:[I
sget-object v1, Lcom/tencent/mmkv/MMKV;->index2LogLevel:[Lcom/tencent/mmkv/MMKVLogLevel;
aget-object v1, v1, p0
invoke-virtual {v1}, Lcom/tencent/mmkv/MMKVLogLevel;->ordinal()I
move-result v1
aget v0, v0, v1
packed-switch v0, :pswitch_data_3e
goto :goto_15
.line 782
:pswitch_26
const-string v0, "MMKV"
invoke-static {v0, p4}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_15
.line 785
:pswitch_2c
const-string v0, "MMKV"
invoke-static {v0, p4}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_15
.line 788
:pswitch_32
const-string v0, "MMKV"
invoke-static {v0, p4}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_15
.line 791
:pswitch_38
const-string v0, "MMKV"
invoke-static {v0, p4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_15
.line 780
:pswitch_data_3e
.packed-switch 0x1
:pswitch_26
:pswitch_2c
:pswitch_32
:pswitch_38
.end packed-switch
.end method
.method public static mmkvWithAshmemFD(Ljava/lang/String;IILjava/lang/String;)Lcom/tencent/mmkv/MMKV;
.registers 7
.prologue
.line 707
invoke-static {p0, p1, p2, p3}, Lcom/tencent/mmkv/MMKV;->getMMKVWithAshmemFD(Ljava/lang/String;IILjava/lang/String;)J
move-result-wide v0
.line 708
new-instance v2, Lcom/tencent/mmkv/MMKV;
invoke-direct {v2, v0, v1}, Lcom/tencent/mmkv/MMKV;-><init>(J)V
return-object v2
.end method
.method public static mmkvWithAshmemID(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;)Lcom/tencent/mmkv/MMKV;
.registers 10
.annotation build Landroidx/annotation/Nullable;
.end annotation
.prologue
const/4 v1, 0x0
.line 214
sget-object v0, Lcom/tencent/mmkv/MMKV;->rootDir:Ljava/lang/String;
if-nez v0, :cond_d
.line 215
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "You should Call MMKV.initialize() first."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 219
:cond_d
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v0
invoke-static {p0, v0}, Lcom/tencent/mmkv/MMKVContentProvider;->getProcessNameByPID(Landroid/content/Context;I)Ljava/lang/String;
move-result-object v0
.line 220
if-eqz v0, :cond_1d
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v2
if-nez v2, :cond_27
.line 221
:cond_1d
sget-object v0, Lcom/tencent/mmkv/MMKVLogLevel;->LevelError:Lcom/tencent/mmkv/MMKVLogLevel;
const-string/jumbo v2, "process name detect fail, try again later"
invoke-static {v0, v2}, Lcom/tencent/mmkv/MMKV;->simpleLog(Lcom/tencent/mmkv/MMKVLogLevel;Ljava/lang/String;)V
move-object v0, v1
.line 260
:cond_26
:goto_26
return-object v0
.line 224
:cond_27
const-string v2, ":"
invoke-virtual {v0, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_c5
.line 225
invoke-static {p0}, Lcom/tencent/mmkv/MMKVContentProvider;->contentUri(Landroid/content/Context;)Landroid/net/Uri;
move-result-object v0
.line 226
if-nez v0, :cond_3e
.line 227
sget-object v0, Lcom/tencent/mmkv/MMKVLogLevel;->LevelError:Lcom/tencent/mmkv/MMKVLogLevel;
const-string v2, "MMKVContentProvider has invalid authority"
invoke-static {v0, v2}, Lcom/tencent/mmkv/MMKV;->simpleLog(Lcom/tencent/mmkv/MMKVLogLevel;Ljava/lang/String;)V
move-object v0, v1
.line 228
goto :goto_26
.line 230
:cond_3e
sget-object v2, Lcom/tencent/mmkv/MMKVLogLevel;->LevelInfo:Lcom/tencent/mmkv/MMKVLogLevel;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "getting parcelable mmkv in process, Uri = "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Lcom/tencent/mmkv/MMKV;->simpleLog(Lcom/tencent/mmkv/MMKVLogLevel;Ljava/lang/String;)V
.line 232
new-instance v2, Landroid/os/Bundle;
invoke-direct {v2}, Landroid/os/Bundle;-><init>()V
.line 233
const-string v3, "KEY_SIZE"
invoke-virtual {v2, v3, p2}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
.line 234
const-string v3, "KEY_MODE"
invoke-virtual {v2, v3, p3}, Landroid/os/Bundle;->putInt(Ljava/lang/String;I)V
.line 235
if-eqz p4, :cond_6c
.line 236
const-string v3, "KEY_CRYPT"
invoke-virtual {v2, v3, p4}, Landroid/os/Bundle;->putString(Ljava/lang/String;Ljava/lang/String;)V
.line 238
:cond_6c
invoke-virtual {p0}, Landroid/content/Context;->getContentResolver()Landroid/content/ContentResolver;
move-result-object v3
.line 239
const-string v4, "mmkvFromAshmemID"
invoke-virtual {v3, v0, v4, p1, v2}, Landroid/content/ContentResolver;->call(Landroid/net/Uri;Ljava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
move-result-object v0
.line 240
if-eqz v0, :cond_d9
.line 241
const-class v2, Lcom/tencent/mmkv/ParcelableMMKV;
invoke-virtual {v2}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
move-result-object v2
invoke-virtual {v0, v2}, Landroid/os/Bundle;->setClassLoader(Ljava/lang/ClassLoader;)V
.line 242
const-string v2, "KEY"
invoke-virtual {v0, v2}, Landroid/os/Bundle;->getParcelable(Ljava/lang/String;)Landroid/os/Parcelable;
move-result-object v0
check-cast v0, Lcom/tencent/mmkv/ParcelableMMKV;
.line 243
if-eqz v0, :cond_d9
.line 244
invoke-virtual {v0}, Lcom/tencent/mmkv/ParcelableMMKV;->toMMKV()Lcom/tencent/mmkv/MMKV;
move-result-object v0
.line 245
if-eqz v0, :cond_26
.line 246
sget-object v1, Lcom/tencent/mmkv/MMKVLogLevel;->LevelInfo:Lcom/tencent/mmkv/MMKVLogLevel;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
.line 247
invoke-virtual {v0}, Lcom/tencent/mmkv/MMKV;->mmapID()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, " fd = "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v0}, Lcom/tencent/mmkv/MMKV;->ashmemFD()I
move-result v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, ", meta fd = "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
.line 248
invoke-virtual {v0}, Lcom/tencent/mmkv/MMKV;->ashmemMetaFD()I
move-result v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
.line 246
invoke-static {v1, v2}, Lcom/tencent/mmkv/MMKV;->simpleLog(Lcom/tencent/mmkv/MMKVLogLevel;Ljava/lang/String;)V
goto/16 :goto_26
.line 254
:cond_c5
sget-object v0, Lcom/tencent/mmkv/MMKVLogLevel;->LevelInfo:Lcom/tencent/mmkv/MMKVLogLevel;
const-string v1, "getting mmkv in main process"
invoke-static {v0, v1}, Lcom/tencent/mmkv/MMKV;->simpleLog(Lcom/tencent/mmkv/MMKVLogLevel;Ljava/lang/String;)V
.line 256
or-int/lit8 v0, p3, 0x8
.line 257
invoke-static {p1, p2, v0, p4}, Lcom/tencent/mmkv/MMKV;->getMMKVWithIDAndSize(Ljava/lang/String;IILjava/lang/String;)J
move-result-wide v2
.line 258
new-instance v0, Lcom/tencent/mmkv/MMKV;
invoke-direct {v0, v2, v3}, Lcom/tencent/mmkv/MMKV;-><init>(J)V
goto/16 :goto_26
:cond_d9
move-object v0, v1
.line 260
goto/16 :goto_26
.end method
.method public static mmkvWithID(Ljava/lang/String;)Lcom/tencent/mmkv/MMKV;
.registers 4
.prologue
const/4 v1, 0x0
.line 155
sget-object v0, Lcom/tencent/mmkv/MMKV;->rootDir:Ljava/lang/String;
if-nez v0, :cond_d
.line 156
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "You should Call MMKV.initialize() first."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 159
:cond_d
const/4 v0, 0x1
invoke-static {p0, v0, v1, v1}, Lcom/tencent/mmkv/MMKV;->getMMKVWithID(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)J
move-result-wide v0
.line 160
new-instance v2, Lcom/tencent/mmkv/MMKV;
invoke-direct {v2, v0, v1}, Lcom/tencent/mmkv/MMKV;-><init>(J)V
return-object v2
.end method
.method public static mmkvWithID(Ljava/lang/String;I)Lcom/tencent/mmkv/MMKV;
.registers 5
.prologue
const/4 v1, 0x0
.line 164
sget-object v0, Lcom/tencent/mmkv/MMKV;->rootDir:Ljava/lang/String;
if-nez v0, :cond_d
.line 165
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "You should Call MMKV.initialize() first."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 168
:cond_d
invoke-static {p0, p1, v1, v1}, Lcom/tencent/mmkv/MMKV;->getMMKVWithID(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)J
move-result-wide v0
.line 169
new-instance v2, Lcom/tencent/mmkv/MMKV;
invoke-direct {v2, v0, v1}, Lcom/tencent/mmkv/MMKV;-><init>(J)V
return-object v2
.end method
.method public static mmkvWithID(Ljava/lang/String;ILjava/lang/String;)Lcom/tencent/mmkv/MMKV;
.registers 6
.prologue
.line 174
sget-object v0, Lcom/tencent/mmkv/MMKV;->rootDir:Ljava/lang/String;
if-nez v0, :cond_c
.line 175
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "You should Call MMKV.initialize() first."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 178
:cond_c
const/4 v0, 0x0
invoke-static {p0, p1, p2, v0}, Lcom/tencent/mmkv/MMKV;->getMMKVWithID(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)J
move-result-wide v0
.line 179
new-instance v2, Lcom/tencent/mmkv/MMKV;
invoke-direct {v2, v0, v1}, Lcom/tencent/mmkv/MMKV;-><init>(J)V
return-object v2
.end method
.method public static mmkvWithID(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)Lcom/tencent/mmkv/MMKV;
.registers 8
.annotation build Landroidx/annotation/Nullable;
.end annotation
.prologue
.line 198
sget-object v0, Lcom/tencent/mmkv/MMKV;->rootDir:Ljava/lang/String;
if-nez v0, :cond_c
.line 199
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "You should Call MMKV.initialize() first."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 202
:cond_c
invoke-static {p0, p1, p2, p3}, Lcom/tencent/mmkv/MMKV;->getMMKVWithID(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)J
move-result-wide v2
.line 203
const-wide/16 v0, 0x0
cmp-long v0, v2, v0
if-nez v0, :cond_18
.line 204
const/4 v0, 0x0
.line 206
:goto_17
return-object v0
:cond_18
new-instance v0, Lcom/tencent/mmkv/MMKV;
invoke-direct {v0, v2, v3}, Lcom/tencent/mmkv/MMKV;-><init>(J)V
goto :goto_17
.end method
.method public static mmkvWithID(Ljava/lang/String;Ljava/lang/String;)Lcom/tencent/mmkv/MMKV;
.registers 8
.annotation build Landroidx/annotation/Nullable;
.end annotation
.prologue
const/4 v0, 0x0
.line 184
sget-object v1, Lcom/tencent/mmkv/MMKV;->rootDir:Ljava/lang/String;
if-nez v1, :cond_d
.line 185
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "You should Call MMKV.initialize() first."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.line 188
:cond_d
const/4 v1, 0x1
invoke-static {p0, v1, v0, p1}, Lcom/tencent/mmkv/MMKV;->getMMKVWithID(Ljava/lang/String;ILjava/lang/String;Ljava/lang/String;)J
move-result-wide v2
.line 189
const-wide/16 v4, 0x0
cmp-long v1, v2, v4
if-nez v1, :cond_19
.line 192
:goto_18
return-object v0
:cond_19
new-instance v0, Lcom/tencent/mmkv/MMKV;
invoke-direct {v0, v2, v3}, Lcom/tencent/mmkv/MMKV;-><init>(J)V
goto :goto_18
.end method
.method private static onContentChangedByOuterProcess(Ljava/lang/String;)V
.registers 2
.prologue
.line 820
sget-object v0, Lcom/tencent/mmkv/MMKV;->gContentChangeNotify:Lcom/tencent/mmkv/MMKVContentChangeNotification;
if-eqz v0, :cond_9
.line 821
sget-object v0, Lcom/tencent/mmkv/MMKV;->gContentChangeNotify:Lcom/tencent/mmkv/MMKVContentChangeNotification;
invoke-interface {v0, p0}, Lcom/tencent/mmkv/MMKVContentChangeNotification;->onContentChangedByOuterProcess(Ljava/lang/String;)V
.line 823
:cond_9
return-void
.end method
.method public static native onExit()V
.end method
.method private static onMMKVCRCCheckFail(Ljava/lang/String;)I
.registers 5
.prologue
.line 756
sget-object v0, Lcom/tencent/mmkv/MMKVRecoverStrategic;->OnErrorDiscard:Lcom/tencent/mmkv/MMKVRecoverStrategic;
.line 757
sget-object v1, Lcom/tencent/mmkv/MMKV;->gCallbackHandler:Lcom/tencent/mmkv/MMKVHandler;
if-eqz v1, :cond_c
.line 758
sget-object v0, Lcom/tencent/mmkv/MMKV;->gCallbackHandler:Lcom/tencent/mmkv/MMKVHandler;
invoke-interface {v0, p0}, Lcom/tencent/mmkv/MMKVHandler;->onMMKVCRCCheckFail(Ljava/lang/String;)Lcom/tencent/mmkv/MMKVRecoverStrategic;
move-result-object v0
.line 760
:cond_c
sget-object v1, Lcom/tencent/mmkv/MMKVLogLevel;->LevelInfo:Lcom/tencent/mmkv/MMKVLogLevel;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Recover strategic for "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, " is "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Lcom/tencent/mmkv/MMKV;->simpleLog(Lcom/tencent/mmkv/MMKVLogLevel;Ljava/lang/String;)V
.line 761
sget-object v1, Lcom/tencent/mmkv/MMKV;->recoverIndex:Ljava/util/EnumMap;
invoke-virtual {v1, v0}, Ljava/util/EnumMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
.line 762
if-nez v0, :cond_3a
const/4 v0, 0x0
:goto_39
return v0
:cond_3a
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
goto :goto_39
.end method
.method private static onMMKVFileLengthError(Ljava/lang/String;)I
.registers 5
.prologue
.line 766
sget-object v0, Lcom/tencent/mmkv/MMKVRecoverStrategic;->OnErrorDiscard:Lcom/tencent/mmkv/MMKVRecoverStrategic;
.line 767
sget-object v1, Lcom/tencent/mmkv/MMKV;->gCallbackHandler:Lcom/tencent/mmkv/MMKVHandler;
if-eqz v1, :cond_c
.line 768
sget-object v0, Lcom/tencent/mmkv/MMKV;->gCallbackHandler:Lcom/tencent/mmkv/MMKVHandler;
invoke-interface {v0, p0}, Lcom/tencent/mmkv/MMKVHandler;->onMMKVFileLengthError(Ljava/lang/String;)Lcom/tencent/mmkv/MMKVRecoverStrategic;
move-result-object v0
.line 770
:cond_c
sget-object v1, Lcom/tencent/mmkv/MMKVLogLevel;->LevelInfo:Lcom/tencent/mmkv/MMKVLogLevel;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Recover strategic for "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, " is "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Lcom/tencent/mmkv/MMKV;->simpleLog(Lcom/tencent/mmkv/MMKVLogLevel;Ljava/lang/String;)V
.line 771
sget-object v1, Lcom/tencent/mmkv/MMKV;->recoverIndex:Ljava/util/EnumMap;
invoke-virtual {v1, v0}, Ljava/util/EnumMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
.line 772
if-nez v0, :cond_3a
const/4 v0, 0x0
:goto_39
return v0
:cond_3a
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
goto :goto_39
.end method
.method public static native pageSize()I
.end method
.method public static registerContentChangeNotify(Lcom/tencent/mmkv/MMKVContentChangeNotification;)V
.registers 2
.prologue
.line 811
sput-object p0, Lcom/tencent/mmkv/MMKV;->gContentChangeNotify:Lcom/tencent/mmkv/MMKVContentChangeNotification;
.line 812
sget-object v0, Lcom/tencent/mmkv/MMKV;->gContentChangeNotify:Lcom/tencent/mmkv/MMKVContentChangeNotification;
if-eqz v0, :cond_b
const/4 v0, 0x1
:goto_7
invoke-static {v0}, Lcom/tencent/mmkv/MMKV;->setWantsContentChangeNotify(Z)V
.line 813
return-void
.line 812
:cond_b
const/4 v0, 0x0
goto :goto_7
.end method
.method public static registerHandler(Lcom/tencent/mmkv/MMKVHandler;)V
.registers 4
.prologue
const/4 v2, 0x1
const/4 v1, 0x0
.line 737
sput-object p0, Lcom/tencent/mmkv/MMKV;->gCallbackHandler:Lcom/tencent/mmkv/MMKVHandler;
.line 739
sget-object v0, Lcom/tencent/mmkv/MMKV;->gCallbackHandler:Lcom/tencent/mmkv/MMKVHandler;
invoke-interface {v0}, Lcom/tencent/mmkv/MMKVHandler;->wantLogRedirecting()Z
move-result v0
if-eqz v0, :cond_12
.line 740
invoke-static {v2}, Lcom/tencent/mmkv/MMKV;->setLogReDirecting(Z)V
.line 741
sput-boolean v2, Lcom/tencent/mmkv/MMKV;->gWantLogReDirecting:Z
.line 746
:goto_11
return-void
.line 743
:cond_12
invoke-static {v1}, Lcom/tencent/mmkv/MMKV;->setLogReDirecting(Z)V
.line 744
sput-boolean v1, Lcom/tencent/mmkv/MMKV;->gWantLogReDirecting:Z
goto :goto_11
.end method
.method private native removeValueForKey(JLjava/lang/String;)V
.end method
.method private static native setLogLevel(I)V
.end method
.method public static setLogLevel(Lcom/tencent/mmkv/MMKVLogLevel;)V
.registers 2
.prologue
.line 138
invoke-static {p0}, Lcom/tencent/mmkv/MMKV;->logLevel2Int(Lcom/tencent/mmkv/MMKVLogLevel;)I
move-result v0
.line 139
invoke-static {v0}, Lcom/tencent/mmkv/MMKV;->setLogLevel(I)V
.line 140
return-void
.end method
.method private static native setLogReDirecting(Z)V
.end method
.method private static native setWantsContentChangeNotify(Z)V
.end method
.method private static simpleLog(Lcom/tencent/mmkv/MMKVLogLevel;Ljava/lang/String;)V
.registers 6
.prologue
.line 800
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Thread;->getStackTrace()[Ljava/lang/StackTraceElement;
move-result-object v0
.line 801
array-length v1, v0
add-int/lit8 v1, v1, -0x1
aget-object v1, v0, v1
.line 802
sget-object v0, Lcom/tencent/mmkv/MMKV;->logLevel2Index:Ljava/util/EnumMap;
invoke-virtual {v0, p0}, Ljava/util/EnumMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
.line 803
if-nez v0, :cond_28
const/4 v0, 0x0
.line 804
:goto_18
invoke-virtual {v1}, Ljava/lang/StackTraceElement;->getFileName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1}, Ljava/lang/StackTraceElement;->getLineNumber()I
move-result v3
invoke-virtual {v1}, Ljava/lang/StackTraceElement;->getMethodName()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v2, v3, v1, p1}, Lcom/tencent/mmkv/MMKV;->mmkvLogImp(ILjava/lang/String;ILjava/lang/String;Ljava/lang/String;)V
.line 805
return-void
.line 803
:cond_28
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
goto :goto_18
.end method
.method private native sync(Z)V
.end method
.method private native totalSize(J)J
.end method
.method public static unregisterContentChangeNotify()V
.registers 1
.prologue
.line 816
const/4 v0, 0x0
sput-object v0, Lcom/tencent/mmkv/MMKV;->gContentChangeNotify:Lcom/tencent/mmkv/MMKVContentChangeNotification;
.line 817
const/4 v0, 0x0
invoke-static {v0}, Lcom/tencent/mmkv/MMKV;->setWantsContentChangeNotify(Z)V
.line 818
return-void
.end method
.method public static unregisterHandler()V
.registers 2
.prologue
const/4 v1, 0x0
.line 749
const/4 v0, 0x0
sput-object v0, Lcom/tencent/mmkv/MMKV;->gCallbackHandler:Lcom/tencent/mmkv/MMKVHandler;
.line 751
invoke-static {v1}, Lcom/tencent/mmkv/MMKV;->setLogReDirecting(Z)V
.line 752
sput-boolean v1, Lcom/tencent/mmkv/MMKV;->gWantLogReDirecting:Z
.line 753
return-void
.end method
.method private native valueSize(JLjava/lang/String;Z)I
.end method
.method private native writeValueToNB(JLjava/lang/String;JI)I
.end method
# virtual methods
.method public native allKeys()[Ljava/lang/String;
.end method
.method public apply()V
.registers 2
.prologue
.line 680
const/4 v0, 0x0
invoke-direct {p0, v0}, Lcom/tencent/mmkv/MMKV;->sync(Z)V
.line 681
return-void
.end method
.method public native ashmemFD()I
.end method
.method public native ashmemMetaFD()I
.end method
.method public async()V
.registers 2
.prologue
.line 534
const/4 v0, 0x0
invoke-direct {p0, v0}, Lcom/tencent/mmkv/MMKV;->sync(Z)V
.line 535
return-void
.end method
.method public native checkContentChangedByOuterProcess()V
.end method
.method public native checkReSetCryptKey(Ljava/lang/String;)V
.end method
.method public clear()Landroid/content/SharedPreferences$Editor;
.registers 1
.prologue
.line 668
invoke-virtual {p0}, Lcom/tencent/mmkv/MMKV;->clearAll()V
.line 669
return-object p0
.end method
.method public native clearAll()V
.end method
.method public native clearMemoryCache()V
.end method
.method public native close()V
.end method
.method public commit()Z
.registers 2
.prologue
const/4 v0, 0x1
.line 674
invoke-direct {p0, v0}, Lcom/tencent/mmkv/MMKV;->sync(Z)V
.line 675
return v0
.end method
.method public contains(Ljava/lang/String;)Z
.registers 3
.prologue
.line 685
invoke-virtual {p0, p1}, Lcom/tencent/mmkv/MMKV;->containsKey(Ljava/lang/String;)Z
move-result v0
return v0
.end method
.method public containsKey(Ljava/lang/String;)Z
.registers 4
.prologue
.line 492
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1}, Lcom/tencent/mmkv/MMKV;->containsKey(JLjava/lang/String;)Z
move-result v0
return v0
.end method
.method public count()J
.registers 3
.prologue
.line 498
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1}, Lcom/tencent/mmkv/MMKV;->count(J)J
move-result-wide v0
return-wide v0
.end method
.method public native cryptKey()Ljava/lang/String;
.end method
.method public decodeBool(Ljava/lang/String;)Z
.registers 5
.prologue
.line 309
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
const/4 v2, 0x0
invoke-direct {p0, v0, v1, p1, v2}, Lcom/tencent/mmkv/MMKV;->decodeBool(JLjava/lang/String;Z)Z
move-result v0
return v0
.end method
.method public decodeBool(Ljava/lang/String;Z)Z
.registers 5
.prologue
.line 313
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/mmkv/MMKV;->decodeBool(JLjava/lang/String;Z)Z
move-result v0
return v0
.end method
.method public decodeBytes(Ljava/lang/String;)[B
.registers 3
.prologue
.line 412
const/4 v0, 0x0
invoke-virtual {p0, p1, v0}, Lcom/tencent/mmkv/MMKV;->decodeBytes(Ljava/lang/String;[B)[B
move-result-object v0
return-object v0
.end method
.method public decodeBytes(Ljava/lang/String;[B)[B
.registers 5
.prologue
.line 416
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1}, Lcom/tencent/mmkv/MMKV;->decodeBytes(JLjava/lang/String;)[B
move-result-object v0
.line 417
if-eqz v0, :cond_9
move-object p2, v0
:cond_9
return-object p2
.end method
.method public decodeDouble(Ljava/lang/String;)D
.registers 8
.prologue
.line 357
iget-wide v1, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
const-wide/16 v4, 0x0
move-object v0, p0
move-object v3, p1
invoke-direct/range {v0 .. v5}, Lcom/tencent/mmkv/MMKV;->decodeDouble(JLjava/lang/String;D)D
move-result-wide v0
return-wide v0
.end method
.method public decodeDouble(Ljava/lang/String;D)D
.registers 10
.prologue
.line 361
iget-wide v1, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
move-object v0, p0
move-object v3, p1
move-wide v4, p2
invoke-direct/range {v0 .. v5}, Lcom/tencent/mmkv/MMKV;->decodeDouble(JLjava/lang/String;D)D
move-result-wide v0
return-wide v0
.end method
.method public decodeFloat(Ljava/lang/String;)F
.registers 5
.prologue
.line 345
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
const/4 v2, 0x0
invoke-direct {p0, v0, v1, p1, v2}, Lcom/tencent/mmkv/MMKV;->decodeFloat(JLjava/lang/String;F)F
move-result v0
return v0
.end method
.method public decodeFloat(Ljava/lang/String;F)F
.registers 5
.prologue
.line 349
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/mmkv/MMKV;->decodeFloat(JLjava/lang/String;F)F
move-result v0
return v0
.end method
.method public decodeInt(Ljava/lang/String;)I
.registers 5
.prologue
.line 321
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
const/4 v2, 0x0
invoke-direct {p0, v0, v1, p1, v2}, Lcom/tencent/mmkv/MMKV;->decodeInt(JLjava/lang/String;I)I
move-result v0
return v0
.end method
.method public decodeInt(Ljava/lang/String;I)I
.registers 5
.prologue
.line 325
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/mmkv/MMKV;->decodeInt(JLjava/lang/String;I)I
move-result v0
return v0
.end method
.method public decodeLong(Ljava/lang/String;)J
.registers 8
.prologue
.line 333
iget-wide v1, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
const-wide/16 v4, 0x0
move-object v0, p0
move-object v3, p1
invoke-direct/range {v0 .. v5}, Lcom/tencent/mmkv/MMKV;->decodeLong(JLjava/lang/String;J)J
move-result-wide v0
return-wide v0
.end method
.method public decodeLong(Ljava/lang/String;J)J
.registers 10
.prologue
.line 337
iget-wide v1, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
move-object v0, p0
move-object v3, p1
move-wide v4, p2
invoke-direct/range {v0 .. v5}, Lcom/tencent/mmkv/MMKV;->decodeLong(JLjava/lang/String;J)J
move-result-wide v0
return-wide v0
.end method
.method public decodeParcelable(Ljava/lang/String;Ljava/lang/Class;)Landroid/os/Parcelable;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"<T::",
"Landroid/os/Parcelable;",
">(",
"Ljava/lang/String;",
"Ljava/lang/Class",
"<TT;>;)TT;"
}
.end annotation
.prologue
.line 433
const/4 v0, 0x0
invoke-virtual {p0, p1, p2, v0}, Lcom/tencent/mmkv/MMKV;->decodeParcelable(Ljava/lang/String;Ljava/lang/Class;Landroid/os/Parcelable;)Landroid/os/Parcelable;
move-result-object v0
return-object v0
.end method
.method public decodeParcelable(Ljava/lang/String;Ljava/lang/Class;Landroid/os/Parcelable;)Landroid/os/Parcelable;
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"<T::",
"Landroid/os/Parcelable;",
">(",
"Ljava/lang/String;",
"Ljava/lang/Class",
"<TT;>;TT;)TT;"
}
.end annotation
.prologue
const/4 v3, 0x0
.line 438
if-nez p2, :cond_4
.line 476
:cond_3
:goto_3
return-object p3
.line 442
:cond_4
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1}, Lcom/tencent/mmkv/MMKV;->decodeBytes(JLjava/lang/String;)[B
move-result-object v0
.line 443
if-eqz v0, :cond_3
.line 447
invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
move-result-object v1
.line 448
array-length v2, v0
invoke-virtual {v1, v0, v3, v2}, Landroid/os/Parcel;->unmarshall([BII)V
.line 449
invoke-virtual {v1, v3}, Landroid/os/Parcel;->setDataPosition(I)V
.line 452
:try_start_17
invoke-virtual {p2}, Ljava/lang/Class;->toString()Ljava/lang/String;
move-result-object v2
.line 454
sget-object v3, Lcom/tencent/mmkv/MMKV;->mCreators:Ljava/util/HashMap;
monitor-enter v3
:try_end_1e
.catch Ljava/lang/Exception; {:try_start_17 .. :try_end_1e} :catch_4d
.catchall {:try_start_17 .. :try_end_1e} :catchall_74
.line 455
:try_start_1e
sget-object v0, Lcom/tencent/mmkv/MMKV;->mCreators:Ljava/util/HashMap;
invoke-virtual {v0, v2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/os/Parcelable$Creator;
.line 456
if-nez v0, :cond_3c
.line 457
const-string v0, "CREATOR"
invoke-virtual {p2, v0}, Ljava/lang/Class;->getField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
.line 458
const/4 v4, 0x0
invoke-virtual {v0, v4}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/os/Parcelable$Creator;
.line 459
if-eqz v0, :cond_3c
.line 460
sget-object v4, Lcom/tencent/mmkv/MMKV;->mCreators:Ljava/util/HashMap;
invoke-virtual {v4, v2, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 463
:cond_3c
monitor-exit v3
:try_end_3d
.catchall {:try_start_1e .. :try_end_3d} :catchall_4a
.line 464
if-eqz v0, :cond_5b
.line 465
:try_start_3f
invoke-interface {v0, v1}, Landroid/os/Parcelable$Creator;->createFromParcel(Landroid/os/Parcel;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/os/Parcelable;
:try_end_45
.catch Ljava/lang/Exception; {:try_start_3f .. :try_end_45} :catch_4d
.catchall {:try_start_3f .. :try_end_45} :catchall_74
.line 474
invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
move-object p3, v0
.line 465
goto :goto_3
.line 463
:catchall_4a
move-exception v0
:try_start_4b
monitor-exit v3
:try_end_4c
.catchall {:try_start_4b .. :try_end_4c} :catchall_4a
:try_start_4c
throw v0
:try_end_4d
.catch Ljava/lang/Exception; {:try_start_4c .. :try_end_4d} :catch_4d
.catchall {:try_start_4c .. :try_end_4d} :catchall_74
.line 471
:catch_4d
move-exception v0
.line 472
:try_start_4e
sget-object v2, Lcom/tencent/mmkv/MMKVLogLevel;->LevelError:Lcom/tencent/mmkv/MMKVLogLevel;
invoke-virtual {v0}, Ljava/lang/Exception;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v2, v0}, Lcom/tencent/mmkv/MMKV;->simpleLog(Lcom/tencent/mmkv/MMKVLogLevel;Ljava/lang/String;)V
:try_end_57
.catchall {:try_start_4e .. :try_end_57} :catchall_74
.line 474
invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
goto :goto_3
.line 467
:cond_5b
:try_start_5b
new-instance v0, Ljava/lang/Exception;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Parcelable protocol requires a non-null static Parcelable.Creator object called CREATOR on class "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Ljava/lang/Exception;-><init>(Ljava/lang/String;)V
throw v0
:try_end_74
.catch Ljava/lang/Exception; {:try_start_5b .. :try_end_74} :catch_4d
.catchall {:try_start_5b .. :try_end_74} :catchall_74
.line 474
:catchall_74
move-exception v0
invoke-virtual {v1}, Landroid/os/Parcel;->recycle()V
.line 475
throw v0
.end method
.method public decodeString(Ljava/lang/String;)Ljava/lang/String;
.registers 5
.prologue
.line 369
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
const/4 v2, 0x0
invoke-direct {p0, v0, v1, p1, v2}, Lcom/tencent/mmkv/MMKV;->decodeString(JLjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public decodeString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 5
.prologue
.line 373
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/mmkv/MMKV;->decodeString(JLjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public decodeStringSet(Ljava/lang/String;)Ljava/util/Set;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
")",
"Ljava/util/Set",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.prologue
.line 381
const/4 v0, 0x0
invoke-virtual {p0, p1, v0}, Lcom/tencent/mmkv/MMKV;->decodeStringSet(Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;
move-result-object v0
return-object v0
.end method
.method public decodeStringSet(Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/util/Set",
"<",
"Ljava/lang/String;",
">;)",
"Ljava/util/Set",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.prologue
.line 385
const-class v0, Ljava/util/HashSet;
invoke-virtual {p0, p1, p2, v0}, Lcom/tencent/mmkv/MMKV;->decodeStringSet(Ljava/lang/String;Ljava/util/Set;Ljava/lang/Class;)Ljava/util/Set;
move-result-object v0
return-object v0
.end method
.method public decodeStringSet(Ljava/lang/String;Ljava/util/Set;Ljava/lang/Class;)Ljava/util/Set;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/util/Set",
"<",
"Ljava/lang/String;",
">;",
"Ljava/lang/Class",
"<+",
"Ljava/util/Set;",
">;)",
"Ljava/util/Set",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.prologue
.line 391
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1}, Lcom/tencent/mmkv/MMKV;->decodeStringSet(JLjava/lang/String;)[Ljava/lang/String;
move-result-object v1
.line 392
if-nez v1, :cond_9
.line 404
:goto_8
return-object p2
.line 397
:cond_9
:try_start_9
invoke-virtual {p3}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Set;
:try_end_f
.catch Ljava/lang/IllegalAccessException; {:try_start_9 .. :try_end_f} :catch_1a
.catch Ljava/lang/InstantiationException; {:try_start_9 .. :try_end_f} :catch_18
.line 403
invoke-static {v1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v1
invoke-interface {v0, v1}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
move-object p2, v0
.line 404
goto :goto_8
.line 400
:catch_18
move-exception v0
goto :goto_8
.line 398
:catch_1a
move-exception v0
goto :goto_8
.end method
.method public edit()Landroid/content/SharedPreferences$Editor;
.registers 1
.prologue
.line 690
return-object p0
.end method
.method public encode(Ljava/lang/String;D)Z
.registers 10
.prologue
.line 353
iget-wide v1, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
move-object v0, p0
move-object v3, p1
move-wide v4, p2
invoke-direct/range {v0 .. v5}, Lcom/tencent/mmkv/MMKV;->encodeDouble(JLjava/lang/String;D)Z
move-result v0
return v0
.end method
.method public encode(Ljava/lang/String;F)Z
.registers 5
.prologue
.line 341
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/mmkv/MMKV;->encodeFloat(JLjava/lang/String;F)Z
move-result v0
return v0
.end method
.method public encode(Ljava/lang/String;I)Z
.registers 5
.prologue
.line 317
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/mmkv/MMKV;->encodeInt(JLjava/lang/String;I)Z
move-result v0
return v0
.end method
.method public encode(Ljava/lang/String;J)Z
.registers 10
.prologue
.line 329
iget-wide v1, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
move-object v0, p0
move-object v3, p1
move-wide v4, p2
invoke-direct/range {v0 .. v5}, Lcom/tencent/mmkv/MMKV;->encodeLong(JLjava/lang/String;J)Z
move-result v0
return v0
.end method
.method public encode(Ljava/lang/String;Landroid/os/Parcelable;)Z
.registers 7
.prologue
.line 423
invoke-static {}, Landroid/os/Parcel;->obtain()Landroid/os/Parcel;
move-result-object v0
.line 424
invoke-interface {p2}, Landroid/os/Parcelable;->describeContents()I
move-result v1
invoke-interface {p2, v0, v1}, Landroid/os/Parcelable;->writeToParcel(Landroid/os/Parcel;I)V
.line 425
invoke-virtual {v0}, Landroid/os/Parcel;->marshall()[B
move-result-object v1
.line 426
invoke-virtual {v0}, Landroid/os/Parcel;->recycle()V
.line 428
iget-wide v2, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v2, v3, p1, v1}, Lcom/tencent/mmkv/MMKV;->encodeBytes(JLjava/lang/String;[B)Z
move-result v0
return v0
.end method
.method public encode(Ljava/lang/String;Ljava/lang/String;)Z
.registers 5
.prologue
.line 365
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/mmkv/MMKV;->encodeString(JLjava/lang/String;Ljava/lang/String;)Z
move-result v0
return v0
.end method
.method public encode(Ljava/lang/String;Ljava/util/Set;)Z
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/util/Set",
"<",
"Ljava/lang/String;",
">;)Z"
}
.end annotation
.prologue
.line 377
iget-wide v2, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
const/4 v0, 0x0
new-array v0, v0, [Ljava/lang/String;
invoke-interface {p2, v0}, Ljava/util/Set;->toArray([Ljava/lang/Object;)[Ljava/lang/Object;
move-result-object v0
check-cast v0, [Ljava/lang/String;
invoke-direct {p0, v2, v3, p1, v0}, Lcom/tencent/mmkv/MMKV;->encodeSet(JLjava/lang/String;[Ljava/lang/String;)Z
move-result v0
return v0
.end method
.method public encode(Ljava/lang/String;Z)Z
.registers 5
.prologue
.line 305
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/mmkv/MMKV;->encodeBool(JLjava/lang/String;Z)Z
move-result v0
return v0
.end method
.method public encode(Ljava/lang/String;[B)Z
.registers 5
.prologue
.line 408
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/mmkv/MMKV;->encodeBytes(JLjava/lang/String;[B)Z
move-result v0
return v0
.end method
.method public getAll()Ljava/util/Map;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"*>;"
}
.end annotation
.prologue
.line 579
new-instance v0, Ljava/lang/UnsupportedOperationException;
const-string/jumbo v1, "use allKeys() instead, getAll() not implement because type-erasure inside mmkv"
invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public getBoolean(Ljava/lang/String;Z)Z
.registers 5
.prologue
.line 651
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/mmkv/MMKV;->decodeBool(JLjava/lang/String;Z)Z
move-result v0
return v0
.end method
.method public getBytes(Ljava/lang/String;[B)[B
.registers 4
.param p2 # [B
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.prologue
.line 613
invoke-virtual {p0, p1, p2}, Lcom/tencent/mmkv/MMKV;->decodeBytes(Ljava/lang/String;[B)[B
move-result-object v0
return-object v0
.end method
.method public getFloat(Ljava/lang/String;F)F
.registers 5
.prologue
.line 640
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/mmkv/MMKV;->decodeFloat(JLjava/lang/String;F)F
move-result v0
return v0
.end method
.method public getInt(Ljava/lang/String;I)I
.registers 5
.prologue
.line 618
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/mmkv/MMKV;->decodeInt(JLjava/lang/String;I)I
move-result v0
return v0
.end method
.method public getLong(Ljava/lang/String;J)J
.registers 10
.prologue
.line 629
iget-wide v1, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
move-object v0, p0
move-object v3, p1
move-wide v4, p2
invoke-direct/range {v0 .. v5}, Lcom/tencent/mmkv/MMKV;->decodeLong(JLjava/lang/String;J)J
move-result-wide v0
return-wide v0
.end method
.method public getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
.registers 5
.param p2 # Ljava/lang/String;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation build Landroidx/annotation/Nullable;
.end annotation
.prologue
.line 586
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/mmkv/MMKV;->decodeString(JLjava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public getStringSet(Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;
.registers 4
.param p2 # Ljava/util/Set;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation build Landroidx/annotation/Nullable;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/util/Set",
"<",
"Ljava/lang/String;",
">;)",
"Ljava/util/Set",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.prologue
.line 598
invoke-virtual {p0, p1, p2}, Lcom/tencent/mmkv/MMKV;->decodeStringSet(Ljava/lang/String;Ljava/util/Set;)Ljava/util/Set;
move-result-object v0
return-object v0
.end method
.method public getValueActualSize(Ljava/lang/String;)I
.registers 5
.prologue
.line 488
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
const/4 v2, 0x1
invoke-direct {p0, v0, v1, p1, v2}, Lcom/tencent/mmkv/MMKV;->valueSize(JLjava/lang/String;Z)I
move-result v0
return v0
.end method
.method public getValueSize(Ljava/lang/String;)I
.registers 5
.prologue
.line 482
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
const/4 v2, 0x0
invoke-direct {p0, v0, v1, p1, v2}, Lcom/tencent/mmkv/MMKV;->valueSize(JLjava/lang/String;Z)I
move-result v0
return v0
.end method
.method public importFromSharedPreferences(Landroid/content/SharedPreferences;)I
.registers 10
.prologue
.line 544
invoke-interface {p1}, Landroid/content/SharedPreferences;->getAll()Ljava/util/Map;
move-result-object v6
.line 545
if-eqz v6, :cond_c
invoke-interface {v6}, Ljava/util/Map;->size()I
move-result v0
if-gtz v0, :cond_e
.line 546
:cond_c
const/4 v0, 0x0
.line 574
:goto_d
return v0
.line 549
:cond_e
invoke-interface {v6}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v7
:cond_16
:goto_16
invoke-interface {v7}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_b8
invoke-interface {v7}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
.line 550
invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/lang/String;
.line 551
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v0
.line 552
if-eqz v3, :cond_16
if-eqz v0, :cond_16
.line 556
instance-of v1, v0, Ljava/lang/Boolean;
if-eqz v1, :cond_40
.line 557
iget-wide v4, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
check-cast v0, Ljava/lang/Boolean;
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
move-result v0
invoke-direct {p0, v4, v5, v3, v0}, Lcom/tencent/mmkv/MMKV;->encodeBool(JLjava/lang/String;Z)Z
goto :goto_16
.line 558
:cond_40
instance-of v1, v0, Ljava/lang/Integer;
if-eqz v1, :cond_50
.line 559
iget-wide v4, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
check-cast v0, Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
invoke-direct {p0, v4, v5, v3, v0}, Lcom/tencent/mmkv/MMKV;->encodeInt(JLjava/lang/String;I)Z
goto :goto_16
.line 560
:cond_50
instance-of v1, v0, Ljava/lang/Long;
if-eqz v1, :cond_61
.line 561
iget-wide v1, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
check-cast v0, Ljava/lang/Long;
invoke-virtual {v0}, Ljava/lang/Long;->longValue()J
move-result-wide v4
move-object v0, p0
invoke-direct/range {v0 .. v5}, Lcom/tencent/mmkv/MMKV;->encodeLong(JLjava/lang/String;J)Z
goto :goto_16
.line 562
:cond_61
instance-of v1, v0, Ljava/lang/Float;
if-eqz v1, :cond_71
.line 563
iget-wide v4, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
check-cast v0, Ljava/lang/Float;
invoke-virtual {v0}, Ljava/lang/Float;->floatValue()F
move-result v0
invoke-direct {p0, v4, v5, v3, v0}, Lcom/tencent/mmkv/MMKV;->encodeFloat(JLjava/lang/String;F)Z
goto :goto_16
.line 564
:cond_71
instance-of v1, v0, Ljava/lang/Double;
if-eqz v1, :cond_82
.line 565
iget-wide v1, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
check-cast v0, Ljava/lang/Double;
invoke-virtual {v0}, Ljava/lang/Double;->doubleValue()D
move-result-wide v4
move-object v0, p0
invoke-direct/range {v0 .. v5}, Lcom/tencent/mmkv/MMKV;->encodeDouble(JLjava/lang/String;D)Z
goto :goto_16
.line 566
:cond_82
instance-of v1, v0, Ljava/lang/String;
if-eqz v1, :cond_8e
.line 567
iget-wide v4, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
check-cast v0, Ljava/lang/String;
invoke-direct {p0, v4, v5, v3, v0}, Lcom/tencent/mmkv/MMKV;->encodeString(JLjava/lang/String;Ljava/lang/String;)Z
goto :goto_16
.line 568
:cond_8e
instance-of v1, v0, Ljava/util/Set;
if-eqz v1, :cond_99
.line 569
check-cast v0, Ljava/util/Set;
invoke-virtual {p0, v3, v0}, Lcom/tencent/mmkv/MMKV;->encode(Ljava/lang/String;Ljava/util/Set;)Z
goto/16 :goto_16
.line 571
:cond_99
sget-object v1, Lcom/tencent/mmkv/MMKVLogLevel;->LevelError:Lcom/tencent/mmkv/MMKVLogLevel;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v3, "unknown type: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Lcom/tencent/mmkv/MMKV;->simpleLog(Lcom/tencent/mmkv/MMKVLogLevel;Ljava/lang/String;)V
goto/16 :goto_16
.line 574
:cond_b8
invoke-interface {v6}, Ljava/util/Map;->size()I
move-result v0
goto/16 :goto_d
.end method
.method public native lock()V
.end method
.method public native mmapID()Ljava/lang/String;
.end method
.method public putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor;
.registers 5
.prologue
.line 656
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/mmkv/MMKV;->encodeBool(JLjava/lang/String;Z)Z
.line 657
return-object p0
.end method
.method public putBytes(Ljava/lang/String;[B)Landroid/content/SharedPreferences$Editor;
.registers 3
.param p2 # [B
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.prologue
.line 608
invoke-virtual {p0, p1, p2}, Lcom/tencent/mmkv/MMKV;->encode(Ljava/lang/String;[B)Z
.line 609
return-object p0
.end method
.method public putFloat(Ljava/lang/String;F)Landroid/content/SharedPreferences$Editor;
.registers 5
.prologue
.line 645
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/mmkv/MMKV;->encodeFloat(JLjava/lang/String;F)Z
.line 646
return-object p0
.end method
.method public putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor;
.registers 5
.prologue
.line 623
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/mmkv/MMKV;->encodeInt(JLjava/lang/String;I)Z
.line 624
return-object p0
.end method
.method public putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor;
.registers 10
.prologue
.line 634
iget-wide v1, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
move-object v0, p0
move-object v3, p1
move-wide v4, p2
invoke-direct/range {v0 .. v5}, Lcom/tencent/mmkv/MMKV;->encodeLong(JLjava/lang/String;J)Z
.line 635
return-object p0
.end method
.method public putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;
.registers 5
.param p2 # Ljava/lang/String;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.prologue
.line 591
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1, p2}, Lcom/tencent/mmkv/MMKV;->encodeString(JLjava/lang/String;Ljava/lang/String;)Z
.line 592
return-object p0
.end method
.method public putStringSet(Ljava/lang/String;Ljava/util/Set;)Landroid/content/SharedPreferences$Editor;
.registers 3
.param p2 # Ljava/util/Set;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/util/Set",
"<",
"Ljava/lang/String;",
">;)",
"Landroid/content/SharedPreferences$Editor;"
}
.end annotation
.prologue
.line 603
invoke-virtual {p0, p1, p2}, Lcom/tencent/mmkv/MMKV;->encode(Ljava/lang/String;Ljava/util/Set;)Z
.line 604
return-object p0
.end method
.method public native reKey(Ljava/lang/String;)Z
.end method
.method public registerOnSharedPreferenceChangeListener(Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener;)V
.registers 4
.prologue
.line 696
new-instance v0, Ljava/lang/UnsupportedOperationException;
const-string v1, "Not implement in MMKV"
invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public remove(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;
.registers 2
.prologue
.line 662
invoke-virtual {p0, p1}, Lcom/tencent/mmkv/MMKV;->removeValueForKey(Ljava/lang/String;)V
.line 663
return-object p0
.end method
.method public removeValueForKey(Ljava/lang/String;)V
.registers 4
.prologue
.line 507
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1, p1}, Lcom/tencent/mmkv/MMKV;->removeValueForKey(JLjava/lang/String;)V
.line 508
return-void
.end method
.method public native removeValuesForKeys([Ljava/lang/String;)V
.end method
.method public sync()V
.registers 2
.prologue
.line 530
const/4 v0, 0x1
invoke-direct {p0, v0}, Lcom/tencent/mmkv/MMKV;->sync(Z)V
.line 531
return-void
.end method
.method public totalSize()J
.registers 3
.prologue
.line 503
iget-wide v0, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
invoke-direct {p0, v0, v1}, Lcom/tencent/mmkv/MMKV;->totalSize(J)J
move-result-wide v0
return-wide v0
.end method
.method public native trim()V
.end method
.method public native tryLock()Z
.end method
.method public native unlock()V
.end method
.method public unregisterOnSharedPreferenceChangeListener(Landroid/content/SharedPreferences$OnSharedPreferenceChangeListener;)V
.registers 4
.prologue
.line 702
new-instance v0, Ljava/lang/UnsupportedOperationException;
const-string v1, "Not implement in MMKV"
invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public writeValueToNativeBuffer(Ljava/lang/String;Lcom/tencent/mmkv/NativeBuffer;)I
.registers 10
.prologue
.line 730
iget-wide v1, p0, Lcom/tencent/mmkv/MMKV;->nativeHandle:J
iget-wide v4, p2, Lcom/tencent/mmkv/NativeBuffer;->pointer:J
iget v6, p2, Lcom/tencent/mmkv/NativeBuffer;->size:I
move-object v0, p0
move-object v3, p1
invoke-direct/range {v0 .. v6}, Lcom/tencent/mmkv/MMKV;->writeValueToNB(JLjava/lang/String;JI)I
move-result v0
return v0
.end method