From 18c3c15c5c0d70ca4ece59881a5813e81f384747 Mon Sep 17 00:00:00 2001 From: fankesyooni Date: Fri, 30 Dec 2022 00:37:39 +0800 Subject: [PATCH] Modify merge isXSharePrefsReadable, isRunInNewXShareMode function to isPreferencesAvailable function in YukiHookModulePrefs --- .../hook/xposed/prefs/YukiHookModulePrefs.md | 48 +++++++++---------- .../hook/xposed/prefs/YukiHookModulePrefs.md | 46 ++++++++---------- .../hook/xposed/prefs/YukiHookModulePrefs.kt | 43 +++++++++++------ 3 files changed, 71 insertions(+), 66 deletions(-) diff --git a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookModulePrefs.md b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookModulePrefs.md index 341c52ef..c0140116 100644 --- a/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookModulePrefs.md +++ b/docs-source/src/en/api/public/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookModulePrefs.md @@ -50,7 +50,7 @@ class YukiHookModulePrefs private constructor(private var context: Context?) 若你正在使用 `PreferenceFragmentCompat`,请迁移到 `ModulePreferenceFragment` 以适配上述功能特性。 -**可选配置** +**Optional Configuration** 若你不想将你的模块的 `xposedminversion` 最低设置为 `93`,你可以在 `AndroidManifest.xml` 中添加 `xposedsharedprefs` 来实现支持。 @@ -64,47 +64,43 @@ class YukiHookModulePrefs private constructor(private var context: Context?) android:value="true"/> ``` -## isXSharePrefsReadable - field - -```kotlin:no-line-numbers -val isXSharePrefsReadable: Boolean -``` +

isXSharePrefsReadable - field

**Change Records** `v1.0.90` `added` -**Function Illustrate** +`v1.1.5` `deprecated` -> 获取 `XSharedPreferences` 是否可读。 +请转移到 `isPreferencesAvailable` -::: danger - -只能在 (Xposed) 宿主环境中使用,模块环境中始终返回 false。 - -::: - -## isRunInNewXShareMode - field - -```kotlin:no-line-numbers -val isRunInNewXShareMode: Boolean -``` +

isRunInNewXShareMode - field

**Change Records** `v1.0.78` `added` +`v1.1.5` `deprecated` + +请转移到 `isPreferencesAvailable` + +## isPreferencesAvailable - field + +```kotlin:no-line-numbers +val isPreferencesAvailable: Boolean +``` + +**Change Records** + +`v1.1.5` `added` + **Function Illustrate** -> 获取 `YukiHookModulePrefs` 是否正处于 EdXposed/LSPosed 的最高权限运行。 +> 获取当前 `YukiHookModulePrefs` 的可用状态。 -前提条件为当前 Xposed 模块已被激活。 +在 (Xposed) 宿主环境中返回 `XSharedPreferences` 可用状态 (可读)。 -::: danger - -只能在模块环境中使用,(Xposed) 宿主环境中始终返回 false。 - -::: +在模块环境中返回当前是否处于 New XSharedPreferences 模式 (可读可写)。 ## name - method diff --git a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookModulePrefs.md b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookModulePrefs.md index ad70fe50..4399f973 100644 --- a/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookModulePrefs.md +++ b/docs-source/src/zh-cn/api/public/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookModulePrefs.md @@ -56,47 +56,43 @@ class YukiHookModulePrefs private constructor(private var context: Context?) android:value="true"/> ``` -## isXSharePrefsReadable - field - -```kotlin:no-line-numbers -val isXSharePrefsReadable: Boolean -``` +

isXSharePrefsReadable - field

**变更记录** `v1.0.90` `新增` -**功能描述** +`v1.1.5` `作废` -> 获取 `XSharedPreferences` 是否可读。 +请转移到 `isPreferencesAvailable` -::: danger - -只能在 (Xposed) 宿主环境中使用,模块环境中始终返回 false。 - -::: - -## isRunInNewXShareMode - field - -```kotlin:no-line-numbers -val isRunInNewXShareMode: Boolean -``` +

isRunInNewXShareMode - field

**变更记录** `v1.0.78` `新增` +`v1.1.5` `作废` + +请转移到 `isPreferencesAvailable` + +## isPreferencesAvailable - field + +```kotlin:no-line-numbers +val isPreferencesAvailable: Boolean +``` + +**变更记录** + +`v1.1.5` `新增` + **功能描述** -> 获取 `YukiHookModulePrefs` 是否正处于 EdXposed/LSPosed 的最高权限运行。 +> 获取当前 `YukiHookModulePrefs` 的可用状态。 -前提条件为当前 Xposed 模块已被激活。 +在 (Xposed) 宿主环境中返回 `XSharedPreferences` 可用状态 (可读)。 -::: danger - -只能在模块环境中使用,(Xposed) 宿主环境中始终返回 false。 - -::: +在模块环境中返回当前是否处于 New XSharedPreferences 模式 (可读可写)。 ## name - method 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 9714d36f..b37e7111 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 @@ -190,28 +190,41 @@ class YukiHookModulePrefs private constructor(private var context: Context? = nu /** * 获取 [XSharedPreferences] 是否可读 * - * - ❗只能在 (Xposed) 宿主环境中使用 - 模块环境中始终返回 false - * @return [Boolean] 是否可读 + * - ❗此方法已弃用 - 在之后的版本中将直接被删除 + * + * - ❗请现在转移到 [isPreferencesAvailable] + * @return [Boolean] */ - val isXSharePrefsReadable - get() = if (isXposedEnvironment) (runCatching { xPrefs.let { it.file.exists() && it.file.canRead() } }.getOrNull() ?: false) else false + @Deprecated(message = "请使用新方式来实现此功能", replaceWith = ReplaceWith(expression = "isPreferencesAvailable")) + val isXSharePrefsReadable get() = isPreferencesAvailable /** * 获取 [YukiHookModulePrefs] 是否正处于 EdXposed/LSPosed 的最高权限运行 * - * - 前提条件为当前 Xposed 模块已被激活 + * - ❗此方法已弃用 - 在之后的版本中将直接被删除 * - * - ❗只能在模块环境中使用 - (Xposed) 宿主环境中始终返回 false - * @return [Boolean] 仅限在模块中判断 - 在 (Xposed) 宿主环境中始终返回 false + * - ❗请现在转移到 [isPreferencesAvailable] + * @return [Boolean] */ - val isRunInNewXShareMode - get() = if (isXposedEnvironment.not()) - runCatching { - /** 执行一次装载 */ - sPrefs.edit() - isUsingNewXSharedPreferences - }.getOrNull() ?: false - else false + @Deprecated(message = "请使用新方式来实现此功能", replaceWith = ReplaceWith(expression = "isPreferencesAvailable")) + val isRunInNewXShareMode get() = isPreferencesAvailable + + /** + * 获取当前 [YukiHookModulePrefs] 的可用状态 + * + * - 在 (Xposed) 宿主环境中返回 [XSharedPreferences] 可用状态 (可读) + * + * - 在模块环境中返回当前是否处于 New XSharedPreferences 模式 (可读可写) + * @return [Boolean] + */ + val isPreferencesAvailable + get() = if (isXposedEnvironment) + (runCatching { xPrefs.let { it.file.exists() && it.file.canRead() } }.getOrNull() ?: false) + else runCatching { + /** 执行一次装载 */ + sPrefs.edit() + isUsingNewXSharedPreferences + }.getOrNull() ?: false /** * 自定义 Sp 存储名称