From 339b0d11c9b3afbf4b394960538bf4dd16d4e23c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=93=83=E6=9F=92=E6=9F=92?= Date: Wed, 5 Feb 2025 11:19:49 +0800 Subject: [PATCH] fix: hide wifiActivity failed by HyperOS2 --- .../module/app/SystemUI/Pad/SystemUiV.java | 2 +- .../module/app/SystemUI/Phone/SystemUiU.java | 2 +- .../module/app/SystemUI/Phone/SystemUiV.java | 2 +- .../hook/systemui/lockscreen/BlurButton.kt | 14 ++---- .../icon/all/WifiNetworkIndicator.kt | 50 +++++++++++++------ app/src/main/res/values-zh-rCN/strings.xml | 2 +- app/src/main/res/values-zh-rHK/strings.xml | 2 +- app/src/main/res/values-zh-rTW/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- .../system_ui_status_bar_icon_manage_new.xml | 10 ++-- 10 files changed, 50 insertions(+), 38 deletions(-) diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/app/SystemUI/Pad/SystemUiV.java b/app/src/main/java/com/sevtinge/hyperceiler/module/app/SystemUI/Pad/SystemUiV.java index 3fbb5fd5c..ec7175d9d 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/app/SystemUI/Pad/SystemUiV.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/app/SystemUI/Pad/SystemUiV.java @@ -139,7 +139,7 @@ public void handleLoadPackage() { initHook(new NotificationIconColumns(), mPrefsMap.getBoolean("system_ui_status_bar_notification_icon_maximum_enable")); initHook(new HideStatusBarBeforeScreenshot(), mPrefsMap.getBoolean("system_ui_status_bar_hide_icon")); initHook(new DataSaverIcon(), mPrefsMap.getStringAsInt("system_ui_status_bar_icon_data_saver", 0) != 0); - initHook(WifiNetworkIndicator.INSTANCE, mPrefsMap.getStringAsInt("system_ui_status_bar_icon_wifi_network_indicator", 0) > 0); + initHook(WifiNetworkIndicator.INSTANCE, mPrefsMap.getBoolean("system_ui_status_bar_icon_wifi_network_indicator_new")); initHook(HideVoWiFiIcon.INSTANCE, mPrefsMap.getBoolean("system_ui_status_bar_icon_vowifi") || mPrefsMap.getBoolean("system_ui_status_bar_icon_volte")); initHook(new StickyFloatingWindowsForSystemUI(), mPrefsMap.getBoolean("system_framework_freeform_sticky")); diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/app/SystemUI/Phone/SystemUiU.java b/app/src/main/java/com/sevtinge/hyperceiler/module/app/SystemUI/Phone/SystemUiU.java index 602d53150..0c75ab832 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/app/SystemUI/Phone/SystemUiU.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/app/SystemUI/Phone/SystemUiU.java @@ -145,7 +145,7 @@ public void handleLoadPackage() { initHook(new NotificationIconColumns(), mPrefsMap.getBoolean("system_ui_status_bar_notification_icon_maximum_enable")); initHook(new HideStatusBarBeforeScreenshot(), mPrefsMap.getBoolean("system_ui_status_bar_hide_icon")); initHook(new DataSaverIcon(), mPrefsMap.getStringAsInt("system_ui_status_bar_icon_data_saver", 0) != 0); - initHook(WifiNetworkIndicator.INSTANCE, mPrefsMap.getStringAsInt("system_ui_status_bar_icon_wifi_network_indicator", 0) > 0); + initHook(WifiNetworkIndicator.INSTANCE, mPrefsMap.getBoolean("system_ui_status_bar_icon_wifi_network_indicator_new")); initHook(HideVoWiFiIcon.INSTANCE, mPrefsMap.getBoolean("system_ui_status_bar_icon_vowifi") || mPrefsMap.getBoolean("system_ui_status_bar_icon_volte")); initHook(new StickyFloatingWindowsForSystemUI(), mPrefsMap.getBoolean("system_framework_freeform_sticky")); diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/app/SystemUI/Phone/SystemUiV.java b/app/src/main/java/com/sevtinge/hyperceiler/module/app/SystemUI/Phone/SystemUiV.java index 903847211..e84700b27 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/app/SystemUI/Phone/SystemUiV.java +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/app/SystemUI/Phone/SystemUiV.java @@ -147,7 +147,7 @@ public void handleLoadPackage() { initHook(new NotificationIconColumns(), mPrefsMap.getBoolean("system_ui_status_bar_notification_icon_maximum_enable")); initHook(new HideStatusBarBeforeScreenshot(), mPrefsMap.getBoolean("system_ui_status_bar_hide_icon")); initHook(new DataSaverIcon(), mPrefsMap.getStringAsInt("system_ui_status_bar_icon_data_saver", 0) != 0); - initHook(WifiNetworkIndicator.INSTANCE, mPrefsMap.getStringAsInt("system_ui_status_bar_icon_wifi_network_indicator", 0) > 0); + initHook(WifiNetworkIndicator.INSTANCE, mPrefsMap.getBoolean("system_ui_status_bar_icon_wifi_network_indicator_new")); initHook(HideVoWiFiIcon.INSTANCE, mPrefsMap.getBoolean("system_ui_status_bar_icon_vowifi") || mPrefsMap.getBoolean("system_ui_status_bar_icon_volte")); initHook(new StickyFloatingWindowsForSystemUI(), mPrefsMap.getBoolean("system_framework_freeform_sticky")); initHook(new StatusBarIconPositionAdjust(), mPrefsMap.getBoolean("system_ui_status_bar_swap_wifi_and_mobile_network")); diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemui/lockscreen/BlurButton.kt b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemui/lockscreen/BlurButton.kt index b59968ebd..0dc49dec9 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemui/lockscreen/BlurButton.kt +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemui/lockscreen/BlurButton.kt @@ -37,12 +37,13 @@ import com.sevtinge.hyperceiler.utils.blur.MiBlurUtilsKt.addMiBackgroundBlendCol import com.sevtinge.hyperceiler.utils.blur.MiBlurUtilsKt.clearMiBackgroundBlendColor import com.sevtinge.hyperceiler.utils.blur.MiBlurUtilsKt.setMiBackgroundBlurRadius import com.sevtinge.hyperceiler.utils.blur.MiBlurUtilsKt.setMiViewBlurMode +import com.sevtinge.hyperceiler.utils.devicesdk.isHyperOSVersion import com.sevtinge.hyperceiler.utils.setBooleanField import de.robv.android.xposed.XC_MethodHook object BlurButton : BaseHook() { private val removeLeft by lazy { - leftButtonType == 1 + mPrefsMap.getBoolean("system_ui_lock_screen_hide_smart_screen") } private val removeRight by lazy { mPrefsMap.getBoolean("system_ui_lock_screen_hide_camera") @@ -88,15 +89,6 @@ object BlurButton : BaseHook() { return layoutDrawable } - private fun setOldBackgroundBlur(view: View): LayerDrawable { - val blurDrawable = createBlurDrawable( - view, 40, 100, Color.argb(60, 255, 255, 255) - ) - val layoutDrawable = LayerDrawable(arrayOf(blurDrawable)) - layoutDrawable.setLayerInset(0, radius, radius, radius, radius) - return layoutDrawable - } - private fun systemBlur(param: XC_MethodHook.MethodHookParam) { val mLeftAffordanceView: ImageView = ObjectUtils.getObjectOrNullAs( param.thisObject, @@ -135,7 +127,7 @@ object BlurButton : BaseHook() { "mRightButton" )!! - if (!removeLeft) { + if ((!removeLeft && isHyperOSVersion(1f)) || leftButtonType == 1) { addHyBlur(mLeftAffordanceView) } if (!removeRight) { diff --git a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemui/statusbar/icon/all/WifiNetworkIndicator.kt b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemui/statusbar/icon/all/WifiNetworkIndicator.kt index 0e6b386d8..772b02a01 100644 --- a/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemui/statusbar/icon/all/WifiNetworkIndicator.kt +++ b/app/src/main/java/com/sevtinge/hyperceiler/module/hook/systemui/statusbar/icon/all/WifiNetworkIndicator.kt @@ -20,28 +20,50 @@ package com.sevtinge.hyperceiler.module.hook.systemui.statusbar.icon.all import android.view.View import com.sevtinge.hyperceiler.module.base.BaseHook +import com.sevtinge.hyperceiler.utils.StateFlowHelper.newReadonlyStateFlow +import com.sevtinge.hyperceiler.utils.devicesdk.isMoreHyperOSVersion +import com.sevtinge.hyperceiler.utils.getObjectField +import com.sevtinge.hyperceiler.utils.getStaticObjectField +import com.sevtinge.hyperceiler.utils.setObjectField import de.robv.android.xposed.XposedHelpers object WifiNetworkIndicator : BaseHook() { - var mVisibility = 0 - private var mStatusBarWifiView: Class<*>? = null - override fun init() { - mStatusBarWifiView = findClassIfExists("com.android.systemui.statusbar.StatusBarWifiView") - val mWifiNetworkIndicator = - mPrefsMap.getStringAsInt("system_ui_status_bar_icon_wifi_network_indicator", 0) + private val mStatusBarWifiViewNew by lazy { + findClassIfExists("com.android.systemui.statusbar.pipeline.wifi.data.repository.prod.WifiRepositoryImpl") + } + private val mStatusBarWifiView by lazy { + findClassIfExists("com.android.systemui.statusbar.StatusBarWifiView") + } - when (mWifiNetworkIndicator) { - 1 -> mVisibility = View.VISIBLE - 2 -> mVisibility = View.INVISIBLE + override fun init() { + if (isMoreHyperOSVersion(2f)) { + hideWifiActivityNew() + } else { + hideWifiActivity() } - val hideWifiActivity: MethodHook = object : MethodHook() { + } + + private fun hideWifiActivityNew() { + hookAllConstructors(mStatusBarWifiViewNew, object : MethodHook() { + override fun after(param: MethodHookParam) { + param.thisObject.setObjectField( + "wifiActivity", + newReadonlyStateFlow( + mStatusBarWifiViewNew.getStaticObjectField("ACTIVITY_DEFAULT") + ) + ) + } + }) + } + + private fun hideWifiActivity() { + hookAllMethods(mStatusBarWifiView, "applyWifiState", object : MethodHook() { override fun after(param: MethodHookParam) { val mWifiActivityView = - XposedHelpers.getObjectField(param.thisObject, "mWifiActivityView") - XposedHelpers.callMethod(mWifiActivityView, "setVisibility", mVisibility) + param.thisObject.getObjectField("mWifiActivityView") + XposedHelpers.callMethod(mWifiActivityView, "setVisibility", View.GONE) } - } - hookAllMethods(mStatusBarWifiView, "applyWifiState", hideWifiActivity) + }) } } diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 28c2e5581..a5963d8ec 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -744,7 +744,7 @@ 辅助 WIFI 图标 WIFI 标准 WIFI 热点 - WIFI 网络活动指示器 + 隐藏 WIFI 网络活动指示器 蓝牙 蓝牙电量 新 HD 图标 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 46e52fe4b..4c8e9f709 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -582,7 +582,7 @@ 輔助 WIFI 圖標 Wi-Fi 標準 WIFI 熱點 - 網絡活動指示器 + 隱藏網絡活動指示器 藍牙 藍牙電池 新 HD 圖示 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 4678d1e53..edd3448f6 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -674,7 +674,7 @@ 從 Wi-Fi Wi-Fi 標準 WIFI 熱點 - 網路活動指示器 + 隱藏網路活動指示器 藍牙 藍牙電池 新 HD 圖示 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5966fe77f..d5f32e45d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -751,7 +751,7 @@ Auxiliary Wi-Fi Wi-Fi standard Hotspot Wi-Fi - Wi-Fi activity indicator + Hide Wi-Fi activity indicator Bluetooth Bluetooth battery New HD icon diff --git a/app/src/main/res/xml/system_ui_status_bar_icon_manage_new.xml b/app/src/main/res/xml/system_ui_status_bar_icon_manage_new.xml index 9c3802da8..443afd9ce 100644 --- a/app/src/main/res/xml/system_ui_status_bar_icon_manage_new.xml +++ b/app/src/main/res/xml/system_ui_status_bar_icon_manage_new.xml @@ -21,12 +21,10 @@ app:myLocation="@string/system_ui_statusbar_iconmanage_title" app:quick_restart="com.android.systemui"> - +