simplify HideHDIcon.kt

This commit is contained in:
QQ littleice
2022-03-10 19:06:09 +08:00
parent 97c8307447
commit f39208fdfe

View File

@@ -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
}
}
}
}