Compare commits

4 Commits

Author SHA1 Message Date
littleturtle2333
2bc68e9724 Update README.md 2023-02-08 01:07:51 +08:00
littleturtle2333
56512abb33 Update README.md 2023-02-08 01:06:25 +08:00
littleturtle2333
cf10dc2e05 适配Android多版本大框架
更新Blockmiui
优化结构
2023-02-08 00:42:07 +08:00
YuKongA
916522331d Merge pull request #213
* Fix MaxWallpaperScale on MIUI14

* Fix ShowBatteryTemperature on MIUI14

* fix UnlockUnlimitedCropping on MIUI14

* Update UnlockUnlimitedCropping.kt
2023-02-07 18:52:10 +08:00
126 changed files with 3710 additions and 1984 deletions

View File

@@ -8,15 +8,13 @@
<a href="https://github.com/LittleTurtle2333/SimplicityTools/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/LittleTurtle2333/SimplicityTools"></a> <a href="https://github.com/LittleTurtle2333/SimplicityTools/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/LittleTurtle2333/SimplicityTools"></a>
<a href="https://github.com/LittleTurtle2333/SimplicityTools/issues"><img alt="GitHub issues" src="https://img.shields.io/github/issues/LittleTurtle2333/SimplicityTools"></a> <a href="https://github.com/LittleTurtle2333/SimplicityTools/issues"><img alt="GitHub issues" src="https://img.shields.io/github/issues/LittleTurtle2333/SimplicityTools"></a>
<a href="https://github.com/LittleTurtle2333/SimplicityTools/blob/main/LICENSE"><img alt="GitHub license" src="https://img.shields.io/github/license/LittleTurtle2333/SimplicityTools"></a> <a href="https://github.com/LittleTurtle2333/SimplicityTools/blob/main/LICENSE"><img alt="GitHub license" src="https://img.shields.io/github/license/LittleTurtle2333/SimplicityTools"></a>
<p>一个基于 MIUI13Android12适配的系统拓展Xposed模块</p> <p>一个基于 MIUI13+Android12+适配的系统拓展Xposed模块</p>
</div> </div>
--- ---
### 模块说明 ### 模块说明
仅支持MIUI13Android12其余版本无法使用。
开发者:[酷安@乌堆小透明](http://www.coolapk.com/u/883441) 开发者:[酷安@乌堆小透明](http://www.coolapk.com/u/883441)
--- ---

View File

@@ -8,17 +8,11 @@
<a href="https://github.com/LittleTurtle2333/SimplicityTools/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/LittleTurtle2333/SimplicityTools"></a> <a href="https://github.com/LittleTurtle2333/SimplicityTools/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/LittleTurtle2333/SimplicityTools"></a>
<a href="https://github.com/LittleTurtle2333/SimplicityTools/issues"><img alt="GitHub issues" src="https://img.shields.io/github/issues/LittleTurtle2333/SimplicityTools"></a> <a href="https://github.com/LittleTurtle2333/SimplicityTools/issues"><img alt="GitHub issues" src="https://img.shields.io/github/issues/LittleTurtle2333/SimplicityTools"></a>
<a href="https://github.com/LittleTurtle2333/SimplicityTools/blob/main/LICENSE"><img alt="GitHub license" src="https://img.shields.io/github/license/LittleTurtle2333/SimplicityTools"></a> <a href="https://github.com/LittleTurtle2333/SimplicityTools/blob/main/LICENSE"><img alt="GitHub license" src="https://img.shields.io/github/license/LittleTurtle2333/SimplicityTools"></a>
<p>A system extension Xposed module based on MIUI13 (Android12) </p> <p>A system extension Xposed module based on MIUI13+ (Android12+) </p>
</div> </div>
--- ---
### Description
Only MIUI13 (Android12) is supported. The rest of the versions not be valid.
---
### Screenshot ### Screenshot
![Screenshot](https://raw.githubusercontent.com/LittleTurtle2333/SimplicityTools/main/doc/en.jpg) ![Screenshot](https://raw.githubusercontent.com/LittleTurtle2333/SimplicityTools/main/doc/en.jpg)

View File

@@ -7,13 +7,12 @@ plugins {
android { android {
compileSdk = 33 compileSdk = 33
buildToolsVersion = "33.0.0"
defaultConfig { defaultConfig {
applicationId = "com.lt2333.simplicitytools" applicationId = "com.lt2333.simplicitytools"
minSdk = 31 minSdk = 31
targetSdk = 33 targetSdk = 33
versionCode = 68 versionCode = 69
versionName = "1.6.8" versionName = "1.6.9"
buildConfigField("String", "BUILD_TIME", "\"${System.currentTimeMillis()}\"") buildConfigField("String", "BUILD_TIME", "\"${System.currentTimeMillis()}\"")
} }
@@ -52,7 +51,7 @@ android {
dependencies { dependencies {
//API //API
compileOnly("de.robv.android.xposed:api:82") compileOnly("de.robv.android.xposed:api:82")
implementation("com.github.kyuubiran:EzXHelper:0.9.2") implementation("com.github.kyuubiran:EzXHelper:1.0.3")
//UI //UI
implementation(project(":blockmiui")) implementation(project(":blockmiui"))
implementation("androidx.constraintlayout:constraintlayout:2.1.3") implementation("androidx.constraintlayout:constraintlayout:2.1.3")

View File

@@ -27,7 +27,7 @@
public void *(de.robv.android.xposed.IXposedHookZygoteInit$StartupParam); public void *(de.robv.android.xposed.IXposedHookZygoteInit$StartupParam);
} }
-keep class * extends com.lt2333.simplicitytools.util.xposed.EasyXposedInit -keep class * extends com.lt2333.simplicitytools.utils.xposed.EasyXposedInit
-assumenosideeffects class kotlin.jvm.internal.Intrinsics { -assumenosideeffects class kotlin.jvm.internal.Intrinsics {
public static void check*(...); public static void check*(...);

View File

@@ -11,13 +11,11 @@
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme"> android:theme="@style/AppTheme">
<activity <activity
android:name=".activity.SettingsActivity" android:name=".activity.MainActivity"
android:exported="true" android:exported="true"
android:launchMode="singleTop"> android:launchMode="singleTop">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<action android:name="miui.cn.fkj233.xposed.statusbarlyric.SettingsFragment"/>
<action android:name="android.service.quicksettings.action.QS_TILE_PREFERENCES"/>
<category android:name="android.intent.category.DEFAULT"/> <category android:name="android.intent.category.DEFAULT"/>
<category android:name="de.robv.android.xposed.category.MODULE_SETTINGS" /> <category android:name="de.robv.android.xposed.category.MODULE_SETTINGS" />
@@ -29,7 +27,7 @@
android:name=".launcher" android:name=".launcher"
android:enabled="true" android:enabled="true"
android:exported="true" android:exported="true"
android:targetActivity=".activity.SettingsActivity"> android:targetActivity=".activity.MainActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
@@ -50,7 +48,7 @@
android:resource="@array/xposed_scope" /> android:resource="@array/xposed_scope" />
<service <service
android:name=".tile.LockMaxFpsTile" android:name=".tiles.LockMaxFpsTile"
android:exported="true" android:exported="true"
android:icon="@drawable/ic_fps" android:icon="@drawable/ic_fps"
android:label="@string/lock_max" android:label="@string/lock_max"
@@ -61,7 +59,7 @@
</service> </service>
<service <service
android:name=".tile.AllowScreenshots" android:name=".tiles.AllowScreenshots"
android:exported="true" android:exported="true"
android:icon="@drawable/ic_baseline_fullscreen_24" android:icon="@drawable/ic_baseline_fullscreen_24"
android:label="@string/allow_screenshots" android:label="@string/allow_screenshots"

View File

@@ -1 +1 @@
com.lt2333.simplicitytools.hook.XposedEntry com.lt2333.simplicitytools.hooks.MainHook

View File

@@ -0,0 +1,78 @@
package com.lt2333.simplicitytools.activity
import android.annotation.SuppressLint
import android.os.Build
import android.os.Bundle
import cn.fkj233.ui.activity.MIUIActivity
import cn.fkj233.ui.dialog.MIUIDialog
import com.lt2333.simplicitytools.BuildConfig
import com.lt2333.simplicitytools.R
import com.lt2333.simplicitytools.activity.pages.all.AboutPage
import com.lt2333.simplicitytools.activity.pages.all.MenuPage
import com.lt2333.simplicitytools.activity.pages.s.*
import com.lt2333.simplicitytools.activity.pages.t.*
import com.lt2333.simplicitytools.hooks.rules.s.android.*
import com.microsoft.appcenter.AppCenter
import com.microsoft.appcenter.analytics.Analytics
import com.microsoft.appcenter.crashes.Crashes
import java.util.*
import kotlin.system.exitProcess
class MainActivity : MIUIActivity() {
private val activity = this
override fun onCreate(savedInstanceState: Bundle?) {
if (!checkLSPosed()) isLoad = false
super.onCreate(savedInstanceState)
if (isLoad && !BuildConfig.DEBUG) {
AppCenter.start(
application,
"ae2037d3-9914-4e0c-b02b-f9b2bb2574e5",
Analytics::class.java,
Crashes::class.java
)
}
}
//检测LSPosed是否激活
@SuppressLint("WorldReadableFiles")
private fun checkLSPosed(): Boolean {
try {
setSP(getSharedPreferences("config", MODE_WORLD_READABLE))
return true
} catch (exception: SecurityException) {
MIUIDialog(this) {
setTitle(R.string.Tips)
setMessage(R.string.not_support)
setCancelable(false)
setRButton(R.string.Done) {
exitProcess(0)
}
}.show()
}
return false
}
init {
when (Build.VERSION.SDK_INT) {
Build.VERSION_CODES.TIRAMISU -> {
registerPage(MainPageForT::class.java)
registerPage(SystemUIPageForT::class.java)
registerPage(AndroidPageForT::class.java)
registerPage(OtherPageForT::class.java)
registerPage(HideIconPageForT::class.java)
registerPage(AboutPage::class.java)
registerPage(MenuPage::class.java)
}
Build.VERSION_CODES.S -> {
registerPage(MainPageForS::class.java)
registerPage(SystemUIPageForS::class.java)
registerPage(AndroidPageForS::class.java)
registerPage(OtherPageForS::class.java)
registerPage(HideIconPageForS::class.java)
registerPage(AboutPage::class.java)
registerPage(MenuPage::class.java)
}
}
}
}

View File

@@ -0,0 +1,200 @@
package com.lt2333.simplicitytools.activity.pages.all
import android.content.Intent
import android.net.Uri
import android.widget.Toast
import cn.fkj233.ui.activity.annotation.BMPage
import cn.fkj233.ui.activity.data.BasePage
import cn.fkj233.ui.activity.view.TextSummaryV
import com.lt2333.simplicitytools.BuildConfig
import com.lt2333.simplicitytools.R
import java.text.SimpleDateFormat
import java.util.*
@BMPage("about_module","About Module", hideMenu = true)
class AboutPage : BasePage() {
override fun onCreate() {
Author(
authorHead = getDrawable(R.drawable.app_icon)!!,
authorName = getString(R.string.app_name),
authorTips = "${
SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss",
Locale.getDefault()
).format(BuildConfig.BUILD_TIME.toLong())
}\n${BuildConfig.VERSION_NAME}(${BuildConfig.BUILD_TYPE})",
onClickListener = {
try {
activity.startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("coolmarket://apk/com.lt2333.simplicitytools")
)
)
Toast.makeText(activity, "恳求一个五星好评Thanks♪(・ω・)ノ", Toast.LENGTH_LONG)
.show()
} catch (e: Exception) {
val uri =
Uri.parse("https://github.com/Xposed-Modules-Repo/com.lt2333.simplicitytools/releases")
val intent = Intent(Intent.ACTION_VIEW, uri)
activity.startActivity(intent)
}
})
Line()
TitleText(text = getString(R.string.developer))
Author(
authorHead = getDrawable(R.drawable.lt)!!,
authorName = "乌堆小透明",
authorTips = "LittleTurtle2333",
onClickListener = {
try {
activity.startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("coolmarket://u/883441")
)
)
Toast.makeText(activity, "乌堆小透明:靓仔,点个关注吧!", Toast.LENGTH_SHORT).show()
} catch (e: Exception) {
Toast.makeText(activity, "本机未安装酷安应用", Toast.LENGTH_SHORT).show()
val uri = Uri.parse("https://www.coolapk.com/u/883441")
val intent = Intent(Intent.ACTION_VIEW, uri)
activity.startActivity(intent)
}
})
Line()
TitleText(text = getString(R.string.thank_list))
TextSummaryArrow(
TextSummaryV(
textId = R.string.contributor_list,
onClickListener = {
try {
val uri =
Uri.parse("https://github.com/LittleTurtle2333/SimplicityTools/graphs/contributors")
val intent = Intent(Intent.ACTION_VIEW, uri)
activity.startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
}
})
)
TextSummaryArrow(
TextSummaryV(
textId = R.string.third_party_open_source_statement,
onClickListener = {
try {
val uri =
Uri.parse("https://github.com/LittleTurtle2333/SimplicityTools#%E7%AC%AC%E4%B8%89%E6%96%B9%E5%BC%80%E6%BA%90%E5%BC%95%E7%94%A8")
val intent = Intent(Intent.ACTION_VIEW, uri)
activity.startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
}
})
)
Line()
TitleText(text = getString(R.string.discussions))
TextSummaryArrow(TextSummaryV(textId = R.string.qq_channel, onClickListener = {
try {
val uri =
Uri.parse("https://qun.qq.com/qqweb/qunpro/share?_wv=3&_wwv=128&inviteCode=29Mu64&from=246610&biz=ka")
val intent = Intent(Intent.ACTION_VIEW, uri)
activity.startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
}
}))
TextSummaryArrow(
TextSummaryV(
textId = R.string.tg_channel,
tipsId = R.string.tg_channel_summary,
onClickListener = {
try {
activity.startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("tg://resolve?domain=simplicityrom")
)
)
} catch (e: Exception) {
Toast.makeText(activity, "本机未安装Telegram应用", Toast.LENGTH_SHORT)
.show()
val uri = Uri.parse("https://t.me/simplicityrom")
val intent = Intent(Intent.ACTION_VIEW, uri)
activity.startActivity(intent)
}
})
)
TextSummaryArrow(
TextSummaryV(
textId = R.string.issues,
tipsId = R.string.issues_url,
onClickListener = {
try {
val uri =
Uri.parse("https://github.com/LittleTurtle2333/SimplicityTools/issues")
val intent = Intent(Intent.ACTION_VIEW, uri)
activity.startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
}
})
)
Line()
TitleText(getString(R.string.other))
TextSummaryArrow(
TextSummaryV(
textId = R.string.app_coolapk_url,
tipsId = R.string.app_coolapk_url_summary,
onClickListener = {
try {
activity.startActivity(
Intent(
Intent.ACTION_VIEW,
Uri.parse("coolmarket://apk/com.lt2333.simplicitytools")
)
)
Toast.makeText(
activity,
"恳求一个五星好评Thanks♪(・ω・)ノ",
Toast.LENGTH_LONG
).show()
} catch (e: Exception) {
Toast.makeText(activity, "本机未安装酷安应用", Toast.LENGTH_SHORT).show()
}
})
)
TextSummaryArrow(
TextSummaryV(
textId = R.string.opensource,
tipsId = R.string.github_url,
onClickListener = {
try {
val uri =
Uri.parse("https://github.com/LittleTurtle2333/SimplicityTools")
val intent = Intent(Intent.ACTION_VIEW, uri)
activity.startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
}
})
)
TextSummaryArrow(
TextSummaryV(
textId = R.string.participate_in_translation,
tipsId = R.string.participate_in_translation_summary,
onClickListener = {
try {
val uri = Uri.parse("https://crowdin.com/project/simplicitytools")
val intent = Intent(Intent.ACTION_VIEW, uri)
activity.startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "访问失败", Toast.LENGTH_SHORT).show()
}
})
)
}
}

View File

@@ -0,0 +1,58 @@
package com.lt2333.simplicitytools.activity.pages.all
import cn.fkj233.ui.activity.annotation.BMMenuPage
import cn.fkj233.ui.activity.data.BasePage
import cn.fkj233.ui.activity.view.TextSummaryV
import cn.fkj233.ui.dialog.MIUIDialog
import com.lt2333.simplicitytools.R
import com.lt2333.simplicitytools.utils.ShellUtils
import java.util.*
@BMMenuPage("Menu")
class MenuPage : BasePage() {
override fun onCreate() {
TextSummaryArrow(TextSummaryV(textId = R.string.reboot, onClickListener = {
MIUIDialog(activity) {
setTitle(R.string.Tips)
setMessage(R.string.are_you_sure_reboot)
setLButton(R.string.cancel) {
dismiss()
}
setRButton(R.string.Done) {
val command = arrayOf("reboot")
ShellUtils.execCommand(command, true)
dismiss()
}
}.show()
}))
TextSummaryArrow(TextSummaryV(textId = R.string.reboot_host, onClickListener = {
MIUIDialog(activity) {
setTitle(R.string.Tips)
setMessage(R.string.are_you_sure_reboot_scope)
setLButton(R.string.cancel) {
dismiss()
}
setRButton(R.string.Done) {
val command = arrayOf(
"killall com.android.systemui",
"killall com.miui.home",
"killall com.miui.securitycenter ",
"killall com.android.settings",
"killall com.miui.powerkeeper",
"killall com.android.updater",
"killall com.miui.mediaeditor",
"killall com.miui.screenshot",
"killall com.milink.service",
"killall com.xiaomi.misubscreenui",
)
ShellUtils.execCommand(command, true)
dismiss()
}
}.show()
}))
}
}

