From 20aa1c89bc387f350b5f8a264cca044e43410915 Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Sat, 27 Aug 2022 21:55:22 +0800 Subject: [PATCH] Fix checkApi ignored bug in YukiHookModulePrefs --- .../hook/xposed/prefs/YukiHookModulePrefs.kt | 34 ++++++++++--------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookModulePrefs.kt b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookModulePrefs.kt index c77739c8..fdeb8309 100644 --- a/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookModulePrefs.kt +++ b/yukihookapi/src/api/kotlin/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookModulePrefs.kt @@ -154,28 +154,30 @@ class YukiHookModulePrefs private constructor(private var context: Context? = nu * @return [XSharedPreferences] */ private val xPrefs - get() = runCatching { - XSharedPreferences(YukiHookBridge.modulePackageName, prefsName).apply { - checkApi() - makeWorldReadable() - reload() - } - }.onFailure { yLoggerE(msg = it.message ?: "Operating system not supported", e = it) }.getOrNull() - ?: error("Cannot load the XSharedPreferences, maybe is your Hook Framework not support it") + get() = checkApi().let { + runCatching { + XSharedPreferences(YukiHookBridge.modulePackageName, prefsName).apply { + checkApi() + makeWorldReadable() + reload() + } + }.onFailure { yLoggerE(msg = it.message ?: "Operating system not supported", e = it) }.getOrNull() + ?: error("Cannot load the XSharedPreferences, maybe is your Hook Framework not support it") + } /** * 获得 [SharedPreferences] 对象 * @return [SharedPreferences] */ private val sPrefs - get() = try { - checkApi() - context?.getSharedPreferences(prefsName, Context.MODE_WORLD_READABLE).also { isUsingNewXSharedPreferences = true } - ?: error("YukiHookModulePrefs missing Context instance") - } catch (_: Throwable) { - checkApi() - context?.getSharedPreferences(prefsName, Context.MODE_PRIVATE).also { isUsingNewXSharedPreferences = false } - ?: error("YukiHookModulePrefs missing Context instance") + get() = checkApi().let { + try { + context?.getSharedPreferences(prefsName, Context.MODE_WORLD_READABLE).also { isUsingNewXSharedPreferences = true } + ?: error("YukiHookModulePrefs missing Context instance") + } catch (_: Throwable) { + context?.getSharedPreferences(prefsName, Context.MODE_PRIVATE).also { isUsingNewXSharedPreferences = false } + ?: error("YukiHookModulePrefs missing Context instance") + } } /** 设置全局可读可写 */