重构隐藏图标功能

This commit is contained in:
乌堆小透明
2022-03-15 00:58:36 +08:00
parent fabbd19929
commit da80efc8ba
16 changed files with 97 additions and 222 deletions

View File

@@ -830,8 +830,14 @@ class SettingsActivity : MIUIActivity() {
)
add(
TextWithSwitchV(
TextV(resId = R.string.hide_volume_zen_icon),
SwitchV("hide_volume_zen_icon")
TextV(resId = R.string.hide_volume_icon),
SwitchV("hide_volume_icon")
)
)
add(
TextWithSwitchV(
TextV(resId = R.string.hide_zen_icon),
SwitchV("hide_zen_icon")
)
)
add(

View File

@@ -9,42 +9,20 @@ class SystemUI : IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: LoadPackageParam) {
XposedBridge.log("Simplicitytools: 成功 Hook "+javaClass.simpleName)
//隐藏飞行模式图标
HideAirplaneIcon().handleLoadPackage(lpparam)
//隐藏闹钟图标
HideAlarmIcon().handleLoadPackage(lpparam)
//隐藏状态栏图标
HideStatusBarIcon().handleLoadPackage(lpparam)
//隐藏电池
HideBatteryIcon().handleLoadPackage(lpparam)
//隐藏蓝牙电量
HideBluetoothHandsfreeBatteryIcon().handleLoadPackage(lpparam)
//隐藏蓝牙图标
HideBluetoothIcon().handleLoadPackage(lpparam)
//隐藏GPS图标
HideGPSIcon().handleLoadPackage(lpparam)
//隐藏HD图标
HideHDIcon().handleLoadPackage(lpparam)
//隐藏耳机图标
HideHeadsetIcon().handleLoadPackage(lpparam)
//隐藏热点图标
HideHotspotIcon().handleLoadPackage(lpparam)
//隐藏无SIM卡图标
HideNoSimIcon().handleLoadPackage(lpparam)
//隐藏SIM卡图标
HideSimIcon().handleLoadPackage(lpparam)
//隐藏移动箭头图标
HideMobileActivityIcon().handleLoadPackage(lpparam)
//隐藏移动类型图标
HideMobileTypeIcon().handleLoadPackage(lpparam)
//隐藏辅助WIFI图标
HideSlaveWifiIcon().handleLoadPackage(lpparam)
//隐藏状态栏网速/s
HideStatusBarNetworkSpeedSecond().handleLoadPackage(lpparam)
//隐藏音量勿扰图标
HideVolumeZenIcon().handleLoadPackage(lpparam)
//隐藏VPN图标
HideVpnIcon().handleLoadPackage(lpparam)
//隐藏WIFI图标
HideWifiIcon().handleLoadPackage(lpparam)
//隐藏WIFI活动箭头图标
HideWifiActivityIcon().handleLoadPackage(lpparam)
//移除通知图标上限

View File

@@ -1,17 +0,0 @@
package com.lt2333.simplicitytools.hook.app.systemui
import com.lt2333.simplicitytools.util.hasEnable
import com.lt2333.simplicitytools.util.hookBeforeMethod
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.callbacks.XC_LoadPackage
class HideAirplaneIcon : IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
val iconState = "com.android.systemui.statusbar.policy.NetworkController\$IconState"
"com.android.systemui.statusbar.phone.StatusBarSignalPolicy".hookBeforeMethod(lpparam.classLoader, "setIsAirplaneMode", iconState) {
hasEnable("hide_airplane_icon") {
it.result = null
}
}
}
}

View File

@@ -1,16 +0,0 @@
package com.lt2333.simplicitytools.hook.app.systemui
import com.lt2333.simplicitytools.util.hasEnable
import com.lt2333.simplicitytools.util.hookBeforeMethod
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.callbacks.XC_LoadPackage
class HideAlarmIcon :IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
"com.android.systemui.statusbar.phone.MiuiPhoneStatusBarPolicy".hookBeforeMethod(lpparam.classLoader, "onMiuiAlarmChanged") {
hasEnable("hide_alarm_icon") {
it.result = null
}
}
}
}

View File

