From f39208fdfe9204d83c28fd413890af82b027d429 Mon Sep 17 00:00:00 2001 From: QQ littleice <1767523953@qq.com> Date: Thu, 10 Mar 2022 19:06:09 +0800 Subject: [PATCH] simplify HideHDIcon.kt --- .../hook/app/systemui/HideHDIcon.kt | 91 ++++++------------- 1 file changed, 26 insertions(+), 65 deletions(-) diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideHDIcon.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideHDIcon.kt index 7faf1e9f..73b6101f 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideHDIcon.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideHDIcon.kt @@ -2,76 +2,37 @@ package com.lt2333.simplicitytools.hook.app.systemui import android.view.View import android.widget.ImageView -import com.lt2333.simplicitytools.util.XSPUtils +import com.lt2333.simplicitytools.util.getObjectField +import com.lt2333.simplicitytools.util.hasEnable +import com.lt2333.simplicitytools.util.hookAfterMethod import de.robv.android.xposed.IXposedHookLoadPackage -import de.robv.android.xposed.XC_MethodHook -import de.robv.android.xposed.XposedHelpers import de.robv.android.xposed.callbacks.XC_LoadPackage class HideHDIcon :IXposedHookLoadPackage { override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - val classIfExists = XposedHelpers.findClassIfExists( - "com.android.systemui.statusbar.StatusBarMobileView", - lpparam.classLoader - ) - XposedHelpers.findAndHookMethod( - classIfExists, - "initViewState", - "com.android.systemui.statusbar.phone.StatusBarSignalPolicy\$MobileIconState", - object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - if (XSPUtils.getBoolean("hide_big_hd_icon", false)) { - val bigHd = XposedHelpers.getObjectField( - param.thisObject, - "mVolte" - ) as ImageView - bigHd.visibility = View.GONE - } - if (XSPUtils.getBoolean("hide_small_hd_icon", false)) { - val smallHd = XposedHelpers.getObjectField( - param.thisObject, - "mSmallHd" - ) as ImageView - smallHd.visibility = View.GONE - } - if (XSPUtils.getBoolean("hide_hd_no_service_icon", false)) { - val volteNoService = XposedHelpers.getObjectField( - param.thisObject, - "mVolteNoService" - ) as ImageView - volteNoService.visibility = View.GONE - } - } - }) - XposedHelpers.findAndHookMethod( - classIfExists, - "updateState", - "com.android.systemui.statusbar.phone.StatusBarSignalPolicy\$MobileIconState", - object : XC_MethodHook() { - override fun afterHookedMethod(param: MethodHookParam) { - if (XSPUtils.getBoolean("hide_big_hd_icon", false)) { - val bigHd = XposedHelpers.getObjectField( - param.thisObject, - "mVolte" - ) as ImageView - bigHd.visibility = View.GONE - } - if (XSPUtils.getBoolean("hide_small_hd_icon", false)) { - val smallHd = XposedHelpers.getObjectField( - param.thisObject, - "mSmallHd" - ) as ImageView + val iconState = "com.android.systemui.statusbar.phone.StatusBarSignalPolicy\$MobileIconState" + "com.android.systemui.statusbar.StatusBarMobileView".hookAfterMethod(lpparam.classLoader, "initViewState", iconState) { + hasEnable("hide_big_hd_icon") { + (it.thisObject.getObjectField("mVolte") as ImageView).visibility = View.GONE + } + hasEnable("hide_small_hd_icon") { + (it.thisObject.getObjectField("mSmallHd") as ImageView).visibility = View.GONE + } + hasEnable("hide_hd_no_service_icon") { + (it.thisObject.getObjectField("mVolteNoService") as ImageView).visibility = View.GONE + } + } - smallHd.visibility = View.GONE - } - if (XSPUtils.getBoolean("hide_hd_no_service_icon", false)) { - val volteNoService = XposedHelpers.getObjectField( - param.thisObject, - "mVolteNoService" - ) as ImageView - volteNoService.visibility = View.GONE - } - } - }) + "com.android.systemui.statusbar.StatusBarMobileView".hookAfterMethod(lpparam.classLoader, "updateState", iconState) { + hasEnable("hide_big_hd_icon") { + (it.thisObject.getObjectField("mVolte") as ImageView).visibility = View.GONE + } + hasEnable("hide_small_hd_icon") { + (it.thisObject.getObjectField("mSmallHd") as ImageView).visibility = View.GONE + } + hasEnable("hide_hd_no_service_icon") { + (it.thisObject.getObjectField("mVolteNoService") as ImageView).visibility = View.GONE + } + } } } \ No newline at end of file