View File

@@ -0,0 +1,134 @@
package com.lt2333.simplicitytools.activity.pages.s
import android.view.View
import android.widget.Switch
import cn.fkj233.ui.activity.MIUIActivity
import cn.fkj233.ui.activity.annotation.BMPage
import cn.fkj233.ui.activity.data.BasePage
import cn.fkj233.ui.activity.view.SwitchV
import cn.fkj233.ui.activity.view.TextSummaryV
import cn.fkj233.ui.dialog.MIUIDialog
import com.lt2333.simplicitytools.R
@BMPage("scope_android","Android", hideMenu = false)
class AndroidPageForS : BasePage() {
override fun onCreate() {
TitleText(textId = R.string.corepacth)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.downgr,
tipsId = R.string.downgr_summary
), SwitchV("downgrade")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.authcreak,
tipsId = R.string.authcreak_summary
), SwitchV("authcreak")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.digestCreak,
tipsId = R.string.digestCreak_summary
), SwitchV("digestCreak")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.UsePreSig,
tipsId = R.string.UsePreSig_summary
), SwitchV("UsePreSig")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.enhancedMode,
tipsId = R.string.enhancedMode_summary
), SwitchV("enhancedMode")
)
Line()
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.disable_flag_secure,
tipsId = R.string.disable_flag_secure_summary
), SwitchV("disable_flag_secure")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.delete_on_post_notification,
tipsId = R.string.delete_on_post_notification_summary
), SwitchV("delete_on_post_notification")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.remove_small_window_restrictions,
tipsId = R.string.remove_small_window_restrictions_summary
), SwitchV("remove_small_window_restrictions")
)
TextSummaryArrow(
TextSummaryV(
textId = R.string.max_wallpaper_scale,
onClickListener = {
MIUIDialog(activity) {
setTitle(R.string.max_wallpaper_scale)
setEditText(
"",
"${activity.getString(R.string.def)}1.1, ${activity.getString(R.string.current)}${
MIUIActivity.safeSP.getFloat("max_wallpaper_scale", 1.1f)
}"
)
setLButton(textId = R.string.cancel) {
dismiss()
}
setRButton(textId = R.string.Done) {
if (getEditText() != "") {
MIUIActivity.safeSP.putAny(
"max_wallpaper_scale",
getEditText().toFloat()
)
}
dismiss()
}
}.show()
})
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.allow_untrusted_touches,
tipsId = R.string.take_effect_after_reboot
), SwitchV("allow_untrusted_touches")
)
Line()
TitleText(textId = R.string.sound)
val mediaVolumeStepsSwitchBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean(
"media_volume_steps_switch",
false
)
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.media_volume_steps_switch,
tips = "${getString(R.string.take_effect_after_reboot)}\n${getString(R.string.media_volume_steps_summary)}"
),
SwitchV(
"media_volume_steps_switch",
dataBindingSend = mediaVolumeStepsSwitchBinding.bindingSend
)
)
SeekBarWithText(
"media_volume_steps",
15,
29,
15,
dataBindingRecv = mediaVolumeStepsSwitchBinding.binding.getRecv(2)
)
}
}

View File

@@ -0,0 +1,109 @@
package com.lt2333.simplicitytools.activity.pages.s
import android.view.View
import android.widget.Switch
import cn.fkj233.ui.activity.MIUIActivity
import cn.fkj233.ui.activity.annotation.BMPage
import cn.fkj233.ui.activity.data.BasePage
import cn.fkj233.ui.activity.view.SwitchV
import cn.fkj233.ui.activity.view.TextSummaryV
import cn.fkj233.ui.activity.view.TextV
import cn.fkj233.ui.dialog.MIUIDialog
import com.lt2333.simplicitytools.R
@BMPage("hide_icon","Hide Icon", hideMenu = false)
class HideIconPageForS : BasePage() {
override fun onCreate() {
TitleText(textId = R.string.status_bar_icon)
TextWithSwitch(
TextV(textId = R.string.hide_battery_icon),
SwitchV("hide_battery_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_battery_charging_icon),
SwitchV("hide_battery_charging_icon")
)
TextWithSwitch(TextV(textId = R.string.hide_gps_icon), SwitchV("hide_gps_icon"))
TextWithSwitch(
TextV(textId = R.string.hide_bluetooth_icon),
SwitchV("hide_bluetooth_icon")
)
TextWithSwitch(TextV(textId = R.string.hide_nfc_icon), SwitchV("hide_nfc_icon"))
TextWithSwitch(
TextV(textId = R.string.hide_bluetooth_battery_icon),
SwitchV("hide_bluetooth_battery_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_small_hd_icon),
SwitchV("hide_small_hd_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_big_hd_icon),
SwitchV("hide_big_hd_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_new_hd_icon),
SwitchV("hide_new_hd_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_hd_no_service_icon),
SwitchV("hide_hd_no_service_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_no_sim_icon),
SwitchV("hide_no_sim_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_sim_one_icon),
SwitchV("hide_sim_one_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_sim_two_icon),
SwitchV("hide_sim_two_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_mobile_activity_icon),
SwitchV("hide_mobile_activity_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_mobile_type_icon),
SwitchV("hide_mobile_type_icon")
)
TextWithSwitch(TextV(textId = R.string.hide_wifi_icon), SwitchV("hide_wifi_icon"))
TextWithSwitch(
TextV(textId = R.string.hide_wifi_activity_icon),
SwitchV("hide_wifi_activity_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_wifi_standard_icon),
SwitchV("hide_wifi_standard_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_slave_wifi_icon),
SwitchV("hide_slave_wifi_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_hotspot_icon),
SwitchV("hide_hotspot_icon")
)
TextWithSwitch(TextV(textId = R.string.hide_vpn_icon), SwitchV("hide_vpn_icon"))
TextWithSwitch(
TextV(textId = R.string.hide_airplane_icon),
SwitchV("hide_airplane_icon")
)
TextWithSwitch(TextV(textId = R.string.hide_alarm_icon), SwitchV("hide_alarm_icon"))
TextWithSwitch(
TextV(textId = R.string.hide_headset_icon),
SwitchV("hide_headset_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_volume_icon),
SwitchV("hide_volume_icon")
)
TextWithSwitch(TextV(textId = R.string.hide_zen_icon), SwitchV("hide_zen_icon"))
}
}

View File

@@ -0,0 +1,82 @@
package com.lt2333.simplicitytools.activity.pages.s
import android.content.ComponentName
import android.content.pm.PackageManager
import cn.fkj233.ui.activity.annotation.BMMainPage
import cn.fkj233.ui.activity.data.BasePage
import cn.fkj233.ui.activity.view.SwitchV
import cn.fkj233.ui.activity.view.TextSummaryV
import cn.fkj233.ui.dialog.MIUIDialog
import com.lt2333.simplicitytools.BuildConfig
import com.lt2333.simplicitytools.R
@BMMainPage("WooBox[MIUI13]")
class MainPageForS : BasePage() {
override fun onCreate() {
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.main_switch,
colorId = R.color.purple_700
), SwitchV("main_switch", true)
)
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.HideLauncherIcon),
SwitchV("hLauncherIcon", onClickListener = {
activity.packageManager.setComponentEnabledSetting(
ComponentName(activity, "${BuildConfig.APPLICATION_ID}.launcher"),
if (it) {
PackageManager.COMPONENT_ENABLED_STATE_DISABLED
} else {
PackageManager.COMPONENT_ENABLED_STATE_ENABLED
},
PackageManager.DONT_KILL_APP
)
})
)
TextSummaryArrow(
TextSummaryV(
textId = R.string.matters_needing_attention,
colorId = R.color.red,
onClickListener = {
MIUIDialog(activity) {
setTitle(R.string.matters_needing_attention)
setMessage(R.string.matters_needing_attention_context)
setRButton(R.string.Done) {
dismiss()
}
}.show()
})
)
Line()
TitleText(textId = R.string.scope)
TextSummaryArrow(
TextSummaryV(
textId = R.string.scope_systemui,
tipsId = R.string.scope_systemui_summary,
onClickListener = { showFragment("scope_systemui") })
)
TextSummaryArrow(
TextSummaryV(
textId = R.string.scope_android,
tipsId = R.string.scope_android_summary,
onClickListener = { showFragment("scope_android") })
)
TextSummaryArrow(
TextSummaryV(
textId = R.string.scope_other,
tipsId = R.string.scope_other_summary,
onClickListener = { showFragment("scope_other") })
)
Line()
TitleText(textId = R.string.about)
TextSummaryArrow(
TextSummaryV(
textId = R.string.about_module,
tips = getString(R.string.about_module_summary),
onClickListener = { showFragment("about_module") })
)
}
}

View File

@@ -0,0 +1,177 @@
package com.lt2333.simplicitytools.activity.pages.s
import android.content.ComponentName
import android.content.Intent
import android.content.pm.PackageManager
import android.view.View
import android.widget.Switch
import android.widget.Toast
import cn.fkj233.ui.activity.MIUIActivity
import cn.fkj233.ui.activity.annotation.BMPage
import cn.fkj233.ui.activity.data.BasePage
import cn.fkj233.ui.activity.view.SwitchV
import cn.fkj233.ui.activity.view.TextSummaryV
import cn.fkj233.ui.dialog.MIUIDialog
import com.lt2333.simplicitytools.BuildConfig
import com.lt2333.simplicitytools.R
@BMPage("scope_other","Other", hideMenu = false)
class OtherPageForS : BasePage() {
override fun onCreate() {
TitleText(textId = R.string.scope_miuihome)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.home_time,
tipsId = R.string.home_time_summary
), SwitchV("home_time")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.double_tap_to_sleep,
tipsId = R.string.home_double_tap_to_sleep_summary
), SwitchV("double_tap_to_sleep")
)
Line()
TitleText(textId = R.string.scope_powerkeeper)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.lock_max_fps,
tipsId = R.string.lock_max_fps_summary
), SwitchV("lock_max_fps")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.prevent_recovery_of_battery_optimization_white_list,
tipsId = R.string.failed_after_restart
), SwitchV("prevent_recovery_of_battery_optimization_white_list")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.do_not_clear_app,
tipsId = R.string.do_not_clear_app_summary
), SwitchV("do_not_clear_app")
)
val makeMilletMoreAggressiveSwitchBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean(
"make_millet_more_aggressive",
false
)
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.make_millet_more_aggressive,
tipsId = R.string.make_millet_more_aggressive_summary
),
SwitchV(
"make_millet_more_aggressive",
dataBindingSend = makeMilletMoreAggressiveSwitchBinding.bindingSend
)
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.make_millet_ignore_active,
tipsId = R.string.make_millet_ignore_active_summary
),
SwitchV("make_millet_ignore_active"),
dataBindingRecv = makeMilletMoreAggressiveSwitchBinding.binding.getRecv(2)
)
TextSummaryArrow(
TextSummaryV(
textId = R.string.battery_optimization,
tipsId = R.string.battery_optimization_summary,
onClickListener = {
try {
val intent = Intent()
val comp = ComponentName(
"com.android.settings",
"com.android.settings.Settings\$HighPowerApplicationsActivity"
)
intent.component = comp
activity.startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "启动失败,可能是不支持", Toast.LENGTH_LONG).show()
}
})
)
Line()
TitleText(textId = R.string.scope_securitycenter)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.skip_waiting_time,
tipsId = R.string.skip_waiting_time_summary
), SwitchV("skip_waiting_time")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.remove_open_app_confirmation_popup,
tipsId = R.string.remove_open_app_confirmation_popup_summary
), SwitchV("remove_open_app_confirmation_popup")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.lock_one_hundred,
tipsId = R.string.lock_one_hundred_summary
), SwitchV("lock_one_hundred")
)
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.remove_macro_blacklist),
SwitchV("remove_macro_blacklist")
)
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.battery_life_function),
SwitchV("battery_life_function")
)
Line()
TitleText(textId = R.string.scope_mediaeditor)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.unlock_unlimited_cropping,
tipsId = R.string.unlock_unlimited_cropping_summary
), SwitchV("unlock_unlimited_cropping")
)
Line()
TitleText(textId = R.string.updater)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.remove_ota_validate,
tipsId = R.string.remove_ota_validate_summary
), SwitchV("remove_ota_validate")
)
Line()
TitleText(textId = R.string.settings)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.show_notification_importance,
tipsId = R.string.show_notification_importance_summary
), SwitchV("show_notification_importance")
)
Line()
TitleText(textId = R.string.cast)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.force_support_send_app,
), SwitchV("force_support_send_app")
)
Line()
TitleText(textId = R.string.rear_display)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.show_weather_main_switch,
), SwitchV("rear_show_weather")
)
Line()
TitleText(textId = R.string.remove_ad)
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.remove_thememanager_ads),
SwitchV("remove_thememanager_ads")
)
}
}

View File