@@ -1,17 +0,0 @@
package com.lt2333.simplicitytools.hook.app.systemui
import android.content.Intent
import com.lt2333.simplicitytools.util.hasEnable
import com.lt2333.simplicitytools.util.hookBeforeMethod
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.callbacks.XC_LoadPackage
class HideBluetoothHandsfreeBatteryIcon : IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
"com.android.systemui.statusbar.phone.MiuiPhoneStatusBarPolicy".hookBeforeMethod(lpparam.classLoader, "updateBluetoothHandsfreeBattery", Intent::class.java) {
hasEnable("hide_bluetooth_battery_icon") {
it.result = null
}
}
}
}

View File

@@ -1,16 +0,0 @@
package com.lt2333.simplicitytools.hook.app.systemui
import com.lt2333.simplicitytools.util.hasEnable
import com.lt2333.simplicitytools.util.hookBeforeMethod
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.callbacks.XC_LoadPackage
class HideBluetoothIcon :IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
"com.android.systemui.statusbar.phone.MiuiPhoneStatusBarPolicy".hookBeforeMethod(lpparam.classLoader, "updateBluetooth", String::class.java) {
hasEnable("hide_bluetooth_icon") {
it.result = null
}
}
}
}

View File

@@ -1,16 +0,0 @@
package com.lt2333.simplicitytools.hook.app.systemui
import com.lt2333.simplicitytools.util.hasEnable
import com.lt2333.simplicitytools.util.hookBeforeMethod
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.callbacks.XC_LoadPackage
class HideGPSIcon : IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
"com.android.systemui.statusbar.phone.PhoneStatusBarPolicy".hookBeforeMethod(lpparam.classLoader, "updateLocationFromController") {
hasEnable("hide_gps_icon") {
it.result = null
}
}
}
}

View File

@@ -1,17 +0,0 @@
package com.lt2333.simplicitytools.hook.app.systemui
import android.content.Intent
import com.lt2333.simplicitytools.util.hasEnable
import com.lt2333.simplicitytools.util.hookBeforeMethod
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.callbacks.XC_LoadPackage
class HideHeadsetIcon :IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
"com.android.systemui.statusbar.phone.MiuiPhoneStatusBarPolicy".hookBeforeMethod(lpparam.classLoader, "updateHeadsetPlug", Intent::class.java) {
hasEnable("hide_headset_icon") {
it.result = null
}
}
}
}

View File

@@ -1,16 +0,0 @@
package com.lt2333.simplicitytools.hook.app.systemui
import com.lt2333.simplicitytools.util.hasEnable
import com.lt2333.simplicitytools.util.hookBeforeMethod
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.callbacks.XC_LoadPackage
class HideHotspotIcon :IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
"com.android.systemui.statusbar.phone.PhoneStatusBarPolicy\$2".hookBeforeMethod(lpparam.classLoader, "onHotspotChanged", Boolean::class.java, Int::class.java) {
hasEnable("hide_hotspot_icon") {
it.result = null
}
}
}
}

View File

@@ -1,16 +0,0 @@
package com.lt2333.simplicitytools.hook.app.systemui
import com.lt2333.simplicitytools.util.hasEnable
import com.lt2333.simplicitytools.util.hookBeforeMethod
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.callbacks.XC_LoadPackage
class HideNoSimIcon : IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
"com.android.systemui.statusbar.phone.MiuiStatusBarSignalPolicy".hookBeforeMethod(lpparam.classLoader, "setNoSims", Boolean::class.javaPrimitiveType, Boolean::class.javaPrimitiveType) {
hasEnable("hide_no_sim_icon") {
it.result = null
}
}
}
}

View File

@@ -1,16 +0,0 @@
package com.lt2333.simplicitytools.hook.app.systemui
import com.lt2333.simplicitytools.util.hasEnable
import com.lt2333.simplicitytools.util.hookBeforeMethod
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.callbacks.XC_LoadPackage
class HideSlaveWifiIcon :IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
"com.android.systemui.statusbar.policy.SlaveWifiSignalController".hookBeforeMethod(lpparam.classLoader, "updateIconState") {
hasEnable("hide_slave_wifi_icon") {
it.result = null
}
}
}
}

View File

