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)
ActivityMainBinding.inflate(layoutInflater).apply {
setContentView(root)
moduleEnvironment(isShowWarn = false) {
moduleEnvironment {
dataChannel(packageName = "com.highcapable.yukihookapi.demo_app").with {
wait(DataConst.TEST_CN_DATA) {
Toast.makeText(applicationContext, it, Toast.LENGTH_SHORT).show()
@@ -70,6 +70,10 @@ class MainActivity : ModuleAppCompatActivity() {
moduleDemoResHookText.text = "Support Resources Hook${YukiHookAPI.Status.isSupportResourcesHook}"
moduleDemoResHookZhText.text = "资源钩子支持状态"
moduleDemoEditText.also {
hostEnvironment {
it.isEnabled = false
moduleDemoButton.isEnabled = false
}
it.setText(modulePrefs.get(DataConst.TEST_KV_DATA))
moduleDemoButton.setOnClickListener { _ ->
moduleEnvironment {
@@ -80,21 +84,23 @@ class MainActivity : ModuleAppCompatActivity() {
}
}
}
moduleDemoFrgButton.setOnClickListener {
moduleEnvironment { startActivity(Intent(this@MainActivity, PreferenceActivity::class.java)) }
}
moduleDemoFrgButton.setOnClickListener { startActivity(Intent(this@MainActivity, PreferenceActivity::class.java)) }
}
}
/**
* 仅在模块环境执行
* @param isShowWarn 是否显示警告 - 默认是
* 仅在 (Xposed) 宿主环境执行
* @param callback 在模块环境执行
*/
private inline fun moduleEnvironment(isShowWarn: Boolean = true, callback: () -> Unit) {
if (YukiHookAPI.Status.isXposedEnvironment)
(if (isShowWarn)
Toast.makeText(applicationContext, "This operation is not allowed in Xposed Environment", Toast.LENGTH_SHORT).show())
else callback()
private inline fun hostEnvironment(callback: () -> Unit) {
if (YukiHookAPI.Status.isXposedEnvironment) 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
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.hook.xposed.parasitic.activity.base.ModuleAppCompatActivity
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?) {
super.onCreate(savedInstanceState)
@@ -47,13 +51,14 @@ class PreferenceActivity : AppCompatActivity() {
override fun onSupportNavigateUp(): Boolean {
onBackPressed()
return super.onSupportNavigateUp()
return true
}
class SettingsFragment : ModulePreferenceFragment() {
override fun onCreatePreferencesInModuleApp(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.settings_preferences, rootKey)
findPreference<SwitchPreference>("show_dialog_when_demo_app_opend")?.isEnabled = YukiHookAPI.Status.isXposedEnvironment.not()
}
}
}