mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-10 04:24:21 +08:00
Modify change YukiHookModulePrefs name to YukiHookPrefsBridge and make it support native storage usage in YukiHookPrefsBridge
This commit is contained in:
@@ -10,7 +10,7 @@ The native `Xposed` provides us with a `XSharedPreferences` for reading the `Sp`
|
||||
|
||||
## Use in Activity
|
||||
|
||||
> Loading `YukiHookModulePrefs` in `Activity` is described here.
|
||||
> Loading `YukiHookPrefsBridge` in `Activity` is described here.
|
||||
|
||||
Usually we can initialize it in Host App like this.
|
||||
|
||||
@@ -29,7 +29,7 @@ When you store data in a Module App, you can use the following methods if you ar
|
||||
> The following example
|
||||
|
||||
```kotlin
|
||||
modulePrefs.putString("test_name", "saved_value")
|
||||
prefs().edit { putString("test_name", "saved_value") }
|
||||
```
|
||||
|
||||
When you read data in a Host App, you can use the following methods.
|
||||
@@ -40,7 +40,7 @@ When you read data in a Host App, you can use the following methods.
|
||||
val testName = prefs.getString("test_name", "default_value")
|
||||
```
|
||||
|
||||
You don't need to consider the module package name and a series of complicated permission configurations, everything is handled by `YukiHookModulePrefs`.
|
||||
You don't need to consider the module package name and a series of complicated permission configurations, everything is handled by `YukiHookPrefsBridge`.
|
||||
|
||||
To achieve localization of storage, you can specify the name of each `prefs` file.
|
||||
|
||||
@@ -50,9 +50,9 @@ This is used in the `Activity` of the Module App.
|
||||
|
||||
```kotlin
|
||||
// Recommended usage
|
||||
modulePrefs("specify_file_name").putString("test_name", "saved_value")
|
||||
prefs("specify_file_name").edit { putString("test_name", "saved_value") }
|
||||
// Can also be used like this
|
||||
modulePrefs.name("specify_file_name").putString("test_name", "saved_value")
|
||||
prefs().name("specify_file_name").edit { putString("test_name", "saved_value") }
|
||||
```
|
||||
|
||||
Read like this in Host App.
|
||||
@@ -68,21 +68,40 @@ val testName = prefs.name("specify_file_name").getString("test_name", "default_v
|
||||
|
||||
If your project has a lot of fixed data that needs to be stored and read, it is recommended to use `PrefsData` to create templates.
|
||||
|
||||
Through the above example, you can call the `edit` method to store data in batches in the following two ways.
|
||||
|
||||
> The following example
|
||||
|
||||
```kotlin
|
||||
// <Scenario 1>
|
||||
prefs().edit {
|
||||
putString("test_name_1", "saved_value_1")
|
||||
putString("test_name_2", "saved_value_2")
|
||||
putString("test_name_3", "saved_value_3")
|
||||
}
|
||||
// <Scenario 2>
|
||||
prefs(). edit()
|
||||
.putString("test_name_1", "saved_value_1")
|
||||
.putString("test_name_2", "saved_value_2")
|
||||
.putString("test_name_3", "saved_value_3")
|
||||
.apply()
|
||||
```
|
||||
|
||||
::: tip
|
||||
|
||||
For more functions, please refer to [YukiHookModulePrefs](../public/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookModulePrefs), [PrefsData](../public/com/highcapable/yukihookapi/hook/xposed/prefs/data/PrefsData).
|
||||
For more functions, please refer to [YukiHookPrefsBridge](../public/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookPrefsBridge), [PrefsData](../public/com/highcapable/yukihookapi/hook/xposed/prefs/data/PrefsData).
|
||||
|
||||
:::
|
||||
|
||||
## Use in PreferenceFragment
|
||||
|
||||
> Loading `YukiHookModulePrefs` in `PreferenceFragment` is described here.
|
||||
> Loading `YukiHookPrefsBridge` in `PreferenceFragment` is described here.
|
||||
|
||||
If your Module App uses `PreferenceFragmentCompat`, you can now start migrating its extends `ModulePreferenceFragment`.
|
||||
|
||||
::: danger
|
||||
|
||||
You must extends **ModulePreferenceFragment** to implement the module storage function of **YukiHookModulePrefs**.
|
||||
You must extends **ModulePreferenceFragment** to implement the module storage function of **YukiHookPrefsBridge**.
|
||||
|
||||
:::
|
||||
|
||||
@@ -90,4 +109,50 @@ You must extends **ModulePreferenceFragment** to implement the module storage fu
|
||||
|
||||
For more functions, please refer to [ModulePreferenceFragment](../public/com/highcapable/yukihookapi/hook/xposed/prefs/ui/ModulePreferenceFragment).
|
||||
|
||||
:::
|
||||
|
||||
## Use Native Storage
|
||||
|
||||
In the Module environment, `YukiHookPrefsBridge` will store data in the Module App's own private directory (or the shared directory provided by Hook Framework) by default.
|
||||
|
||||
Using `YukiHookPrefsBridge` in the Host environment will read the data in the Module App's own private directory (or the shared directory provided by Hook Framework) by default.
|
||||
|
||||
If you want to store data directly into a Module App or Host App's own private directory, you can use the `native` method.
|
||||
|
||||
For example, the directory of the Module App is `.../com.demo.test.module/shared_prefs`, and the directory of the Host App is `.../com.demo.test.host/shared_prefs`.
|
||||
|
||||
The following is the usage in `Activity`.
|
||||
|
||||
> The following example
|
||||
|
||||
```kotlin
|
||||
// Store private data
|
||||
prefs().native().edit { putBoolean("isolation_data", true) }
|
||||
// Read private data
|
||||
val privateData = prefs().native().getBoolean("isolation_data")
|
||||
// Store shared data
|
||||
prefs().edit { putBoolean("public_data", true) }
|
||||
// Read shared data
|
||||
val publicData = prefs().getBoolean("public_data")
|
||||
```
|
||||
|
||||
The following is the usage in `PackageParam`.
|
||||
|
||||
> The following example
|
||||
|
||||
```kotlin
|
||||
// Store private data
|
||||
prefs.native().edit { putBoolean("isolation_data", true) }
|
||||
// Read private data
|
||||
val privateData = prefs.native().getBoolean("isolation_data")
|
||||
// Read shared data
|
||||
val publicData = prefs.getBoolean("public_data")
|
||||
```
|
||||
|
||||
After using the `native` method, no matter in `Activity` or `PackageParam`, the data <u>**will be stored and read in the private directory of the corresponding environment**</u>, and the data will be isolated from each other.
|
||||
|
||||
::: tip
|
||||
|
||||
For more functions, please refer to [YukiHookPrefsBridge](../public/com/highcapable/yukihookapi/hook/xposed/prefs/YukiHookPrefsBridge).
|
||||
|
||||
:::
|
Reference in New Issue
Block a user