@@ -0,0 +1,85 @@
package com.lt2333.simplicitytools.hook.app.systemui
import com.lt2333.simplicitytools.util.hasEnable
import com.lt2333.simplicitytools.util.hookBeforeMethod
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.XC_MethodHook
import de.robv.android.xposed.callbacks.XC_LoadPackage
class HideStatusBarIcon : IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
"com.android.systemui.statusbar.phone.StatusBarIconControllerImpl".hookBeforeMethod(
lpparam.classLoader,
"setIconVisibility",
String::class.java,
Boolean::class.java
) { hideIcon(it) }
"com.android.systemui.statusbar.phone.MiuiDripLeftStatusBarIconControllerImpl".hookBeforeMethod(
lpparam.classLoader,
"setIconVisibility",
String::class.java,
Boolean::class.java
) { hideIcon(it) }
}
private fun hideIcon(it: XC_MethodHook.MethodHookParam) {
//Log.d("图标名字", "handleLoadPackage: " + it.args[0])
when (it.args[0] as String) {
//隐藏蓝牙
"bluetooth" -> hasEnable("hide_bluetooth_icon") {
it.args[1] = false
}
//隐藏蓝牙电量
"bluetooth_handsfree_battery" -> hasEnable("hide_bluetooth_battery_icon") {
it.args[1] = false
}
//隐藏勿扰
"zen" -> hasEnable("hide_zen_icon") {
it.args[1] = false
}
//隐藏声音
"volume" -> hasEnable("hide_volume_icon") {
it.args[1] = false
}
//隐藏WIFI
"wifi" -> hasEnable("hide_wifi_icon") {
it.args[1] = false
}
//隐藏WIFI辅助
"slave_wifi" -> hasEnable("hide_slave_wifi_icon") {
it.args[1] = false
}
//隐藏飞行模式
"airplane" -> hasEnable("hide_airplane_icon") {
it.args[1] = false
}
//隐藏闹钟
"alarm_clock" -> hasEnable("hide_alarm_icon") {
it.args[1] = false
}
//隐藏定位
"location" -> hasEnable("hide_gps_icon") {
it.args[1] = false
}
//隐藏热点
"hotspot" -> hasEnable("hide_hotspot_icon") {
it.args[1] = false
}
//隐藏耳机
"headset" -> hasEnable("hide_headset_icon") {
it.args[1] = false
}
//隐藏VPN
"vpn" -> hasEnable("hide_vpn_icon") {
it.args[1] = false
}
//隐藏无SIM卡
"no_sim" -> hasEnable("hide_no_sim_icon") {
it.args[1] = false
}
}
}
}

View File

@@ -1,16 +0,0 @@
package com.lt2333.simplicitytools.hook.app.systemui
import com.lt2333.simplicitytools.util.hasEnable
import com.lt2333.simplicitytools.util.hookBeforeMethod
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.callbacks.XC_LoadPackage
class HideVolumeZenIcon :IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
"com.android.systemui.statusbar.phone.MiuiPhoneStatusBarPolicy".hookBeforeMethod(lpparam.classLoader, "updateVolumeZen") {
hasEnable("hide_volume_zen_icon") {
it.result = null
}
}
}
}

View File

@@ -1,16 +0,0 @@
package com.lt2333.simplicitytools.hook.app.systemui
import com.lt2333.simplicitytools.util.hasEnable
import com.lt2333.simplicitytools.util.hookBeforeMethod
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.callbacks.XC_LoadPackage
class HideVpnIcon : IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
"com.android.systemui.statusbar.phone.StatusBarSignalPolicy".hookBeforeMethod(lpparam.classLoader, "updateVpn") {
hasEnable("hide_vpn_icon") {
it.result = null
}
}
}
}

View File

@@ -1,17 +0,0 @@
package com.lt2333.simplicitytools.hook.app.systemui
import com.lt2333.simplicitytools.util.hasEnable
import com.lt2333.simplicitytools.util.hookBeforeMethod
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.callbacks.XC_LoadPackage
class HideWifiIcon : IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
val iconState = "com.android.systemui.statusbar.phone.StatusBarSignalPolicy\$WifiIconState"
"com.android.systemui.statusbar.phone.MiuiStatusBarSignalPolicy".hookBeforeMethod(lpparam.classLoader, "updateWifiIconWithState", iconState) {
hasEnable("hide_wifi_icon") {
it.result = null
}
}
}
}

View File

@@ -160,4 +160,6 @@
<string name="current_current">Current</string>
<string name="remove_open_app_confirmation_popup">remove open app popup</string>
<string name="remove_open_app_confirmation_popup_summary">remove \"Allow XXX to open XXX\" Chain start popup</string>
<string name="hide_volume_icon">Hide Volume icon</string>
<string name="hide_zen_icon">Hide ZEN icon</string>
</resources>