diff --git a/app/src/main/java/com/lt2333/simplicitytools/hooks/rules/t/systemui/HideSimIconForT.kt b/app/src/main/java/com/lt2333/simplicitytools/hooks/rules/t/systemui/HideSimIconForT.kt index 69cc370e4..74f86db58 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hooks/rules/t/systemui/HideSimIconForT.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hooks/rules/t/systemui/HideSimIconForT.kt @@ -1,23 +1,27 @@ package com.lt2333.simplicitytools.hooks.rules.t.systemui +import android.telephony.SubscriptionManager import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.hookBefore +import com.github.kyuubiran.ezxhelper.utils.putObject +import com.lt2333.simplicitytools.utils.getObjectField import com.lt2333.simplicitytools.utils.hasEnable import com.lt2333.simplicitytools.utils.xposed.base.HookRegister object HideSimIconForT : HookRegister() { override fun init() { - findMethod("com.android.systemui.statusbar.phone.StatusBarSignalPolicy") { - name == "hasCorrectSubs" && parameterTypes[0] == MutableList::class.java + findMethod("com.android.systemui.statusbar.StatusBarMobileView") { + name == "applyMobileState" }.hookBefore { - val list = it.args[0] as MutableList<*> - val size = list.size - hasEnable("hide_sim_two_icon", extraCondition = { size == 2 }) { - list.removeAt(1) + val mobileIconState = it.args[0] + val subId = mobileIconState.getObjectField("subId") as Int + val slotId = SubscriptionManager.getSlotIndex(subId) + hasEnable("hide_sim_one_icon", extraCondition = { slotId == 0 }) { + mobileIconState.putObject("visible", false) } - hasEnable("hide_sim_one_icon", extraCondition = { size >= 1 }) { - list.removeAt(0) + hasEnable("hide_sim_two_icon", extraCondition = { slotId == 1 }) { + mobileIconState.putObject("visible", false) } } }