@@ -0,0 +1,759 @@
package com.lt2333.simplicitytools.activity.pages.s
import android.view.View
import android.widget.Switch
import android.widget.Toast
import cn.fkj233.ui.activity.MIUIActivity
import cn.fkj233.ui.activity.annotation.BMPage
import cn.fkj233.ui.activity.data.BasePage
import cn.fkj233.ui.activity.view.SpinnerV
import cn.fkj233.ui.activity.view.SwitchV
import cn.fkj233.ui.activity.view.TextSummaryV
import cn.fkj233.ui.activity.view.TextV
import cn.fkj233.ui.dialog.MIUIDialog
import com.lt2333.simplicitytools.R
import java.util.HashMap
@BMPage("scope_systemui","System UI", hideMenu = false)
class SystemUIPageForS : BasePage() {
override fun onCreate() {
TitleText(textId = R.string.statusbar)
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.double_tap_to_sleep),
SwitchV("status_bar_double_tap_to_sleep")
)
Line()
TitleText(textId = R.string.status_bar_layout)
val statusBarLayoutMode: HashMap<Int, String> = hashMapOf<Int, String>().also {
it[0] = getString(R.string.default1)
it[1] = getString(R.string.clock_center)
it[2] = getString(R.string.clock_right)
it[3] = getString(R.string.clock_center_and_icon_left)
}
TextWithSpinner(
TextV(textId = R.string.status_bar_layout_mode),
SpinnerV(
statusBarLayoutMode[MIUIActivity.safeSP.getInt(
"status_bar_layout_mode",
0
)].toString()
) {
add(statusBarLayoutMode[0].toString()) {
MIUIActivity.safeSP.putAny("status_bar_layout_mode", 0)
}
add(statusBarLayoutMode[1].toString()) {
MIUIActivity.safeSP.putAny("status_bar_layout_mode", 1)
}
add(statusBarLayoutMode[2].toString()) {
MIUIActivity.safeSP.putAny("status_bar_layout_mode", 2)
}
add(statusBarLayoutMode[3].toString()) {
MIUIActivity.safeSP.putAny("status_bar_layout_mode", 3)
}
})
val layoutCompatibilityModeBinding = GetDataBinding({
MIUIActivity.safeSP.getInt(
"screen_hole_location",
0
) == 2
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
val screenHoleLocation: HashMap<Int, String> = hashMapOf<Int, String>().also {
it[0] = getString(R.string.off)
it[1] = getString(R.string.center)
it[2] = getString(R.string.left_or_right)
}
TextSummaryWithSpinner(
TextSummaryV(
textId = R.string.layout_compatibility_mode,
tipsId = R.string.screen_hole_location
),
SpinnerV(
screenHoleLocation[MIUIActivity.safeSP.getInt(
"screen_hole_location",
0
)].toString()
) {
add(screenHoleLocation[0].toString()) {
MIUIActivity.safeSP.putAny("screen_hole_location", 0)
layoutCompatibilityModeBinding.binding.Send().send(false)
}
add(screenHoleLocation[1].toString()) {
MIUIActivity.safeSP.putAny("screen_hole_location", 1)
layoutCompatibilityModeBinding.binding.Send().send(false)
}
add(screenHoleLocation[2].toString()) {
MIUIActivity.safeSP.putAny("screen_hole_location", 2)
layoutCompatibilityModeBinding.binding.Send().send(true)
}
})
Text(
textId = R.string.left_margin,
dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
)
SeekBarWithText(
"status_bar_left_margin",
0,
300,
0,
dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
)
Text(
textId = R.string.right_margin,
dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
)
SeekBarWithText(
"status_bar_right_margin",
0,
300,
0,
dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
)
Line()
TitleText(textId = R.string.status_bar_clock_format)
val customClockPresetBinding = GetDataBinding({
MIUIActivity.safeSP.getInt(
"custom_clock_mode",
0
) == 1
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
val customClockGeekBinding =
GetDataBinding({ MIUIActivity.safeSP.getInt("custom_clock_mode", 0) == 2 }
) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
val customClockMode: HashMap<Int, String> = hashMapOf<Int, String>().also {
it[0] = getString(R.string.off)
it[1] = getString(R.string.preset)
it[2] = getString(R.string.geek)
}
TextWithSpinner(
TextV(textId = R.string.custom_clock_mode),
SpinnerV(customClockMode[MIUIActivity.safeSP.getInt("custom_clock_mode", 0)].toString()) {
add(customClockMode[0].toString()) {
MIUIActivity.safeSP.putAny("custom_clock_mode", 0)
customClockPresetBinding.binding.Send().send(false)
customClockGeekBinding.binding.Send().send(false)
}
add(customClockMode[1].toString()) {
MIUIActivity.safeSP.putAny("custom_clock_mode", 1)
customClockPresetBinding.binding.Send().send(true)
customClockGeekBinding.binding.Send().send(false)
}
add(customClockMode[2].toString()) {
MIUIActivity.safeSP.putAny("custom_clock_mode", 2)
customClockPresetBinding.binding.Send().send(false)
customClockGeekBinding.binding.Send().send(true)
}
})
//预设模式起始
TextWithSwitch(
TextV(textId = R.string.status_bar_time_year),
SwitchV("status_bar_time_year"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_month),
SwitchV("status_bar_time_month"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_day),
SwitchV("status_bar_time_day"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_week),
SwitchV("status_bar_time_week"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_double_hour),
SwitchV("status_bar_time_double_hour"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_period),
SwitchV("status_bar_time_period", true),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_seconds),
SwitchV("status_bar_time_seconds"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_hide_space),
SwitchV("status_bar_time_hide_space"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_double_line),
SwitchV("status_bar_time_double_line"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_double_line_center_align),
SwitchV("status_bar_time_double_line_center_align"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
Text(
textId = R.string.status_bar_clock_size,
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
SeekBarWithText(
"status_bar_clock_size",
0,
18,
0,
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
Text(
textId = R.string.status_bar_clock_double_line_size,
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
SeekBarWithText(
"status_bar_clock_double_line_size",
0,
9,
0,
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
//预设模式结束
//极客模式起始
TextSummaryArrow(TextSummaryV(textId = R.string.custom_clock_format_geek) {
MIUIDialog(activity) {
setTitle(R.string.custom_clock_format_geek)
setEditText(MIUIActivity.safeSP.getString("custom_clock_format_geek", "HH:mm:ss"), "")
setLButton(textId = R.string.cancel) {
dismiss()
}
setRButton(textId = R.string.Done) {
if (getEditText().isNotEmpty()) {
try {
MIUIActivity.safeSP.putAny("custom_clock_format_geek", getEditText())
dismiss()
return@setRButton
} catch (_: Throwable) {
}
}
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT)
.show()
}
}.show()
}, dataBindingRecv = customClockGeekBinding.binding.getRecv(2))
TextWithSwitch(
TextV(textId = R.string.status_bar_time_double_line_center_align),
SwitchV("status_bar_time_center_align_geek"),
dataBindingRecv = customClockGeekBinding.binding.getRecv(2)
)
Text(
textId = R.string.status_bar_clock_size,
dataBindingRecv = customClockGeekBinding.binding.getRecv(2)
)
SeekBarWithText(
"status_bar_clock_size_geek",
0,
18,
0,
dataBindingRecv = customClockGeekBinding.binding.getRecv(2)
)
//极客模式结束
Line()
TitleText(textId = R.string.status_bar_icon)
TextSummaryArrow(
TextSummaryV(
textId = R.string.hide_icon,
onClickListener = { showFragment("hide_icon") })
)
TextWithSwitch(
TextV(textId = R.string.show_wifi_standard),
SwitchV("show_wifi_standard")
)
val customMobileTypeTextBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean(
"custom_mobile_type_text_switch",
false
)
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.custom_mobile_type_text_switch),
SwitchV(
"custom_mobile_type_text_switch",
dataBindingSend = customMobileTypeTextBinding.bindingSend
)
)
TextSummaryArrow(TextSummaryV(textId = R.string.custom_mobile_type_text) {
MIUIDialog(activity) {
setTitle(R.string.custom_mobile_type_text)
setEditText(MIUIActivity.safeSP.getString("custom_mobile_type_text", "5G"), "")
setLButton(textId = R.string.cancel) {
dismiss()
}
setRButton(textId = R.string.Done) {
if (getEditText().isNotEmpty()) {
try {
MIUIActivity.safeSP.putAny("custom_mobile_type_text", getEditText())
dismiss()
return@setRButton
} catch (_: Throwable) {
}
}
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT)
.show()
}
}.show()
}, dataBindingRecv = customMobileTypeTextBinding.binding.getRecv(2))
val bigMobileTypeIconBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean(
"big_mobile_type_icon",
false
)
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.big_mobile_type_icon),
SwitchV(
"big_mobile_type_icon",
dataBindingSend = bigMobileTypeIconBinding.bindingSend
)
)
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.big_mobile_type_icon_bold),
SwitchV("big_mobile_type_icon_bold", true),
dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2)
)
TextSummaryArrow(
TextSummaryV(
textId = R.string.big_mobile_type_icon_size,
onClickListener = {
MIUIDialog(activity) {
setTitle(R.string.big_mobile_type_icon_size)
setEditText(
"",
"${activity.getString(R.string.def)}12.5, ${activity.getString(R.string.current)}${
MIUIActivity.safeSP.getFloat("big_mobile_type_icon_size", 12.5f)
}"
)
setLButton(textId = R.string.cancel) {
dismiss()
}
setRButton(textId = R.string.Done) {
if (getEditText() != "") {
MIUIActivity.safeSP.putAny(
"big_mobile_type_icon_size",
getEditText().toFloat()
)
}
dismiss()
}
}.show()
}), dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2)
)
TextSummaryArrow(TextSummaryV(textId = R.string.big_mobile_type_icon_up_and_down_position) {
MIUIDialog(activity) {
setTitle(R.string.big_mobile_type_icon_up_and_down_position)
setMessage("${activity.getString(R.string.range)} -15~15")
setEditText(
"",
"${activity.getString(R.string.def)}0, ${activity.getString(R.string.current)}${
MIUIActivity.safeSP.getInt("big_mobile_type_icon_up_and_down_position", 0)
}"
)
setLButton(textId = R.string.cancel) {
dismiss()
}
setRButton(textId = R.string.Done) {
if (getEditText().isNotEmpty()) {
try {
val value = getEditText().toInt()
if (value in (-15..15)) {
MIUIActivity.safeSP.putAny(
"big_mobile_type_icon_up_and_down_position",
value
)
dismiss()
return@setRButton
}
} catch (_: Throwable) {
}
}
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT)
.show()
}
}.show()
}, dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2))
TextSummaryArrow(TextSummaryV(textId = R.string.big_mobile_type_icon_left_and_right_margins) {
MIUIDialog(activity) {
setTitle(R.string.big_mobile_type_icon_left_and_right_margins)
setMessage("${activity.getString(R.string.range)} 0~30")
setEditText(
"",
"${activity.getString(R.string.def)}0, ${activity.getString(R.string.current)}${
MIUIActivity.safeSP.getInt("big_mobile_type_icon_left_and_right_margins", 0)
}"
)
setLButton(textId = R.string.cancel) {
dismiss()
}
setRButton(textId = R.string.Done) {
if (getEditText().isNotEmpty()) {
try {
val value = getEditText().toInt()
if (value in (0..30)) {
MIUIActivity.safeSP.putAny(
"big_mobile_type_icon_left_and_right_margins",
value
)
dismiss()
return@setRButton
}
} catch (_: Throwable) {
}
}
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT)
.show()
}
}.show()
}, dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2))
Text(textId = R.string.maximum_number_of_notification_icons)
SeekBarWithText("maximum_number_of_notification_icons", 1, 30, 3)
Text(textId = R.string.maximum_number_of_notification_dots)
SeekBarWithText("maximum_number_of_notification_dots", 0, 4, 3)
TextSummaryArrow(
TextSummaryV(
textId = R.string.battery_percentage_font_size,
onClickListener = {
MIUIDialog(activity) {
setTitle(R.string.battery_percentage_font_size)
setMessage(R.string.zero_do_no_change)
setEditText(
"", "${activity.getString(R.string.current)}${
MIUIActivity.safeSP.getFloat("battery_percentage_font_size", 0f)
}"
)
setLButton(textId = R.string.cancel) {
dismiss()
}
setRButton(textId = R.string.Done) {
if (getEditText() != "") {
MIUIActivity.safeSP.putAny(
"battery_percentage_font_size",
getEditText().toFloat()
)
}
dismiss()
}
}.show()
})
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.hide_battery_percentage_icon,
tipsId = R.string.hide_battery_percentage_icon_summary
), SwitchV("hide_battery_percentage_icon")
)
Line()
TitleText(textId = R.string.status_bar_network_speed)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.status_bar_network_speed_refresh_speed,
tipsId = R.string.status_bar_network_speed_refresh_speed_summary
), SwitchV("status_bar_network_speed_refresh_speed")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.hide_status_bar_network_speed_second,
tipsId = R.string.hide_status_bar_network_speed_second_summary
), SwitchV("hide_status_bar_network_speed_second")
)
TextWithSwitch(
TextV(textId = R.string.hide_network_speed_splitter),
SwitchV("hide_network_speed_splitter")
)
val statusBarDualRowNetworkSpeedBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean(
"status_bar_dual_row_network_speed",
false
)
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.status_bar_dual_row_network_speed,
tipsId = R.string.status_bar_dual_row_network_speed_summary
),
SwitchV(
"status_bar_dual_row_network_speed",
dataBindingSend = statusBarDualRowNetworkSpeedBinding.bindingSend
)
)
val align: HashMap<Int, String> = hashMapOf()
align[0] = getString(R.string.left)
align[1] = getString(R.string.right)
TextWithSpinner(
TextV(textId = R.string.status_bar_network_speed_dual_row_gravity),
SpinnerV(
align[MIUIActivity.safeSP.getInt(
"status_bar_network_speed_dual_row_gravity",
0
)].toString()
) {
add(align[0].toString()) {
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_gravity", 0)
}
add(align[1].toString()) {
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_gravity", 1)
}
},
dataBindingRecv = statusBarDualRowNetworkSpeedBinding.binding.getRecv(2)
)
TextWithSpinner(
TextV(textId = R.string.status_bar_network_speed_dual_row_icon),
SpinnerV(
MIUIActivity.safeSP.getString(
"status_bar_network_speed_dual_row_icon",
getString(R.string.none)
)
) {
add(getString(R.string.none)) {
MIUIActivity.safeSP.putAny(
"status_bar_network_speed_dual_row_icon",
getString(R.string.none)
)
}
add("▲▼") {
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_icon", "▲▼")
}
add("△▽") {
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_icon", "△▽")
}
add("↑↓") {
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_icon", "↑↓")
}
})
Text(
textId = R.string.status_bar_network_speed_dual_row_size,
dataBindingRecv = statusBarDualRowNetworkSpeedBinding.binding.getRecv(2)
)
SeekBarWithText(
"status_bar_network_speed_dual_row_size",
0,
9,
0,
dataBindingRecv = statusBarDualRowNetworkSpeedBinding.binding.getRecv(2)
)
Line()
TitleText(textId = R.string.notification_center)
val showWeatherMainSwitchBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean(
"notification_weather",
false
)
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.show_weather_main_switch,
colorId = R.color.purple_700
),
SwitchV(
"notification_weather",
dataBindingSend = showWeatherMainSwitchBinding.bindingSend
)
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.show_city,
),
SwitchV("notification_weather_city"),
dataBindingRecv = showWeatherMainSwitchBinding.binding.getRecv(2)
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.can_notification_slide,
tipsId = R.string.can_notification_slide_summary,
),
SwitchV("can_notification_slide"),
)
Line()
TitleText(textId = R.string.control_center)
val controlCenterWeatherBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean(
"control_center_weather",
false
)
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.show_weather_main_switch,
colorId = R.color.purple_700,
tipsId = R.string.control_center_weather_summary
),
SwitchV(
"control_center_weather",
dataBindingSend = controlCenterWeatherBinding.bindingSend
)
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.show_city,
),
SwitchV("control_center_weather_city"),
dataBindingRecv = controlCenterWeatherBinding.binding.getRecv(2)
)
Line()
TitleText(textId = R.string.lock_screen)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.lock_screen_clock_display_seconds,
tipsId = R.string.only_official_default_themes_are_supported
), SwitchV("lock_screen_clock_display_seconds")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.remove_the_left_side_of_the_lock_screen,
tipsId = R.string.only_official_default_themes_are_supported
), SwitchV("remove_the_left_side_of_the_lock_screen")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.remove_lock_screen_camera,
tipsId = R.string.only_official_default_themes_are_supported
), SwitchV("remove_lock_screen_camera")
)
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.enable_wave_charge_animation),
SwitchV("enable_wave_charge_animation")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.lock_screen_charging_current,
tipsId = R.string.only_official_default_themes_are_supported
), SwitchV("lock_screen_charging_current")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.double_tap_to_sleep,
tipsId = R.string.home_double_tap_to_sleep_summary
), SwitchV("lock_screen_double_tap_to_sleep")
)
Line()
TitleText(textId = R.string.old_quick_settings_panel)
val oldQSCustomSwitchBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean(
"old_qs_custom_switch",
false
)
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.old_qs_custom_switch,
colorId = R.color.purple_700
),
SwitchV(
"old_qs_custom_switch",
dataBindingSend = oldQSCustomSwitchBinding.bindingSend
)
)
Text(
textId = R.string.qs_custom_rows,
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
)
SeekBarWithText(
"qs_custom_rows",
1,
6,
3,
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
)
Text(
textId = R.string.qs_custom_rows_horizontal,
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
)
SeekBarWithText(
"qs_custom_rows_horizontal",
1,
3,
2,
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
)
Text(
textId = R.string.qs_custom_columns,
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
)
SeekBarWithText(
"qs_custom_columns",
1,
7,
4,
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
)
Text(
textId = R.string.qs_custom_columns_unexpanded,
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
)
SeekBarWithText(
"qs_custom_columns_unexpanded",
1,
7,
5,
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
)
}
}

View File

@@ -0,0 +1,134 @@
package com.lt2333.simplicitytools.activity.pages.t
import android.view.View
import android.widget.Switch
import cn.fkj233.ui.activity.MIUIActivity
import cn.fkj233.ui.activity.annotation.BMPage
import cn.fkj233.ui.activity.data.BasePage
import cn.fkj233.ui.activity.view.SwitchV
import cn.fkj233.ui.activity.view.TextSummaryV
import cn.fkj233.ui.dialog.MIUIDialog
import com.lt2333.simplicitytools.R
@BMPage("scope_android","Android", hideMenu = false)
class AndroidPageForT : BasePage() {
override fun onCreate() {
TitleText(textId = R.string.corepacth)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.downgr,
tipsId = R.string.downgr_summary
), SwitchV("downgrade")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.authcreak,
tipsId = R.string.authcreak_summary
), SwitchV("authcreak")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.digestCreak,
tipsId = R.string.digestCreak_summary
), SwitchV("digestCreak")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.UsePreSig,
tipsId = R.string.UsePreSig_summary
), SwitchV("UsePreSig")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.enhancedMode,
tipsId = R.string.enhancedMode_summary
), SwitchV("enhancedMode")
)
Line()
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.disable_flag_secure,
tipsId = R.string.disable_flag_secure_summary
), SwitchV("disable_flag_secure")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.delete_on_post_notification,
tipsId = R.string.delete_on_post_notification_summary
), SwitchV("delete_on_post_notification")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.remove_small_window_restrictions,
tipsId = R.string.remove_small_window_restrictions_summary
), SwitchV("remove_small_window_restrictions")
)
TextSummaryArrow(
TextSummaryV(
textId = R.string.max_wallpaper_scale,
onClickListener = {
MIUIDialog(activity) {
setTitle(R.string.max_wallpaper_scale)
setEditText(
"",
"${activity.getString(R.string.def)}1.2, ${activity.getString(R.string.current)}${
MIUIActivity.safeSP.getFloat("max_wallpaper_scale", 1.2f)
}"
)
setLButton(textId = R.string.cancel) {
dismiss()
}
setRButton(textId = R.string.Done) {
if (getEditText() != "") {
MIUIActivity.safeSP.putAny(
"max_wallpaper_scale",
getEditText().toFloat()
)
}
dismiss()
}
}.show()
})
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.allow_untrusted_touches,
tipsId = R.string.take_effect_after_reboot
), SwitchV("allow_untrusted_touches")
)
Line()
TitleText(textId = R.string.sound)
val mediaVolumeStepsSwitchBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean(
"media_volume_steps_switch",
false
)
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.media_volume_steps_switch,
tips = "${getString(R.string.take_effect_after_reboot)}\n${getString(R.string.media_volume_steps_summary)}"
),
SwitchV(
"media_volume_steps_switch",
dataBindingSend = mediaVolumeStepsSwitchBinding.bindingSend
)
)
SeekBarWithText(
"media_volume_steps",
15,
29,
15,
dataBindingRecv = mediaVolumeStepsSwitchBinding.binding.getRecv(2)
)
}
}

