Update demo

This commit is contained in:
2022-08-20 05:38:46 +08:00
parent 71df0f5583
commit 4f730fb8a1
2 changed files with 25 additions and 14 deletions

View File

@@ -48,7 +48,7 @@ class MainActivity : ModuleAppCompatActivity() {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
ActivityMainBinding.inflate(layoutInflater).apply { ActivityMainBinding.inflate(layoutInflater).apply {
setContentView(root) setContentView(root)
moduleEnvironment(isShowWarn = false) { moduleEnvironment {
dataChannel(packageName = "com.highcapable.yukihookapi.demo_app").with { dataChannel(packageName = "com.highcapable.yukihookapi.demo_app").with {
wait(DataConst.TEST_CN_DATA) { wait(DataConst.TEST_CN_DATA) {
Toast.makeText(applicationContext, it, Toast.LENGTH_SHORT).show() Toast.makeText(applicationContext, it, Toast.LENGTH_SHORT).show()
@@ -70,6 +70,10 @@ class MainActivity : ModuleAppCompatActivity() {
moduleDemoResHookText.text = "Support Resources Hook${YukiHookAPI.Status.isSupportResourcesHook}" moduleDemoResHookText.text = "Support Resources Hook${YukiHookAPI.Status.isSupportResourcesHook}"
moduleDemoResHookZhText.text = "资源钩子支持状态" moduleDemoResHookZhText.text = "资源钩子支持状态"
moduleDemoEditText.also { moduleDemoEditText.also {
hostEnvironment {
it.isEnabled = false
moduleDemoButton.isEnabled = false
}
it.setText(modulePrefs.get(DataConst.TEST_KV_DATA)) it.setText(modulePrefs.get(DataConst.TEST_KV_DATA))
moduleDemoButton.setOnClickListener { _ -> moduleDemoButton.setOnClickListener { _ ->
moduleEnvironment { moduleEnvironment {
@@ -80,21 +84,23 @@ class MainActivity : ModuleAppCompatActivity() {
} }
} }
} }
moduleDemoFrgButton.setOnClickListener { moduleDemoFrgButton.setOnClickListener { startActivity(Intent(this@MainActivity, PreferenceActivity::class.java)) }
moduleEnvironment { startActivity(Intent(this@MainActivity, PreferenceActivity::class.java)) }
}
} }
} }
/** /**
* 仅在模块环境执行 * 仅在 (Xposed) 宿主环境执行
* @param isShowWarn 是否显示警告 - 默认是
* @param callback 在模块环境执行 * @param callback 在模块环境执行
*/ */
private inline fun moduleEnvironment(isShowWarn: Boolean = true, callback: () -> Unit) { private inline fun hostEnvironment(callback: () -> Unit) {
if (YukiHookAPI.Status.isXposedEnvironment) if (YukiHookAPI.Status.isXposedEnvironment) callback()
(if (isShowWarn) }
Toast.makeText(applicationContext, "This operation is not allowed in Xposed Environment", Toast.LENGTH_SHORT).show())
else callback() /**
* 仅在模块环境执行
* @param callback 在模块环境执行
*/
private inline fun moduleEnvironment(callback: () -> Unit) {
if (YukiHookAPI.Status.isXposedEnvironment.not()) callback()
} }
} }

View File

@@ -28,11 +28,15 @@
package com.highcapable.yukihookapi.demo_module.ui package com.highcapable.yukihookapi.demo_module.ui
import android.os.Bundle import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity import androidx.preference.SwitchPreference
import com.highcapable.yukihookapi.YukiHookAPI
import com.highcapable.yukihookapi.demo_module.R import com.highcapable.yukihookapi.demo_module.R
import com.highcapable.yukihookapi.hook.xposed.parasitic.activity.base.ModuleAppCompatActivity
import com.highcapable.yukihookapi.hook.xposed.prefs.ui.ModulePreferenceFragment import com.highcapable.yukihookapi.hook.xposed.prefs.ui.ModulePreferenceFragment
class PreferenceActivity : AppCompatActivity() { class PreferenceActivity : ModuleAppCompatActivity() {
override val moduleTheme get() = R.style.Theme_Default
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@@ -47,13 +51,14 @@ class PreferenceActivity : AppCompatActivity() {
override fun onSupportNavigateUp(): Boolean { override fun onSupportNavigateUp(): Boolean {
onBackPressed() onBackPressed()
return super.onSupportNavigateUp() return true
} }
class SettingsFragment : ModulePreferenceFragment() { class SettingsFragment : ModulePreferenceFragment() {
override fun onCreatePreferencesInModuleApp(savedInstanceState: Bundle?, rootKey: String?) { override fun onCreatePreferencesInModuleApp(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.settings_preferences, rootKey) setPreferencesFromResource(R.xml.settings_preferences, rootKey)
findPreference<SwitchPreference>("show_dialog_when_demo_app_opend")?.isEnabled = YukiHookAPI.Status.isXposedEnvironment.not()
} }
} }
} }