simplify HideMobileTypeIcon.kt

This commit is contained in:
QQ littleice
2022-03-10 21:53:30 +08:00
parent a16b8ffbb9
commit 99b1b4fea8

View File

@@ -3,68 +3,29 @@ package com.lt2333.simplicitytools.hook.app.systemui
import android.view.View import android.view.View
import android.widget.ImageView import android.widget.ImageView
import android.widget.TextView import android.widget.TextView
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.IXposedHookLoadPackage
import de.robv.android.xposed.XC_MethodHook
import de.robv.android.xposed.XposedHelpers
import de.robv.android.xposed.callbacks.XC_LoadPackage import de.robv.android.xposed.callbacks.XC_LoadPackage
class HideMobileTypeIcon : IXposedHookLoadPackage { class HideMobileTypeIcon : IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
val classIfExists = XposedHelpers.findClassIfExists( val iconState = "com.android.systemui.statusbar.phone.StatusBarSignalPolicy\$MobileIconState"
"com.android.systemui.statusbar.StatusBarMobileView", "com.android.systemui.statusbar.StatusBarMobileView".hookAfterMethod(lpparam.classLoader, "initViewState", iconState) {
lpparam.classLoader hasEnable("hide_mobile_type_icon") {
) (it.thisObject.getObjectField("mMobileType") as TextView).visibility = View.INVISIBLE
XposedHelpers.findAndHookMethod( (it.thisObject.getObjectField("mMobileTypeImage") as ImageView).visibility = View.INVISIBLE
classIfExists, (it.thisObject.getObjectField("mMobileTypeSingle") as TextView).visibility = View.INVISIBLE
"initViewState",
"com.android.systemui.statusbar.phone.StatusBarSignalPolicy\$MobileIconState",
object : XC_MethodHook() {
override fun afterHookedMethod(param: MethodHookParam) {
if (XSPUtils.getBoolean("hide_mobile_type_icon", false)) {
(XposedHelpers.getObjectField(
param.thisObject,
"mMobileType"
) as TextView).visibility = View.INVISIBLE
(XposedHelpers.getObjectField(
param.thisObject,
"mMobileTypeImage"
) as ImageView).visibility = View.INVISIBLE
(XposedHelpers.getObjectField(
param.thisObject,
"mMobileTypeSingle"
) as TextView).visibility = View.INVISIBLE
} }
} }
})
XposedHelpers.findAndHookMethod( "com.android.systemui.statusbar.StatusBarMobileView".hookAfterMethod(lpparam.classLoader, "updateState", iconState) {
classIfExists, hasEnable("hide_mobile_type_icon") {
"updateState", (it.thisObject.getObjectField("mMobileType") as TextView).visibility = View.INVISIBLE
"com.android.systemui.statusbar.phone.StatusBarSignalPolicy\$MobileIconState", (it.thisObject.getObjectField("mMobileTypeImage") as ImageView).visibility = View.INVISIBLE
object : XC_MethodHook() { (it.thisObject.getObjectField("mMobileTypeSingle") as TextView).visibility = View.INVISIBLE
override fun afterHookedMethod(param: MethodHookParam) {
if (XSPUtils.getBoolean("hide_mobile_type_icon", false)) {
(XposedHelpers.getObjectField(
param.thisObject,
"mMobileType"
) as TextView).visibility = View.INVISIBLE
(XposedHelpers.getObjectField(
param.thisObject,
"mMobileTypeImage"
) as ImageView).visibility = View.INVISIBLE
(XposedHelpers.getObjectField(
param.thisObject,
"mMobileTypeSingle"
) as TextView).visibility = View.INVISIBLE
} }
} }
})
} }
} }