View File

@@ -0,0 +1,109 @@
package com.lt2333.simplicitytools.activity.pages.t
import android.view.View
import android.widget.Switch
import cn.fkj233.ui.activity.MIUIActivity
import cn.fkj233.ui.activity.annotation.BMPage
import cn.fkj233.ui.activity.data.BasePage
import cn.fkj233.ui.activity.view.SwitchV
import cn.fkj233.ui.activity.view.TextSummaryV
import cn.fkj233.ui.activity.view.TextV
import cn.fkj233.ui.dialog.MIUIDialog
import com.lt2333.simplicitytools.R
@BMPage("hide_icon","Hide Icon", hideMenu = false)
class HideIconPageForT : BasePage() {
override fun onCreate() {
TitleText(textId = R.string.status_bar_icon)
TextWithSwitch(
TextV(textId = R.string.hide_battery_icon),
SwitchV("hide_battery_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_battery_charging_icon),
SwitchV("hide_battery_charging_icon")
)
TextWithSwitch(TextV(textId = R.string.hide_gps_icon), SwitchV("hide_gps_icon"))
TextWithSwitch(
TextV(textId = R.string.hide_bluetooth_icon),
SwitchV("hide_bluetooth_icon")
)
TextWithSwitch(TextV(textId = R.string.hide_nfc_icon), SwitchV("hide_nfc_icon"))
TextWithSwitch(
TextV(textId = R.string.hide_bluetooth_battery_icon),
SwitchV("hide_bluetooth_battery_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_small_hd_icon),
SwitchV("hide_small_hd_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_big_hd_icon),
SwitchV("hide_big_hd_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_new_hd_icon),
SwitchV("hide_new_hd_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_hd_no_service_icon),
SwitchV("hide_hd_no_service_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_no_sim_icon),
SwitchV("hide_no_sim_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_sim_one_icon),
SwitchV("hide_sim_one_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_sim_two_icon),
SwitchV("hide_sim_two_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_mobile_activity_icon),
SwitchV("hide_mobile_activity_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_mobile_type_icon),
SwitchV("hide_mobile_type_icon")
)
TextWithSwitch(TextV(textId = R.string.hide_wifi_icon), SwitchV("hide_wifi_icon"))
TextWithSwitch(
TextV(textId = R.string.hide_wifi_activity_icon),
SwitchV("hide_wifi_activity_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_wifi_standard_icon),
SwitchV("hide_wifi_standard_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_slave_wifi_icon),
SwitchV("hide_slave_wifi_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_hotspot_icon),
SwitchV("hide_hotspot_icon")
)
TextWithSwitch(TextV(textId = R.string.hide_vpn_icon), SwitchV("hide_vpn_icon"))
TextWithSwitch(
TextV(textId = R.string.hide_airplane_icon),
SwitchV("hide_airplane_icon")
)
TextWithSwitch(TextV(textId = R.string.hide_alarm_icon), SwitchV("hide_alarm_icon"))
TextWithSwitch(
TextV(textId = R.string.hide_headset_icon),
SwitchV("hide_headset_icon")
)
TextWithSwitch(
TextV(textId = R.string.hide_volume_icon),
SwitchV("hide_volume_icon")
)
TextWithSwitch(TextV(textId = R.string.hide_zen_icon), SwitchV("hide_zen_icon"))
}
}

View File

@@ -0,0 +1,82 @@
package com.lt2333.simplicitytools.activity.pages.t
import android.content.ComponentName
import android.content.pm.PackageManager
import cn.fkj233.ui.activity.annotation.BMMainPage
import cn.fkj233.ui.activity.data.BasePage
import cn.fkj233.ui.activity.view.SwitchV
import cn.fkj233.ui.activity.view.TextSummaryV
import cn.fkj233.ui.dialog.MIUIDialog
import com.lt2333.simplicitytools.BuildConfig
import com.lt2333.simplicitytools.R
@BMMainPage("WooBox[MIUI14]")
class MainPageForT : BasePage() {
override fun onCreate() {
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.main_switch,
colorId = R.color.purple_700
), SwitchV("main_switch", true)
)
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.HideLauncherIcon),
SwitchV("hLauncherIcon", onClickListener = {
activity.packageManager.setComponentEnabledSetting(
ComponentName(activity, "${BuildConfig.APPLICATION_ID}.launcher"),
if (it) {
PackageManager.COMPONENT_ENABLED_STATE_DISABLED
} else {
PackageManager.COMPONENT_ENABLED_STATE_ENABLED
},
PackageManager.DONT_KILL_APP
)
})
)
TextSummaryArrow(
TextSummaryV(
textId = R.string.matters_needing_attention,
colorId = R.color.red,
onClickListener = {
MIUIDialog(activity) {
setTitle(R.string.matters_needing_attention)
setMessage(R.string.matters_needing_attention_context)
setRButton(R.string.Done) {
dismiss()
}
}.show()
})
)
Line()
TitleText(textId = R.string.scope)
TextSummaryArrow(
TextSummaryV(
textId = R.string.scope_systemui,
tipsId = R.string.scope_systemui_summary,
onClickListener = { showFragment("scope_systemui") })
)
TextSummaryArrow(
TextSummaryV(
textId = R.string.scope_android,
tipsId = R.string.scope_android_summary,
onClickListener = { showFragment("scope_android") })
)
TextSummaryArrow(
TextSummaryV(
textId = R.string.scope_other,
tipsId = R.string.scope_other_summary,
onClickListener = { showFragment("scope_other") })
)
Line()
TitleText(textId = R.string.about)
TextSummaryArrow(
TextSummaryV(
textId = R.string.about_module,
tips = getString(R.string.about_module_summary),
onClickListener = { showFragment("about_module") })
)
}
}

View File

@@ -0,0 +1,177 @@
package com.lt2333.simplicitytools.activity.pages.t
import android.content.ComponentName
import android.content.Intent
import android.content.pm.PackageManager
import android.view.View
import android.widget.Switch
import android.widget.Toast
import cn.fkj233.ui.activity.MIUIActivity
import cn.fkj233.ui.activity.annotation.BMPage
import cn.fkj233.ui.activity.data.BasePage
import cn.fkj233.ui.activity.view.SwitchV
import cn.fkj233.ui.activity.view.TextSummaryV
import cn.fkj233.ui.dialog.MIUIDialog
import com.lt2333.simplicitytools.BuildConfig
import com.lt2333.simplicitytools.R
@BMPage("scope_other","Other", hideMenu = false)
class OtherPageForT : BasePage() {
override fun onCreate() {
TitleText(textId = R.string.scope_miuihome)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.home_time,
tipsId = R.string.home_time_summary
), SwitchV("home_time")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.double_tap_to_sleep,
tipsId = R.string.home_double_tap_to_sleep_summary
), SwitchV("double_tap_to_sleep")
)
Line()
TitleText(textId = R.string.scope_powerkeeper)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.lock_max_fps,
tipsId = R.string.lock_max_fps_summary
), SwitchV("lock_max_fps")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.prevent_recovery_of_battery_optimization_white_list,
tipsId = R.string.failed_after_restart
), SwitchV("prevent_recovery_of_battery_optimization_white_list")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.do_not_clear_app,
tipsId = R.string.do_not_clear_app_summary
), SwitchV("do_not_clear_app")
)
val makeMilletMoreAggressiveSwitchBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean(
"make_millet_more_aggressive",
false
)
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.make_millet_more_aggressive,
tipsId = R.string.make_millet_more_aggressive_summary
),
SwitchV(
"make_millet_more_aggressive",
dataBindingSend = makeMilletMoreAggressiveSwitchBinding.bindingSend
)
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.make_millet_ignore_active,
tipsId = R.string.make_millet_ignore_active_summary
),
SwitchV("make_millet_ignore_active"),
dataBindingRecv = makeMilletMoreAggressiveSwitchBinding.binding.getRecv(2)
)
TextSummaryArrow(
TextSummaryV(
textId = R.string.battery_optimization,
tipsId = R.string.battery_optimization_summary,
onClickListener = {
try {
val intent = Intent()
val comp = ComponentName(
"com.android.settings",
"com.android.settings.Settings\$HighPowerApplicationsActivity"
)
intent.component = comp
activity.startActivity(intent)
} catch (e: Exception) {
Toast.makeText(activity, "启动失败,可能是不支持", Toast.LENGTH_LONG).show()
}
})
)
Line()
TitleText(textId = R.string.scope_securitycenter)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.skip_waiting_time,
tipsId = R.string.skip_waiting_time_summary
), SwitchV("skip_waiting_time")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.remove_open_app_confirmation_popup,
tipsId = R.string.remove_open_app_confirmation_popup_summary
), SwitchV("remove_open_app_confirmation_popup")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.lock_one_hundred,
tipsId = R.string.lock_one_hundred_summary
), SwitchV("lock_one_hundred")
)
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.remove_macro_blacklist),
SwitchV("remove_macro_blacklist")
)
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.battery_life_function),
SwitchV("battery_life_function")
)
Line()
TitleText(textId = R.string.scope_mediaeditor)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.unlock_unlimited_cropping,
tipsId = R.string.unlock_unlimited_cropping_summary
), SwitchV("unlock_unlimited_cropping")
)
Line()
TitleText(textId = R.string.updater)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.remove_ota_validate,
tipsId = R.string.remove_ota_validate_summary
), SwitchV("remove_ota_validate")
)
Line()
TitleText(textId = R.string.settings)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.show_notification_importance,
tipsId = R.string.show_notification_importance_summary
), SwitchV("show_notification_importance")
)
Line()
TitleText(textId = R.string.cast)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.force_support_send_app,
), SwitchV("force_support_send_app")
)
Line()
TitleText(textId = R.string.rear_display)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.show_weather_main_switch,
), SwitchV("rear_show_weather")
)
Line()
TitleText(textId = R.string.remove_ad)
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.remove_thememanager_ads),
SwitchV("remove_thememanager_ads")
)
}
}

View File

