diff options
Diffstat (limited to 'app/src/main/java/moe/yuuta/workmode/suspend/data/SuspendedStorage.kt')
-rw-r--r-- | app/src/main/java/moe/yuuta/workmode/suspend/data/SuspendedStorage.kt | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/app/src/main/java/moe/yuuta/workmode/suspend/data/SuspendedStorage.kt b/app/src/main/java/moe/yuuta/workmode/suspend/data/SuspendedStorage.kt index d8cfee7..0a4457b 100644 --- a/app/src/main/java/moe/yuuta/workmode/suspend/data/SuspendedStorage.kt +++ b/app/src/main/java/moe/yuuta/workmode/suspend/data/SuspendedStorage.kt @@ -13,10 +13,23 @@ import java.util.stream.Collectors /** * An independent storage of suspended status */ -class SuspendedStorage(private val mContext: Context) { +class SuspendedStorage(mContext: Context) { private val logger = XLog.tag("Storage").build() - fun getStorage(): SharedPreferences = mContext.getSharedPreferences("suspended", Context.MODE_PRIVATE) + companion object { + private lateinit var instance: SuspendedStorage + + fun get(context: Context): SuspendedStorage { + if (!::instance.isInitialized) { + instance = SuspendedStorage(context) + } + return instance + } + } + + private val storage: SharedPreferences = mContext.getSharedPreferences("suspended", Context.MODE_PRIVATE) + + fun getStorage(): SharedPreferences = storage fun getList(): List<String> = (getStorage().getStringSet("list", setOf()) ?: listOf<String>()).toList() @@ -56,7 +69,7 @@ class SuspendedStorage(private val mContext: Context) { } fun cleanList(context: Context) { - val installed = mContext.packageManager.getInstalledApplications(0) + val installed = context.packageManager.getInstalledApplications(0) .stream() .filter(Utils.buildGeneralApplicationInfoFilter(context)) .map { |