From 90466bb3fb56fc30ebf844e1e90d191cc587eab6 Mon Sep 17 00:00:00 2001 From: YuKongA <70465933+YuKongA@users.noreply.github.com> Date: Wed, 25 May 2022 22:04:41 +0800 Subject: [PATCH] Merge pull request #169 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 修复 隐藏网速单位 & 随便精简了下代码 * Update SettingsActivity.kt --- .../activity/SettingsActivity.kt | 8 +- .../simplicitytools/hook/app/Android.kt | 4 - .../lt2333/simplicitytools/hook/app/Cast.kt | 4 - .../simplicitytools/hook/app/MediaEditor.kt | 4 - .../simplicitytools/hook/app/MiuiHome.kt | 4 - .../simplicitytools/hook/app/PowerKeeper.kt | 4 - .../simplicitytools/hook/app/RearDisplay.kt | 6 +- .../simplicitytools/hook/app/ScreenShot.kt | 4 - .../hook/app/SecurityCenter.kt | 4 - .../simplicitytools/hook/app/Settings.kt | 4 - .../simplicitytools/hook/app/SystemUI.kt | 4 - .../simplicitytools/hook/app/ThemeManager.kt | 4 - .../simplicitytools/hook/app/Updater.kt | 4 - .../hook/app/android/AllowUntrustedTouches.kt | 1 + .../app/android/DeleteOnPostNotification.kt | 1 + .../hook/app/android/DisableFlagSecure.kt | 1 + .../hook/app/android/MaxWallpaperScale.kt | 1 + .../android/RemoveSmallWindowRestrictions.kt | 1 + .../hook/app/android/SystemPropertiesHook.kt | 1 + .../hook/app/cast/ForceSupportSendApp.kt | 10 +- .../mediaeditor/UnlockUnlimitedCropping.kt | 49 ++---- .../hook/app/miuihome/AlwaysDisplayTime.kt | 27 ++- .../hook/app/miuihome/DoubleTapController.kt | 3 +- .../hook/app/miuihome/DoubleTapToSleep.kt | 11 +- .../hook/app/powerkeeper/LockMaxFps.kt | 29 ++-- ...tRecoveryOfBatteryOptimizationWhitelist.kt | 34 ++-- .../app/reardisplay/RearDisplayWeather.kt | 158 ++++++++---------- .../app/screenshot/UnlockUnlimitedCropping.kt | 28 ++-- .../hook/app/securitycenter/LockOneHundred.kt | 2 + .../RemoveOpenAppConfirmationPopup.kt | 2 + .../securitycenter/ShowBatteryTemperature.kt | 3 +- .../app/securitycenter/SkipWaitingTime.kt | 2 + .../settings/ShowNotificationImportance.kt | 30 +++- .../hook/app/systemui/BatteryPercentage.kt | 6 +- .../hook/app/systemui/CanNotificationSlide.kt | 10 +- .../hook/app/systemui/ControlCenterWeather.kt | 39 ++--- .../hook/app/systemui/CustomMobileTypeText.kt | 2 + .../app/systemui/DoubleLineNetworkSpeed.kt | 16 +- .../hook/app/systemui/HideBatteryIcon.kt | 14 +- .../hook/app/systemui/HideHDIcon.kt | 11 +- .../app/systemui/HideMobileActivityIcon.kt | 8 +- .../hook/app/systemui/HideMobileTypeIcon.kt | 15 +- .../app/systemui/HideNetworkSpeedSplitter.kt | 2 + .../hook/app/systemui/HideSimIcon.kt | 2 + .../hook/app/systemui/HideStatusBarIcon.kt | 2 + .../HideStatusBarNetworkSpeedSecond.kt | 9 +- .../hook/app/systemui/HideWifiActivityIcon.kt | 6 +- .../systemui/LockScreenClockDisplaySeconds.kt | 12 +- .../hook/app/systemui/LockScreenCurrent.kt | 2 +- .../systemui/LockScreenDoubleTapToSleep.kt | 5 +- .../MaximumNumberOfNotificationIcons.kt | 2 + .../hook/app/systemui/NotificationWeather.kt | 38 ++--- .../app/systemui/OldNotificationWeather.kt | 2 + .../hook/app/systemui/OldQSCustom.kt | 7 +- .../app/systemui/RemoveLockScreenCamera.kt | 1 + .../RemoveTheLeftSideOfTheLockScreen.kt | 2 + .../hook/app/systemui/ShowWifiStandard.kt | 8 +- .../systemui/StatusBarBigMobileTypeIcon.kt | 13 +- .../app/systemui/StatusBarDoubleTapToSleep.kt | 5 +- .../hook/app/systemui/StatusBarLayout.kt | 117 ++++++------- .../StatusBarNetworkSpeedRefreshSpeed.kt | 2 + .../systemui/StatusBarTimeCustomization.kt | 12 +- .../hook/app/systemui/WaveCharge.kt | 40 ++--- .../hook/app/thememanager/RemoveAds.kt | 2 + .../simplicitytools/util/ShellUtils.java | 54 +++--- .../simplicitytools/util/SystemProperties.kt | 9 +- .../lt2333/simplicitytools/util/XSPUtils.kt | 8 +- .../util/xposed/EasyXposedInit.kt | 16 +- .../util/xposed/base/AppRegister.kt | 13 +- .../simplicitytools/view/WeatherView.kt | 2 + 70 files changed, 435 insertions(+), 531 deletions(-) diff --git a/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt b/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt index a6ed5853..c2ba74f1 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt @@ -319,10 +319,6 @@ class SettingsActivity : MIUIActivity() { dataBindingSend = customMobileTypeTextBinding.bindingSend ) ) - TextWithSwitch( - TextV(resId = R.string.show_wifi_standard), - SwitchV("show_wifi_standard") - ) TextSummaryArrow( TextSummaryV( textId = R.string.custom_mobile_type_text @@ -366,6 +362,10 @@ class SettingsActivity : MIUIActivity() { 2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE } } + TextWithSwitch( + TextV(resId = R.string.show_wifi_standard), + SwitchV("show_wifi_standard") + ) TextSummaryWithSwitch( TextSummaryV( textId = R.string.big_mobile_type_icon diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/Android.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/Android.kt index f5b7f744..c18fe0c5 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/Android.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/Android.kt @@ -3,16 +3,12 @@ package com.lt2333.simplicitytools.hook.app import com.lt2333.simplicitytools.hook.app.android.* import com.lt2333.simplicitytools.hook.app.android.corepatch.CorePatch import com.lt2333.simplicitytools.util.xposed.base.AppRegister -import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.callbacks.XC_LoadPackage object Android : AppRegister() { override val packageName: String = "android" - override val processName: List = emptyList() - override val logTag: String = "WooBox" override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - XposedBridge.log("WooBox: 成功 Hook " + javaClass.simpleName) //核心破解 CorePatch().handleLoadPackage(lpparam) diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/Cast.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/Cast.kt index 54950c1d..b5fe400e 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/Cast.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/Cast.kt @@ -2,16 +2,12 @@ package com.lt2333.simplicitytools.hook.app import com.lt2333.simplicitytools.hook.app.cast.ForceSupportSendApp import com.lt2333.simplicitytools.util.xposed.base.AppRegister -import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.callbacks.XC_LoadPackage object Cast: AppRegister() { override val packageName: String = "com.milink.service" - override val processName: List = emptyList() - override val logTag: String = "WooBox" override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - XposedBridge.log("WooBox: 成功 Hook "+javaClass.simpleName) autoInitHooks(lpparam, ForceSupportSendApp, //强制允许所有应用接力 ) diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/MediaEditor.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/MediaEditor.kt index 0b7a24a4..81498f1a 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/MediaEditor.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/MediaEditor.kt @@ -2,16 +2,12 @@ package com.lt2333.simplicitytools.hook.app import com.lt2333.simplicitytools.hook.app.mediaeditor.UnlockUnlimitedCropping import com.lt2333.simplicitytools.util.xposed.base.AppRegister -import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.callbacks.XC_LoadPackage object MediaEditor: AppRegister() { override val packageName: String = "com.miui.mediaeditor" - override val processName: List = emptyList() - override val logTag: String = "WooBox" override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - XposedBridge.log("WooBox: 成功 Hook "+javaClass.simpleName) autoInitHooks(lpparam, UnlockUnlimitedCropping, //解锁裁切最小值 ) diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/MiuiHome.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/MiuiHome.kt index 20986636..0884a94f 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/MiuiHome.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/MiuiHome.kt @@ -3,16 +3,12 @@ package com.lt2333.simplicitytools.hook.app import com.lt2333.simplicitytools.hook.app.miuihome.AlwaysDisplayTime import com.lt2333.simplicitytools.hook.app.miuihome.DoubleTapToSleep import com.lt2333.simplicitytools.util.xposed.base.AppRegister -import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.callbacks.XC_LoadPackage object MiuiHome: AppRegister() { override val packageName: String = "com.miui.home" - override val processName: List = emptyList() - override val logTag: String = "WooBox" override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - XposedBridge.log("WooBox: 成功 Hook "+javaClass.simpleName) autoInitHooks(lpparam, AlwaysDisplayTime, //时钟显示时钟 DoubleTapToSleep, //双击锁屏 diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/PowerKeeper.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/PowerKeeper.kt index 4c925f8f..fa78ba60 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/PowerKeeper.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/PowerKeeper.kt @@ -3,16 +3,12 @@ package com.lt2333.simplicitytools.hook.app import com.lt2333.simplicitytools.hook.app.powerkeeper.LockMaxFps import com.lt2333.simplicitytools.hook.app.powerkeeper.PreventRecoveryOfBatteryOptimizationWhitelist import com.lt2333.simplicitytools.util.xposed.base.AppRegister -import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.callbacks.XC_LoadPackage object PowerKeeper: AppRegister() { override val packageName: String = "com.miui.powerkeeper" - override val processName: List = emptyList() - override val logTag: String = "WooBox" override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - XposedBridge.log("WooBox: 成功 Hook "+javaClass.simpleName) autoInitHooks(lpparam, LockMaxFps, //锁定最高刷新率 PreventRecoveryOfBatteryOptimizationWhitelist, //防止恢复电池优化白名单 diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/RearDisplay.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/RearDisplay.kt index 2e8da8f4..cfdedb0e 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/RearDisplay.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/RearDisplay.kt @@ -1,17 +1,13 @@ package com.lt2333.simplicitytools.hook.app -import com.lt2333.simplicitytools.hook.app.cast.RearDisplayWeather +import com.lt2333.simplicitytools.hook.app.reardisplay.RearDisplayWeather import com.lt2333.simplicitytools.util.xposed.base.AppRegister -import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.callbacks.XC_LoadPackage object RearDisplay: AppRegister() { override val packageName: String = "com.xiaomi.misubscreenui" - override val processName: List = emptyList() - override val logTag: String = "WooBox" override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - XposedBridge.log("WooBox: 成功 Hook "+javaClass.simpleName) autoInitHooks(lpparam, RearDisplayWeather, //背屏显示天气 ) diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/ScreenShot.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/ScreenShot.kt index 7613cc89..f02a15ff 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/ScreenShot.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/ScreenShot.kt @@ -2,16 +2,12 @@ package com.lt2333.simplicitytools.hook.app import com.lt2333.simplicitytools.hook.app.screenshot.UnlockUnlimitedCropping import com.lt2333.simplicitytools.util.xposed.base.AppRegister -import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.callbacks.XC_LoadPackage object ScreenShot: AppRegister() { override val packageName: String = "com.miui.screenshot" - override val processName: List = emptyList() - override val logTag: String = "WooBox" override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - XposedBridge.log("WooBox: 成功 Hook " + javaClass.simpleName) autoInitHooks(lpparam, UnlockUnlimitedCropping, //锁定最高刷新率 ) diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/SecurityCenter.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/SecurityCenter.kt index ea2cb5c4..1b20cf46 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/SecurityCenter.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/SecurityCenter.kt @@ -2,16 +2,12 @@ package com.lt2333.simplicitytools.hook.app import com.lt2333.simplicitytools.hook.app.securitycenter.* import com.lt2333.simplicitytools.util.xposed.base.AppRegister -import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.callbacks.XC_LoadPackage object SecurityCenter: AppRegister() { override val packageName: String = "com.miui.securitycenter" - override val processName: List = emptyList() - override val logTag: String = "WooBox" override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - XposedBridge.log("WooBox: 成功 Hook " + javaClass.simpleName) autoInitHooks(lpparam, SkipWaitingTime, //跳过 5/10秒等待时间 LockOneHundred, //锁定 100分 diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/Settings.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/Settings.kt index 441e3bf3..fa55fac8 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/Settings.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/Settings.kt @@ -2,16 +2,12 @@ package com.lt2333.simplicitytools.hook.app import com.lt2333.simplicitytools.hook.app.settings.ShowNotificationImportance import com.lt2333.simplicitytools.util.xposed.base.AppRegister -import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.callbacks.XC_LoadPackage object Settings: AppRegister() { override val packageName: String = "com.android.settings" - override val processName: List = emptyList() - override val logTag: String = "WooBox" override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - XposedBridge.log("WooBox: 成功 Hook "+javaClass.simpleName) autoInitHooks(lpparam, ShowNotificationImportance, //显示通知重要程度 ) diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/SystemUI.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/SystemUI.kt index 10ddf4dc..97af2c87 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/SystemUI.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/SystemUI.kt @@ -2,16 +2,12 @@ package com.lt2333.simplicitytools.hook.app import com.lt2333.simplicitytools.hook.app.systemui.* import com.lt2333.simplicitytools.util.xposed.base.AppRegister -import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.callbacks.XC_LoadPackage object SystemUI: AppRegister() { override val packageName: String = "com.android.systemui" - override val processName: List = emptyList() - override val logTag: String = "WooBox" override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - XposedBridge.log("WooBox: 成功 Hook "+javaClass.simpleName) autoInitHooks(lpparam, HideStatusBarIcon, //隐藏状态栏图标 HideBatteryIcon, //隐藏电池 diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/ThemeManager.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/ThemeManager.kt index 8b747f3f..9ca5426c 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/ThemeManager.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/ThemeManager.kt @@ -2,16 +2,12 @@ package com.lt2333.simplicitytools.hook.app import com.lt2333.simplicitytools.hook.app.thememanager.RemoveAds import com.lt2333.simplicitytools.util.xposed.base.AppRegister -import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.callbacks.XC_LoadPackage object ThemeManager: AppRegister() { override val packageName: String = "com.android.thememanager" - override val processName: List = emptyList() - override val logTag: String = "WooBox" override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - XposedBridge.log("WooBox: 成功 Hook "+javaClass.simpleName) autoInitHooks(lpparam, RemoveAds, //移除主题壁纸的广告 ) diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/Updater.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/Updater.kt index 8b52f3af..11fa964f 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/Updater.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/Updater.kt @@ -5,16 +5,12 @@ import com.github.kyuubiran.ezxhelper.utils.hookReturnConstant import com.github.kyuubiran.ezxhelper.utils.loadClassOrNull import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.AppRegister -import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.callbacks.XC_LoadPackage object Updater : AppRegister() { override val packageName: String = "com.android.updater" - override val processName: List = emptyList() - override val logTag: String = "WooBox" override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { - XposedBridge.log("WooBox: 成功 Hook " + javaClass.simpleName) hasEnable("remove_ota_validate") { Array(26) { "com.android.updater.common.utils.${'a' + it}" } diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/AllowUntrustedTouches.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/AllowUntrustedTouches.kt index f31755d8..bf4a77d2 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/AllowUntrustedTouches.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/AllowUntrustedTouches.kt @@ -12,4 +12,5 @@ object AllowUntrustedTouches : HookRegister() { name == "getBlockUntrustedTouchesMode" && parameterTypes[0] == Context::class.java }.hookReturnConstant(0) } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/DeleteOnPostNotification.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/DeleteOnPostNotification.kt index d872be7d..240c1966 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/DeleteOnPostNotification.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/DeleteOnPostNotification.kt @@ -15,4 +15,5 @@ object DeleteOnPostNotification : HookRegister() { } } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/DisableFlagSecure.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/DisableFlagSecure.kt index bda0d410..92782e84 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/DisableFlagSecure.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/DisableFlagSecure.kt @@ -15,4 +15,5 @@ object DisableFlagSecure : HookRegister() { } } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/MaxWallpaperScale.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/MaxWallpaperScale.kt index d38f8197..ddd0508a 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/MaxWallpaperScale.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/MaxWallpaperScale.kt @@ -15,4 +15,5 @@ object MaxWallpaperScale : HookRegister() { it.thisObject.putObject("mMaxWallpaperScale", value) } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/RemoveSmallWindowRestrictions.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/RemoveSmallWindowRestrictions.kt index 68d37b22..2f6185fe 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/RemoveSmallWindowRestrictions.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/RemoveSmallWindowRestrictions.kt @@ -42,4 +42,5 @@ object RemoveSmallWindowRestrictions : HookRegister() { } } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/SystemPropertiesHook.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/SystemPropertiesHook.kt index 04a9af99..c4962baf 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/SystemPropertiesHook.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/android/SystemPropertiesHook.kt @@ -18,4 +18,5 @@ object SystemPropertiesHook : HookRegister() { } } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/cast/ForceSupportSendApp.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/cast/ForceSupportSendApp.kt index 1def150b..7c171c6d 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/cast/ForceSupportSendApp.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/cast/ForceSupportSendApp.kt @@ -1,20 +1,20 @@ package com.lt2333.simplicitytools.hook.app.cast import com.github.kyuubiran.ezxhelper.utils.findMethod -import com.github.kyuubiran.ezxhelper.utils.hookMethod +import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister object ForceSupportSendApp : HookRegister() { + override fun init() { hasEnable("force_support_send_app") { findMethod("com.xiaomi.mirror.synergy.MiuiSynergySdk") { name == "isSupportSendApp" - }.hookMethod { - after { param -> - param.result = true - } + }.hookAfter { + it.result = true } } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/mediaeditor/UnlockUnlimitedCropping.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/mediaeditor/UnlockUnlimitedCropping.kt index 97de8966..2e4a996f 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/mediaeditor/UnlockUnlimitedCropping.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/mediaeditor/UnlockUnlimitedCropping.kt @@ -1,44 +1,29 @@ package com.lt2333.simplicitytools.hook.app.mediaeditor -import com.lt2333.simplicitytools.util.XSPUtils +import com.github.kyuubiran.ezxhelper.utils.findMethod +import com.github.kyuubiran.ezxhelper.utils.hookBefore +import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister -import de.robv.android.xposed.XC_MethodHook -import de.robv.android.xposed.XposedHelpers object UnlockUnlimitedCropping : HookRegister() { override fun init() { //解锁图库裁切最小值 - val classIfExists = XposedHelpers.findClassIfExists( - "com.miui.gallery.editor.photo.core.imports.obsoletes.Crop\$ResizeDetector", - getDefaultClassLoader() - ) - XposedHelpers.findAndHookMethod( - classIfExists, - "calculateMinSize", - object : XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - if (XSPUtils.getBoolean("unlock_unlimited_cropping",false)) { - param.result = 0 - } - } - }) + findMethod("com.miui.gallery.editor.photo.core.imports.obsoletes.Crop\$ResizeDetector") { + name == "calculateMinSize" + }.hookBefore { + hasEnable("unlock_unlimited_cropping") { + it.result = 0 + } + } //截图无限裁切 - val classIfExists2 = XposedHelpers.findClassIfExists( - "com.miui.gallery.editor.photo.screen.crop.ScreenCropView\$ResizeDetector", - getDefaultClassLoader() - ) - - XposedHelpers.findAndHookMethod( - classIfExists2, - "calculateMinSize", - object : XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - if (XSPUtils.getBoolean("unlock_unlimited_cropping",false)) { - param.result = 0 - } - } - }) + findMethod("com.miui.gallery.editor.photo.screen.crop.ScreenCropView\$ResizeDetector") { + name == "calculateMinSize" + }.hookBefore { + hasEnable("unlock_unlimited_cropping") { + it.result = 0 + } + } } } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/miuihome/AlwaysDisplayTime.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/miuihome/AlwaysDisplayTime.kt index c881dc50..40f4487a 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/miuihome/AlwaysDisplayTime.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/miuihome/AlwaysDisplayTime.kt @@ -1,27 +1,20 @@ package com.lt2333.simplicitytools.hook.app.miuihome -import com.lt2333.simplicitytools.util.XSPUtils +import com.github.kyuubiran.ezxhelper.utils.findMethod +import com.github.kyuubiran.ezxhelper.utils.hookBefore +import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister -import de.robv.android.xposed.XC_MethodHook -import de.robv.android.xposed.XposedHelpers object AlwaysDisplayTime : HookRegister() { override fun init() { - val classIfExists = XposedHelpers.findClassIfExists( - "com.miui.home.launcher.Workspace", - getDefaultClassLoader() - ) - XposedHelpers.findAndHookMethod( - classIfExists, - "isScreenHasClockGadget", Long::class.javaPrimitiveType, - object : XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - if (XSPUtils.getBoolean("home_time", false)) { - param.result = false - } - } - }) + findMethod("com.miui.home.launcher.Workspace") { + name == "isScreenHasClockGadget" && parameterCount == 1 + }.hookBefore { + hasEnable("home_time") { + it.result = false + } + } } } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/miuihome/DoubleTapController.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/miuihome/DoubleTapController.kt index 96e361a3..21232d10 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/miuihome/DoubleTapController.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/miuihome/DoubleTapController.kt @@ -1,4 +1,4 @@ -package com.yuk.miuihome.module +package com.lt2333.simplicitytools.hook.app.miuihome import android.content.Context import android.os.SystemClock @@ -48,4 +48,5 @@ class DoubleTapController internal constructor(mContext: Context) { } } } + } diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/miuihome/DoubleTapToSleep.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/miuihome/DoubleTapToSleep.kt index 3c2cdcc0..b19417e7 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/miuihome/DoubleTapToSleep.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/miuihome/DoubleTapToSleep.kt @@ -4,19 +4,16 @@ import android.content.Context import android.content.Intent import android.view.MotionEvent import com.github.kyuubiran.ezxhelper.utils.* -import com.lt2333.simplicitytools.util.* +import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister -import com.yuk.miuihome.module.DoubleTapController import de.robv.android.xposed.XposedHelpers object DoubleTapToSleep : HookRegister() { + override fun init() = hasEnable("double_tap_to_sleep") { hookAllConstructorAfter("com.miui.home.launcher.Workspace") { var mDoubleTapControllerEx = - XposedHelpers.getAdditionalInstanceField( - it.thisObject, - "mDoubleTapControllerEx" - ) + XposedHelpers.getAdditionalInstanceField(it.thisObject, "mDoubleTapControllerEx") if (mDoubleTapControllerEx != null) return@hookAllConstructorAfter mDoubleTapControllerEx = DoubleTapController((it.args[0] as Context)) XposedHelpers.setAdditionalInstanceField( @@ -25,7 +22,6 @@ object DoubleTapToSleep : HookRegister() { mDoubleTapControllerEx ) } - findMethod("com.miui.home.launcher.Workspace") { name == "dispatchTouchEvent" && parameterTypes[0] == MotionEvent::class.java }.hookBefore { @@ -47,4 +43,5 @@ object DoubleTapToSleep : HookRegister() { ) } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/powerkeeper/LockMaxFps.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/powerkeeper/LockMaxFps.kt index 16e63351..8bc98ee4 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/powerkeeper/LockMaxFps.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/powerkeeper/LockMaxFps.kt @@ -1,29 +1,20 @@ package com.lt2333.simplicitytools.hook.app.powerkeeper -import com.lt2333.simplicitytools.util.XSPUtils +import com.github.kyuubiran.ezxhelper.utils.findMethod +import com.github.kyuubiran.ezxhelper.utils.hookBefore +import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister -import de.robv.android.xposed.XC_MethodHook -import de.robv.android.xposed.XposedHelpers object LockMaxFps : HookRegister() { override fun init() { - val classIfExists = XposedHelpers.findClassIfExists( - "com.miui.powerkeeper.statemachine.DisplayFrameSetting", - getDefaultClassLoader() - ) - XposedHelpers.findAndHookMethod( - classIfExists, - "setScreenEffect", - String::class.java, Int::class.javaPrimitiveType, Int::class.javaPrimitiveType, - object : XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - super.beforeHookedMethod(param) - if (XSPUtils.getBoolean("lock_max_fps", false)) { - param.result = null - } - } - }) + findMethod("com.miui.powerkeeper.statemachine.DisplayFrameSetting") { + name == "setScreenEffect" && parameterCount == 3 + }.hookBefore { + hasEnable("lock_max_fps") { + it.result = null + } + } } } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/powerkeeper/PreventRecoveryOfBatteryOptimizationWhitelist.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/powerkeeper/PreventRecoveryOfBatteryOptimizationWhitelist.kt index 38398b86..c8598c0d 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/powerkeeper/PreventRecoveryOfBatteryOptimizationWhitelist.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/powerkeeper/PreventRecoveryOfBatteryOptimizationWhitelist.kt @@ -1,32 +1,22 @@ package com.lt2333.simplicitytools.hook.app.powerkeeper -import com.lt2333.simplicitytools.util.XSPUtils +import com.github.kyuubiran.ezxhelper.utils.findMethod +import com.github.kyuubiran.ezxhelper.utils.hookBefore +import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister -import de.robv.android.xposed.XC_MethodHook -import de.robv.android.xposed.XposedHelpers object PreventRecoveryOfBatteryOptimizationWhitelist : HookRegister() { override fun init() { - val classIfExists = XposedHelpers.findClassIfExists( - "com.miui.powerkeeper.statemachine.ForceDozeController", - getDefaultClassLoader() - ) - XposedHelpers.findAndHookMethod( - classIfExists, - "restoreWhiteListAppsIfQuitForceIdle", - object : XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - super.beforeHookedMethod(param) - if (XSPUtils.getBoolean( - "prevent_recovery_of_battery_optimization_white_list", - false - ) - ) { - param.result = null - } - } - }) + findMethod( + "com.miui.powerkeeper.statemachine.ForceDozeController" + ) { + name == "restoreWhiteListAppsIfQuitForceIdle" + }.hookBefore { + hasEnable("prevent_recovery_of_battery_optimization_white_list") { + it.result = null + } + } } } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/reardisplay/RearDisplayWeather.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/reardisplay/RearDisplayWeather.kt index 03a8db98..942697f5 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/reardisplay/RearDisplayWeather.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/reardisplay/RearDisplayWeather.kt @@ -1,6 +1,5 @@ -package com.lt2333.simplicitytools.hook.app.cast +package com.lt2333.simplicitytools.hook.app.reardisplay -import android.annotation.SuppressLint import android.graphics.Typeface import android.util.TypedValue import android.view.Gravity @@ -10,122 +9,97 @@ import android.widget.RelativeLayout import android.widget.TextView import cn.fkj233.ui.activity.dp2px import com.github.kyuubiran.ezxhelper.utils.findMethod -import com.github.kyuubiran.ezxhelper.utils.hookMethod +import com.github.kyuubiran.ezxhelper.utils.hookAfter +import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.view.WeatherView object RearDisplayWeather : HookRegister() { - @SuppressLint("ResourceType") + override fun init() { hasEnable("rear_show_weather") { findMethod("com.xiaomi.misubscreenui.light.aod.view.VerticalClockView") { name == "onFinishInflate" - }.hookMethod { - after { - val viewGroup = it.thisObject as ViewGroup - val context = viewGroup.context + }.hookAfter { + val viewGroup = it.thisObject as ViewGroup + val context = viewGroup.context - //获取原组件 - val gradientLayoutID = + //获取原组件 + val gradientLayoutID = + context.resources.getIdentifier("gradient_layout", "id", context.packageName) + val gradientLayout: ViewGroup = viewGroup.findViewById(gradientLayoutID) + val dateID = context.resources.getIdentifier("date", "id", context.packageName) + val date: TextView = viewGroup.findViewById(dateID) + + //创建天气组件 + val mWeatherView = WeatherView(context, false).apply { + gravity = Gravity.END + setTextAppearance( context.resources.getIdentifier( - "gradient_layout", - "id", + "Sub_Screen_Aod_date_s", + "style", context.packageName ) - val gradientLayout: ViewGroup = viewGroup.findViewById(gradientLayoutID) - - val dateID = - context.resources.getIdentifier("date", "id", context.packageName) - val date: TextView = viewGroup.findViewById(dateID) - - - //创建天气组件 - val mWeatherView = WeatherView(context, false).apply { - gravity = Gravity.END - setTextAppearance( - context.resources.getIdentifier( - "Sub_Screen_Aod_date_s", - "style", - context.packageName - ) - ) - typeface = Typeface.create("mipro-medium", Typeface.NORMAL) - setTextSize(TypedValue.COMPLEX_UNIT_DIP, 12f) - - } - gradientLayout.addView(mWeatherView, (gradientLayout.indexOfChild(date) + 1)) - - + ) + typeface = Typeface.create("mipro-medium", Typeface.NORMAL) + setTextSize(TypedValue.COMPLEX_UNIT_DIP, 12f) } + gradientLayout.addView(mWeatherView, (gradientLayout.indexOfChild(date) + 1)) } + findMethod("com.xiaomi.misubscreenui.light.aod.view.HorizontalClockView") { name == "onFinishInflate" - }.hookMethod { - before { - val viewGroup = it.thisObject as ViewGroup - val context = viewGroup.context + }.hookBefore { param -> + val viewGroup = param.thisObject as ViewGroup + val context = viewGroup.context - //获取原组件 - val gradientLayoutID = + //获取原组件 + val gradientLayoutID = + context.resources.getIdentifier("gradient_layout", "id", context.packageName) + val gradientLayout: RelativeLayout = viewGroup.findViewById(gradientLayoutID) + val dateID = context.resources.getIdentifier("date", "id", context.packageName) + val date: TextView = viewGroup.findViewById(dateID) + val dateParentLayout: ViewGroup = date.parent as ViewGroup + + //创建天气组件 + val mWeatherView = WeatherView(context, false).apply { + id = View.generateViewId() + gravity = Gravity.CENTER + maxLines = 1 + setTextAppearance( context.resources.getIdentifier( - "gradient_layout", - "id", + "Sub_Screen_Aod_date_s_horizontal", + "style", context.packageName ) - val gradientLayout: RelativeLayout = viewGroup.findViewById(gradientLayoutID) - - val dateID = - context.resources.getIdentifier("date", "id", context.packageName) - val date: TextView = viewGroup.findViewById(dateID) - - val dateParentLayout: ViewGroup = date.parent as ViewGroup - - - //创建天气组件 - val mWeatherView = WeatherView(context, false).apply { - id = View.generateViewId() - gravity = Gravity.CENTER - maxLines = 1 - setTextAppearance( - context.resources.getIdentifier( - "Sub_Screen_Aod_date_s_horizontal", - "style", - context.packageName - ) - ) - typeface = Typeface.create("mipro-medium", 0) - - layoutParams = RelativeLayout.LayoutParams( - RelativeLayout.LayoutParams.WRAP_CONTENT, dp2px(context, 30f) - ).also { - it.addRule(RelativeLayout.END_OF, dateID) - it.marginStart = dp2px(context, 3f) - it.marginEnd = dp2px(context, 3f) - } - } - dateParentLayout.addView( - mWeatherView, - (dateParentLayout.indexOfChild(date) + 1) ) - - //电池位置 - val batteryID = - context.resources.getIdentifier( - "battery_container", - "id", - context.packageName - ) - val battery: ViewGroup = viewGroup.findViewById(batteryID) - - battery.layoutParams = RelativeLayout.LayoutParams( - RelativeLayout.LayoutParams.WRAP_CONTENT, dp2px(context, 30f) + typeface = Typeface.create("mipro-medium", Typeface.NORMAL) + layoutParams = RelativeLayout.LayoutParams( + RelativeLayout.LayoutParams.WRAP_CONTENT, + dp2px(context, 30f) ).also { - it.addRule(RelativeLayout.END_OF, mWeatherView.id) + it.addRule(RelativeLayout.END_OF, dateID) + it.marginStart = dp2px(context, 3f) + it.marginEnd = dp2px(context, 3f) } - gradientLayout.setPadding(0, dp2px(context,5f),0,0) } + dateParentLayout.addView(mWeatherView, (dateParentLayout.indexOfChild(date) + 1)) + + //电池位置 + val batteryID = + context.resources.getIdentifier("battery_container", "id", context.packageName) + val battery: ViewGroup = viewGroup.findViewById(batteryID) + + battery.layoutParams = RelativeLayout.LayoutParams( + RelativeLayout.LayoutParams.WRAP_CONTENT, + dp2px(context, 30f) + ).also { + it.addRule(RelativeLayout.END_OF, mWeatherView.id) + } + gradientLayout.setPadding(0, dp2px(context, 5f), 0, 0) } } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/screenshot/UnlockUnlimitedCropping.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/screenshot/UnlockUnlimitedCropping.kt index c37a1dfc..db510555 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/screenshot/UnlockUnlimitedCropping.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/screenshot/UnlockUnlimitedCropping.kt @@ -1,29 +1,21 @@ package com.lt2333.simplicitytools.hook.app.screenshot -import com.lt2333.simplicitytools.util.XSPUtils +import com.github.kyuubiran.ezxhelper.utils.findMethod +import com.github.kyuubiran.ezxhelper.utils.hookBefore +import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister -import de.robv.android.xposed.XC_MethodHook -import de.robv.android.xposed.XposedHelpers object UnlockUnlimitedCropping : HookRegister() { override fun init() { //截图无限裁切 - val classIfExists2 = XposedHelpers.findClassIfExists( - "com.miui.gallery.editor.photo.screen.crop.ScreenCropView\$b", - getDefaultClassLoader() - ) - - XposedHelpers.findAndHookMethod( - classIfExists2, - "a", - object : XC_MethodHook() { - override fun beforeHookedMethod(param: MethodHookParam) { - if (XSPUtils.getBoolean("unlock_unlimited_cropping",false)) { - param.result = 0 - } - } - }) + findMethod("com.miui.gallery.editor.photo.screen.crop.ScreenCropView\$b") { + name == "a" + }.hookBefore { + hasEnable("unlock_unlimited_cropping") { + it.result = 0 + } + } } } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/LockOneHundred.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/LockOneHundred.kt index e6efac26..ac8714d6 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/LockOneHundred.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/LockOneHundred.kt @@ -7,6 +7,7 @@ import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister object LockOneHundred : HookRegister() { + override fun init() { //防止点击重新检测 findMethod("com.miui.securityscan.ui.main.MainContentFrame") { @@ -26,4 +27,5 @@ object LockOneHundred : HookRegister() { } } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/RemoveOpenAppConfirmationPopup.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/RemoveOpenAppConfirmationPopup.kt index 306bee39..7ca4c37a 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/RemoveOpenAppConfirmationPopup.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/RemoveOpenAppConfirmationPopup.kt @@ -7,6 +7,7 @@ import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister object RemoveOpenAppConfirmationPopup : HookRegister() { + override fun init() { findMethod("android.widget.TextView") { name == "setText" && parameterTypes[0] == CharSequence::class.java @@ -28,4 +29,5 @@ object RemoveOpenAppConfirmationPopup : HookRegister() { } } } + } diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/ShowBatteryTemperature.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/ShowBatteryTemperature.kt index 09890e5c..3c3d7b24 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/ShowBatteryTemperature.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/ShowBatteryTemperature.kt @@ -17,7 +17,7 @@ import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.getObjectAs import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookBefore -import com.lt2333.simplicitytools.util.* +import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister object ShowBatteryTemperature : HookRegister() { @@ -100,4 +100,5 @@ object ShowBatteryTemperature : HookRegister() { linearLayout.addView(tempView) } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/SkipWaitingTime.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/SkipWaitingTime.kt index 04b94318..608dbb37 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/SkipWaitingTime.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/securitycenter/SkipWaitingTime.kt @@ -6,6 +6,7 @@ import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister object SkipWaitingTime : HookRegister() { + override fun init() { findMethod("android.widget.TextView") { name == "setText" && parameterCount == 4 @@ -26,4 +27,5 @@ object SkipWaitingTime : HookRegister() { } } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/settings/ShowNotificationImportance.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/settings/ShowNotificationImportance.kt index 700822a8..3fb0b44c 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/settings/ShowNotificationImportance.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/settings/ShowNotificationImportance.kt @@ -2,7 +2,7 @@ package com.lt2333.simplicitytools.hook.app.settings import android.app.NotificationChannel import com.github.kyuubiran.ezxhelper.utils.* -import com.lt2333.simplicitytools.util.* +import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.util.xposed.base.HookRegister import de.robv.android.xposed.XposedHelpers @@ -13,24 +13,36 @@ object ShowNotificationImportance : HookRegister() { name == "removeDefaultPrefs" }.hookBefore { if (!XSPUtils.getBoolean("show_notification_importance", false)) return@hookBefore - val importance = it.thisObject.invokeMethodAuto("findPreference", "importance") ?: return@hookBefore + val importance = + it.thisObject.invokeMethodAuto("findPreference", "importance") ?: return@hookBefore val mChannel = it.thisObject.getObject("mChannel") as NotificationChannel - val index = importance.invokeMethodAuto("findSpinnerIndexOfValue", mChannel.importance.toString()) as Int + val index = importance.invokeMethodAutoAs( + "findSpinnerIndexOfValue", + mChannel.importance.toString() + ) as Int if (index < 0) return@hookBefore importance.invokeMethodAuto("setValueIndex", index) - XposedHelpers.setAdditionalInstanceField(importance, "channelNotificationSettings", it.thisObject) + XposedHelpers.setAdditionalInstanceField( + importance, + "channelNotificationSettings", + it.thisObject + ) it.result = null } findMethod("androidx.preference.Preference"){ - name == "callChangeListener" && parameterTypes[0]==Any::class.java + name == "callChangeListener" && parameterTypes[0] == Any::class.java }.hookAfter { - val channelNotificationSettings = XposedHelpers.getAdditionalInstanceField(it.thisObject, "channelNotificationSettings") ?: return@hookAfter + val channelNotificationSettings = XposedHelpers.getAdditionalInstanceField( + it.thisObject, + "channelNotificationSettings" + ) ?: return@hookAfter val mChannel = channelNotificationSettings.getObject("mChannel") as NotificationChannel mChannel.invokeMethodAuto("setImportance", (it.args[0] as String).toInt()) - val mBackend = channelNotificationSettings.getObjectOrNull("mBackend") ?: return@hookAfter - val mPkg = channelNotificationSettings.getObject("mPkg") as String - val mUid = channelNotificationSettings.getObject("mUid") as Int + val mBackend = + channelNotificationSettings.getObjectOrNull("mBackend") ?: return@hookAfter + val mPkg = channelNotificationSettings.getObjectAs("mPkg") + val mUid = channelNotificationSettings.getObjectAs("mUid") mBackend.invokeMethodAuto("updateChannel", mPkg, mUid, mChannel) } } diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/BatteryPercentage.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/BatteryPercentage.kt index ee6cb1a3..1d1af691 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/BatteryPercentage.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/BatteryPercentage.kt @@ -3,21 +3,23 @@ package com.lt2333.simplicitytools.hook.app.systemui import android.util.TypedValue import android.widget.TextView import com.github.kyuubiran.ezxhelper.utils.findMethod -import com.github.kyuubiran.ezxhelper.utils.getObject +import com.github.kyuubiran.ezxhelper.utils.getObjectAs import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.util.xposed.base.HookRegister object BatteryPercentage : HookRegister() { + override fun init() { val size = XSPUtils.getFloat("battery_percentage_font_size", 0f) if (size == 0f) return findMethod("com.android.systemui.statusbar.views.MiuiBatteryMeterView") { name == "updateResources" }.hookAfter { - (it.thisObject.getObject("mBatteryPercentView") as TextView).setTextSize( + (it.thisObject.getObjectAs("mBatteryPercentView")).setTextSize( TypedValue.COMPLEX_UNIT_DIP, size ) } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/CanNotificationSlide.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/CanNotificationSlide.kt index 1e40dd93..7fee5c08 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/CanNotificationSlide.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/CanNotificationSlide.kt @@ -1,7 +1,7 @@ package com.lt2333.simplicitytools.hook.app.systemui import com.github.kyuubiran.ezxhelper.utils.findMethod -import com.github.kyuubiran.ezxhelper.utils.hookMethod +import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister @@ -10,11 +10,9 @@ object CanNotificationSlide: HookRegister() { override fun init() { findMethod("com.android.systemui.statusbar.notification.NotificationSettingsManager") { name == "canSlide" - }.hookMethod { - after { param -> - hasEnable("can_notification_slide") { - param.result = true - } + }.hookAfter { + hasEnable("can_notification_slide") { + it.result = true } } } diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/ControlCenterWeather.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/ControlCenterWeather.kt index 9c76d117..ae30aeee 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/ControlCenterWeather.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/ControlCenterWeather.kt @@ -17,29 +17,21 @@ import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.view.WeatherView object ControlCenterWeather : HookRegister() { + override fun init() = hasEnable("control_center_weather") { var mWeatherView: TextView? = null var mConstraintLayout: ConstraintLayout? = null val isDisplayCity = XSPUtils.getBoolean("control_center_weather_city", false) findMethod("com.android.systemui.controlcenter.phone.widget.QSControlCenterHeaderView") { name == "onFinishInflate" - }.hookAfter { - val viewGroup = it.thisObject as ViewGroup + }.hookAfter { param -> + val viewGroup = param.thisObject as ViewGroup val context = viewGroup.context // MIUI编译时间大于 2022-03-12 00:00:00 且为内测版 - if (SystemProperties.get(context, "ro.build.date.utc")!! - .toInt() >= 1647014400 && - - !SystemProperties.get( - context, - "ro.build.version.incremental" - )!!.endsWith("DEV") && - - !SystemProperties.get( - context, - "ro.build.version.incremental" - )!!.endsWith("XM") + if (SystemProperties[context, "ro.build.date.utc"]!!.toInt() >= 1647014400 && !SystemProperties[context, "ro.build.version.incremental"]!!.endsWith( + "DEV" + ) && !SystemProperties[context, "ro.build.version.incremental"]!!.endsWith("XM") ) { //获取原组件 val big_time_ID = @@ -69,18 +61,15 @@ object ControlCenterWeather : HookRegister() { (big_time.parent as ViewGroup).addView(mConstraintLayout, 0) - //从原布局中删除组件 (big_time.parent as ViewGroup).removeView(big_time) (date_time.parent as ViewGroup).removeView(date_time) - //添加组件至新布局 mConstraintLayout!!.addView(big_time) mConstraintLayout!!.addView(date_time) //组件属性 - val date_time_LP = ConstraintLayout.LayoutParams( ConstraintLayout.LayoutParams.WRAP_CONTENT, ConstraintLayout.LayoutParams.WRAP_CONTENT @@ -190,18 +179,9 @@ object ControlCenterWeather : HookRegister() { val context = viewGroup.context val mOrientation = viewGroup.getObject("mOrientation") as Int // MIUI编译时间大于 2022-03-12 00:00:00 且为内测版 - if (SystemProperties.get(context, "ro.build.date.utc")!! - .toInt() >= 1647014400 && - - !SystemProperties.get( - context, - "ro.build.version.incremental" - )!!.endsWith("DEV") && - - !SystemProperties.get( - context, - "ro.build.version.incremental" - )!!.endsWith("XM") + if (SystemProperties[context, "ro.build.date.utc"]!!.toInt() >= 1647014400 && !SystemProperties[context, "ro.build.version.incremental"]!!.endsWith( + "DEV" + ) && !SystemProperties[context, "ro.build.version.incremental"]!!.endsWith("XM") ) { if (mOrientation == 1) { mConstraintLayout!!.visibility = View.VISIBLE @@ -217,4 +197,5 @@ object ControlCenterWeather : HookRegister() { } } } + } diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/CustomMobileTypeText.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/CustomMobileTypeText.kt index 432bf84b..66743922 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/CustomMobileTypeText.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/CustomMobileTypeText.kt @@ -7,6 +7,7 @@ import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister object CustomMobileTypeText : HookRegister() { + override fun init() = hasEnable("custom_mobile_type_text_switch") { findMethod("com.android.systemui.statusbar.policy.MobileSignalController") { name == "getMobileTypeName" && parameterTypes[0] == Int::class.java @@ -14,4 +15,5 @@ object CustomMobileTypeText : HookRegister() { it.result = XSPUtils.getString("custom_mobile_type_text", "5G") } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/DoubleLineNetworkSpeed.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/DoubleLineNetworkSpeed.kt index e22e8f19..75b49800 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/DoubleLineNetworkSpeed.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/DoubleLineNetworkSpeed.kt @@ -52,9 +52,9 @@ object DoubleLineNetworkSpeed : HookRegister() { mView.isSingleLine = false mView.setLineSpacing(0F, 0.8F) if (getDualAlign == 0) { - mView.gravity = Gravity.LEFT or Gravity.CENTER_VERTICAL + mView.gravity = Gravity.START or Gravity.CENTER_VERTICAL } else { - mView.gravity = Gravity.RIGHT or Gravity.CENTER_VERTICAL + mView.gravity = Gravity.END or Gravity.CENTER_VERTICAL } } @@ -64,9 +64,7 @@ object DoubleLineNetworkSpeed : HookRegister() { if (getDualAlign == 0) { it.result = "$upIcon ${getTotalUpSpeed(it.args[0] as Context)}\n${downIcon} ${ - getTotalDownloadSpeed( - it.args[0] as Context - ) + getTotalDownloadSpeed(it.args[0] as Context) }" } else { it.result = @@ -81,7 +79,7 @@ object DoubleLineNetworkSpeed : HookRegister() { //获取总的上行速度 private fun getTotalUpSpeed(context: Context): String { - var totalUpSpeed: Float + val totalUpSpeed: Float val currentTotalTxBytes = TrafficStats.getTotalTxBytes() val nowTimeStampTotalUp = System.currentTimeMillis() @@ -89,7 +87,7 @@ object DoubleLineNetworkSpeed : HookRegister() { //计算上传速度 val bytes = (currentTotalTxBytes - mLastTotalUp) * 1000 / (nowTimeStampTotalUp - lastTimeStampTotalUp).toFloat() - var unit: String + val unit: String if (bytes >= 1048576) { totalUpSpeed = @@ -126,7 +124,7 @@ object DoubleLineNetworkSpeed : HookRegister() { //获取总的下行速度 private fun getTotalDownloadSpeed(context: Context): String { - var totalDownSpeed: Float + val totalDownSpeed: Float val currentTotalRxBytes = TrafficStats.getTotalRxBytes() val nowTimeStampTotalDown = System.currentTimeMillis() @@ -134,7 +132,7 @@ object DoubleLineNetworkSpeed : HookRegister() { val bytes = (currentTotalRxBytes - mLastTotalDown) * 1000 / (nowTimeStampTotalDown - lastTimeStampTotalDown).toFloat() - var unit: String + val unit: String if (bytes >= 1048576) { totalDownSpeed = diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideBatteryIcon.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideBatteryIcon.kt index 8b05463c..2454bb06 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideBatteryIcon.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideBatteryIcon.kt @@ -6,6 +6,7 @@ import android.widget.ImageView import android.widget.TextView import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.getObject +import com.github.kyuubiran.ezxhelper.utils.getObjectAs import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister @@ -18,19 +19,19 @@ object HideBatteryIcon : HookRegister() { }.hookAfter { //隐藏电池图标 hasEnable("hide_battery_icon") { - (it.thisObject.getObject("mBatteryIconView") as ImageView).visibility = View.GONE + (it.thisObject.getObjectAs("mBatteryIconView")).visibility = View.GONE if (it.thisObject.getObject("mBatteryStyle") == 1) { - (it.thisObject.getObject("mBatteryDigitalView") as FrameLayout).visibility = + (it.thisObject.getObjectAs("mBatteryDigitalView")).visibility = View.GONE } } //隐藏电池内的百分比 hasEnable("hide_battery_percentage_icon") { - (it.thisObject.getObject("mBatteryPercentMarkView") as TextView).textSize = 0F + (it.thisObject.getObjectAs("mBatteryPercentMarkView")).textSize = 0F } //隐藏电池百分号 hasEnable("hide_battery_percentage_icon") { - (it.thisObject.getObject("mBatteryPercentMarkView") as TextView).textSize = 0F + (it.thisObject.getObjectAs("mBatteryPercentMarkView")).textSize = 0F } } @@ -39,11 +40,12 @@ object HideBatteryIcon : HookRegister() { }.hookAfter { //隐藏电池充电图标 hasEnable("hide_battery_charging_icon") { - (it.thisObject.getObject("mBatteryChargingInView") as ImageView).visibility = + (it.thisObject.getObjectAs("mBatteryChargingInView")).visibility = View.GONE - (it.thisObject.getObject("mBatteryChargingView") as ImageView).visibility = + (it.thisObject.getObjectAs("mBatteryChargingView")).visibility = View.GONE } } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideHDIcon.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideHDIcon.kt index 96012f0f..7d921bd3 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideHDIcon.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideHDIcon.kt @@ -3,13 +3,14 @@ package com.lt2333.simplicitytools.hook.app.systemui import android.view.View import android.widget.ImageView import com.github.kyuubiran.ezxhelper.utils.findMethod -import com.github.kyuubiran.ezxhelper.utils.getObject +import com.github.kyuubiran.ezxhelper.utils.getObjectAs import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister import de.robv.android.xposed.XC_MethodHook object HideHDIcon : HookRegister() { + override fun init() { findMethod("com.android.systemui.statusbar.StatusBarMobileView") { name == "initViewState" && parameterCount == 1 @@ -26,14 +27,14 @@ object HideHDIcon : HookRegister() { private fun hide(it: XC_MethodHook.MethodHookParam) { hasEnable("hide_big_hd_icon") { - (it.thisObject.getObject("mVolte") as ImageView).visibility = View.GONE + (it.thisObject.getObjectAs("mVolte")).visibility = View.GONE } hasEnable("hide_small_hd_icon") { - (it.thisObject.getObject("mSmallHd") as ImageView).visibility = View.GONE + (it.thisObject.getObjectAs("mSmallHd")).visibility = View.GONE } hasEnable("hide_hd_no_service_icon") { - (it.thisObject.getObject("mVolteNoService") as ImageView).visibility = - View.GONE + (it.thisObject.getObjectAs("mVolteNoService")).visibility = View.GONE } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideMobileActivityIcon.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideMobileActivityIcon.kt index 09b66e76..ee19a4e8 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideMobileActivityIcon.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideMobileActivityIcon.kt @@ -3,13 +3,14 @@ package com.lt2333.simplicitytools.hook.app.systemui import android.view.View import android.widget.ImageView import com.github.kyuubiran.ezxhelper.utils.findMethod -import com.github.kyuubiran.ezxhelper.utils.getObject +import com.github.kyuubiran.ezxhelper.utils.getObjectAs import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister import de.robv.android.xposed.XC_MethodHook object HideMobileActivityIcon : HookRegister() { + override fun init() { findMethod("com.android.systemui.statusbar.StatusBarMobileView") { name == "initViewState" && parameterCount == 1 @@ -26,8 +27,9 @@ object HideMobileActivityIcon : HookRegister() { private fun hide(it: XC_MethodHook.MethodHookParam) { hasEnable("hide_mobile_activity_icon") { - (it.thisObject.getObject("mLeftInOut") as ImageView).visibility = View.GONE - (it.thisObject.getObject("mRightInOut") as ImageView).visibility = View.GONE + (it.thisObject.getObjectAs("mLeftInOut")).visibility = View.GONE + (it.thisObject.getObjectAs("mRightInOut")).visibility = View.GONE } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideMobileTypeIcon.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideMobileTypeIcon.kt index 8485d5df..5dfa19f1 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideMobileTypeIcon.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideMobileTypeIcon.kt @@ -4,7 +4,7 @@ import android.view.View import android.widget.ImageView import android.widget.TextView import com.github.kyuubiran.ezxhelper.utils.findMethod -import com.github.kyuubiran.ezxhelper.utils.getObject +import com.github.kyuubiran.ezxhelper.utils.getObjectAs import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.util.hasEnable @@ -32,20 +32,21 @@ object HideMobileTypeIcon : HookRegister() { private fun hideMobileTypeIcon(it: XC_MethodHook.MethodHookParam) { hasEnable("hide_mobile_type_icon") { if (isBigType) { - (it.thisObject.getObject("mMobileType") as TextView).visibility = + (it.thisObject.getObjectAs("mMobileType")).visibility = View.GONE - (it.thisObject.getObject("mMobileTypeImage") as ImageView).visibility = + (it.thisObject.getObjectAs("mMobileTypeImage")).visibility = View.GONE - (it.thisObject.getObject("mMobileTypeSingle") as TextView).visibility = + (it.thisObject.getObjectAs("mMobileTypeSingle")).visibility = View.GONE } else { - (it.thisObject.getObject("mMobileType") as TextView).visibility = + (it.thisObject.getObjectAs("mMobileType")).visibility = View.INVISIBLE - (it.thisObject.getObject("mMobileTypeImage") as ImageView).visibility = + (it.thisObject.getObjectAs("mMobileTypeImage")).visibility = View.INVISIBLE - (it.thisObject.getObject("mMobileTypeSingle") as TextView).visibility = + (it.thisObject.getObjectAs("mMobileTypeSingle")).visibility = View.INVISIBLE } } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideNetworkSpeedSplitter.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideNetworkSpeedSplitter.kt index d95b94a6..00e323ca 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideNetworkSpeedSplitter.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideNetworkSpeedSplitter.kt @@ -7,6 +7,7 @@ import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister object HideNetworkSpeedSplitter : HookRegister() { + override fun init() { findMethod("com.android.systemui.statusbar.views.NetworkSpeedSplitter") { name == "init" @@ -17,4 +18,5 @@ object HideNetworkSpeedSplitter : HookRegister() { } } } + } diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideSimIcon.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideSimIcon.kt index ee4880c9..d720c1b7 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideSimIcon.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideSimIcon.kt @@ -6,6 +6,7 @@ import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister object HideSimIcon : HookRegister() { + override fun init() { findMethod("com.android.systemui.statusbar.phone.StatusBarSignalPolicy") { name == "hasCorrectSubs" && parameterTypes[0] == MutableList::class.java @@ -20,4 +21,5 @@ object HideSimIcon : HookRegister() { } } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideStatusBarIcon.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideStatusBarIcon.kt index f3434364..2ea637d6 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideStatusBarIcon.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideStatusBarIcon.kt @@ -7,6 +7,7 @@ import com.lt2333.simplicitytools.util.xposed.base.HookRegister import de.robv.android.xposed.XC_MethodHook object HideStatusBarIcon : HookRegister() { + override fun init() { findMethod("com.android.systemui.statusbar.phone.StatusBarIconControllerImpl") { name == "setIconVisibility" && parameterCount == 2 @@ -82,4 +83,5 @@ object HideStatusBarIcon : HookRegister() { } } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideStatusBarNetworkSpeedSecond.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideStatusBarNetworkSpeedSecond.kt index 6fd6158e..fe5de021 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideStatusBarNetworkSpeedSecond.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideStatusBarNetworkSpeedSecond.kt @@ -6,19 +6,22 @@ import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister object HideStatusBarNetworkSpeedSecond : HookRegister() { + override fun init() { findMethod("com.android.systemui.statusbar.views.NetworkSpeedView") { - name == "setNetworkSpeed" && parameterTypes[0] == String::class.java + name == "setNetworkSpeed" && parameterCount == 1 }.hookBefore { hasEnable("hide_status_bar_network_speed_second") { if (it.args[0] != null) { - (it.args[0] as String) + val mText = (it.args[0] as String) .replace("/", "") .replace("s", "") - .replace("'", "") + .replace("\'", "") .replace("วิ", "") + it.args[0] = mText } } } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideWifiActivityIcon.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideWifiActivityIcon.kt index e5ef91fb..211eab32 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideWifiActivityIcon.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/HideWifiActivityIcon.kt @@ -4,7 +4,7 @@ import android.view.View import android.widget.ImageView import android.widget.TextView import com.github.kyuubiran.ezxhelper.utils.findMethod -import com.github.kyuubiran.ezxhelper.utils.getObject +import com.github.kyuubiran.ezxhelper.utils.getObjectAs import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister @@ -29,12 +29,12 @@ object HideWifiActivityIcon : HookRegister() { private fun hide(it: XC_MethodHook.MethodHookParam) { //隐藏WIFI箭头 hasEnable("hide_wifi_activity_icon") { - (it.thisObject.getObject("mWifiActivityView") as ImageView).visibility = + (it.thisObject.getObjectAs("mWifiActivityView")).visibility = View.INVISIBLE } //隐藏WIFI标准图标 hasEnable("hide_wifi_standard_icon") { - (it.thisObject.getObject("mWifiStandardView") as TextView).visibility = + (it.thisObject.getObjectAs("mWifiStandardView")).visibility = View.INVISIBLE } } diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/LockScreenClockDisplaySeconds.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/LockScreenClockDisplaySeconds.kt index f47ff208..91fe5b81 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/LockScreenClockDisplaySeconds.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/LockScreenClockDisplaySeconds.kt @@ -37,8 +37,7 @@ object LockScreenClockDisplaySeconds : HookRegister() { } } Timer().scheduleAtFixedRate(T(), 1000 - System.currentTimeMillis() % 1000, 1000) - } catch (e: Exception) { - + } catch (_: Exception) { } } @@ -60,7 +59,7 @@ object LockScreenClockDisplaySeconds : HookRegister() { } private fun updateTime(it: XC_MethodHook.MethodHookParam, isVertical: Boolean) { - val textV = it.thisObject.getObject("mTimeText") as TextView + val textV = it.thisObject.getObjectAs("mTimeText") val c: Context = textV.context Log.d( @@ -82,12 +81,13 @@ object LockScreenClockDisplaySeconds : HookRegister() { @SuppressLint("SimpleDateFormat") private fun getTime(is24: Boolean, isVertical: Boolean): String { var timePattern = "" - if (isVertical) { //垂直 - timePattern += if (is24) "HH\nmm\nss" else "hh\nmm\nss" + timePattern += if (isVertical) { //垂直 + if (is24) "HH\nmm\nss" else "hh\nmm\nss" } else { //水平 - timePattern += if (is24) "HH:mm:ss" else "h:mm:ss" + if (is24) "HH:mm:ss" else "h:mm:ss" } timePattern = SimpleDateFormat(timePattern).format(nowTime) return timePattern } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/LockScreenCurrent.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/LockScreenCurrent.kt index 5dac7fc3..79ed47cb 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/LockScreenCurrent.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/LockScreenCurrent.kt @@ -93,7 +93,7 @@ object LockScreenCurrent : HookRegister() { val i: Int = bufferedReader.readLine().toInt(10) bufferedReader.close() return i - } catch (localException: java.lang.Exception) { + } catch (_: java.lang.Exception) { } return defaultValue } diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/LockScreenDoubleTapToSleep.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/LockScreenDoubleTapToSleep.kt index ab67d25d..1ca02c1c 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/LockScreenDoubleTapToSleep.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/LockScreenDoubleTapToSleep.kt @@ -11,8 +11,10 @@ import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister import de.robv.android.xposed.XposedHelpers +import kotlin.math.abs object LockScreenDoubleTapToSleep : HookRegister() { + override fun init() = hasEnable("lock_screen_double_tap_to_sleep") { findMethod("com.android.systemui.statusbar.phone.NotificationsQuickSettingsContainer") { name == "onFinishInflate" @@ -35,7 +37,7 @@ object LockScreenDoubleTapToSleep : HookRegister() { currentTouchTime = System.currentTimeMillis() currentTouchX = event.x currentTouchY = event.y - if (currentTouchTime - lastTouchTime < 250L && Math.abs(currentTouchX - lastTouchX) < 100f && Math.abs( + if (currentTouchTime - lastTouchTime < 250L && abs(currentTouchX - lastTouchX) < 100f && abs( currentTouchY - lastTouchY ) < 100f ) { @@ -64,4 +66,5 @@ object LockScreenDoubleTapToSleep : HookRegister() { }) } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/MaximumNumberOfNotificationIcons.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/MaximumNumberOfNotificationIcons.kt index 47e6e477..ba12c750 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/MaximumNumberOfNotificationIcons.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/MaximumNumberOfNotificationIcons.kt @@ -8,6 +8,7 @@ import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.util.xposed.base.HookRegister object MaximumNumberOfNotificationIcons : HookRegister() { + override fun init() { val icons = XSPUtils.getInt("maximum_number_of_notification_icons", 3) val dots = XSPUtils.getInt("maximum_number_of_notification_dots", 3) @@ -26,4 +27,5 @@ object MaximumNumberOfNotificationIcons : HookRegister() { it.thisObject.invokeMethod("updateState") } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/NotificationWeather.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/NotificationWeather.kt index 0c7370a5..cc4618b5 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/NotificationWeather.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/NotificationWeather.kt @@ -10,7 +10,9 @@ import android.widget.Toast import androidx.constraintlayout.widget.ConstraintLayout import cn.fkj233.ui.activity.dp2px import com.github.kyuubiran.ezxhelper.utils.* -import com.lt2333.simplicitytools.util.* +import com.lt2333.simplicitytools.util.SystemProperties +import com.lt2333.simplicitytools.util.XSPUtils +import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.view.WeatherView @@ -22,23 +24,14 @@ object NotificationWeather : HookRegister() { val isDisplayCity = XSPUtils.getBoolean("notification_weather_city", false) findMethod("com.android.systemui.qs.MiuiNotificationHeaderView") { name == "onFinishInflate" - }.hookAfter { - val viewGroup = it.thisObject as ViewGroup + }.hookAfter { param -> + val viewGroup = param.thisObject as ViewGroup val context = viewGroup.context // MIUI编译时间大于 2022-03-12 00:00:00 且为内测版 - if (SystemProperties.get(context, "ro.build.date.utc")!! - .toInt() >= 1647014400 && - - !SystemProperties.get( - context, - "ro.build.version.incremental" - )!!.endsWith("DEV") && - - !SystemProperties.get( - context, - "ro.build.version.incremental" - )!!.endsWith("XM") + if (SystemProperties[context, "ro.build.date.utc"]!!.toInt() >= 1647014400 && !SystemProperties[context, "ro.build.version.incremental"]!!.endsWith( + "DEV" + ) && !SystemProperties[context, "ro.build.version.incremental"]!!.endsWith("XM") ) { //获取原组件 val big_time_ID = @@ -188,18 +181,9 @@ object NotificationWeather : HookRegister() { val context = viewGroup.context val mOrientation = viewGroup.getObject("mOrientation") as Int // MIUI编译时间大于 2022-03-12 00:00:00 且为内测版 - if (SystemProperties.get(context, "ro.build.date.utc")!! - .toInt() >= 1647014400 && - - !SystemProperties.get( - context, - "ro.build.version.incremental" - )!!.endsWith("DEV") && - - !SystemProperties.get( - context, - "ro.build.version.incremental" - )!!.endsWith("XM") + if (SystemProperties[context, "ro.build.date.utc"]!!.toInt() >= 1647014400 && !SystemProperties[context, "ro.build.version.incremental"]!!.endsWith( + "DEV" + ) && !SystemProperties[context, "ro.build.version.incremental"]!!.endsWith("XM") ) { if (mOrientation == 1) { mConstraintLayout!!.visibility = View.VISIBLE diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/OldNotificationWeather.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/OldNotificationWeather.kt index 2d1e9419..9766ca8f 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/OldNotificationWeather.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/OldNotificationWeather.kt @@ -13,6 +13,7 @@ import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.view.WeatherView object OldNotificationWeather : HookRegister() { + override fun init() = hasEnable("notification_weather") { var mWeatherView: TextView? = null val isDisplayCity = XSPUtils.getBoolean("notification_weather_city", false) @@ -93,4 +94,5 @@ object OldNotificationWeather : HookRegister() { } } } + } diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/OldQSCustom.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/OldQSCustom.kt index 193610a8..1e7e29d4 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/OldQSCustom.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/OldQSCustom.kt @@ -9,9 +9,9 @@ import com.github.kyuubiran.ezxhelper.utils.putObject import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister -import de.robv.android.xposed.XposedHelpers object OldQSCustom : HookRegister() { + override fun init() = hasEnable("old_qs_custom_switch") { val mRows = XSPUtils.getInt("qs_custom_rows", 3) val mRowsHorizontal = XSPUtils.getInt("qs_custom_rows_horizontal", 2) @@ -39,11 +39,12 @@ object OldQSCustom : HookRegister() { val viewGroup = it.thisObject as ViewGroup val mConfiguration: Configuration = viewGroup.context.resources.configuration if (mConfiguration.orientation == Configuration.ORIENTATION_PORTRAIT) { - XposedHelpers.setObjectField(viewGroup, "mMaxAllowedRows", mRows) + viewGroup.putObject("mMaxAllowedRows", mRows) } else { - XposedHelpers.setObjectField(viewGroup, "mMaxAllowedRows", mRowsHorizontal) + viewGroup.putObject("mMaxAllowedRows", mRowsHorizontal) } viewGroup.requestLayout() } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/RemoveLockScreenCamera.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/RemoveLockScreenCamera.kt index d71234c9..5eccbe02 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/RemoveLockScreenCamera.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/RemoveLockScreenCamera.kt @@ -38,5 +38,6 @@ object RemoveLockScreenCamera : HookRegister() { } } } + } diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/RemoveTheLeftSideOfTheLockScreen.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/RemoveTheLeftSideOfTheLockScreen.kt index a4a31ee9..9475e00d 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/RemoveTheLeftSideOfTheLockScreen.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/RemoveTheLeftSideOfTheLockScreen.kt @@ -6,6 +6,7 @@ import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister object RemoveTheLeftSideOfTheLockScreen : HookRegister() { + override fun init() { findMethod("com.android.keyguard.negative.MiuiKeyguardMoveLeftViewContainer") { name == "inflateLeftView" @@ -15,4 +16,5 @@ object RemoveTheLeftSideOfTheLockScreen : HookRegister() { } } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/ShowWifiStandard.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/ShowWifiStandard.kt index 766aab2e..b26e413d 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/ShowWifiStandard.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/ShowWifiStandard.kt @@ -1,11 +1,14 @@ package com.lt2333.simplicitytools.hook.app.systemui -import com.github.kyuubiran.ezxhelper.utils.* +import com.github.kyuubiran.ezxhelper.utils.findMethod +import com.github.kyuubiran.ezxhelper.utils.getObjectAs +import com.github.kyuubiran.ezxhelper.utils.hookBefore +import com.github.kyuubiran.ezxhelper.utils.putObject import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister - object ShowWifiStandard : HookRegister() { + override fun init() { findMethod("com.android.systemui.statusbar.StatusBarWifiView") { name == "initViewState" && parameterCount == 1 @@ -33,4 +36,5 @@ object ShowWifiStandard : HookRegister() { } } } + } diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarBigMobileTypeIcon.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarBigMobileTypeIcon.kt index b3358271..46645f26 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarBigMobileTypeIcon.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarBigMobileTypeIcon.kt @@ -12,10 +12,10 @@ import android.widget.TextView import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookReturnConstant +import com.github.kyuubiran.ezxhelper.utils.putObject import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister -import de.robv.android.xposed.XposedHelpers object StatusBarBigMobileTypeIcon : HookRegister() { @@ -29,8 +29,8 @@ object StatusBarBigMobileTypeIcon : HookRegister() { override fun init() = hasEnable("big_mobile_type_icon") { findMethod("com.android.systemui.statusbar.StatusBarMobileView") { name == "init" - }.hookAfter { - val statusBarMobileView = it.thisObject as ViewGroup + }.hookAfter { param -> + val statusBarMobileView = param.thisObject as ViewGroup val context: Context = statusBarMobileView.context val res: Resources = context.resources @@ -69,15 +69,13 @@ object StatusBarBigMobileTypeIcon : HookRegister() { val newLinearLayoutLP = LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT - ).also { - - } + ) val newLinearlayout = LinearLayout(context).also { it.layoutParams = newLinearLayoutLP it.id = mobileContainerLeftId it.setPadding(leftAndRightMargin, 0, leftAndRightMargin, 0) } - XposedHelpers.setObjectField(it.thisObject, "mMobileLeftContainer", newLinearlayout) + param.thisObject.putObject("mMobileLeftContainer", newLinearlayout) rightParentLayout.addView( newLinearlayout, mobileContainerRightIndex @@ -121,4 +119,5 @@ object StatusBarBigMobileTypeIcon : HookRegister() { }.hookReturnConstant(null) } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarDoubleTapToSleep.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarDoubleTapToSleep.kt index d0e75c24..8e30786e 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarDoubleTapToSleep.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarDoubleTapToSleep.kt @@ -10,8 +10,10 @@ import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister import de.robv.android.xposed.XposedHelpers +import kotlin.math.abs object StatusBarDoubleTapToSleep : HookRegister() { + override fun init() = hasEnable("status_bar_double_tap_to_sleep") { findMethod("com.android.systemui.statusbar.phone.MiuiPhoneStatusBarView") { name == "onFinishInflate" @@ -34,7 +36,7 @@ object StatusBarDoubleTapToSleep : HookRegister() { currentTouchTime = System.currentTimeMillis() currentTouchX = event.x currentTouchY = event.y - if (currentTouchTime - lastTouchTime < 250L && Math.abs(currentTouchX - lastTouchX) < 100f && Math.abs( + if (currentTouchTime - lastTouchTime < 250L && abs(currentTouchX - lastTouchX) < 100f && abs( currentTouchY - lastTouchY ) < 100f ) { @@ -59,4 +61,5 @@ object StatusBarDoubleTapToSleep : HookRegister() { }) } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarLayout.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarLayout.kt index fa22fe2b..9b439707 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarLayout.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarLayout.kt @@ -12,13 +12,11 @@ import android.widget.TextView import androidx.constraintlayout.widget.ConstraintLayout import cn.fkj233.ui.activity.dp2px import com.github.kyuubiran.ezxhelper.utils.findMethod -import com.github.kyuubiran.ezxhelper.utils.getObject +import com.github.kyuubiran.ezxhelper.utils.getObjectAs import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister -import de.robv.android.xposed.XposedHelpers - object StatusBarLayout : HookRegister() { @@ -30,7 +28,7 @@ object StatusBarLayout : HookRegister() { override fun init() { var mLeftLayout: LinearLayout? = null var mRightLayout: LinearLayout? = null - var mCenterLayout: LinearLayout? = null + var mCenterLayout: LinearLayout? var statusBar: ViewGroup? = null fun updateLayout(context: Context) { @@ -55,11 +53,11 @@ object StatusBarLayout : HookRegister() { 1 -> { findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") { name == "onViewCreated" && parameterCount == 2 - }.hookAfter { - val MiuiPhoneStatusBarView: ViewGroup = - it.thisObject.getObject("mStatusBar") as ViewGroup - val context: Context = MiuiPhoneStatusBarView.context - val res: Resources = MiuiPhoneStatusBarView.resources + }.hookAfter { param -> + val miuiPhoneStatusBarView = + param.thisObject.getObjectAs("mStatusBar") + val context: Context = miuiPhoneStatusBarView.context + val res: Resources = miuiPhoneStatusBarView.resources val statusBarId: Int = res.getIdentifier("status_bar", "id", "com.android.systemui") val statusBarContentsId: Int = @@ -79,17 +77,17 @@ object StatusBarLayout : HookRegister() { "id", "com.android.systemui" ) - statusBar = MiuiPhoneStatusBarView.findViewById(statusBarId) + statusBar = miuiPhoneStatusBarView.findViewById(statusBarId) val statusBarContents: ViewGroup = - MiuiPhoneStatusBarView.findViewById(statusBarContentsId) + miuiPhoneStatusBarView.findViewById(statusBarContentsId) if (statusBar == null) return@hookAfter - val clock: TextView = MiuiPhoneStatusBarView.findViewById(clockId) + val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId) val phoneStatusBarLeftContainer: ViewGroup = - MiuiPhoneStatusBarView.findViewById(phoneStatusBarLeftContainerId) + miuiPhoneStatusBarView.findViewById(phoneStatusBarLeftContainerId) val notificationIconAreaInner: ViewGroup = - MiuiPhoneStatusBarView.findViewById(notificationIconAreaInnerId) + miuiPhoneStatusBarView.findViewById(notificationIconAreaInnerId) val systemIconArea: ViewGroup = - MiuiPhoneStatusBarView.findViewById(systemIconAreaId) + miuiPhoneStatusBarView.findViewById(systemIconAreaId) (clock.parent as ViewGroup).removeView(clock) (phoneStatusBarLeftContainer.parent as ViewGroup).removeView( @@ -119,23 +117,23 @@ object StatusBarLayout : HookRegister() { //增加一个左对齐布局 mLeftLayout = LinearLayout(context) - val LeftLp: LinearLayout.LayoutParams = + val leftLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f) - mLeftLayout!!.layoutParams = LeftLp + mLeftLayout!!.layoutParams = leftLp mLeftLayout!!.gravity = Gravity.START or Gravity.CENTER_VERTICAL //增加一个居中布局 mCenterLayout = LinearLayout(context) - val CenterLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams( + val centerLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT ) - mCenterLayout!!.layoutParams = CenterLp + mCenterLayout!!.layoutParams = centerLp mCenterLayout!!.gravity = Gravity.CENTER or Gravity.CENTER_VERTICAL mRightLayout = LinearLayout(context) - val RightLp: LinearLayout.LayoutParams = + val rightLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f) - mRightLayout!!.layoutParams = RightLp + mRightLayout!!.layoutParams = rightLp mRightLayout!!.gravity = Gravity.END or Gravity.CENTER_VERTICAL mLeftLayout!!.addView(phoneStatusBarLeftContainer) mLeftLayout!!.addView(mConstraintLayout) @@ -179,11 +177,11 @@ object StatusBarLayout : HookRegister() { 2 -> { findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") { name == "onViewCreated" && parameterCount == 2 - }.hookAfter { - val MiuiPhoneStatusBarView = - it.thisObject.getObject("mStatusBar") as ViewGroup - val context: Context = MiuiPhoneStatusBarView.context - val res: Resources = MiuiPhoneStatusBarView.resources + }.hookAfter { param -> + val miuiPhoneStatusBarView = + param.thisObject.getObjectAs("mStatusBar") + val context: Context = miuiPhoneStatusBarView.context + val res: Resources = miuiPhoneStatusBarView.resources //组件ID val statusBarId: Int = @@ -192,20 +190,20 @@ object StatusBarLayout : HookRegister() { val batteryId: Int = res.getIdentifier("battery", "id", "com.android.systemui") //查找组件 - statusBar = MiuiPhoneStatusBarView.findViewById(statusBarId) + statusBar = miuiPhoneStatusBarView.findViewById(statusBarId) if (statusBar == null) return@hookAfter - val clock: TextView = MiuiPhoneStatusBarView.findViewById(clockId) - val battery: ViewGroup = MiuiPhoneStatusBarView.findViewById(batteryId) + val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId) + val battery: ViewGroup = miuiPhoneStatusBarView.findViewById(batteryId) //新建布局 - val RightLp = LinearLayout.LayoutParams( + val rightLp = LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT ).also { it.marginStart = dp2px(context, 5f) } mRightLayout = LinearLayout(context).also { - it.layoutParams = RightLp + it.layoutParams = rightLp } //添加布局与组件 @@ -218,11 +216,11 @@ object StatusBarLayout : HookRegister() { 3 -> { findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") { name == "onViewCreated" && parameterCount == 2 - }.hookAfter { - val MiuiPhoneStatusBarView = - it.thisObject.getObject("mStatusBar") as ViewGroup - val context: Context = MiuiPhoneStatusBarView.context - val res: Resources = MiuiPhoneStatusBarView.resources + }.hookAfter { param -> + val miuiPhoneStatusBarView = + param.thisObject.getObjectAs("mStatusBar") + val context: Context = miuiPhoneStatusBarView.context + val res: Resources = miuiPhoneStatusBarView.resources val statusBarId: Int = res.getIdentifier("status_bar", "id", "com.android.systemui") val statusBarContentsId: Int = @@ -260,32 +258,24 @@ object StatusBarLayout : HookRegister() { "id", "com.android.systemui" ) - val notificationIconAreaInnerId: Int = - res.getIdentifier( - "notification_icon_area_inner", - "id", - "com.android.systemui" - ) - statusBar = MiuiPhoneStatusBarView.findViewById(statusBarId) + statusBar = miuiPhoneStatusBarView.findViewById(statusBarId) val statusBarContents: ViewGroup = - MiuiPhoneStatusBarView.findViewById(statusBarContentsId) + miuiPhoneStatusBarView.findViewById(statusBarContentsId) if (statusBar == null) return@hookAfter - val clock: TextView = MiuiPhoneStatusBarView.findViewById(clockId) + val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId) val phoneStatusBarLeftContainer: ViewGroup = - MiuiPhoneStatusBarView.findViewById(phoneStatusBarLeftContainerId) + miuiPhoneStatusBarView.findViewById(phoneStatusBarLeftContainerId) val fullscreenNotificationIconArea: ViewGroup = - MiuiPhoneStatusBarView.findViewById(fullscreenNotificationIconAreaId) + miuiPhoneStatusBarView.findViewById(fullscreenNotificationIconAreaId) val systemIconArea: ViewGroup = - MiuiPhoneStatusBarView.findViewById(systemIconAreaId) + miuiPhoneStatusBarView.findViewById(systemIconAreaId) val statusIcons: ViewGroup = - MiuiPhoneStatusBarView.findViewById(statusIconsId) + miuiPhoneStatusBarView.findViewById(statusIconsId) val systemIcons: ViewGroup = - MiuiPhoneStatusBarView.findViewById(systemIconsId) + miuiPhoneStatusBarView.findViewById(systemIconsId) val battery: ViewGroup = - MiuiPhoneStatusBarView.findViewById(batteryId) - val notificationIconAreaInner: ViewGroup = - MiuiPhoneStatusBarView.findViewById(notificationIconAreaInnerId) + miuiPhoneStatusBarView.findViewById(batteryId) (clock.parent as ViewGroup).removeView(clock) (phoneStatusBarLeftContainer.parent as ViewGroup).removeView( @@ -331,25 +321,25 @@ object StatusBarLayout : HookRegister() { //增加一个左对齐布局 mLeftLayout = LinearLayout(context) - val LeftLp: LinearLayout.LayoutParams = + val leftLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f) - mLeftLayout!!.layoutParams = LeftLp + mLeftLayout!!.layoutParams = leftLp mLeftLayout!!.gravity = Gravity.START or Gravity.CENTER_VERTICAL //增加一个居中布局 mCenterLayout = LinearLayout(context) - val CenterLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams( + val centerLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT ) - mCenterLayout!!.layoutParams = CenterLp + mCenterLayout!!.layoutParams = centerLp mCenterLayout!!.gravity = Gravity.CENTER or Gravity.CENTER_VERTICAL //增加一个右布局 mRightLayout = LinearLayout(context) - val RightLp: LinearLayout.LayoutParams = + val rightLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f) - mRightLayout!!.layoutParams = RightLp + mRightLayout!!.layoutParams = rightLp mRightLayout!!.gravity = Gravity.END or Gravity.CENTER_VERTICAL @@ -402,12 +392,11 @@ object StatusBarLayout : HookRegister() { findMethod("com.android.systemui.statusbar.phone.MiuiCollapsedStatusBarFragment") { name == "showClock" && parameterTypes[0] == Boolean::class.java }.hookAfter { - val MiuiPhoneStatusBarView = - XposedHelpers.getObjectField(it.thisObject, "mStatusBar") as ViewGroup - val res = MiuiPhoneStatusBarView.resources + val miuiPhoneStatusBarView = it.thisObject.getObjectAs("mStatusBar") + val res = miuiPhoneStatusBarView.resources val status_bar_ID = res.getIdentifier("status_bar", "id", "com.android.systemui") - val status_bar = MiuiPhoneStatusBarView.findViewById(status_bar_ID) + val status_bar = miuiPhoneStatusBarView.findViewById(status_bar_ID) //非锁屏下整个状态栏布局 val keyguardMgr = status_bar.context.getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager @@ -419,8 +408,6 @@ object StatusBarLayout : HookRegister() { } } } - - } } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarNetworkSpeedRefreshSpeed.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarNetworkSpeedRefreshSpeed.kt index f5cb6168..219cb344 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarNetworkSpeedRefreshSpeed.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarNetworkSpeedRefreshSpeed.kt @@ -6,6 +6,7 @@ import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister object StatusBarNetworkSpeedRefreshSpeed : HookRegister() { + override fun init() { findMethod("com.android.systemui.statusbar.policy.NetworkSpeedController") { name == "postUpdateNetworkSpeedDelay" && parameterTypes[0] == Long::class.java @@ -15,4 +16,5 @@ object StatusBarNetworkSpeedRefreshSpeed : HookRegister() { } } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarTimeCustomization.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarTimeCustomization.kt index a0238005..3fd20d47 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarTimeCustomization.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarTimeCustomization.kt @@ -32,7 +32,7 @@ object StatusBarTimeCustomization : HookRegister() { private val isCenterAlign = XSPUtils.getBoolean("status_bar_time_double_line_center_align", false) private val getClockDoubleSize = XSPUtils.getInt("status_bar_clock_double_line_size", 0) - private var nowTime: Date? = null + private lateinit var nowTime: Date private var str = "" @SuppressLint("SetTextI18n") @@ -74,7 +74,7 @@ object StatusBarTimeCustomization : HookRegister() { } } Timer().scheduleAtFixedRate(T(), 1000 - System.currentTimeMillis() % 1000, 1000) - } catch (e: Exception) { + } catch (_: Exception) { } } @@ -92,7 +92,7 @@ object StatusBarTimeCustomization : HookRegister() { nowTime = Calendar.getInstance().time textV.text = getDate(c!!) + str + getTime(c!!, is24) } - } catch (e: Exception) { + } catch (_: Exception) { } } @@ -100,11 +100,11 @@ object StatusBarTimeCustomization : HookRegister() { findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") { name == "onViewCreated" && parameterCount == 2 }.hookAfter { - val MiuiPhoneStatusBarView = + val miuiPhoneStatusBarView = it.thisObject.getObject("mStatusBar") as ViewGroup - val res: Resources = MiuiPhoneStatusBarView.resources + val res: Resources = miuiPhoneStatusBarView.resources val clockId: Int = res.getIdentifier("clock", "id", "com.android.systemui") - val clock: TextView = MiuiPhoneStatusBarView.findViewById(clockId) + val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId) clock.gravity = Gravity.CENTER } } diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/WaveCharge.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/WaveCharge.kt index 6cdb561a..169e4ca2 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/WaveCharge.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/WaveCharge.kt @@ -1,10 +1,10 @@ package com.lt2333.simplicitytools.hook.app.systemui import com.github.kyuubiran.ezxhelper.utils.findMethod -import com.github.kyuubiran.ezxhelper.utils.hookMethod +import com.github.kyuubiran.ezxhelper.utils.hookAfter +import com.github.kyuubiran.ezxhelper.utils.putObject import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister -import de.robv.android.xposed.XposedHelpers object WaveCharge: HookRegister() { @@ -12,32 +12,28 @@ object WaveCharge: HookRegister() { hasEnable("enable_wave_charge_animation") { findMethod("com.android.keyguard.charge.ChargeUtils") { name == "supportWaveChargeAnimation" - }.hookMethod { - after { param -> - val ex = Throwable() - val stackElement = ex.stackTrace - var mResult = false - val classTrue = setOf( - "com.android.keyguard.charge.ChargeUtils", - "com.android.keyguard.charge.container.MiuiChargeContainerView" - ) - for (i in stackElement.indices) { - when (stackElement[i].className) { - in classTrue -> { - mResult = true - break - } + }.hookAfter { + val ex = Throwable() + val stackElement = ex.stackTrace + var mResult = false + val classTrue = setOf( + "com.android.keyguard.charge.ChargeUtils", + "com.android.keyguard.charge.container.MiuiChargeContainerView" + ) + for (i in stackElement.indices) { + when (stackElement[i].className) { + in classTrue -> { + mResult = true + break } } - param.result = mResult } + it.result = mResult } findMethod("com.android.keyguard.charge.wave.WaveView") { name == "updateWaveHeight" - }.hookMethod { - after { param -> - XposedHelpers.setIntField(param.thisObject, "mWaveXOffset", 0) - } + }.hookAfter { + it.thisObject.putObject("mWaveXOffset", 0) } } } diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/thememanager/RemoveAds.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/thememanager/RemoveAds.kt index 0543328b..d4d8a293 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/thememanager/RemoveAds.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/thememanager/RemoveAds.kt @@ -6,6 +6,7 @@ import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.util.xposed.base.HookRegister object RemoveAds : HookRegister() { + override fun init() { findMethod("com.android.thememanager.basemodule.ad.model.AdInfoResponse") { name == "isAdValid" && parameterCount == 1 @@ -15,4 +16,5 @@ object RemoveAds : HookRegister() { } } } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/util/ShellUtils.java b/app/src/main/java/com/lt2333/simplicitytools/util/ShellUtils.java index 52c81256..fa660b27 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/util/ShellUtils.java +++ b/app/src/main/java/com/lt2333/simplicitytools/util/ShellUtils.java @@ -8,9 +8,9 @@ import java.util.List; public class ShellUtils { - public static final String COMMAND_SU = "su"; - public static final String COMMAND_SH = "sh"; - public static final String COMMAND_EXIT = "exit\n"; + public static final String COMMAND_SU = "su"; + public static final String COMMAND_SH = "sh"; + public static final String COMMAND_EXIT = "exit\n"; public static final String COMMAND_LINE_END = "\n"; private ShellUtils() { @@ -30,31 +30,31 @@ public class ShellUtils { * execute shell command, default return result msg * * @param command command - * @param isRoot whether need to run with root + * @param isRoot whether need to run with root * @return * @see ShellUtils#execCommand(String[], boolean, boolean) */ public static CommandResult execCommand(String command, boolean isRoot) { - return execCommand(new String[] {command}, isRoot, true); + return execCommand(new String[]{command}, isRoot, true); } /** * execute shell commands, default return result msg * * @param commands command activity_wifi - * @param isRoot whether need to run with root + * @param isRoot whether need to run with root * @return * @see ShellUtils#execCommand(String[], boolean, boolean) */ public static CommandResult execCommand(List commands, boolean isRoot) { - return execCommand(commands == null ? null : commands.toArray(new String[] {}), isRoot, true); + return execCommand(commands == null ? null : commands.toArray(new String[]{}), isRoot, true); } /** * execute shell commands, default return result msg * * @param commands command array - * @param isRoot whether need to run with root + * @param isRoot whether need to run with root * @return * @see ShellUtils#execCommand(String[], boolean, boolean) */ @@ -65,40 +65,40 @@ public class ShellUtils { /** * execute shell command * - * @param command command - * @param isRoot whether need to run with root + * @param command command + * @param isRoot whether need to run with root * @param isNeedResultMsg whether need result msg * @return * @see ShellUtils#execCommand(String[], boolean, boolean) */ public static CommandResult execCommand(String command, boolean isRoot, boolean isNeedResultMsg) { - return execCommand(new String[] {command}, isRoot, isNeedResultMsg); + return execCommand(new String[]{command}, isRoot, isNeedResultMsg); } /** * execute shell commands * - * @param commands command activity_wifi - * @param isRoot whether need to run with root + * @param commands command activity_wifi + * @param isRoot whether need to run with root * @param isNeedResultMsg whether need result msg * @return * @see ShellUtils#execCommand(String[], boolean, boolean) */ public static CommandResult execCommand(List commands, boolean isRoot, boolean isNeedResultMsg) { - return execCommand(commands == null ? null : commands.toArray(new String[] {}), isRoot, isNeedResultMsg); + return execCommand(commands == null ? null : commands.toArray(new String[]{}), isRoot, isNeedResultMsg); } /** * execute shell commands * - * @param commands command array - * @param isRoot whether need to run with root + * @param commands command array + * @param isRoot whether need to run with root * @param isNeedResultMsg whether need result msg * @return
    - *
  • if isNeedResultMsg is false, {@link CommandResult#successMsg} is null and - * {@link CommandResult#errorMsg} is null.
  • - *
  • if {@link CommandResult#result} is -1, there maybe some excepiton.
  • - *
+ *
  • if isNeedResultMsg is false, {@link CommandResult#successMsg} is null and + * {@link CommandResult#errorMsg} is null.
  • + *
  • if {@link CommandResult#result} is -1, there maybe some excepiton.
  • + * */ public static CommandResult execCommand(String[] commands, boolean isRoot, boolean isNeedResultMsg) { int result = -1; @@ -184,11 +184,17 @@ public class ShellUtils { */ public static class CommandResult { - /** result of command **/ - public int result; - /** success message of command result **/ + /** + * result of command + **/ + public int result; + /** + * success message of command result + **/ public String successMsg; - /** error message of command result **/ + /** + * error message of command result + **/ public String errorMsg; public CommandResult(int result) { diff --git a/app/src/main/java/com/lt2333/simplicitytools/util/SystemProperties.kt b/app/src/main/java/com/lt2333/simplicitytools/util/SystemProperties.kt index da6aca44..fadb237e 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/util/SystemProperties.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/util/SystemProperties.kt @@ -1,21 +1,23 @@ package com.lt2333.simplicitytools.util +import android.annotation.SuppressLint import android.content.Context object SystemProperties { + @SuppressLint("PrivateApi") operator fun get(context: Context, key: String?): String? { var ret = "" try { val cl = context.classLoader - val SystemProperties = cl.loadClass("android.os.SystemProperties") + val systemProperties = cl.loadClass("android.os.SystemProperties") //参数类型 val paramTypes: Array?> = arrayOfNulls(1) paramTypes[0] = String::class.java - val get = SystemProperties.getMethod("get", *paramTypes) + val get = systemProperties.getMethod("get", *paramTypes) //参数 val params = arrayOfNulls(1) params[0] = key - ret = get.invoke(SystemProperties, *params) as String + ret = get.invoke(systemProperties, *params) as String } catch (iAE: IllegalArgumentException) { throw iAE } catch (e: Exception) { @@ -23,4 +25,5 @@ object SystemProperties { } return ret } + } \ No newline at end of file diff --git a/app/src/main/java/com/lt2333/simplicitytools/util/XSPUtils.kt b/app/src/main/java/com/lt2333/simplicitytools/util/XSPUtils.kt index 07ec0b0e..fd14bfd4 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/util/XSPUtils.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/util/XSPUtils.kt @@ -12,6 +12,7 @@ object XSPUtils { } return prefs.getBoolean(key, defValue) } + fun getInt(key: String, defValue: Int): Int { if (prefs.hasFileChanged()) { prefs.reload() @@ -34,7 +35,12 @@ object XSPUtils { } } -inline fun hasEnable(key: String, default: Boolean = false, noinline extraCondition: (() -> Boolean)? = null, crossinline block: () -> Unit) { +inline fun hasEnable( + key: String, + default: Boolean = false, + noinline extraCondition: (() -> Boolean)? = null, + crossinline block: () -> Unit +) { val conditionResult = if (extraCondition != null) extraCondition() else true if (XSPUtils.getBoolean(key, default) && conditionResult) { block() diff --git a/app/src/main/java/com/lt2333/simplicitytools/util/xposed/EasyXposedInit.kt b/app/src/main/java/com/lt2333/simplicitytools/util/xposed/EasyXposedInit.kt index bd3efd63..f37f0ce5 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/util/xposed/EasyXposedInit.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/util/xposed/EasyXposedInit.kt @@ -5,20 +5,26 @@ import com.github.kyuubiran.ezxhelper.utils.Log.logexIfThrow import com.lt2333.simplicitytools.util.xposed.base.AppRegister import de.robv.android.xposed.IXposedHookLoadPackage import de.robv.android.xposed.IXposedHookZygoteInit +import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.callbacks.XC_LoadPackage -abstract class EasyXposedInit: IXposedHookLoadPackage, IXposedHookZygoteInit { +abstract class EasyXposedInit : IXposedHookLoadPackage, IXposedHookZygoteInit { private lateinit var packageParam: XC_LoadPackage.LoadPackageParam abstract val registeredApp: List + private val TAG = "WooBox" override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam?) { + packageParam = lpparam!! registeredApp.forEach { app -> - if (app.packageName == lpparam.packageName && (lpparam.processName in app.processName || app.processName.isEmpty())) { - EzXHelperInit.initHandleLoadPackage(lpparam) - EzXHelperInit.setLogTag(app.logTag) - EzXHelperInit.setToastTag(app.logTag) + if (app.packageName == lpparam.packageName) { + EzXHelperInit.apply { + setLogXp(true) + setLogTag(TAG) + setToastTag(TAG) + initHandleLoadPackage(lpparam) + } runCatching { app.handleLoadPackage(lpparam) }.logexIfThrow("Failed call handleLoadPackage, package: ${app.packageName}") } } diff --git a/app/src/main/java/com/lt2333/simplicitytools/util/xposed/base/AppRegister.kt b/app/src/main/java/com/lt2333/simplicitytools/util/xposed/base/AppRegister.kt index 778ccc43..3026a489 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/util/xposed/base/AppRegister.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/util/xposed/base/AppRegister.kt @@ -1,29 +1,26 @@ package com.lt2333.simplicitytools.util.xposed.base -import com.github.kyuubiran.ezxhelper.utils.Log import com.github.kyuubiran.ezxhelper.utils.Log.logexIfThrow -import de.robv.android.xposed.IXposedHookInitPackageResources import de.robv.android.xposed.IXposedHookLoadPackage -import de.robv.android.xposed.callbacks.XC_InitPackageResources +import de.robv.android.xposed.XposedBridge import de.robv.android.xposed.callbacks.XC_LoadPackage abstract class AppRegister: IXposedHookLoadPackage { abstract val packageName: String - abstract val processName: List - abstract val logTag: String override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {} protected fun autoInitHooks(lpparam: XC_LoadPackage.LoadPackageParam, vararg hook: HookRegister) { - hook.forEach { + hook.also { + XposedBridge.log("WooBox: Try to Hook [$packageName]") + }.forEach { runCatching { if (it.isInit) return@forEach it.setLoadPackageParam(lpparam) it.init() it.isInit = true - Log.i("Inited hook: ${it.javaClass.simpleName}") - }.logexIfThrow("Failed init hook: ${it.javaClass.simpleName}") + }.logexIfThrow("Failed to Hook [$packageName]") } } diff --git a/app/src/main/java/com/lt2333/simplicitytools/view/WeatherView.kt b/app/src/main/java/com/lt2333/simplicitytools/view/WeatherView.kt index 2950237b..e03d9b1d 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/view/WeatherView.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/view/WeatherView.kt @@ -1,5 +1,6 @@ package com.lt2333.simplicitytools.view +import android.annotation.SuppressLint import android.content.Context import android.database.ContentObserver import android.net.Uri @@ -9,6 +10,7 @@ import android.os.Message import android.text.TextUtils import android.widget.TextView +@SuppressLint("ViewConstructor") class WeatherView(context: Context?, private val showCity: Boolean) : TextView(context) { private val mContext: Context