@@ -0,0 +1,759 @@
package com.lt2333.simplicitytools.activity.pages.t
import android.view.View
import android.widget.Switch
import android.widget.Toast
import cn.fkj233.ui.activity.MIUIActivity
import cn.fkj233.ui.activity.annotation.BMPage
import cn.fkj233.ui.activity.data.BasePage
import cn.fkj233.ui.activity.view.SpinnerV
import cn.fkj233.ui.activity.view.SwitchV
import cn.fkj233.ui.activity.view.TextSummaryV
import cn.fkj233.ui.activity.view.TextV
import cn.fkj233.ui.dialog.MIUIDialog
import com.lt2333.simplicitytools.R
import java.util.HashMap
@BMPage("scope_systemui","System UI", hideMenu = false)
class SystemUIPageForT : BasePage() {
override fun onCreate() {
TitleText(textId = R.string.statusbar)
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.double_tap_to_sleep),
SwitchV("status_bar_double_tap_to_sleep")
)
Line()
TitleText(textId = R.string.status_bar_layout)
val statusBarLayoutMode: HashMap<Int, String> = hashMapOf<Int, String>().also {
it[0] = getString(R.string.default1)
it[1] = getString(R.string.clock_center)
it[2] = getString(R.string.clock_right)
it[3] = getString(R.string.clock_center_and_icon_left)
}
TextWithSpinner(
TextV(textId = R.string.status_bar_layout_mode),
SpinnerV(
statusBarLayoutMode[MIUIActivity.safeSP.getInt(
"status_bar_layout_mode",
0
)].toString()
) {
add(statusBarLayoutMode[0].toString()) {
MIUIActivity.safeSP.putAny("status_bar_layout_mode", 0)
}
add(statusBarLayoutMode[1].toString()) {
MIUIActivity.safeSP.putAny("status_bar_layout_mode", 1)
}
add(statusBarLayoutMode[2].toString()) {
MIUIActivity.safeSP.putAny("status_bar_layout_mode", 2)
}
add(statusBarLayoutMode[3].toString()) {
MIUIActivity.safeSP.putAny("status_bar_layout_mode", 3)
}
})
val layoutCompatibilityModeBinding = GetDataBinding({
MIUIActivity.safeSP.getInt(
"screen_hole_location",
0
) == 2
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
val screenHoleLocation: HashMap<Int, String> = hashMapOf<Int, String>().also {
it[0] = getString(R.string.off)
it[1] = getString(R.string.center)
it[2] = getString(R.string.left_or_right)
}
TextSummaryWithSpinner(
TextSummaryV(
textId = R.string.layout_compatibility_mode,
tipsId = R.string.screen_hole_location
),
SpinnerV(
screenHoleLocation[MIUIActivity.safeSP.getInt(
"screen_hole_location",
0
)].toString()
) {
add(screenHoleLocation[0].toString()) {
MIUIActivity.safeSP.putAny("screen_hole_location", 0)
layoutCompatibilityModeBinding.binding.Send().send(false)
}
add(screenHoleLocation[1].toString()) {
MIUIActivity.safeSP.putAny("screen_hole_location", 1)
layoutCompatibilityModeBinding.binding.Send().send(false)
}
add(screenHoleLocation[2].toString()) {
MIUIActivity.safeSP.putAny("screen_hole_location", 2)
layoutCompatibilityModeBinding.binding.Send().send(true)
}
})
Text(
textId = R.string.left_margin,
dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
)
SeekBarWithText(
"status_bar_left_margin",
0,
300,
0,
dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
)
Text(
textId = R.string.right_margin,
dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
)
SeekBarWithText(
"status_bar_right_margin",
0,
300,
0,
dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
)
Line()
TitleText(textId = R.string.status_bar_clock_format)
val customClockPresetBinding = GetDataBinding({
MIUIActivity.safeSP.getInt(
"custom_clock_mode",
0
) == 1
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
val customClockGeekBinding =
GetDataBinding({ MIUIActivity.safeSP.getInt("custom_clock_mode", 0) == 2 }
) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
val customClockMode: HashMap<Int, String> = hashMapOf<Int, String>().also {
it[0] = getString(R.string.off)
it[1] = getString(R.string.preset)
it[2] = getString(R.string.geek)
}
TextWithSpinner(
TextV(textId = R.string.custom_clock_mode),
SpinnerV(customClockMode[MIUIActivity.safeSP.getInt("custom_clock_mode", 0)].toString()) {
add(customClockMode[0].toString()) {
MIUIActivity.safeSP.putAny("custom_clock_mode", 0)
customClockPresetBinding.binding.Send().send(false)
customClockGeekBinding.binding.Send().send(false)
}
add(customClockMode[1].toString()) {
MIUIActivity.safeSP.putAny("custom_clock_mode", 1)
customClockPresetBinding.binding.Send().send(true)
customClockGeekBinding.binding.Send().send(false)
}
add(customClockMode[2].toString()) {
MIUIActivity.safeSP.putAny("custom_clock_mode", 2)
customClockPresetBinding.binding.Send().send(false)
customClockGeekBinding.binding.Send().send(true)
}
})
//预设模式起始
TextWithSwitch(
TextV(textId = R.string.status_bar_time_year),
SwitchV("status_bar_time_year"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_month),
SwitchV("status_bar_time_month"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_day),
SwitchV("status_bar_time_day"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_week),
SwitchV("status_bar_time_week"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_double_hour),
SwitchV("status_bar_time_double_hour"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_period),
SwitchV("status_bar_time_period", true),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_seconds),
SwitchV("status_bar_time_seconds"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_hide_space),
SwitchV("status_bar_time_hide_space"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_double_line),
SwitchV("status_bar_time_double_line"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
TextWithSwitch(
TextV(textId = R.string.status_bar_time_double_line_center_align),
SwitchV("status_bar_time_double_line_center_align"),
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
Text(
textId = R.string.status_bar_clock_size,
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
SeekBarWithText(
"status_bar_clock_size",
0,
18,
0,
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
Text(
textId = R.string.status_bar_clock_double_line_size,
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
SeekBarWithText(
"status_bar_clock_double_line_size",
0,
9,
0,
dataBindingRecv = customClockPresetBinding.binding.getRecv(2)
)
//预设模式结束
//极客模式起始
TextSummaryArrow(TextSummaryV(textId = R.string.custom_clock_format_geek) {
MIUIDialog(activity) {
setTitle(R.string.custom_clock_format_geek)
setEditText(MIUIActivity.safeSP.getString("custom_clock_format_geek", "HH:mm:ss"), "")
setLButton(textId = R.string.cancel) {
dismiss()
}
setRButton(textId = R.string.Done) {
if (getEditText().isNotEmpty()) {
try {
MIUIActivity.safeSP.putAny("custom_clock_format_geek", getEditText())
dismiss()
return@setRButton
} catch (_: Throwable) {
}
}
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT)
.show()
}
}.show()
}, dataBindingRecv = customClockGeekBinding.binding.getRecv(2))
TextWithSwitch(
TextV(textId = R.string.status_bar_time_double_line_center_align),
SwitchV("status_bar_time_center_align_geek"),
dataBindingRecv = customClockGeekBinding.binding.getRecv(2)
)
Text(
textId = R.string.status_bar_clock_size,
dataBindingRecv = customClockGeekBinding.binding.getRecv(2)
)
SeekBarWithText(
"status_bar_clock_size_geek",
0,
18,
0,
dataBindingRecv = customClockGeekBinding.binding.getRecv(2)
)
//极客模式结束
Line()
TitleText(textId = R.string.status_bar_icon)
TextSummaryArrow(
TextSummaryV(
textId = R.string.hide_icon,
onClickListener = { showFragment("hide_icon") })
)
TextWithSwitch(
TextV(textId = R.string.show_wifi_standard),
SwitchV("show_wifi_standard")
)
val customMobileTypeTextBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean(
"custom_mobile_type_text_switch",
false
)
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.custom_mobile_type_text_switch),
SwitchV(
"custom_mobile_type_text_switch",
dataBindingSend = customMobileTypeTextBinding.bindingSend
)
)
TextSummaryArrow(TextSummaryV(textId = R.string.custom_mobile_type_text) {
MIUIDialog(activity) {
setTitle(R.string.custom_mobile_type_text)
setEditText(MIUIActivity.safeSP.getString("custom_mobile_type_text", "5G"), "")
setLButton(textId = R.string.cancel) {
dismiss()
}
setRButton(textId = R.string.Done) {
if (getEditText().isNotEmpty()) {
try {
MIUIActivity.safeSP.putAny("custom_mobile_type_text", getEditText())
dismiss()
return@setRButton
} catch (_: Throwable) {
}
}
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT)
.show()
}
}.show()
}, dataBindingRecv = customMobileTypeTextBinding.binding.getRecv(2))
val bigMobileTypeIconBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean(
"big_mobile_type_icon",
false
)
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.big_mobile_type_icon),
SwitchV(
"big_mobile_type_icon",
dataBindingSend = bigMobileTypeIconBinding.bindingSend
)
)
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.big_mobile_type_icon_bold),
SwitchV("big_mobile_type_icon_bold", true),
dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2)
)
TextSummaryArrow(
TextSummaryV(
textId = R.string.big_mobile_type_icon_size,
onClickListener = {
MIUIDialog(activity) {
setTitle(R.string.big_mobile_type_icon_size)
setEditText(
"",
"${activity.getString(R.string.def)}12.5, ${activity.getString(R.string.current)}${
MIUIActivity.safeSP.getFloat("big_mobile_type_icon_size", 12.5f)
}"
)
setLButton(textId = R.string.cancel) {
dismiss()
}
setRButton(textId = R.string.Done) {
if (getEditText() != "") {
MIUIActivity.safeSP.putAny(
"big_mobile_type_icon_size",
getEditText().toFloat()
)
}
dismiss()
}
}.show()
}), dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2)
)
TextSummaryArrow(TextSummaryV(textId = R.string.big_mobile_type_icon_up_and_down_position) {
MIUIDialog(activity) {
setTitle(R.string.big_mobile_type_icon_up_and_down_position)
setMessage("${activity.getString(R.string.range)} -15~15")
setEditText(
"",
"${activity.getString(R.string.def)}0, ${activity.getString(R.string.current)}${
MIUIActivity.safeSP.getInt("big_mobile_type_icon_up_and_down_position", 0)
}"
)
setLButton(textId = R.string.cancel) {
dismiss()
}
setRButton(textId = R.string.Done) {
if (getEditText().isNotEmpty()) {
try {
val value = getEditText().toInt()
if (value in (-15..15)) {
MIUIActivity.safeSP.putAny(
"big_mobile_type_icon_up_and_down_position",
value
)
dismiss()
return@setRButton
}
} catch (_: Throwable) {
}
}
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT)
.show()
}
}.show()
}, dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2))
TextSummaryArrow(TextSummaryV(textId = R.string.big_mobile_type_icon_left_and_right_margins) {
MIUIDialog(activity) {
setTitle(R.string.big_mobile_type_icon_left_and_right_margins)
setMessage("${activity.getString(R.string.range)} 0~30")
setEditText(
"",
"${activity.getString(R.string.def)}0, ${activity.getString(R.string.current)}${
MIUIActivity.safeSP.getInt("big_mobile_type_icon_left_and_right_margins", 0)
}"
)
setLButton(textId = R.string.cancel) {
dismiss()
}
setRButton(textId = R.string.Done) {
if (getEditText().isNotEmpty()) {
try {
val value = getEditText().toInt()
if (value in (0..30)) {
MIUIActivity.safeSP.putAny(
"big_mobile_type_icon_left_and_right_margins",
value
)
dismiss()
return@setRButton
}
} catch (_: Throwable) {
}
}
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT)
.show()
}
}.show()
}, dataBindingRecv = bigMobileTypeIconBinding.binding.getRecv(2))
Text(textId = R.string.maximum_number_of_notification_icons)
SeekBarWithText("maximum_number_of_notification_icons", 1, 30, 3)
Text(textId = R.string.maximum_number_of_notification_dots)
SeekBarWithText("maximum_number_of_notification_dots", 0, 4, 3)
TextSummaryArrow(
TextSummaryV(
textId = R.string.battery_percentage_font_size,
onClickListener = {
MIUIDialog(activity) {
setTitle(R.string.battery_percentage_font_size)
setMessage(R.string.zero_do_no_change)
setEditText(
"", "${activity.getString(R.string.current)}${
MIUIActivity.safeSP.getFloat("battery_percentage_font_size", 0f)
}"
)
setLButton(textId = R.string.cancel) {
dismiss()
}
setRButton(textId = R.string.Done) {
if (getEditText() != "") {
MIUIActivity.safeSP.putAny(
"battery_percentage_font_size",
getEditText().toFloat()
)
}
dismiss()
}
}.show()
})
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.hide_battery_percentage_icon,
tipsId = R.string.hide_battery_percentage_icon_summary
), SwitchV("hide_battery_percentage_icon")
)
Line()
TitleText(textId = R.string.status_bar_network_speed)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.status_bar_network_speed_refresh_speed,
tipsId = R.string.status_bar_network_speed_refresh_speed_summary
), SwitchV("status_bar_network_speed_refresh_speed")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.hide_status_bar_network_speed_second,
tipsId = R.string.hide_status_bar_network_speed_second_summary
), SwitchV("hide_status_bar_network_speed_second")
)
TextWithSwitch(
TextV(textId = R.string.hide_network_speed_splitter),
SwitchV("hide_network_speed_splitter")
)
val statusBarDualRowNetworkSpeedBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean(
"status_bar_dual_row_network_speed",
false
)
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.status_bar_dual_row_network_speed,
tipsId = R.string.status_bar_dual_row_network_speed_summary
),
SwitchV(
"status_bar_dual_row_network_speed",
dataBindingSend = statusBarDualRowNetworkSpeedBinding.bindingSend
)
)
val align: HashMap<Int, String> = hashMapOf()
align[0] = getString(R.string.left)
align[1] = getString(R.string.right)
TextWithSpinner(
TextV(textId = R.string.status_bar_network_speed_dual_row_gravity),
SpinnerV(
align[MIUIActivity.safeSP.getInt(
"status_bar_network_speed_dual_row_gravity",
0
)].toString()
) {
add(align[0].toString()) {
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_gravity", 0)
}
add(align[1].toString()) {
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_gravity", 1)
}
},
dataBindingRecv = statusBarDualRowNetworkSpeedBinding.binding.getRecv(2)
)
TextWithSpinner(
TextV(textId = R.string.status_bar_network_speed_dual_row_icon),
SpinnerV(
MIUIActivity.safeSP.getString(
"status_bar_network_speed_dual_row_icon",
getString(R.string.none)
)
) {
add(getString(R.string.none)) {
MIUIActivity.safeSP.putAny(
"status_bar_network_speed_dual_row_icon",
getString(R.string.none)
)
}
add("▲▼") {
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_icon", "▲▼")
}
add("△▽") {
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_icon", "△▽")
}
add("↑↓") {
MIUIActivity.safeSP.putAny("status_bar_network_speed_dual_row_icon", "↑↓")
}
})
Text(
textId = R.string.status_bar_network_speed_dual_row_size,
dataBindingRecv = statusBarDualRowNetworkSpeedBinding.binding.getRecv(2)
)
SeekBarWithText(
"status_bar_network_speed_dual_row_size",
0,
9,
0,
dataBindingRecv = statusBarDualRowNetworkSpeedBinding.binding.getRecv(2)
)
Line()
TitleText(textId = R.string.notification_center)
val showWeatherMainSwitchBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean(
"notification_weather",
false
)
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.show_weather_main_switch,
colorId = R.color.purple_700
),
SwitchV(
"notification_weather",
dataBindingSend = showWeatherMainSwitchBinding.bindingSend
)
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.show_city,
),
SwitchV("notification_weather_city"),
dataBindingRecv = showWeatherMainSwitchBinding.binding.getRecv(2)
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.can_notification_slide,
tipsId = R.string.can_notification_slide_summary,
),
SwitchV("can_notification_slide"),
)
Line()
TitleText(textId = R.string.control_center)
val controlCenterWeatherBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean(
"control_center_weather",
false
)
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.show_weather_main_switch,
colorId = R.color.purple_700,
tipsId = R.string.control_center_weather_summary
),
SwitchV(
"control_center_weather",
dataBindingSend = controlCenterWeatherBinding.bindingSend
)
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.show_city,
),
SwitchV("control_center_weather_city"),
dataBindingRecv = controlCenterWeatherBinding.binding.getRecv(2)
)
Line()
TitleText(textId = R.string.lock_screen)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.lock_screen_clock_display_seconds,
tipsId = R.string.only_official_default_themes_are_supported
), SwitchV("lock_screen_clock_display_seconds")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.remove_the_left_side_of_the_lock_screen,
tipsId = R.string.only_official_default_themes_are_supported
), SwitchV("remove_the_left_side_of_the_lock_screen")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.remove_lock_screen_camera,
tipsId = R.string.only_official_default_themes_are_supported
), SwitchV("remove_lock_screen_camera")
)
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.enable_wave_charge_animation),
SwitchV("enable_wave_charge_animation")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.lock_screen_charging_current,
tipsId = R.string.only_official_default_themes_are_supported
), SwitchV("lock_screen_charging_current")
)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.double_tap_to_sleep,
tipsId = R.string.home_double_tap_to_sleep_summary
), SwitchV("lock_screen_double_tap_to_sleep")
)
Line()
TitleText(textId = R.string.old_quick_settings_panel)
val oldQSCustomSwitchBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean(
"old_qs_custom_switch",
false
)
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
2 -> view.visibility = if (data as Boolean) View.VISIBLE else View.GONE
}
}
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.old_qs_custom_switch,
colorId = R.color.purple_700
),
SwitchV(
"old_qs_custom_switch",
dataBindingSend = oldQSCustomSwitchBinding.bindingSend
)
)
Text(
textId = R.string.qs_custom_rows,
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
)
SeekBarWithText(
"qs_custom_rows",
1,
6,
3,
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
)
Text(
textId = R.string.qs_custom_rows_horizontal,
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
)
SeekBarWithText(
"qs_custom_rows_horizontal",
1,
3,
2,
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
)
Text(
textId = R.string.qs_custom_columns,
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
)
SeekBarWithText(
"qs_custom_columns",
1,
7,
4,
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
)
Text(
textId = R.string.qs_custom_columns_unexpanded,
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
)
SeekBarWithText(
"qs_custom_columns_unexpanded",
1,
7,
5,
dataBindingRecv = oldQSCustomSwitchBinding.binding.getRecv(2)
)
}
}

View File

@@ -1,25 +0,0 @@
package com.lt2333.simplicitytools.hook.app
import com.lt2333.simplicitytools.hook.app.android.*
import com.lt2333.simplicitytools.hook.app.android.corepatch.CorePatchMainHook
import com.lt2333.simplicitytools.util.xposed.base.AppRegister
import de.robv.android.xposed.callbacks.XC_LoadPackage
object Android : AppRegister() {
override val packageName: String = "android"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
//核心破解
CorePatchMainHook().handleLoadPackage(lpparam)
autoInitHooks(
lpparam,
DisableFlagSecure, //允许截图
DeleteOnPostNotification, //上层显示
RemoveSmallWindowRestrictions, //解除小窗限制
MaxWallpaperScale, //壁纸缩放比例
SystemPropertiesHook, //SystemPropertiesHook
AllowUntrustedTouches, //允许不受信任的触摸
)
}
}

View File

@@ -1,15 +0,0 @@
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.callbacks.XC_LoadPackage
object Cast: AppRegister() {
override val packageName: String = "com.milink.service"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
autoInitHooks(lpparam,
ForceSupportSendApp, //强制允许所有应用接力
)
}
}

View File

@@ -1,15 +0,0 @@
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.callbacks.XC_LoadPackage
object MediaEditor: AppRegister() {
override val packageName: String = "com.miui.mediaeditor"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
autoInitHooks(lpparam,
UnlockUnlimitedCropping, //解锁裁切最小值
)
}
}

View File

@@ -1,17 +0,0 @@
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.callbacks.XC_LoadPackage
object MiuiHome: AppRegister() {
override val packageName: String = "com.miui.home"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
autoInitHooks(lpparam,
AlwaysDisplayTime, //时钟显示时钟
DoubleTapToSleep, //双击锁屏
)
}
}

View File

@@ -1,21 +0,0 @@
package com.lt2333.simplicitytools.hook.app
import com.lt2333.simplicitytools.hook.app.powerkeeper.DoNotClearApp
import com.lt2333.simplicitytools.hook.app.powerkeeper.LockMaxFps
import com.lt2333.simplicitytools.hook.app.powerkeeper.MakeMilletMoreAggressive
import com.lt2333.simplicitytools.hook.app.powerkeeper.PreventRecoveryOfBatteryOptimizationWhitelist
import com.lt2333.simplicitytools.util.xposed.base.AppRegister
import de.robv.android.xposed.callbacks.XC_LoadPackage
object PowerKeeper: AppRegister() {
override val packageName: String = "com.miui.powerkeeper"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
autoInitHooks(lpparam,
LockMaxFps, //锁定最高刷新率
PreventRecoveryOfBatteryOptimizationWhitelist, //防止恢复电池优化白名单
DoNotClearApp,//阻止杀后台
MakeMilletMoreAggressive,//使 Millet 更激进
)
}
}

View File

@@ -1,15 +0,0 @@
package com.lt2333.simplicitytools.hook.app
import com.lt2333.simplicitytools.hook.app.reardisplay.RearDisplayWeather
import com.lt2333.simplicitytools.util.xposed.base.AppRegister
import de.robv.android.xposed.callbacks.XC_LoadPackage
object RearDisplay: AppRegister() {
override val packageName: String = "com.xiaomi.misubscreenui"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
autoInitHooks(lpparam,
RearDisplayWeather, //背屏显示天气
)
}
}

View File

@@ -1,15 +0,0 @@
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.callbacks.XC_LoadPackage
object ScreenShot: AppRegister() {
override val packageName: String = "com.miui.screenshot"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
autoInitHooks(lpparam,
UnlockUnlimitedCropping, //锁定最高刷新率
)
}
}

View File

@@ -1,19 +0,0 @@
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.callbacks.XC_LoadPackage
object SecurityCenter: AppRegister() {
override val packageName: String = "com.miui.securitycenter"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
autoInitHooks(lpparam,
SkipWaitingTime, //跳过 5/10秒等待时间
LockOneHundred, //锁定 100分
RemoveMacroBlacklist, //去除自动连招黑名单
ShowBatteryTemperature, //显示电池温度
RemoveOpenAppConfirmationPopup, //去除打开应用弹窗
)
}
}

View File

@@ -1,15 +0,0 @@
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.callbacks.XC_LoadPackage
object Settings: AppRegister() {
override val packageName: String = "com.android.settings"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
autoInitHooks(lpparam,
ShowNotificationImportance, //显示通知重要程度
)
}
}

