From f2f133c5b9e301db4304f4f77303f2199543f15f Mon Sep 17 00:00:00 2001 From: LittleTurtle2333 Date: Wed, 13 Apr 2022 23:23:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E5=AA=92=E4=BD=93=E9=9F=B3=E9=87=8F=E6=AD=A5=E6=95=B0=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/SettingsActivity.kt | 25 ++++++++++++++++--- .../hook/app/android/SystemPropertiesHook.kt | 7 ++++-- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt b/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt index 6887f488..80a95b2e 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt @@ -976,14 +976,33 @@ class SettingsActivity : MIUIActivity() { ) Line() TitleText(resId = R.string.sound) - Text( - resId = R.string.media_volume_steps, + val mediaVolumeStepsSwitchBinding = GetDataBinding( + object : DefValue { + override fun getValue(): Any { + return getSP().getBoolean("media_volume_steps_switch", false) + } + } + ) { view, flags, data -> + when (flags) { + 1 -> (view as Switch).isEnabled = data as Boolean + 2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE + } + } + TextSummaryWithSwitch( + TextSummaryV( + textId = R.string.media_volume_steps_switch, + tips = "${getString(R.string.take_effect_after_reboot)}\n${getString(R.string.media_volume_steps_summary)}" + ), + SwitchV( + "media_volume_steps_switch", + dataBindingSend = mediaVolumeStepsSwitchBinding.bindingSend + ) ) SeekBarWithText( "media_volume_steps", 15, 29, - 15 + 15, dataBindingRecv = mediaVolumeStepsSwitchBinding.binding.getRecv(2) ) } register("scope_other", getString(R.string.scope_other), false) { diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/SystemPropertiesHook.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/SystemPropertiesHook.kt index c9ef3bfc..7102ec0a 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/SystemPropertiesHook.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/SystemPropertiesHook.kt @@ -5,8 +5,10 @@ import com.lt2333.simplicitytools.util.hookBeforeMethod import com.lt2333.simplicitytools.util.xposed.base.HookRegister object SystemPropertiesHook : HookRegister() { - override fun init() { + val mediaStepsSwitch = XSPUtils.getBoolean("media_volume_steps_switch", false) + val mediaSteps = XSPUtils.getInt("media_volume_steps", 15) + "android.os.SystemProperties".hookBeforeMethod( getDefaultClassLoader(), "getInt", @@ -14,8 +16,9 @@ object SystemPropertiesHook : HookRegister() { Int::class.java ) { when (it.args[0] as String) { - "ro.config.media_vol_steps" -> it.result = XSPUtils.getInt("media_volume_steps",15) + "ro.config.media_vol_steps" -> if (mediaStepsSwitch) it.result = mediaSteps } } + } } \ No newline at end of file