View File

@@ -1,47 +0,0 @@
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.callbacks.XC_LoadPackage
object SystemUI: AppRegister() {
override val packageName: String = "com.android.systemui"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
autoInitHooks(lpparam,
HideStatusBarIcon, //隐藏状态栏图标
HideBatteryIcon, //隐藏电池
HideHDIcon, //隐藏HD图标
HideSimIcon, //隐藏SIM卡图标
HideMobileActivityIcon, //隐藏移动箭头图标
HideMobileTypeIcon, //隐藏移动类型图标
HideStatusBarNetworkSpeedSecond, //隐藏状态栏网速/s
HideWifiActivityIcon, //隐藏WIFI活动箭头图标
MaximumNumberOfNotificationIcons, //通知图标上限
StatusBarNetworkSpeedRefreshSpeed, //状态栏网速秒刷新
StatusBarTimeCustomization, //状态栏时钟自定义
RemoveTheLeftSideOfTheLockScreen, //移除锁屏负一屏功能
RemoveLockScreenCamera, //移除锁屏相机功能
NotificationWeather, //通知面板天气
NewNotificationWeather, // 新控制中心天气
OldNotificationWeather,
ControlCenterWeather, //控制中心天气
//StatusBarCurrent, //TODO状态栏电流
StatusBarLayout, //状态栏布局
HideNetworkSpeedSplitter, //隐藏时钟与实时网速之间的分隔符
WaveCharge, //Alpha充电动画
LockScreenCurrent, //锁屏电流
LockScreenDoubleTapToSleep, //锁屏下双击锁屏
StatusBarDoubleTapToSleep, //双击状态栏锁屏
OldQSCustom, //旧版快速设置自定义
DoubleLineNetworkSpeed, //双排网速
StatusBarBigMobileTypeIcon, //大移动类型
BatteryPercentage, //电量百分比
CustomMobileTypeText, //自定义移动类型文本
CanNotificationSlide, //允许下滑通知打开小窗
LockScreenClockDisplaySeconds, // 锁屏时钟显示秒
ShowWifiStandard, // 显示 WIFI 角标
NoPasswordHook, // 显示 WIFI 角标
)
}
}

View File

@@ -1,15 +0,0 @@
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.callbacks.XC_LoadPackage
object ThemeManager: AppRegister() {
override val packageName: String = "com.android.thememanager"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
autoInitHooks(lpparam,
RemoveAds, //移除主题壁纸的广告
)
}
}

View File

@@ -1,4 +0,0 @@
package com.lt2333.simplicitytools.hook.app.android.corepatch;
public class CorePatchForSv2 extends CorePatchForS{
}

View File

@@ -1,15 +1,15 @@
package com.lt2333.simplicitytools.hook package com.lt2333.simplicitytools.hooks
import com.lt2333.simplicitytools.BuildConfig import com.lt2333.simplicitytools.BuildConfig
import com.lt2333.simplicitytools.hook.app.* import com.lt2333.simplicitytools.hooks.apps.*
import com.lt2333.simplicitytools.hook.app.android.corepatch.CorePatchMainHook import com.lt2333.simplicitytools.hooks.rules.all.CorePatchMainHook
import com.lt2333.simplicitytools.util.xposed.EasyXposedInit import com.lt2333.simplicitytools.utils.xposed.EasyXposedInit
import com.lt2333.simplicitytools.util.xposed.base.AppRegister import com.lt2333.simplicitytools.utils.xposed.base.AppRegister
import de.robv.android.xposed.IXposedHookZygoteInit import de.robv.android.xposed.IXposedHookZygoteInit
import de.robv.android.xposed.XSharedPreferences import de.robv.android.xposed.XSharedPreferences
import de.robv.android.xposed.callbacks.XC_LoadPackage import de.robv.android.xposed.callbacks.XC_LoadPackage
class XposedEntry : EasyXposedInit() { class MainHook : EasyXposedInit() {
private var prefs = XSharedPreferences(BuildConfig.APPLICATION_ID, "config") private var prefs = XSharedPreferences(BuildConfig.APPLICATION_ID, "config")
override val registeredApp: List<AppRegister> = listOf( override val registeredApp: List<AppRegister> = listOf(

View File

@@ -0,0 +1,41 @@
package com.lt2333.simplicitytools.hooks.apps
import android.os.Build
import com.lt2333.simplicitytools.hooks.rules.all.CorePatchMainHook
import com.lt2333.simplicitytools.hooks.rules.s.android.*
import com.lt2333.simplicitytools.hooks.rules.t.android.MaxWallpaperScaleForT
import com.lt2333.simplicitytools.utils.xposed.base.AppRegister
import de.robv.android.xposed.callbacks.XC_LoadPackage
object Android : AppRegister() {
override val packageName: String = "android"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
//核心破解
CorePatchMainHook().handleLoadPackage(lpparam)
when (Build.VERSION.SDK_INT) {
Build.VERSION_CODES.TIRAMISU -> {
autoInitHooks(
lpparam,
DisableFlagSecureForS, //允许截图
DeleteOnPostNotificationForS, //上层显示
RemoveSmallWindowRestrictionsForS, //解除小窗限制
MaxWallpaperScaleForT, //壁纸缩放比例
SystemPropertiesHookForS, //SystemPropertiesHook
AllowUntrustedTouchesForS, //允许不受信任的触摸
)
}
Build.VERSION_CODES.S -> {
autoInitHooks(
lpparam,
DisableFlagSecureForS, //允许截图
DeleteOnPostNotificationForS, //上层显示
RemoveSmallWindowRestrictionsForS, //解除小窗限制
MaxWallpaperScaleForS, //壁纸缩放比例
SystemPropertiesHookForS, //SystemPropertiesHook
AllowUntrustedTouchesForS, //允许不受信任的触摸
)
}
}
}
}

View File

@@ -0,0 +1,25 @@
package com.lt2333.simplicitytools.hooks.apps
import android.os.Build
import com.lt2333.simplicitytools.hooks.rules.s.cast.ForceSupportSendAppForS
import com.lt2333.simplicitytools.utils.xposed.base.AppRegister
import de.robv.android.xposed.callbacks.XC_LoadPackage
object Cast: AppRegister() {
override val packageName: String = "com.milink.service"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
when (Build.VERSION.SDK_INT) {
Build.VERSION_CODES.TIRAMISU -> {
autoInitHooks(lpparam,
ForceSupportSendAppForS, //强制允许所有应用接力
)
}
Build.VERSION_CODES.S -> {
autoInitHooks(lpparam,
ForceSupportSendAppForS, //强制允许所有应用接力
)
}
}
}
}

View File

@@ -0,0 +1,28 @@
package com.lt2333.simplicitytools.hooks.apps
import android.os.Build
import com.lt2333.simplicitytools.hooks.rules.s.mediaeditor.UnlockUnlimitedCroppingForS
import com.lt2333.simplicitytools.hooks.rules.t.mediaeditor.UnlockUnlimitedCroppingForT
import com.lt2333.simplicitytools.utils.xposed.base.AppRegister
import de.robv.android.xposed.callbacks.XC_LoadPackage
object MediaEditor : AppRegister() {
override val packageName: String = "com.miui.mediaeditor"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
when (Build.VERSION.SDK_INT) {
Build.VERSION_CODES.TIRAMISU -> {
autoInitHooks(
lpparam,
UnlockUnlimitedCroppingForT, //解锁裁切最小值
)
}
Build.VERSION_CODES.S -> {
autoInitHooks(
lpparam,
UnlockUnlimitedCroppingForS, //解锁裁切最小值
)
}
}
}
}

View File

@@ -0,0 +1,30 @@
package com.lt2333.simplicitytools.hooks.apps
import android.os.Build
import com.lt2333.simplicitytools.hooks.rules.s.miuihome.AlwaysDisplayTimeForS
import com.lt2333.simplicitytools.hooks.rules.s.miuihome.DoubleTapToSleepForS
import com.lt2333.simplicitytools.utils.xposed.base.AppRegister
import de.robv.android.xposed.callbacks.XC_LoadPackage
object MiuiHome : AppRegister() {
override val packageName: String = "com.miui.home"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
when (Build.VERSION.SDK_INT) {
Build.VERSION_CODES.TIRAMISU -> {
autoInitHooks(
lpparam,
AlwaysDisplayTimeForS, //时钟显示时钟
DoubleTapToSleepForS, //双击锁屏
)
}
Build.VERSION_CODES.S -> {
autoInitHooks(
lpparam,
AlwaysDisplayTimeForS, //时钟显示时钟
DoubleTapToSleepForS, //双击锁屏
)
}
}
}
}

View File

@@ -0,0 +1,34 @@
package com.lt2333.simplicitytools.hooks.apps
import android.os.Build
import com.lt2333.simplicitytools.hooks.rules.s.powerkeeper.DoNotClearAppForS
import com.lt2333.simplicitytools.hooks.rules.s.powerkeeper.LockMaxFpsForS
import com.lt2333.simplicitytools.hooks.rules.s.powerkeeper.MakeMilletMoreAggressiveForS
import com.lt2333.simplicitytools.hooks.rules.s.powerkeeper.PreventRecoveryOfBatteryOptimizationWhitelistForS
import com.lt2333.simplicitytools.utils.xposed.base.AppRegister
import de.robv.android.xposed.callbacks.XC_LoadPackage
object PowerKeeper: AppRegister() {
override val packageName: String = "com.miui.powerkeeper"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
when (Build.VERSION.SDK_INT) {
Build.VERSION_CODES.TIRAMISU -> {
autoInitHooks(lpparam,
LockMaxFpsForS, //锁定最高刷新率
PreventRecoveryOfBatteryOptimizationWhitelistForS, //防止恢复电池优化白名单
DoNotClearAppForS,//阻止杀后台
MakeMilletMoreAggressiveForS,//使 Millet 更激进
)
}
Build.VERSION_CODES.S -> {
autoInitHooks(lpparam,
LockMaxFpsForS, //锁定最高刷新率
PreventRecoveryOfBatteryOptimizationWhitelistForS, //防止恢复电池优化白名单
DoNotClearAppForS,//阻止杀后台
MakeMilletMoreAggressiveForS,//使 Millet 更激进
)
}
}
}
}

View File

@@ -0,0 +1,25 @@
package com.lt2333.simplicitytools.hooks.apps
import android.os.Build
import com.lt2333.simplicitytools.hooks.rules.s.reardisplay.RearDisplayWeatherForS
import com.lt2333.simplicitytools.utils.xposed.base.AppRegister
import de.robv.android.xposed.callbacks.XC_LoadPackage
object RearDisplay: AppRegister() {
override val packageName: String = "com.xiaomi.misubscreenui"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
when (Build.VERSION.SDK_INT) {
Build.VERSION_CODES.TIRAMISU -> {
autoInitHooks(lpparam,
RearDisplayWeatherForS, //背屏显示天气
)
}
Build.VERSION_CODES.S -> {
autoInitHooks(lpparam,
RearDisplayWeatherForS, //背屏显示天气
)
}
}
}
}

View File

@@ -0,0 +1,26 @@
package com.lt2333.simplicitytools.hooks.apps
import android.os.Build
import com.lt2333.simplicitytools.hooks.rules.s.screenshot.UnlockUnlimitedCroppingForS
import com.lt2333.simplicitytools.hooks.rules.t.mediaeditor.UnlockUnlimitedCroppingForT
import com.lt2333.simplicitytools.utils.xposed.base.AppRegister
import de.robv.android.xposed.callbacks.XC_LoadPackage
object ScreenShot: AppRegister() {
override val packageName: String = "com.miui.screenshot"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
when (Build.VERSION.SDK_INT) {
Build.VERSION_CODES.TIRAMISU -> {
autoInitHooks(lpparam,
UnlockUnlimitedCroppingForT, //解锁裁切限制
)
}
Build.VERSION_CODES.S -> {
autoInitHooks(lpparam,
UnlockUnlimitedCroppingForS, //解锁裁切限制
)
}
}
}
}

View File

@@ -0,0 +1,34 @@
package com.lt2333.simplicitytools.hooks.apps
import android.os.Build
import com.lt2333.simplicitytools.hooks.rules.s.securitycenter.*
import com.lt2333.simplicitytools.hooks.rules.t.securitycenter.ShowBatteryTemperatureForT
import com.lt2333.simplicitytools.utils.xposed.base.AppRegister
import de.robv.android.xposed.callbacks.XC_LoadPackage
object SecurityCenter: AppRegister() {
override val packageName: String = "com.miui.securitycenter"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
when (Build.VERSION.SDK_INT) {
Build.VERSION_CODES.TIRAMISU -> {
autoInitHooks(lpparam,
SkipWaitingTimeForS, //跳过 5/10秒等待时间
LockOneHundredForS, //锁定 100分
RemoveMacroBlacklistForS, //去除自动连招黑名单
ShowBatteryTemperatureForT, //显示电池温度
RemoveOpenAppConfirmationPopupForS, //去除打开应用弹窗
)
}
Build.VERSION_CODES.S -> {
autoInitHooks(lpparam,
SkipWaitingTimeForS, //跳过 5/10秒等待时间
LockOneHundredForS, //锁定 100分
RemoveMacroBlacklistForS, //去除自动连招黑名单
ShowBatteryTemperatureForS, //显示电池温度
RemoveOpenAppConfirmationPopupForS, //去除打开应用弹窗
)
}
}
}
}

View File

@@ -0,0 +1,25 @@
package com.lt2333.simplicitytools.hooks.apps
import android.os.Build
import com.lt2333.simplicitytools.hooks.rules.s.settings.ShowNotificationImportanceForS
import com.lt2333.simplicitytools.utils.xposed.base.AppRegister
import de.robv.android.xposed.callbacks.XC_LoadPackage
object Settings: AppRegister() {
override val packageName: String = "com.android.settings"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
when (Build.VERSION.SDK_INT) {
Build.VERSION_CODES.TIRAMISU -> {
autoInitHooks(lpparam,
ShowNotificationImportanceForS, //显示通知重要程度
)
}
Build.VERSION_CODES.S -> {
autoInitHooks(lpparam,
ShowNotificationImportanceForS, //显示通知重要程度
)
}
}
}
}

View File

@@ -0,0 +1,89 @@
package com.lt2333.simplicitytools.hooks.apps
import android.os.Build
import com.lt2333.simplicitytools.hooks.rules.s.systemui.*
import com.lt2333.simplicitytools.utils.xposed.base.AppRegister
import de.robv.android.xposed.callbacks.XC_LoadPackage
object SystemUI: AppRegister() {
override val packageName: String = "com.android.systemui"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
when (Build.VERSION.SDK_INT) {
Build.VERSION_CODES.TIRAMISU -> {
autoInitHooks(lpparam,
HideStatusBarIconForS, //隐藏状态栏图标
HideBatteryIconForS, //隐藏电池
HideHDIconForS, //隐藏HD图标
HideSimIconForS, //隐藏SIM卡图标
HideMobileActivityIconForS, //隐藏移动箭头图标
HideMobileTypeIconForS, //隐藏移动类型图标
HideStatusBarNetworkSpeedSecondForS, //隐藏状态栏网速/s
HideWifiActivityIconForS, //隐藏WIFI活动箭头图标
MaximumNumberOfNotificationIconsForS, //通知图标上限
StatusBarNetworkSpeedRefreshSpeedForS, //状态栏网速秒刷新
StatusBarTimeCustomizationForS, //状态栏时钟自定义
RemoveTheLeftSideOfTheLockScreenForS, //移除锁屏负一屏功能
RemoveLockScreenCameraForS, //移除锁屏相机功能
NotificationWeatherForS, //通知面板天气
NewNotificationWeatherForS, // 新控制中心天气
OldNotificationWeatherForS,
ControlCenterWeatherForS, //控制中心天气
//StatusBarCurrent, //TODO状态栏电流
StatusBarLayoutForS, //状态栏布局
HideNetworkSpeedSplitterForS, //隐藏时钟与实时网速之间的分隔符
WaveChargeForS, //Alpha充电动画
LockScreenCurrentForS, //锁屏电流
LockScreenDoubleTapToSleepForS, //锁屏下双击锁屏
StatusBarDoubleTapToSleepForS, //双击状态栏锁屏
OldQSCustomForS, //旧版快速设置自定义
DoubleLineNetworkSpeedForS, //双排网速
StatusBarBigMobileTypeIconForS, //大移动类型
BatteryPercentageForS, //电量百分比
CustomMobileTypeTextForS, //自定义移动类型文本
CanNotificationSlideForS, //允许下滑通知打开小窗
LockScreenClockDisplaySecondsForS, // 锁屏时钟显示秒
ShowWifiStandardForS, // 显示 WIFI 角标
NoPasswordHookForS, // 显示 WIFI 角标
)
}
Build.VERSION_CODES.S -> {
autoInitHooks(lpparam,
HideStatusBarIconForS, //隐藏状态栏图标
HideBatteryIconForS, //隐藏电池
HideHDIconForS, //隐藏HD图标
HideSimIconForS, //隐藏SIM卡图标
HideMobileActivityIconForS, //隐藏移动箭头图标
HideMobileTypeIconForS, //隐藏移动类型图标
HideStatusBarNetworkSpeedSecondForS, //隐藏状态栏网速/s
HideWifiActivityIconForS, //隐藏WIFI活动箭头图标
MaximumNumberOfNotificationIconsForS, //通知图标上限
StatusBarNetworkSpeedRefreshSpeedForS, //状态栏网速秒刷新
StatusBarTimeCustomizationForS, //状态栏时钟自定义
RemoveTheLeftSideOfTheLockScreenForS, //移除锁屏负一屏功能
RemoveLockScreenCameraForS, //移除锁屏相机功能
NotificationWeatherForS, //通知面板天气
NewNotificationWeatherForS, // 新控制中心天气
OldNotificationWeatherForS,
ControlCenterWeatherForS, //控制中心天气
//StatusBarCurrent, //TODO状态栏电流
StatusBarLayoutForS, //状态栏布局
HideNetworkSpeedSplitterForS, //隐藏时钟与实时网速之间的分隔符
WaveChargeForS, //Alpha充电动画
LockScreenCurrentForS, //锁屏电流
LockScreenDoubleTapToSleepForS, //锁屏下双击锁屏
StatusBarDoubleTapToSleepForS, //双击状态栏锁屏
OldQSCustomForS, //旧版快速设置自定义
DoubleLineNetworkSpeedForS, //双排网速
StatusBarBigMobileTypeIconForS, //大移动类型
BatteryPercentageForS, //电量百分比
CustomMobileTypeTextForS, //自定义移动类型文本
CanNotificationSlideForS, //允许下滑通知打开小窗
LockScreenClockDisplaySecondsForS, // 锁屏时钟显示秒
ShowWifiStandardForS, // 显示 WIFI 角标
NoPasswordHookForS, // 显示 WIFI 角标
)
}
}
}
}

View File

@@ -0,0 +1,25 @@
package com.lt2333.simplicitytools.hooks.apps
import android.os.Build
import com.lt2333.simplicitytools.hooks.rules.s.thememanager.RemoveAdsForS
import com.lt2333.simplicitytools.utils.xposed.base.AppRegister
import de.robv.android.xposed.callbacks.XC_LoadPackage
object ThemeManager: AppRegister() {
override val packageName: String = "com.android.thememanager"
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
when (Build.VERSION.SDK_INT) {
Build.VERSION_CODES.TIRAMISU -> {
autoInitHooks(lpparam,
RemoveAdsForS, //移除主题壁纸的广告
)
}
Build.VERSION_CODES.S -> {
autoInitHooks(lpparam,
RemoveAdsForS, //移除主题壁纸的广告
)
}
}
}
}

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app package com.lt2333.simplicitytools.hooks.apps
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookReturnConstant import com.github.kyuubiran.ezxhelper.utils.hookReturnConstant
import com.github.kyuubiran.ezxhelper.utils.loadClassOrNull import com.github.kyuubiran.ezxhelper.utils.loadClassOrNull
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.AppRegister import com.lt2333.simplicitytools.utils.xposed.base.AppRegister
import de.robv.android.xposed.callbacks.XC_LoadPackage import de.robv.android.xposed.callbacks.XC_LoadPackage
object Updater : AppRegister() { object Updater : AppRegister() {
override val packageName: String = "com.android.updater" override val packageName: String = "com.android.updater"

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.android.corepatch; package com.lt2333.simplicitytools.hooks.rules.all;
import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo;

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.android.corepatch; package com.lt2333.simplicitytools.hooks.rules.all;
import android.app.AndroidAppHelper; import android.app.AndroidAppHelper;

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.android.corepatch; package com.lt2333.simplicitytools.hooks.rules.all;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;

View File

@@ -0,0 +1,4 @@
package com.lt2333.simplicitytools.hooks.rules.all;
public class CorePatchForSv2 extends CorePatchForS{
}

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.android.corepatch; package com.lt2333.simplicitytools.hooks.rules.all;
import android.util.Log; import android.util.Log;

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.android.corepatch; package com.lt2333.simplicitytools.hooks.rules.all;
import android.os.Build; import android.os.Build;
import android.util.Log; import android.util.Log;

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.android.corepatch; package com.lt2333.simplicitytools.hooks.rules.all;
import de.robv.android.xposed.XC_MethodHook; import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XSharedPreferences; import de.robv.android.xposed.XSharedPreferences;

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.android.corepatch; package com.lt2333.simplicitytools.hooks.rules.all;
import com.lt2333.simplicitytools.BuildConfig; import com.lt2333.simplicitytools.BuildConfig;

View File

@@ -1,12 +1,12 @@
package com.lt2333.simplicitytools.hook.app.android package com.lt2333.simplicitytools.hooks.rules.s.android
import android.content.Context import android.content.Context
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookReturnConstant import com.github.kyuubiran.ezxhelper.utils.hookReturnConstant
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object AllowUntrustedTouches : HookRegister() { object AllowUntrustedTouchesForS : HookRegister() {
override fun init() = hasEnable("allow_untrusted_touches") { override fun init() = hasEnable("allow_untrusted_touches") {
findMethod("android.hardware.input.InputManager") { findMethod("android.hardware.input.InputManager") {
name == "getBlockUntrustedTouchesMode" && parameterTypes[0] == Context::class.java name == "getBlockUntrustedTouchesMode" && parameterTypes[0] == Context::class.java

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app.android package com.lt2333.simplicitytools.hooks.rules.s.android
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object DeleteOnPostNotification : HookRegister() { object DeleteOnPostNotificationForS : HookRegister() {
override fun init() { override fun init() {
findMethod("com.android.server.wm.AlertWindowNotification") { findMethod("com.android.server.wm.AlertWindowNotification") {
name == "onPostNotification" name == "onPostNotification"

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app.android package com.lt2333.simplicitytools.hooks.rules.s.android
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object DisableFlagSecure : HookRegister() { object DisableFlagSecureForS : HookRegister() {
override fun init() { override fun init() {
findMethod("com.android.server.wm.WindowState") { findMethod("com.android.server.wm.WindowState") {
name == "isSecureLocked" name == "isSecureLocked"

View File

@@ -1,12 +1,12 @@
package com.lt2333.simplicitytools.hook.app.android package com.lt2333.simplicitytools.hooks.rules.s.android
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.github.kyuubiran.ezxhelper.utils.putObject import com.github.kyuubiran.ezxhelper.utils.putObject
import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.utils.XSPUtils
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object MaxWallpaperScale : HookRegister() { object MaxWallpaperScaleForS : HookRegister() {
override fun init() { override fun init() {
findMethod("com.android.server.wm.WallpaperController") { findMethod("com.android.server.wm.WallpaperController") {
name == "zoomOutToScale" && parameterTypes[0] == Float::class.java name == "zoomOutToScale" && parameterTypes[0] == Float::class.java

View File

@@ -1,13 +1,13 @@
package com.lt2333.simplicitytools.hook.app.android package com.lt2333.simplicitytools.hooks.rules.s.android
import android.content.Context import android.content.Context
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object RemoveSmallWindowRestrictions : HookRegister() { object RemoveSmallWindowRestrictionsForS : HookRegister() {
override fun init() { override fun init() {
// 强制所有活动设为可以调整大小 // 强制所有活动设为可以调整大小
findMethod("com.android.server.wm.Task") { findMethod("com.android.server.wm.Task") {

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app.android package com.lt2333.simplicitytools.hooks.rules.s.android
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.utils.XSPUtils
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object SystemPropertiesHook : HookRegister() { object SystemPropertiesHookForS : HookRegister() {
override fun init() { override fun init() {
val mediaStepsSwitch = XSPUtils.getBoolean("media_volume_steps_switch", false) val mediaStepsSwitch = XSPUtils.getBoolean("media_volume_steps_switch", false)
val mediaSteps = XSPUtils.getInt("media_volume_steps", 15) val mediaSteps = XSPUtils.getInt("media_volume_steps", 15)

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app.cast package com.lt2333.simplicitytools.hooks.rules.s.cast
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object ForceSupportSendApp : HookRegister() { object ForceSupportSendAppForS : HookRegister() {
override fun init() = hasEnable("force_support_send_app") { override fun init() = hasEnable("force_support_send_app") {
findMethod("com.xiaomi.mirror.synergy.MiuiSynergySdk") { findMethod("com.xiaomi.mirror.synergy.MiuiSynergySdk") {

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app.mediaeditor package com.lt2333.simplicitytools.hooks.rules.s.mediaeditor
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object UnlockUnlimitedCropping : HookRegister() { object UnlockUnlimitedCroppingForS : HookRegister() {
override fun init() { override fun init() {
//解锁图库裁切最小值 //解锁图库裁切最小值

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app.miuihome package com.lt2333.simplicitytools.hooks.rules.s.miuihome
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object AlwaysDisplayTime : HookRegister() { object AlwaysDisplayTimeForS : HookRegister() {
override fun init() { override fun init() {
findMethod("com.miui.home.launcher.Workspace") { findMethod("com.miui.home.launcher.Workspace") {

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.miuihome package com.lt2333.simplicitytools.hooks.rules.s.miuihome
import android.content.Context import android.content.Context
import android.os.SystemClock import android.os.SystemClock
@@ -6,7 +6,7 @@ import android.view.MotionEvent
import android.view.ViewConfiguration import android.view.ViewConfiguration
import kotlin.math.abs import kotlin.math.abs
class DoubleTapController internal constructor(mContext: Context) { class DoubleTapControllerForS internal constructor(mContext: Context) {
private val maxDuration: Long = 500 private val maxDuration: Long = 500
private var mActionDownRawX: Float = 0f private var mActionDownRawX: Float = 0f

View File

@@ -1,21 +1,21 @@
package com.lt2333.simplicitytools.hook.app.miuihome package com.lt2333.simplicitytools.hooks.rules.s.miuihome
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.view.MotionEvent import android.view.MotionEvent
import com.github.kyuubiran.ezxhelper.utils.* import com.github.kyuubiran.ezxhelper.utils.*
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import de.robv.android.xposed.XposedHelpers import de.robv.android.xposed.XposedHelpers
object DoubleTapToSleep : HookRegister() { object DoubleTapToSleepForS : HookRegister() {
override fun init() = hasEnable("double_tap_to_sleep") { override fun init() = hasEnable("double_tap_to_sleep") {
hookAllConstructorAfter("com.miui.home.launcher.Workspace") { hookAllConstructorAfter("com.miui.home.launcher.Workspace") {
var mDoubleTapControllerEx = var mDoubleTapControllerEx =
XposedHelpers.getAdditionalInstanceField(it.thisObject, "mDoubleTapControllerEx") XposedHelpers.getAdditionalInstanceField(it.thisObject, "mDoubleTapControllerEx")
if (mDoubleTapControllerEx != null) return@hookAllConstructorAfter if (mDoubleTapControllerEx != null) return@hookAllConstructorAfter
mDoubleTapControllerEx = DoubleTapController((it.args[0] as Context)) mDoubleTapControllerEx = DoubleTapControllerForS((it.args[0] as Context))
XposedHelpers.setAdditionalInstanceField( XposedHelpers.setAdditionalInstanceField(
it.thisObject, it.thisObject,
"mDoubleTapControllerEx", "mDoubleTapControllerEx",
@@ -28,7 +28,7 @@ object DoubleTapToSleep : HookRegister() {
val mDoubleTapControllerEx = XposedHelpers.getAdditionalInstanceField( val mDoubleTapControllerEx = XposedHelpers.getAdditionalInstanceField(
it.thisObject, it.thisObject,
"mDoubleTapControllerEx" "mDoubleTapControllerEx"
) as DoubleTapController ) as DoubleTapControllerForS
if (!mDoubleTapControllerEx.isDoubleTapEvent(it.args[0] as MotionEvent)) return@hookBefore if (!mDoubleTapControllerEx.isDoubleTapEvent(it.args[0] as MotionEvent)) return@hookBefore
val mCurrentScreenIndex = it.thisObject.getObject("mCurrentScreenIndex") as Int val mCurrentScreenIndex = it.thisObject.getObject("mCurrentScreenIndex") as Int
val cellLayout = it.thisObject.invokeMethodAuto("getCellLayout", mCurrentScreenIndex) val cellLayout = it.thisObject.invokeMethodAuto("getCellLayout", mCurrentScreenIndex)

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app.powerkeeper package com.lt2333.simplicitytools.hooks.rules.s.powerkeeper
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object DoNotClearApp : HookRegister() { object DoNotClearAppForS : HookRegister() {
override fun init() { override fun init() {
findMethod("com.miui.powerkeeper.statemachine.SleepModeControllerNew") { findMethod("com.miui.powerkeeper.statemachine.SleepModeControllerNew") {
name == "clearApp" name == "clearApp"

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app.powerkeeper package com.lt2333.simplicitytools.hooks.rules.s.powerkeeper
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object LockMaxFps : HookRegister() { object LockMaxFpsForS : HookRegister() {
override fun init() { override fun init() {
findMethod("com.miui.powerkeeper.statemachine.DisplayFrameSetting") { findMethod("com.miui.powerkeeper.statemachine.DisplayFrameSetting") {

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app.powerkeeper package com.lt2333.simplicitytools.hooks.rules.s.powerkeeper
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object MakeMilletMoreAggressive : HookRegister() { object MakeMilletMoreAggressiveForS : HookRegister() {
override fun init() { override fun init() {
findMethod("com.miui.powerkeeper.controller.FrozenAppController") { findMethod("com.miui.powerkeeper.controller.FrozenAppController") {
name == "appIsAllowToFrozen" name == "appIsAllowToFrozen"

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app.powerkeeper package com.lt2333.simplicitytools.hooks.rules.s.powerkeeper
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object PreventRecoveryOfBatteryOptimizationWhitelist : HookRegister() { object PreventRecoveryOfBatteryOptimizationWhitelistForS : HookRegister() {
override fun init() { override fun init() {
findMethod( findMethod(

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.reardisplay package com.lt2333.simplicitytools.hooks.rules.s.reardisplay
import android.graphics.Typeface import android.graphics.Typeface
import android.util.TypedValue import android.util.TypedValue
@@ -11,11 +11,11 @@ import cn.fkj233.ui.activity.dp2px
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import com.lt2333.simplicitytools.view.WeatherView import com.lt2333.simplicitytools.views.WeatherView
object RearDisplayWeather : HookRegister() { object RearDisplayWeatherForS : HookRegister() {
override fun init() = hasEnable("rear_show_weather") { override fun init() = hasEnable("rear_show_weather") {
findMethod("com.xiaomi.misubscreenui.light.aod.view.VerticalClockView") { findMethod("com.xiaomi.misubscreenui.light.aod.view.VerticalClockView") {

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app.screenshot package com.lt2333.simplicitytools.hooks.rules.s.screenshot
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object UnlockUnlimitedCropping : HookRegister() { object UnlockUnlimitedCroppingForS : HookRegister() {
override fun init() { override fun init() {
//截图无限裁切 //截图无限裁切

View File

@@ -1,12 +1,12 @@
package com.lt2333.simplicitytools.hook.app.securitycenter package com.lt2333.simplicitytools.hooks.rules.s.securitycenter
import android.view.View import android.view.View
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object LockOneHundred : HookRegister() { object LockOneHundredForS : HookRegister() {
override fun init() { override fun init() {
//防止点击重新检测 //防止点击重新检测

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app.securitycenter package com.lt2333.simplicitytools.hooks.rules.s.securitycenter
import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.utils.XSPUtils
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XC_MethodHook
import de.robv.android.xposed.XposedHelpers import de.robv.android.xposed.XposedHelpers
object RemoveMacroBlacklist : HookRegister() { object RemoveMacroBlacklistForS : HookRegister() {
override fun init() { override fun init() {
if (XSPUtils.getBoolean("remove_macro_blacklist", false)) { if (XSPUtils.getBoolean("remove_macro_blacklist", false)) {

View File

@@ -1,12 +1,12 @@
package com.lt2333.simplicitytools.hook.app.securitycenter package com.lt2333.simplicitytools.hooks.rules.s.securitycenter
import android.widget.TextView import android.widget.TextView
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object RemoveOpenAppConfirmationPopup : HookRegister() { object RemoveOpenAppConfirmationPopupForS : HookRegister() {
override fun init() { override fun init() {
findMethod("android.widget.TextView") { findMethod("android.widget.TextView") {

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.securitycenter package com.lt2333.simplicitytools.hooks.rules.s.securitycenter
import android.app.AndroidAppHelper import android.app.AndroidAppHelper
import android.content.BroadcastReceiver import android.content.BroadcastReceiver
@@ -17,11 +17,9 @@ import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.getObjectAs import com.github.kyuubiran.ezxhelper.utils.getObjectAs
import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object ShowBatteryTemperatureForS : HookRegister() {
object ShowBatteryTemperature : HookRegister() {
private fun getBatteryTemperature(context: Context): Int { private fun getBatteryTemperature(context: Context): Int {
return context.registerReceiver( return context.registerReceiver(
null as BroadcastReceiver?, null as BroadcastReceiver?,
@@ -41,7 +39,6 @@ object ShowBatteryTemperature : HookRegister() {
}.hookBefore { }.hookBefore {
it.result = getBatteryTemperature(it.args[0] as Context).toString() it.result = getBatteryTemperature(it.args[0] as Context).toString()
} }
try { try {
findMethod("com.miui.powercenter.a\$a") { findMethod("com.miui.powercenter.a\$a") {
name == "run" name == "run"
@@ -100,5 +97,4 @@ object ShowBatteryTemperature : HookRegister() {
linearLayout.addView(tempView) linearLayout.addView(tempView)
} }
} }
} }

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app.securitycenter package com.lt2333.simplicitytools.hooks.rules.s.securitycenter
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object SkipWaitingTime : HookRegister() { object SkipWaitingTimeForS : HookRegister() {
override fun init() { override fun init() {
findMethod("android.widget.TextView") { findMethod("android.widget.TextView") {

View File

@@ -1,12 +1,12 @@
package com.lt2333.simplicitytools.hook.app.settings package com.lt2333.simplicitytools.hooks.rules.s.settings
import android.app.NotificationChannel import android.app.NotificationChannel
import com.github.kyuubiran.ezxhelper.utils.* import com.github.kyuubiran.ezxhelper.utils.*
import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.utils.XSPUtils
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import de.robv.android.xposed.XposedHelpers import de.robv.android.xposed.XposedHelpers
object ShowNotificationImportance : HookRegister() { object ShowNotificationImportanceForS : HookRegister() {
override fun init() { override fun init() {
findMethod("com.android.settings.notification.ChannelNotificationSettings") { findMethod("com.android.settings.notification.ChannelNotificationSettings") {

View File

@@ -1,14 +1,14 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.util.TypedValue import android.util.TypedValue
import android.widget.TextView import android.widget.TextView
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.getObjectAs import com.github.kyuubiran.ezxhelper.utils.getObjectAs
import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.utils.XSPUtils
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object BatteryPercentage : HookRegister() { object BatteryPercentageForS : HookRegister() {
override fun init() { override fun init() {
val size = XSPUtils.getFloat("battery_percentage_font_size", 0f) val size = XSPUtils.getFloat("battery_percentage_font_size", 0f)

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object CanNotificationSlide: HookRegister() { object CanNotificationSlideForS: HookRegister() {
override fun init() { override fun init() {
findMethod("com.android.systemui.statusbar.notification.NotificationSettingsManager") { findMethod("com.android.systemui.statusbar.notification.NotificationSettingsManager") {

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.content.ComponentName import android.content.ComponentName
import android.content.Intent import android.content.Intent
@@ -10,13 +10,13 @@ import android.widget.Toast
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import cn.fkj233.ui.activity.dp2px import cn.fkj233.ui.activity.dp2px
import com.github.kyuubiran.ezxhelper.utils.* import com.github.kyuubiran.ezxhelper.utils.*
import com.lt2333.simplicitytools.util.SystemProperties import com.lt2333.simplicitytools.utils.SystemProperties
import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.utils.XSPUtils
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import com.lt2333.simplicitytools.view.WeatherView import com.lt2333.simplicitytools.views.WeatherView
object ControlCenterWeather : HookRegister() { object ControlCenterWeatherForS : HookRegister() {
override fun init() = hasEnable("control_center_weather") { override fun init() = hasEnable("control_center_weather") {
var mWeatherView: TextView? = null var mWeatherView: TextView? = null

View File

@@ -1,12 +1,12 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.utils.XSPUtils
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object CustomMobileTypeText : HookRegister() { object CustomMobileTypeTextForS : HookRegister() {
override fun init() = hasEnable("custom_mobile_type_text_switch") { override fun init() = hasEnable("custom_mobile_type_text_switch") {
findMethod("com.android.systemui.statusbar.policy.MobileSignalController") { findMethod("com.android.systemui.statusbar.policy.MobileSignalController") {

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.content.Context import android.content.Context
import android.net.TrafficStats import android.net.TrafficStats
@@ -11,12 +11,12 @@ import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.R import com.lt2333.simplicitytools.R
import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.utils.XSPUtils
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import java.text.DecimalFormat import java.text.DecimalFormat
object DoubleLineNetworkSpeed : HookRegister() { object DoubleLineNetworkSpeedForS : HookRegister() {
private var mLastTotalUp: Long = 0 private var mLastTotalUp: Long = 0
private var mLastTotalDown: Long = 0 private var mLastTotalDown: Long = 0
@@ -60,11 +60,11 @@ object DoubleLineNetworkSpeed : HookRegister() {
name == "formatSpeed" && parameterCount == 2 name == "formatSpeed" && parameterCount == 2
}.hookBefore { }.hookBefore {
if (getDualAlign == 0) { if (getDualAlign == 0) {
it.result = "$upIcon ${getTotalUpSpeed(it.args[0] as Context)}\n${downIcon} ${ it.result = "$upIcon ${getTotalUpSpeed(it.args[0] as Context)}\n$downIcon ${
getTotalDownloadSpeed(it.args[0] as Context) getTotalDownloadSpeed(it.args[0] as Context)
}" }"
} else { } else {
it.result = "${getTotalUpSpeed(it.args[0] as Context)} ${upIcon}\n${ it.result = "${getTotalUpSpeed(it.args[0] as Context)} $upIcon\n${
getTotalDownloadSpeed(it.args[0] as Context) getTotalDownloadSpeed(it.args[0] as Context)
} $downIcon" } $downIcon"
} }

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.view.View import android.view.View
import android.widget.FrameLayout import android.widget.FrameLayout
@@ -8,10 +8,10 @@ import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.getObject import com.github.kyuubiran.ezxhelper.utils.getObject
import com.github.kyuubiran.ezxhelper.utils.getObjectAs import com.github.kyuubiran.ezxhelper.utils.getObjectAs
import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object HideBatteryIcon : HookRegister() { object HideBatteryIconForS : HookRegister() {
override fun init() { override fun init() {
findMethod("com.android.systemui.statusbar.views.MiuiBatteryMeterView") { findMethod("com.android.systemui.statusbar.views.MiuiBatteryMeterView") {

View File

@@ -1,15 +1,13 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.view.View import android.view.View
import android.widget.ImageView import android.widget.ImageView
import android.util.Log
import com.github.kyuubiran.ezxhelper.utils.* import com.github.kyuubiran.ezxhelper.utils.*
import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import com.lt2333.simplicitytools.util.xposed.base.HookRegister
import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XC_MethodHook
object HideHDIcon : HookRegister() { object HideHDIconForS : HookRegister() {
override fun init() { override fun init() {

View File

@@ -1,15 +1,15 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.view.View import android.view.View
import android.widget.ImageView import android.widget.ImageView
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.getObjectAs import com.github.kyuubiran.ezxhelper.utils.getObjectAs
import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XC_MethodHook
object HideMobileActivityIcon : HookRegister() { object HideMobileActivityIconForS : HookRegister() {
override fun init() { override fun init() {
findMethod("com.android.systemui.statusbar.StatusBarMobileView") { findMethod("com.android.systemui.statusbar.StatusBarMobileView") {

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.view.View import android.view.View
import android.widget.ImageView import android.widget.ImageView
@@ -6,12 +6,12 @@ import android.widget.TextView
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.getObjectAs import com.github.kyuubiran.ezxhelper.utils.getObjectAs
import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.utils.XSPUtils
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XC_MethodHook
object HideMobileTypeIcon : HookRegister() { object HideMobileTypeIconForS : HookRegister() {
private val isBigType = XSPUtils.getBoolean("big_mobile_type_icon", false) private val isBigType = XSPUtils.getBoolean("big_mobile_type_icon", false)

View File

@@ -1,12 +1,12 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.widget.TextView import android.widget.TextView
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object HideNetworkSpeedSplitter : HookRegister() { object HideNetworkSpeedSplitterForS : HookRegister() {
override fun init() { override fun init() {
findMethod("com.android.systemui.statusbar.views.NetworkSpeedSplitter") { findMethod("com.android.systemui.statusbar.views.NetworkSpeedSplitter") {

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object HideSimIcon : HookRegister() { object HideSimIconForS : HookRegister() {
override fun init() { override fun init() {
findMethod("com.android.systemui.statusbar.phone.StatusBarSignalPolicy") { findMethod("com.android.systemui.statusbar.phone.StatusBarSignalPolicy") {

View File

@@ -1,12 +1,12 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XC_MethodHook
object HideStatusBarIcon : HookRegister() { object HideStatusBarIconForS : HookRegister() {
override fun init() { override fun init() {
findMethod("com.android.systemui.statusbar.phone.StatusBarIconControllerImpl") { findMethod("com.android.systemui.statusbar.phone.StatusBarIconControllerImpl") {

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object HideStatusBarNetworkSpeedSecond : HookRegister() { object HideStatusBarNetworkSpeedSecondForS : HookRegister() {
override fun init() { override fun init() {
findMethod("com.android.systemui.statusbar.views.NetworkSpeedView") { findMethod("com.android.systemui.statusbar.views.NetworkSpeedView") {

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.view.View import android.view.View
import android.widget.ImageView import android.widget.ImageView
@@ -6,11 +6,11 @@ import android.widget.TextView
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.getObjectAs import com.github.kyuubiran.ezxhelper.utils.getObjectAs
import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XC_MethodHook
object HideWifiActivityIcon : HookRegister() { object HideWifiActivityIconForS : HookRegister() {
override fun init() { override fun init() {
findMethod("com.android.systemui.statusbar.StatusBarWifiView") { findMethod("com.android.systemui.statusbar.StatusBarWifiView") {

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context import android.content.Context
@@ -8,14 +8,14 @@ import android.util.Log
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import com.github.kyuubiran.ezxhelper.utils.* import com.github.kyuubiran.ezxhelper.utils.*
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import de.robv.android.xposed.XC_MethodHook import de.robv.android.xposed.XC_MethodHook
import java.lang.reflect.Method import java.lang.reflect.Method
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
object LockScreenClockDisplaySeconds : HookRegister() { object LockScreenClockDisplaySecondsForS : HookRegister() {
private var nowTime: Date = Calendar.getInstance().time private var nowTime: Date = Calendar.getInstance().time

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.app.AndroidAppHelper import android.app.AndroidAppHelper
@@ -10,13 +10,13 @@ import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.getObject import com.github.kyuubiran.ezxhelper.utils.getObject
import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.lt2333.simplicitytools.R import com.lt2333.simplicitytools.R
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import java.io.BufferedReader import java.io.BufferedReader
import java.io.FileReader import java.io.FileReader
import kotlin.math.abs import kotlin.math.abs
object LockScreenCurrent : HookRegister() { object LockScreenCurrentForS : HookRegister() {
override fun init() = hasEnable("lock_screen_charging_current") { override fun init() = hasEnable("lock_screen_charging_current") {
findMethod("com.android.keyguard.charge.ChargeUtils") { findMethod("com.android.keyguard.charge.ChargeUtils") {

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.app.KeyguardManager import android.app.KeyguardManager
import android.content.Context import android.content.Context
@@ -8,12 +8,12 @@ import android.view.View
import android.view.View.OnTouchListener import android.view.View.OnTouchListener
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import de.robv.android.xposed.XposedHelpers import de.robv.android.xposed.XposedHelpers
import kotlin.math.abs import kotlin.math.abs
object LockScreenDoubleTapToSleep : HookRegister() { object LockScreenDoubleTapToSleepForS : HookRegister() {
override fun init() = hasEnable("lock_screen_double_tap_to_sleep") { override fun init() = hasEnable("lock_screen_double_tap_to_sleep") {
findMethod("com.android.systemui.statusbar.phone.NotificationsQuickSettingsContainer") { findMethod("com.android.systemui.statusbar.phone.NotificationsQuickSettingsContainer") {

View File

@@ -1,13 +1,13 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookReplace import com.github.kyuubiran.ezxhelper.utils.hookReplace
import com.github.kyuubiran.ezxhelper.utils.invokeMethod import com.github.kyuubiran.ezxhelper.utils.invokeMethod
import com.github.kyuubiran.ezxhelper.utils.putObject import com.github.kyuubiran.ezxhelper.utils.putObject
import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.utils.XSPUtils
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object MaximumNumberOfNotificationIcons : HookRegister() { object MaximumNumberOfNotificationIconsForS : HookRegister() {
override fun init() { override fun init() {
val icons = XSPUtils.getInt("maximum_number_of_notification_icons", 3) val icons = XSPUtils.getInt("maximum_number_of_notification_icons", 3)

View File

@@ -1,17 +1,17 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.pm.ApplicationInfo import android.content.pm.ApplicationInfo
import android.widget.TextView import android.widget.TextView
import com.github.kyuubiran.ezxhelper.utils.* import com.github.kyuubiran.ezxhelper.utils.*
import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.utils.XSPUtils
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import com.lt2333.simplicitytools.view.WeatherData import com.lt2333.simplicitytools.views.WeatherData
@SuppressLint("StaticFieldLeak") @SuppressLint("StaticFieldLeak")
object NewNotificationWeather : HookRegister() { object NewNotificationWeatherForS : HookRegister() {
lateinit var weather: WeatherData lateinit var weather: WeatherData
var clockId: Int = -2 var clockId: Int = -2

View File

@@ -1,11 +1,11 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import com.github.kyuubiran.ezxhelper.utils.findMethod import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object NoPasswordHook : HookRegister() { object NoPasswordHookForS : HookRegister() {
override fun init() { override fun init() {
hasEnable("no_need_to_enter_password_when_power_on") { hasEnable("no_need_to_enter_password_when_power_on") {

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.content.ComponentName import android.content.ComponentName
import android.content.Intent import android.content.Intent
@@ -10,13 +10,13 @@ import android.widget.Toast
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import cn.fkj233.ui.activity.dp2px import cn.fkj233.ui.activity.dp2px
import com.github.kyuubiran.ezxhelper.utils.* import com.github.kyuubiran.ezxhelper.utils.*
import com.lt2333.simplicitytools.util.SystemProperties import com.lt2333.simplicitytools.utils.SystemProperties
import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.utils.XSPUtils
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import com.lt2333.simplicitytools.view.WeatherView import com.lt2333.simplicitytools.views.WeatherView
object NotificationWeather : HookRegister() { object NotificationWeatherForS : HookRegister() {
override fun init() = hasEnable("notification_weather") { override fun init() = hasEnable("notification_weather") {
var mWeatherView: TextView? = null var mWeatherView: TextView? = null

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.content.ComponentName import android.content.ComponentName
import android.content.Intent import android.content.Intent
@@ -7,12 +7,12 @@ import android.view.ViewGroup
import android.widget.TextView import android.widget.TextView
import android.widget.Toast import android.widget.Toast
import com.github.kyuubiran.ezxhelper.utils.* import com.github.kyuubiran.ezxhelper.utils.*
import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.utils.XSPUtils
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import com.lt2333.simplicitytools.view.WeatherView import com.lt2333.simplicitytools.views.WeatherView
object OldNotificationWeather : HookRegister() { object OldNotificationWeatherForS : HookRegister() {
override fun init() = hasEnable("notification_weather") { override fun init() = hasEnable("notification_weather") {
var mWeatherView: TextView? = null var mWeatherView: TextView? = null

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.content.res.Configuration import android.content.res.Configuration
import android.view.ViewGroup import android.view.ViewGroup
@@ -6,11 +6,11 @@ import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.github.kyuubiran.ezxhelper.utils.putObject import com.github.kyuubiran.ezxhelper.utils.putObject
import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.utils.XSPUtils
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object OldQSCustom : HookRegister() { object OldQSCustomForS : HookRegister() {
override fun init() = hasEnable("old_qs_custom_switch") { override fun init() = hasEnable("old_qs_custom_switch") {
val mRows = XSPUtils.getInt("qs_custom_rows", 3) val mRows = XSPUtils.getInt("qs_custom_rows", 3)

View File

@@ -1,4 +1,4 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.view.View import android.view.View
import android.widget.LinearLayout import android.widget.LinearLayout
@@ -6,10 +6,10 @@ import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.getObject import com.github.kyuubiran.ezxhelper.utils.getObject
import com.github.kyuubiran.ezxhelper.utils.hookAfter import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.github.kyuubiran.ezxhelper.utils.hookBefore import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.util.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object RemoveLockScreenCamera : HookRegister() { object RemoveLockScreenCameraForS : HookRegister() {
override fun init() { override fun init() {
//屏蔽右下角组件显示 //屏蔽右下角组件显示

Some files were not shown because too many files have changed in this diff Show More