58 Commits

Author SHA1 Message Date
乌堆小透明
4225d64ae3 New translations strings.xml (Chinese Traditional, Hong Kong)
[ci skip] New translations from Crowdin
2023-04-08 19:44:36 +08:00
乌堆小透明
a484a3ba04 New translations strings.xml (Vietnamese)
[ci skip] New translations from Crowdin
2023-02-20 23:55:08 +08:00
乌堆小透明
1429bcd392 New translations strings.xml (Spanish)
[ci skip] New translations from Crowdin
2023-02-20 23:55:07 +08:00
乌堆小透明
a4eb720b61 New translations strings.xml (Chinese Traditional)
[ci skip] New translations from Crowdin
2023-02-20 22:46:46 +08:00
乌堆小透明
1e78221408 New translations strings.xml (Portuguese)
[ci skip] New translations from Crowdin
2023-02-20 22:46:43 +08:00
乌堆小透明
07ecd3adb8 New translations strings.xml (Japanese)
[ci skip] New translations from Crowdin
2023-02-20 22:46:41 +08:00
乌堆小透明
86da593cff New translations strings.xml (Portuguese, Brazilian)
[ci skip] New translations from Crowdin
2023-02-20 21:32:14 +08:00
乌堆小透明
236e545706 New translations strings.xml (Chinese Simplified)
[ci skip] New translations from Crowdin
2023-02-20 21:32:12 +08:00
乌堆小透明
dc76d99fc6 New translations strings.xml (Portuguese)
[ci skip] New translations from Crowdin
2023-02-20 21:32:08 +08:00
乌堆小透明
20585c66ea New translations strings.xml (Portuguese, Brazilian)
[ci skip] New translations from Crowdin
2023-02-20 21:28:33 +08:00
乌堆小透明
8cbf9d2072 New translations strings.xml (Portuguese)
[ci skip] New translations from Crowdin
2023-02-20 21:28:27 +08:00
乌堆小透明
a5ba41260a New translations strings.xml (Chinese Traditional)
[ci skip] New translations from Crowdin
2023-02-19 11:43:16 +08:00
乌堆小透明
cbdf331035 New translations strings.xml (Spanish)
[ci skip] New translations from Crowdin
2023-02-19 09:11:59 +08:00
乌堆小透明
357c30bc3a New translations strings.xml (Japanese)
[ci skip] New translations from Crowdin
2023-02-19 08:15:33 +08:00
乌堆小透明
138c653a82 New translations strings.xml (Polish)
[ci skip] New translations from Crowdin
2023-02-19 06:56:34 +08:00
乌堆小透明
587141ca82 New translations strings.xml (Polish)
[ci skip] New translations from Crowdin
2023-02-19 05:52:59 +08:00
乌堆小透明
73d5e9855f New translations strings.xml (Chinese Traditional)
[ci skip] New translations from Crowdin
2023-02-19 02:20:48 +08:00
乌堆小透明
0eeff2646b New translations strings.xml (Portuguese, Brazilian)
[ci skip] New translations from Crowdin
2023-02-18 23:46:49 +08:00
乌堆小透明
2b5f903006 New translations strings.xml (Vietnamese)
[ci skip] New translations from Crowdin
2023-02-18 23:46:49 +08:00
乌堆小透明
8cba53fa3f New translations strings.xml (Chinese Simplified)
[ci skip] New translations from Crowdin
2023-02-18 23:46:47 +08:00
乌堆小透明
cea867374c New translations strings.xml (Portuguese)
[ci skip] New translations from Crowdin
2023-02-18 23:46:45 +08:00
乌堆小透明
a5c39da799 New translations strings.xml (Spanish)
[ci skip] New translations from Crowdin
2023-02-18 23:46:39 +08:00
乌堆小透明
870a742a0f New translations strings.xml (Chinese Traditional, Hong Kong)
[ci skip] New translations from Crowdin
2023-02-18 22:32:20 +08:00
乌堆小透明
367663df77 New translations strings.xml (Indonesian)
[ci skip] New translations from Crowdin
2023-02-18 22:32:19 +08:00
乌堆小透明
ea64b57d6a New translations strings.xml (Portuguese, Brazilian)
[ci skip] New translations from Crowdin
2023-02-18 22:32:18 +08:00
乌堆小透明
4bde2ccfdc New translations strings.xml (Vietnamese)
[ci skip] New translations from Crowdin
2023-02-18 22:32:17 +08:00
乌堆小透明
772b019631 New translations strings.xml (Chinese Traditional)
[ci skip] New translations from Crowdin
2023-02-18 22:32:16 +08:00
乌堆小透明
168ab492eb New translations strings.xml (Chinese Simplified)
[ci skip] New translations from Crowdin
2023-02-18 22:32:15 +08:00
乌堆小透明
7b613d76b6 New translations strings.xml (Turkish)
[ci skip] New translations from Crowdin
2023-02-18 22:32:13 +08:00
乌堆小透明
3b1651554d New translations strings.xml (Russian)
[ci skip] New translations from Crowdin
2023-02-18 22:32:11 +08:00
乌堆小透明
752fb84d39 New translations strings.xml (Portuguese)
[ci skip] New translations from Crowdin
2023-02-18 22:32:10 +08:00
乌堆小透明
b3fbfcea86 New translations strings.xml (Polish)
[ci skip] New translations from Crowdin
2023-02-18 22:32:10 +08:00
乌堆小透明
44b671fa9e New translations strings.xml (Dutch)
[ci skip] New translations from Crowdin
2023-02-18 22:32:08 +08:00
乌堆小透明
7020324ef7 New translations strings.xml (Korean)
[ci skip] New translations from Crowdin
2023-02-18 22:32:07 +08:00
乌堆小透明
5fc1e9deaa New translations strings.xml (Japanese)
[ci skip] New translations from Crowdin
2023-02-18 22:32:06 +08:00
乌堆小透明
2ce513bc97 New translations strings.xml (Hungarian)
[ci skip] New translations from Crowdin
2023-02-18 22:32:05 +08:00
乌堆小透明
28cf25b08c New translations strings.xml (Czech)
[ci skip] New translations from Crowdin
2023-02-18 22:32:01 +08:00
乌堆小透明
0b0b401d2f New translations strings.xml (Spanish)
[ci skip] New translations from Crowdin
2023-02-18 22:31:59 +08:00
乌堆小透明
f31bdab7f9 New translations strings.xml (French)
[ci skip] New translations from Crowdin
2023-02-18 22:31:58 +08:00
乌堆小透明
33be4dd4e9 New translations strings.xml (Romanian)
[ci skip] New translations from Crowdin
2023-02-18 22:31:57 +08:00
乌堆小透明
5eb4b08079 New translations strings.xml (Chinese Traditional)
[ci skip] New translations from Crowdin
2023-02-18 22:23:12 +08:00
LittleTurtle2333
e152a5ba74 更新BlockMIUI 2023-02-18 21:54:56 +08:00
LittleTurtle2333
efc77eb518 更新版本号至1.7.4 2023-02-18 21:53:21 +08:00
乌堆小透明
8cad8e371c 合并拉取请求 #225
* New translations strings.xml (Spanish)

* New translations strings.xml (Portuguese)

* New translations strings.xml (Vietnamese)

* New translations strings.xml (Portuguese, Brazilian)

* New translations strings.xml (Japanese)

* New translations strings.xml (Chinese Traditional)

* New translations strings.xml (Chinese Traditional)

* New translations strings.xml (Chinese Traditional)

* New translations strings.xml (Chinese Traditional)
2023-02-18 21:52:39 +08:00
LittleTurtle2333
990ea8ef7e 新增修改划卡动画&桌面快捷小窗 2023-02-18 21:50:10 +08:00
LittleTurtle2333
4ce55d1fb3 移除无用dependencies 2023-02-18 21:48:42 +08:00
LittleTurtle2333
1feb754385 添加KotlinXposedHelper 2023-02-18 21:48:19 +08:00
LittleTurtle2333
a107f71986 修改状态栏图标顺序(未实现) 2023-02-18 19:00:57 +08:00
LittleTurtle2333
2177850498 修复A13状态栏兼容模式横屏 2023-02-17 23:55:48 +08:00
LittleTurtle2333
5e4160aed4 修复A13状态栏布局切换功能 2023-02-17 23:22:26 +08:00
LittleTurtle2333
99da21e762 修复A13控制中心时钟对齐问题 2023-02-17 23:07:44 +08:00
LittleTurtle2333
8fe9d09624 统一A13状态栏兼容模式 2023-02-17 23:07:07 +08:00
LittleTurtle2333
de220825a2 修复A13状态栏兼容模式 2023-02-17 22:29:30 +08:00
LittleTurtle2333
4ed3e40e99 修复A13大移动类型图标的一些问题 2023-02-17 22:24:32 +08:00
LittleTurtle2333
5f5bc6572c 更新版本号至1.7.3 2023-02-17 20:49:38 +08:00
乌堆小透明
b3859653ef 合并拉取请求 #224
* New translations strings.xml (Japanese)

* New translations strings.xml (Polish)

* New translations strings.xml (Portuguese)

* New translations strings.xml (Vietnamese)

* New translations strings.xml (Portuguese, Brazilian)

* New translations strings.xml (Russian)

* New translations strings.xml (Russian)

* New translations strings.xml (Chinese Traditional)

* New translations strings.xml (Japanese)
2023-02-17 20:22:30 +08:00
LittleTurtle2333
7dcfdcced7 修复去除游戏自动连招黑名单 2023-02-17 20:19:39 +08:00
LittleTurtle2333
f2a4f06301 修复连接WiFi时非上网卡显示大移动类型 2023-02-17 17:31:49 +08:00
30 changed files with 1108 additions and 619 deletions

View File

@@ -11,8 +11,8 @@ android {
applicationId = "com.lt2333.simplicitytools"
minSdk = 31
targetSdk = 33
versionCode = 72
versionName = "1.7.2"
versionCode = 74
versionName = "1.7.4"
buildConfigField("String", "BUILD_TIME", "\"${System.currentTimeMillis()}\"")
}
@@ -59,5 +59,4 @@ dependencies {
val appCenterSdkVersion = "4.4.3"
implementation("com.microsoft.appcenter:appcenter-analytics:${appCenterSdkVersion}")
implementation("com.microsoft.appcenter:appcenter-crashes:${appCenterSdkVersion}")
implementation("androidx.core:core-splashscreen:1.0.0")
}

View File

@@ -35,8 +35,7 @@ class OtherPageForT : BasePage() {
textId = R.string.miuihome_recentwiew_wallpaper_darkening, tipsId = R.string.miuihome_recentwiew_wallpaper_darkening_summary
), SwitchV("miuihome_recentwiew_wallpaper_darkening", false)
)
//TODO未开发完成
/*TextSummaryWithSwitch(
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.miuihome_recentview_remove_card_animation, tipsId = R.string.miuihome_recentview_remove_card_animation_summary
), SwitchV("miuihome_recentview_remove_card_animation", false)
@@ -44,7 +43,7 @@ class OtherPageForT : BasePage() {
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.miuihome_shortcut_add_small_window, tipsId = R.string.miuihome_shortcut_add_small_window_summary),
SwitchV("miuihome_shortcut_add_small_window", false)
)*/
)
TextSummaryWithSwitch(
TextSummaryV(textId = R.string.miuihome_scroll_icon_name, tipsId = R.string.miuihome_scroll_icon_name_summary),
SwitchV("miuihome_scroll_icon_name", false)

View File

@@ -51,10 +51,10 @@ import com.lt2333.simplicitytools.R
}
})
val layoutCompatibilityModeBinding = GetDataBinding({
MIUIActivity.safeSP.getInt(
"screen_hole_location", 0
) == 2
val layoutCompatibilityBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean(
"layout_compatibility_mode", false
)
}) { view, flags, data ->
when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean
@@ -62,43 +62,23 @@ import com.lt2333.simplicitytools.R
}
}
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)
}
})
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.layout_compatibility_mode, tipsId = R.string.layout_compatibility_mode_summary
), SwitchV("layout_compatibility_mode", dataBindingSend = layoutCompatibilityBinding.bindingSend)
)
Text(
textId = R.string.left_margin, dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
textId = R.string.left_margin, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
)
SeekBarWithText(
"status_bar_left_margin", 0, 300, 0, dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
"status_bar_left_margin", 0, 300, 0, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
)
Text(
textId = R.string.right_margin, dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
textId = R.string.right_margin, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
)
SeekBarWithText(
"status_bar_right_margin", 0, 300, 0, dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
"status_bar_right_margin", 0, 300, 0, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
)
Line()
TitleText(textId = R.string.status_bar_clock_format)

View File

@@ -1,53 +1,45 @@
package com.lt2333.simplicitytools.hooks.rules.all.miuihome
import android.animation.ObjectAnimator
import android.animation.TimeInterpolator
import android.view.MotionEvent
import android.view.View
import com.github.kyuubiran.ezxhelper.utils.args
import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.getObject
import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.github.kyuubiran.ezxhelper.utils.hookReplace
import com.github.kyuubiran.ezxhelper.utils.invokeMethod
import com.github.kyuubiran.ezxhelper.utils.invokeStaticMethod
import com.github.kyuubiran.ezxhelper.utils.loadClass
import com.github.kyuubiran.ezxhelper.utils.putObject
import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.utils.*
import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import de.robv.android.xposed.XposedHelpers
object ModifyRecentViewRemoveCardAnimForAll : HookRegister() {
override fun init() = hasEnable("miuihome_recentview_remove_card_animation") {
findMethod("com.miui.home.recents.views.SwipeHelperForRecents") {
name == "onTouchEvent" && parameterCount == 1
}.hookAfter {
val mCurrView = it.thisObject.getObject("mCurrView") as View?
"com.miui.home.recents.views.SwipeHelperForRecents".hookAfterMethod("onTouchEvent", MotionEvent::class.java) {
val mCurrView = it.thisObject.getObjectField("mCurrView") as View?
if (mCurrView != null) {
mCurrView.alpha = 1f
mCurrView.scaleX = 1f
mCurrView.scaleY = 1f
}
}
findMethod("com.miui.home.recents.TaskStackViewLayoutStyleHorizontal") {
name == "createScaleDismissAnimation" && parameterCount == 2
}.hookReplace {
"com.miui.home.recents.TaskStackViewLayoutStyleHorizontal".replaceMethod("createScaleDismissAnimation", View::class.java, Float::class.java) {
val view = it.args[0] as View
val getScreenHeight = loadClass("com.miui.home.launcher.DeviceConfig").invokeStaticMethod("getScreenHeight") as Int
val getScreenHeight = "com.miui.home.launcher.DeviceConfig".findClass().callStaticMethod("getScreenHeight") as Int
val ofFloat = ObjectAnimator.ofFloat(view, View.TRANSLATION_Y, view.translationY, -getScreenHeight * 1.1484375f)
ofFloat.duration = 200
return@hookReplace ofFloat
val physicBasedInterpolator = XposedHelpers.newInstance("com.miui.home.launcher.anim.PhysicBasedInterpolator".findClass(), 0.9f, 0.78f)
ofFloat.interpolator = physicBasedInterpolator as TimeInterpolator
ofFloat.duration = 400
return@replaceMethod ofFloat
}
findMethod("com.miui.home.recents.views.VerticalSwipe") {
name == "calculate" && parameterCount == 1
}.hookAfter {
"com.miui.home.recents.views.VerticalSwipe".hookAfterMethod("calculate", Float::class.java) {
val f = it.args[0] as Float
val asScreenHeightWhenDismiss = loadClass("com.miui.home.recents.views.VerticalSwipe").invokeStaticMethod("getAsScreenHeightWhenDismiss") as Int
val asScreenHeightWhenDismiss = "com.miui.home.recents.views.VerticalSwipe".findClass().callStaticMethod("getAsScreenHeightWhenDismiss") as Int
val f2 = f / asScreenHeightWhenDismiss
val mTaskViewHeight = it.thisObject.getObject("mTaskViewHeight") as Float
val mCurScale = it.thisObject.getObject("mCurScale") as Float
val mTaskViewHeight = it.thisObject.getObjectField("mTaskViewHeight") as Float
val mCurScale = it.thisObject.getObjectField("mCurScale") as Float
val f3: Float = mTaskViewHeight * mCurScale
val i = if (f2 > 0.0f) 1 else if (f2 == 0.0f) 0 else -1
val afterFrictionValue: Float = it.thisObject.invokeMethod("afterFrictionValue", args(f, asScreenHeightWhenDismiss)) as Float
if (i < 0) it.thisObject.putObject("mCurTransY", (mTaskViewHeight / 2.0f + afterFrictionValue * 2) - (f3 / 2.0f))
val afterFrictionValue: Float = it.thisObject.callMethod("afterFrictionValue", f, asScreenHeightWhenDismiss) as Float
if (i < 0) it.thisObject.setObjectField("mCurTransY", (mTaskViewHeight / 2.0f + afterFrictionValue * 2) - (f3 / 2.0f))
}
}

View File

@@ -1,8 +1,10 @@
package com.lt2333.simplicitytools.hooks.rules.all.miuihome
import android.annotation.SuppressLint
import android.content.Context
import android.text.TextUtils
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import com.github.kyuubiran.ezxhelper.utils.Log
import com.github.kyuubiran.ezxhelper.utils.args
@@ -10,54 +12,57 @@ import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.getObject
import com.github.kyuubiran.ezxhelper.utils.hookAfter
import com.github.kyuubiran.ezxhelper.utils.invokeMethod
import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.utils.*
import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object ScrollIconNameForAll : HookRegister() {
@SuppressLint("DiscouragedApi")
override fun init() = hasEnable("miuihome_scroll_icon_name") {
val launcherClass = "com.miui.home.launcher.Launcher".findClass()
val shortcutInfoClass = "com.miui.home.launcher.ShortcutInfo".findClass()
try {
findMethod("com.miui.home.launcher.ItemIcon") {
name == "onFinishInflate"
}.hookAfter {
val mTitle = it.thisObject.getObject("mTitle") as TextView
"com.miui.home.launcher.ItemIcon".hookAfterMethod(
"onFinishInflate"
) {
val mTitle = it.thisObject.getObjectField("mTitle") as TextView
mTitleScrolling(mTitle)
}
findMethod("com.miui.home.launcher.maml.MaMlWidgetView") {
name == "onFinishInflate"
}.hookAfter {
val mTitle = it.thisObject.getObject("mTitle") as TextView
"com.miui.home.launcher.maml.MaMlWidgetView".hookAfterMethod(
"onFinishInflate"
) {
val mTitle = it.thisObject.getObjectField("mTitleTextView") as TextView
mTitleScrolling(mTitle)
}
findMethod("com.miui.home.launcher.LauncherMtzGadgetView") {
name == "onFinishInflate"
}.hookAfter {
val mTitle = it.thisObject.getObject("mTitle") as TextView
"com.miui.home.launcher.LauncherMtzGadgetView".hookAfterMethod(
"onFinishInflate"
) {
val mTitle = it.thisObject.getObjectField("mTitleTextView") as TextView
mTitleScrolling(mTitle)
}
findMethod("com.miui.home.launcher.LauncherWidgetView") {
name == "onFinishInflate"
}.hookAfter {
val mTitle = it.thisObject.getObject("mTitle") as TextView
"com.miui.home.launcher.LauncherWidgetView".hookAfterMethod(
"onFinishInflate"
) {
val mTitle = it.thisObject.getObjectField("mTitleTextView") as TextView
mTitleScrolling(mTitle)
}
findMethod("com.miui.home.launcher.ShortcutIcon") {
name == "fromXml" && parameterCount == 4
}.hookAfter {
val buddyIconView = it.args[3].invokeMethod("getBuddyIconView", args(it.args[2])) as View
val mTitle = buddyIconView.getObject("mTitle") as TextView
"com.miui.home.launcher.ShortcutIcon".hookAfterMethod(
"fromXml", Int::class.javaPrimitiveType, launcherClass, ViewGroup::class.java, shortcutInfoClass
) {
val buddyIconView = it.args[3].callMethod("getBuddyIconView", it.args[2]) as View
val mTitle = buddyIconView.getObjectField("mTitle") as TextView
mTitleScrolling(mTitle)
}
findMethod("com.miui.home.launcher.ShortcutIcon") {
name == "createShortcutIcon" && parameterCount == 3
}.hookAfter {
"com.miui.home.launcher.ShortcutIcon".hookAfterMethod(
"createShortcutIcon", Int::class.javaPrimitiveType, launcherClass, ViewGroup::class.java
) {
val buddyIcon = it.result as View
val mTitle = buddyIcon.getObject("mTitle") as TextView
val mTitle = buddyIcon.getObjectField("mTitle") as TextView
mTitleScrolling(mTitle)
}
findMethod("com.miui.home.launcher.common.Utilities") {
name == "adaptTitleStyleToWallpaper" && parameterCount == 4
}.hookAfter {
"com.miui.home.launcher.common.Utilities".hookAfterMethod(
"adaptTitleStyleToWallpaper", Context::class.java, TextView::class.java, Int::class.javaPrimitiveType, Int::class.javaPrimitiveType
) {
val mTitle = it.args[1] as TextView
if (mTitle.id == mTitle.resources.getIdentifier("icon_title", "id", "com.miui.home")) {
mTitleScrolling(mTitle)

View File

@@ -18,77 +18,71 @@ import com.github.kyuubiran.ezxhelper.utils.invokeStaticMethod
import com.github.kyuubiran.ezxhelper.utils.loadClass
import com.github.kyuubiran.ezxhelper.utils.putStaticObject
import com.lt2333.simplicitytools.R
import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.utils.*
import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import de.robv.android.xposed.XposedHelpers
object ShortcutAddSmallWindowForAll : HookRegister() {
override fun init() = hasEnable("miuihome_shortcut_add_small_window") {
val mViewDarkModeHelper = loadClass("com.miui.home.launcher.util.ViewDarkModeHelper")
val mSystemShortcutMenu = loadClass("com.miui.home.launcher.shortcuts.SystemShortcutMenu")
val mSystemShortcutMenuItem = loadClass("com.miui.home.launcher.shortcuts.SystemShortcutMenuItem")
val mAppShortcutMenu = loadClass("com.miui.home.launcher.shortcuts.AppShortcutMenu")
val mShortcutMenuItem = loadClass("com.miui.home.launcher.shortcuts.ShortcutMenuItem")
val mAppDetailsShortcutMenuItem = loadClass("com.miui.home.launcher.shortcuts.SystemShortcutMenuItem\$AppDetailsShortcutMenuItem")
val mActivityUtilsCompat = loadClass("com.miui.launcher.utils.ActivityUtilsCompat")
findAllMethods(mViewDarkModeHelper) {
name == "onConfigurationChanged"
}.hookAfter {
mSystemShortcutMenuItem.invokeStaticMethod("createAllSystemShortcutMenuItems")
val mViewDarkModeHelper = ("com.miui.home.launcher.util.ViewDarkModeHelper").findClass()
val mSystemShortcutMenu = ("com.miui.home.launcher.shortcuts.SystemShortcutMenu").findClass()
val mSystemShortcutMenuItem = ("com.miui.home.launcher.shortcuts.SystemShortcutMenuItem").findClass()
val mAppShortcutMenu = ("com.miui.home.launcher.shortcuts.AppShortcutMenu").findClass()
val mShortcutMenuItem = ("com.miui.home.launcher.shortcuts.ShortcutMenuItem").findClass()
val mAppDetailsShortcutMenuItem = ("com.miui.home.launcher.shortcuts.SystemShortcutMenuItem\$AppDetailsShortcutMenuItem").findClass()
val mActivityUtilsCompat = ("com.miui.launcher.utils.ActivityUtilsCompat").findClass()
mViewDarkModeHelper.hookAfterAllMethods("onConfigurationChanged") {
mSystemShortcutMenuItem.callStaticMethod("createAllSystemShortcutMenuItems")
}
findAllMethods(mShortcutMenuItem) {
name == "getShortTitle"
}.hookAfter {
mShortcutMenuItem.hookAfterAllMethods("getShortTitle") {
if (it.result == "应用信息") {
it.result = "信息"
}
}
findMethod(mAppDetailsShortcutMenuItem) {
name == "lambda\$getOnClickListener$0" && parameterCount == 2
}.hookBefore {
mAppDetailsShortcutMenuItem.hookBeforeMethod("lambda\$getOnClickListener$0", mAppDetailsShortcutMenuItem, View::class.java) {
val obj = it.args[0]
val view: View = it.args[1] as View
val mShortTitle = obj.invokeMethod("getShortTitle") as CharSequence
val mShortTitle = obj.callMethod("getShortTitle") as CharSequence
if (mShortTitle == moduleRes.getString(R.string.miuihome_shortcut_add_small_window_title)) {
it.result = null
val intent = Intent()
val mComponentName = obj.invokeMethod("getComponentName") as ComponentName
val mComponentName = obj.callMethod("getComponentName") as ComponentName
intent.action = "android.intent.action.MAIN"
intent.addCategory("android.intent.category.LAUNCHER")
intent.component = mComponentName
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
val callStaticMethod = mActivityUtilsCompat.invokeStaticMethod("makeFreeformActivityOptions", args(view.context, mComponentName.packageName))
val callStaticMethod = mActivityUtilsCompat.callStaticMethod("makeFreeformActivityOptions", view.context, mComponentName.packageName)
if (callStaticMethod != null) {
view.context.startActivity(intent, callStaticMethod.invokeMethod("toBundle") as Bundle)
view.context.startActivity(intent, callStaticMethod.callMethod("toBundle") as Bundle)
}
}
}
findAllMethods(mSystemShortcutMenu) {
name == "getMaxShortcutItemCount"
}.hookAfter {
mSystemShortcutMenu.hookAfterAllMethods("getMaxShortcutItemCount") {
it.result = 5
}
findAllMethods(mAppShortcutMenu) {
name == "getMaxShortcutItemCount"
}.hookAfter {
mAppShortcutMenu.hookAfterAllMethods("getMaxShortcutItemCount") {
it.result = 5
}
findAllMethods(mSystemShortcutMenuItem) {
name == "createAllSystemShortcutMenuItems"
}.hookAfter {
mSystemShortcutMenuItem.hookAfterAllMethods("createAllSystemShortcutMenuItems") {
val isDarkMode =
AndroidAppHelper.currentApplication().applicationContext.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK == Configuration.UI_MODE_NIGHT_YES
val mAllSystemShortcutMenuItems = mSystemShortcutMenuItem.getStaticObject("sAllSystemShortcutMenuItems") as Collection<Any>
val mAllSystemShortcutMenuItems = mSystemShortcutMenuItem.getStaticObjectField("sAllSystemShortcutMenuItems") as Collection<Any>
val mSmallWindowInstance = XposedHelpers.newInstance(mAppDetailsShortcutMenuItem)
mSmallWindowInstance.invokeMethod("setShortTitle", args(moduleRes.getString(R.string.miuihome_shortcut_add_small_window_title)))
mSmallWindowInstance.invokeMethod(
mSmallWindowInstance.callMethod("setShortTitle", moduleRes.getString(R.string.miuihome_shortcut_add_small_window_title))
mSmallWindowInstance.callMethod(
"setIconDrawable",
args(if (isDarkMode) moduleRes.getDrawable(R.drawable.ic_small_window_dark) else moduleRes.getDrawable(R.drawable.ic_small_window_light))
if (isDarkMode) moduleRes.getDrawable(R.drawable.ic_small_window_dark) else moduleRes.getDrawable(R.drawable.ic_small_window_light)
)
val sAllSystemShortcutMenuItems = ArrayList<Any>()
sAllSystemShortcutMenuItems.add(mSmallWindowInstance)
sAllSystemShortcutMenuItems.addAll(mAllSystemShortcutMenuItems)
mSystemShortcutMenuItem.putStaticObject("sAllSystemShortcutMenuItems", sAllSystemShortcutMenuItems)
mSystemShortcutMenuItem.setStaticObjectField("sAllSystemShortcutMenuItems", sAllSystemShortcutMenuItems)
}
}

View File

@@ -1,27 +1,29 @@
package com.lt2333.simplicitytools.hooks.rules.all.securitycenter
import com.github.kyuubiran.ezxhelper.utils.*
import com.lt2333.simplicitytools.utils.XSPUtils
import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
import de.robv.android.xposed.XC_MethodHook
import de.robv.android.xposed.XposedBridge
import de.robv.android.xposed.XposedHelpers
object RemoveMacroBlacklistForAll : HookRegister() {
override fun init() {
// TODO: 新版已失效
if (XSPUtils.getBoolean("remove_macro_blacklist", false)) {
var letter = 'a'
for (i in 0..25) {
val classIfExists = XposedHelpers.findClassIfExists(
"com.miui.gamebooster.v.$letter" + "0", getDefaultClassLoader()
"com.miui.gamebooster.utils.$letter" + "0", getDefaultClassLoader()
) ?: continue
if (classIfExists.declaredMethods.size in 6..12 && classIfExists.fields.isEmpty() && classIfExists.declaredFields.size >= 2) {
XposedHelpers.findAndHookMethod(classIfExists, "c", String::class.java,
object : XC_MethodHook() {
override fun beforeHookedMethod(param: MethodHookParam?) {
param?.result = false
}
})
if (classIfExists.declaredMethods.size in 10..15 && classIfExists.fields.isEmpty() && classIfExists.declaredFields.size >= 2) {
XposedBridge.log("Woobox: RemoveMacroBlacklist in ${classIfExists.name}")
findMethod(classIfExists){
name=="c" && returnType==Boolean::class.java && isStatic &&parameterCount==1
}.hookBefore {
XposedBridge.log("Woobox: c")
it.result = false
}
return
}
letter++

View File

@@ -16,12 +16,10 @@ object StatusBarBigMobileTypeIconForT : HookRegister() {
private val getLocation = XSPUtils.getInt("big_mobile_type_location", 1)
private val upAndDownPosition = XSPUtils.getInt("big_mobile_type_icon_up_and_down_position", 0)
private val leftAndRightMargin =
XSPUtils.getInt("big_mobile_type_icon_left_and_right_margins", 0)
private val leftAndRightMargin = XSPUtils.getInt("big_mobile_type_icon_left_and_right_margins", 0)
private val isBold = XSPUtils.getBoolean("big_mobile_type_icon_bold", true)
private val size = XSPUtils.getFloat("big_mobile_type_icon_size", 12.5f)
private val isOnlyShowNetwork =
XSPUtils.getBoolean("big_mobile_type_only_show_network_card", false)
private val isOnlyShowNetwork = XSPUtils.getBoolean("big_mobile_type_only_show_network_card", false)
override fun init() = hasEnable("big_mobile_type_icon") {
//使网络类型单独显示
@@ -41,16 +39,13 @@ object StatusBarBigMobileTypeIconForT : HookRegister() {
val res: Resources = context.resources
//获取组件
val mobileContainerLeftId: Int =
res.getIdentifier("mobile_container_left", "id", "com.android.systemui")
val mobileContainerLeft =
statusBarMobileView.findViewById<ViewGroup>(mobileContainerLeftId)
val mobileContainerLeftId: Int = res.getIdentifier("mobile_container_left", "id", "com.android.systemui")
val mobileContainerLeft = statusBarMobileView.findViewById<ViewGroup>(mobileContainerLeftId)
val mobileGroupId: Int = res.getIdentifier("mobile_group", "id", "com.android.systemui")
val mobileGroup = statusBarMobileView.findViewById<ViewGroup>(mobileGroupId)
val mobileTypeSingleId: Int =
res.getIdentifier("mobile_type_single", "id", "com.android.systemui")
val mobileTypeSingleId: Int = res.getIdentifier("mobile_type_single", "id", "com.android.systemui")
val mobileTypeSingle = statusBarMobileView.findViewById<TextView>(mobileTypeSingleId)
//更改顺序
@@ -69,12 +64,8 @@ object StatusBarBigMobileTypeIconForT : HookRegister() {
mobileTypeSingle.setPadding(
leftAndRightMargin, upAndDownPosition, leftAndRightMargin, 0
)
//显示非上网卡的大图标
if (!isOnlyShowNetwork) {
if (!mobileIconState.getObjectAs<Boolean>("dataConnected")) {
mobileTypeSingle.visibility = View.VISIBLE
}
}
it.thisObject.invokeMethodAuto("updateState",mobileIconState)
}
//显示非上网卡的大图标
if (!isOnlyShowNetwork) {
@@ -86,12 +77,10 @@ object StatusBarBigMobileTypeIconForT : HookRegister() {
val context: Context = statusBarMobileView.context
val res: Resources = context.resources
val mobileTypeSingleId: Int =
res.getIdentifier("mobile_type_single", "id", "com.android.systemui")
val mobileTypeSingle =
statusBarMobileView.findViewById<TextView>(mobileTypeSingleId)
val mobileTypeSingleId: Int = res.getIdentifier("mobile_type_single", "id", "com.android.systemui")
val mobileTypeSingle = statusBarMobileView.findViewById<TextView>(mobileTypeSingleId)
if (!mobileIconState.getObjectAs<Boolean>("dataConnected")) {
if (!mobileIconState.getObjectAs<Boolean>("dataConnected") && !mobileIconState.getObjectAs<Boolean>("wifiAvailable")) {
mobileTypeSingle.visibility = View.VISIBLE
}
}

View File

@@ -16,10 +16,11 @@ import com.lt2333.simplicitytools.utils.XSPUtils
import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object StatusBarLayoutForT : HookRegister() {
private val getMode = XSPUtils.getInt("status_bar_layout_mode", 0)
private val getHoleLocation = XSPUtils.getInt("screen_hole_location", 0)
private val isCompatibilityMode = XSPUtils.getBoolean("layout_compatibility_mode", false)
private var statusBarLeft = 0
private var statusBarTop = 0
@@ -42,17 +43,12 @@ object StatusBarLayoutForT : HookRegister() {
mLeftLayout!!.setPadding(statusBarLeft, 0, 0, 0)
mRightLayout!!.setPadding(0, 0, statusBarRight, 0)
statusBar!!.setPadding(0, statusBarTop, 0, statusBarBottom)
} else {
//横屏状态
mLeftLayout!!.setPadding(175, 0, 0, 0)
mRightLayout!!.setPadding(0, 0, 175, 0)
statusBar!!.setPadding(0, statusBarTop, 0, statusBarBottom)
}
}
//判断是否开启居中挖孔兼容模式
if (getHoleLocation == 1) {
findMethod("com.android.systemui.ScreenDecorations\$DisplayCutoutView") {
//判断是否开启挖孔兼容模式
if (isCompatibilityMode) {
findMethod("com.android.systemui.ScreenDecorations") {
name == "boundsFromDirection" && parameterCount == 3 && isStatic
}.hookBefore {
it.args[1] = 0
@@ -64,43 +60,35 @@ object StatusBarLayoutForT : HookRegister() {
0 -> return
//时钟居中
1 -> {
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") {
findMethod("com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment") {
name == "onViewCreated" && parameterCount == 2
}.hookAfter { param ->
val miuiPhoneStatusBarView =
param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
val miuiPhoneStatusBarView = param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
val context: Context = miuiPhoneStatusBarView.context
val res: Resources = miuiPhoneStatusBarView.resources
val statusBarId: Int =
res.getIdentifier("status_bar", "id", "com.android.systemui")
val statusBarContentsId: Int =
res.getIdentifier("status_bar_contents", "id", "com.android.systemui")
val systemIconAreaId: Int =
res.getIdentifier("system_icon_area", "id", "com.android.systemui")
val statusBarId: Int = res.getIdentifier("status_bar", "id", "com.android.systemui")
val statusBarContentsId: Int = res.getIdentifier(
"status_bar_contents", "id", "com.android.systemui"
)
val systemIconAreaId: Int = res.getIdentifier("system_icon_area", "id", "com.android.systemui")
val clockId: Int = res.getIdentifier("clock", "id", "com.android.systemui")
val phoneStatusBarLeftContainerId: Int =
res.getIdentifier(
"phone_status_bar_left_container",
"id",
"com.android.systemui"
)
val notificationIconAreaInnerId: Int =
res.getIdentifier(
"notification_icon_area_inner",
"id",
"com.android.systemui"
)
val phoneStatusBarLeftContainerId: Int = res.getIdentifier(
"phone_status_bar_left_container", "id", "com.android.systemui"
)
val notificationIconAreaInnerId: Int = res.getIdentifier(
"notification_icon_area_inner", "id", "com.android.systemui"
)
statusBar = miuiPhoneStatusBarView.findViewById(statusBarId)
val statusBarContents: ViewGroup =
miuiPhoneStatusBarView.findViewById(statusBarContentsId)
val statusBarContents: ViewGroup = miuiPhoneStatusBarView.findViewById(statusBarContentsId)
if (statusBar == null) return@hookAfter
val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId)
val phoneStatusBarLeftContainer: ViewGroup =
miuiPhoneStatusBarView.findViewById(phoneStatusBarLeftContainerId)
val notificationIconAreaInner: ViewGroup =
miuiPhoneStatusBarView.findViewById(notificationIconAreaInnerId)
val systemIconArea: ViewGroup =
miuiPhoneStatusBarView.findViewById(systemIconAreaId)
val phoneStatusBarLeftContainer: ViewGroup = miuiPhoneStatusBarView.findViewById(
phoneStatusBarLeftContainerId
)
val notificationIconAreaInner: ViewGroup = miuiPhoneStatusBarView.findViewById(
notificationIconAreaInnerId
)
val systemIconArea: ViewGroup = miuiPhoneStatusBarView.findViewById(systemIconAreaId)
(clock.parent as ViewGroup).removeView(clock)
(phoneStatusBarLeftContainer.parent as ViewGroup).removeView(
@@ -111,41 +99,39 @@ object StatusBarLayoutForT : HookRegister() {
)
(systemIconArea.parent as ViewGroup).removeView(systemIconArea)
val mConstraintLayout =
ConstraintLayout(context).also {
it.layoutParams = ConstraintLayout.LayoutParams(
ConstraintLayout.LayoutParams.MATCH_PARENT,
ConstraintLayout.LayoutParams.MATCH_PARENT
)
}
val mConstraintLayout = ConstraintLayout(context).also {
it.layoutParams = ConstraintLayout.LayoutParams(
ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.MATCH_PARENT
)
}
mConstraintLayout.addView(notificationIconAreaInner)
val fullscreenNotificationIconAreaLp = LinearLayout.LayoutParams(
ConstraintLayout.LayoutParams.MATCH_PARENT,
ConstraintLayout.LayoutParams.MATCH_PARENT
ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.MATCH_PARENT
)
notificationIconAreaInner.layoutParams = fullscreenNotificationIconAreaLp
//增加一个左对齐布局
mLeftLayout = LinearLayout(context)
val leftLp: LinearLayout.LayoutParams =
LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f)
val leftLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f
)
mLeftLayout!!.layoutParams = leftLp
mLeftLayout!!.gravity = Gravity.START or Gravity.CENTER_VERTICAL
//增加一个居中布局
mCenterLayout = LinearLayout(context)
val centerLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.MATCH_PARENT
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT
)
mCenterLayout!!.layoutParams = centerLp
mCenterLayout!!.gravity = Gravity.CENTER or Gravity.CENTER_VERTICAL
mRightLayout = LinearLayout(context)
val rightLp: LinearLayout.LayoutParams =
LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f)
val rightLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f
)
mRightLayout!!.layoutParams = rightLp
mRightLayout!!.gravity = Gravity.END or Gravity.CENTER_VERTICAL
mLeftLayout!!.addView(phoneStatusBarLeftContainer)
@@ -163,7 +149,7 @@ object StatusBarLayoutForT : HookRegister() {
statusBarBottom = statusBar!!.paddingBottom
if (getHoleLocation == 2) {
if (isCompatibilityMode) {
val customLeftMargin = XSPUtils.getInt("status_bar_left_margin", 0)
if (customLeftMargin != 0) {
statusBarLeft = customLeftMargin
@@ -188,17 +174,15 @@ object StatusBarLayoutForT : HookRegister() {
}
//时钟居右
2 -> {
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") {
findMethod("com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment") {
name == "onViewCreated" && parameterCount == 2
}.hookAfter { param ->
val miuiPhoneStatusBarView =
param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
val miuiPhoneStatusBarView = param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
val context: Context = miuiPhoneStatusBarView.context
val res: Resources = miuiPhoneStatusBarView.resources
//组件ID
val statusBarId: Int =
res.getIdentifier("status_bar", "id", "com.android.systemui")
val statusBarId: Int = res.getIdentifier("status_bar", "id", "com.android.systemui")
val clockId: Int = res.getIdentifier("clock", "id", "com.android.systemui")
val batteryId: Int = res.getIdentifier("battery", "id", "com.android.systemui")
@@ -210,8 +194,7 @@ object StatusBarLayoutForT : HookRegister() {
//新建布局
val rightLp = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.MATCH_PARENT
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT
).also {
it.marginStart = dp2px(context, 5f)
}
@@ -227,68 +210,48 @@ object StatusBarLayoutForT : HookRegister() {
}
//时钟居中+图标居左
3 -> {
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") {
findMethod("com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment") {
name == "onViewCreated" && parameterCount == 2
}.hookAfter { param ->
val miuiPhoneStatusBarView =
param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
val miuiPhoneStatusBarView = param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
val context: Context = miuiPhoneStatusBarView.context
val res: Resources = miuiPhoneStatusBarView.resources
val statusBarId: Int =
res.getIdentifier("status_bar", "id", "com.android.systemui")
val statusBarContentsId: Int =
res.getIdentifier("status_bar_contents", "id", "com.android.systemui")
val systemIconAreaId: Int =
res.getIdentifier("system_icon_area", "id", "com.android.systemui")
val statusBarId: Int = res.getIdentifier("status_bar", "id", "com.android.systemui")
val statusBarContentsId: Int = res.getIdentifier(
"status_bar_contents", "id", "com.android.systemui"
)
val systemIconAreaId: Int = res.getIdentifier("system_icon_area", "id", "com.android.systemui")
val clockId: Int = res.getIdentifier("clock", "id", "com.android.systemui")
val phoneStatusBarLeftContainerId: Int =
res.getIdentifier(
"phone_status_bar_left_container",
"id",
"com.android.systemui"
)
val fullscreenNotificationIconAreaId: Int =
res.getIdentifier(
"fullscreen_notification_icon_area",
"id",
"com.android.systemui"
)
val statusIconsId: Int =
res.getIdentifier(
"statusIcons",
"id",
"com.android.systemui"
)
val systemIconsId: Int =
res.getIdentifier(
"system_icons",
"id",
"com.android.systemui"
)
val batteryId: Int =
res.getIdentifier(
"battery",
"id",
"com.android.systemui"
)
val phoneStatusBarLeftContainerId: Int = res.getIdentifier(
"phone_status_bar_left_container", "id", "com.android.systemui"
)
val fullscreenNotificationIconAreaId: Int = res.getIdentifier(
"fullscreen_notification_icon_area", "id", "com.android.systemui"
)
val statusIconsId: Int = res.getIdentifier(
"statusIcons", "id", "com.android.systemui"
)
val systemIconsId: Int = res.getIdentifier(
"system_icons", "id", "com.android.systemui"
)
val batteryId: Int = res.getIdentifier(
"battery", "id", "com.android.systemui"
)
statusBar = miuiPhoneStatusBarView.findViewById(statusBarId)
val statusBarContents: ViewGroup =
miuiPhoneStatusBarView.findViewById(statusBarContentsId)
val statusBarContents: ViewGroup = miuiPhoneStatusBarView.findViewById(statusBarContentsId)
if (statusBar == null) return@hookAfter
val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId)
val phoneStatusBarLeftContainer: ViewGroup =
miuiPhoneStatusBarView.findViewById(phoneStatusBarLeftContainerId)
val fullscreenNotificationIconArea: ViewGroup =
miuiPhoneStatusBarView.findViewById(fullscreenNotificationIconAreaId)
val systemIconArea: ViewGroup =
miuiPhoneStatusBarView.findViewById(systemIconAreaId)
val statusIcons: ViewGroup =
miuiPhoneStatusBarView.findViewById(statusIconsId)
val systemIcons: ViewGroup =
miuiPhoneStatusBarView.findViewById(systemIconsId)
val battery: ViewGroup =
miuiPhoneStatusBarView.findViewById(batteryId)
val phoneStatusBarLeftContainer: ViewGroup = miuiPhoneStatusBarView.findViewById(
phoneStatusBarLeftContainerId
)
val fullscreenNotificationIconArea: ViewGroup = miuiPhoneStatusBarView.findViewById(
fullscreenNotificationIconAreaId
)
val systemIconArea: ViewGroup = miuiPhoneStatusBarView.findViewById(systemIconAreaId)
val statusIcons: ViewGroup = miuiPhoneStatusBarView.findViewById(statusIconsId)
val systemIcons: ViewGroup = miuiPhoneStatusBarView.findViewById(systemIconsId)
val battery: ViewGroup = miuiPhoneStatusBarView.findViewById(batteryId)
(clock.parent as ViewGroup).removeView(clock)
(phoneStatusBarLeftContainer.parent as ViewGroup).removeView(
@@ -302,29 +265,25 @@ object StatusBarLayoutForT : HookRegister() {
fullscreenNotificationIconArea
)
val mConstraintLayout =
ConstraintLayout(context).also {
it.layoutParams = ConstraintLayout.LayoutParams(
ConstraintLayout.LayoutParams.MATCH_PARENT,
ConstraintLayout.LayoutParams.MATCH_PARENT
)
}
val mConstraintLayout = ConstraintLayout(context).also {
it.layoutParams = ConstraintLayout.LayoutParams(
ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.MATCH_PARENT
)
}
mConstraintLayout.addView(fullscreenNotificationIconArea)
mConstraintLayout.addView(battery)
battery.layoutParams = ConstraintLayout.LayoutParams(
ConstraintLayout.LayoutParams.WRAP_CONTENT,
ConstraintLayout.LayoutParams.MATCH_PARENT
ConstraintLayout.LayoutParams.WRAP_CONTENT, ConstraintLayout.LayoutParams.MATCH_PARENT
).also {
it.endToEnd = 0
}
fullscreenNotificationIconArea.layoutParams = ConstraintLayout.LayoutParams(
0,
ConstraintLayout.LayoutParams.MATCH_PARENT
0, ConstraintLayout.LayoutParams.MATCH_PARENT
).also {
it.startToEnd = batteryId
it.endToEnd = 0
@@ -334,24 +293,25 @@ object StatusBarLayoutForT : HookRegister() {
//增加一个左对齐布局
mLeftLayout = LinearLayout(context)
val leftLp: LinearLayout.LayoutParams =
LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f)
val leftLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f
)
mLeftLayout!!.layoutParams = leftLp
mLeftLayout!!.gravity = Gravity.START or Gravity.CENTER_VERTICAL
//增加一个居中布局
mCenterLayout = LinearLayout(context)
val centerLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.MATCH_PARENT
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT
)
mCenterLayout!!.layoutParams = centerLp
mCenterLayout!!.gravity = Gravity.CENTER or Gravity.CENTER_VERTICAL
//增加一个右布局
mRightLayout = LinearLayout(context)
val rightLp: LinearLayout.LayoutParams =
LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f)
val rightLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f
)
mRightLayout!!.layoutParams = rightLp
mRightLayout!!.gravity = Gravity.END or Gravity.CENTER_VERTICAL
@@ -378,7 +338,7 @@ object StatusBarLayoutForT : HookRegister() {
statusBarBottom = statusBar!!.paddingBottom
if (getHoleLocation == 2) {
if (isCompatibilityMode) {
val customLeftMargin = XSPUtils.getInt("status_bar_left_margin", 0)
if (customLeftMargin != 0) {
statusBarLeft = customLeftMargin
@@ -395,7 +355,7 @@ object StatusBarLayoutForT : HookRegister() {
findMethod("com.android.systemui.statusbar.phone.PhoneStatusBarView") {
name == "updateLayoutForCutout"
}.hookAfter {
if (getHoleLocation == 2) {
if (isCompatibilityMode) {
val context = (it.thisObject as ViewGroup).context
updateLayout(context)
}
@@ -407,18 +367,24 @@ object StatusBarLayoutForT : HookRegister() {
}.hookAfter {
val miuiPhoneStatusBarView = it.thisObject.getObjectAs<ViewGroup>("mStatusBar")
val res = miuiPhoneStatusBarView.resources
val statusBarId =
res.getIdentifier("status_bar", "id", "com.android.systemui")
val statusBarId = res.getIdentifier("status_bar", "id", "com.android.systemui")
val statusBar1 = miuiPhoneStatusBarView.findViewById<ViewGroup>(statusBarId)
//非锁屏下整个状态栏布局
val keyguardMgr =
statusBar1.context.getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
val keyguardMgr = statusBar1.context.getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
if (keyguardMgr.isKeyguardLocked) {
statusBar1!!.visibility = View.GONE
} else {
statusBar1!!.visibility = View.VISIBLE
}
}
//TODO: 修改图标的顺序
/*findConstructor("com.android.systemui.statusbar.phone.StatusBarIconList") {
parameterCount == 1
}.hookBefore {
}*/
}
}
}

View File

@@ -107,9 +107,15 @@ object StatusBarTimeCustomizationForT : HookRegister() {
findConstructor("com.android.systemui.statusbar.views.MiuiClock") {
paramCount == 3
}.hookAfter {
c = it.args[0] as Context
val textV = it.thisObject as TextView
textV.gravity = Gravity.CENTER
try {
val textV = it.thisObject as TextView
if (textV.resources.getResourceEntryName(textV.id) == "clock") {
c = it.args[0] as Context
val textV = it.thisObject as TextView
textV.gravity = Gravity.CENTER
}
} catch (_: Exception) {
}
}
}
}
@@ -174,9 +180,15 @@ object StatusBarTimeCustomizationForT : HookRegister() {
findConstructor("com.android.systemui.statusbar.views.MiuiClock") {
paramCount == 3
}.hookAfter {
c = it.args[0] as Context
val textV = it.thisObject as TextView
textV.gravity = Gravity.CENTER
try {
val textV = it.thisObject as TextView
if (textV.resources.getResourceEntryName(textV.id) == "clock") {
c = it.args[0] as Context
val textV = it.thisObject as TextView
textV.gravity = Gravity.CENTER
}
} catch (_: Exception) {
}
}
}
}
@@ -191,7 +203,6 @@ object StatusBarTimeCustomizationForT : HookRegister() {
if (isYear) {
if (isZh) {
datePattern += "YY年"
// if (!isHideSpace) datePattern = "$datePattern "
} else {
datePattern += "YY"
if (isMonth || isDay) datePattern += "/"
@@ -200,7 +211,6 @@ object StatusBarTimeCustomizationForT : HookRegister() {
if (isMonth) {
if (isZh) {
datePattern += "M月"
// if (!isHideSpace) datePattern = "$datePattern "
} else {
datePattern += "M"
if (isDay) datePattern += "/"

View File

@@ -0,0 +1,439 @@
@file:Suppress("unused")
package com.lt2333.simplicitytools.utils
import android.annotation.SuppressLint
import android.content.res.XResources
import com.github.kyuubiran.ezxhelper.init.InitFields.ezXClassLoader
import com.github.kyuubiran.ezxhelper.utils.Log
import dalvik.system.BaseDexClassLoader
import de.robv.android.xposed.XC_MethodHook
import de.robv.android.xposed.XC_MethodHook.MethodHookParam
import de.robv.android.xposed.XC_MethodReplacement
import de.robv.android.xposed.XposedBridge.*
import de.robv.android.xposed.XposedHelpers.*
import de.robv.android.xposed.callbacks.XC_LayoutInflated
import java.lang.reflect.Field
import java.lang.reflect.Member
import java.lang.reflect.Modifier
import java.util.Enumeration
typealias MethodHookParam = MethodHookParam
typealias Replacer = (MethodHookParam) -> Any?
typealias Hooker = (MethodHookParam) -> Unit
fun Class<*>.hookMethod(method: String?, vararg args: Any?) = try {
findAndHookMethod(this, method, *args)
} catch (e: NoSuchMethodError) {
Log.e(e)
null
} catch (e: ClassNotFoundError) {
Log.e(e)
null
} catch (e: ClassNotFoundException) {
Log.e(e)
null
}
fun Member.hookMethod(callback: XC_MethodHook) = try {
hookMethod(this, callback)
} catch (e: Throwable) {
Log.e(e)
null
}
inline fun MethodHookParam.callHooker(crossinline hooker: Hooker) = try {
hooker(this)
} catch (e: Throwable) {
Log.e("Error occurred calling hooker on ${this.method}")
Log.e(e)
}
inline fun MethodHookParam.callReplacer(crossinline replacer: Replacer) = try {
replacer(this)
} catch (e: Throwable) {
Log.e("Error occurred calling replacer on ${this.method}")
Log.e(e)
null
}
inline fun Member.replaceMethod(crossinline replacer: Replacer) = hookMethod(object : XC_MethodReplacement() {
override fun replaceHookedMethod(param: MethodHookParam) = param.callReplacer(replacer)
})
inline fun Member.hookAfterMethod(crossinline hooker: Hooker) = hookMethod(object : XC_MethodHook() {
override fun afterHookedMethod(param: MethodHookParam) = param.callHooker(hooker)
})
inline fun Member.hookBeforeMethod(crossinline hooker: (MethodHookParam) -> Unit) = hookMethod(object : XC_MethodHook() {
override fun beforeHookedMethod(param: MethodHookParam) = param.callHooker(hooker)
})
inline fun Class<*>.hookBeforeMethod(
method: String?, vararg args: Any?, crossinline hooker: Hooker
) = hookMethod(method, *args, object : XC_MethodHook() {
override fun beforeHookedMethod(param: MethodHookParam) = param.callHooker(hooker)
})
inline fun Class<*>.hookAfterMethod(
method: String?, vararg args: Any?, crossinline hooker: Hooker
) = hookMethod(method, *args, object : XC_MethodHook() {
override fun afterHookedMethod(param: MethodHookParam) = param.callHooker(hooker)
})
inline fun Class<*>.replaceMethod(
method: String?, vararg args: Any?, crossinline replacer: Replacer
) = hookMethod(method, *args, object : XC_MethodReplacement() {
override fun replaceHookedMethod(param: MethodHookParam) = param.callReplacer(replacer)
})
fun Class<*>.hookAllMethods(methodName: String?, hooker: XC_MethodHook): Set<XC_MethodHook.Unhook> = try {
hookAllMethods(this, methodName, hooker)
} catch (e: NoSuchMethodError) {
Log.e(e)
emptySet()
} catch (e: ClassNotFoundError) {
Log.e(e)
emptySet()
} catch (e: ClassNotFoundException) {
Log.e(e)
emptySet()
}
inline fun Class<*>.hookBeforeAllMethods(methodName: String?, crossinline hooker: Hooker) = hookAllMethods(methodName, object : XC_MethodHook() {
override fun beforeHookedMethod(param: MethodHookParam) = param.callHooker(hooker)
})
inline fun Class<*>.hookAfterAllMethods(methodName: String?, crossinline hooker: Hooker) = hookAllMethods(methodName, object : XC_MethodHook() {
override fun afterHookedMethod(param: MethodHookParam) = param.callHooker(hooker)
})
inline fun Class<*>.replaceAllMethods(methodName: String?, crossinline replacer: Replacer) =
hookAllMethods(methodName, object : XC_MethodReplacement() {
override fun replaceHookedMethod(param: MethodHookParam) = param.callReplacer(replacer)
})
fun Class<*>.hookConstructor(vararg args: Any?) = try {
findAndHookConstructor(this, *args)
} catch (e: NoSuchMethodError) {
Log.e(e)
null
} catch (e: ClassNotFoundError) {
Log.e(e)
null
} catch (e: ClassNotFoundException) {
Log.e(e)
null
}
inline fun Class<*>.hookBeforeConstructor(vararg args: Any?, crossinline hooker: Hooker) = hookConstructor(*args, object : XC_MethodHook() {
override fun beforeHookedMethod(param: MethodHookParam) = param.callHooker(hooker)
})
inline fun Class<*>.hookAfterConstructor(vararg args: Any?, crossinline hooker: Hooker) = hookConstructor(*args, object : XC_MethodHook() {
override fun afterHookedMethod(param: MethodHookParam) = param.callHooker(hooker)
})
inline fun Class<*>.replaceConstructor(vararg args: Any?, crossinline hooker: Hooker) = hookConstructor(*args, object : XC_MethodReplacement() {
override fun replaceHookedMethod(param: MethodHookParam) = param.callHooker(hooker)
})
fun Class<*>.hookAllConstructors(hooker: XC_MethodHook): Set<XC_MethodHook.Unhook> = try {
hookAllConstructors(this, hooker)
} catch (e: NoSuchMethodError) {
Log.e(e)
emptySet()
} catch (e: ClassNotFoundError) {
Log.e(e)
emptySet()
} catch (e: ClassNotFoundException) {
Log.e(e)
emptySet()
}
inline fun Class<*>.hookAfterAllConstructors(crossinline hooker: Hooker) = hookAllConstructors(object : XC_MethodHook() {
override fun afterHookedMethod(param: MethodHookParam) = param.callHooker(hooker)
})
inline fun Class<*>.hookBeforeAllConstructors(crossinline hooker: Hooker) = hookAllConstructors(object : XC_MethodHook() {
override fun beforeHookedMethod(param: MethodHookParam) = param.callHooker(hooker)
})
inline fun Class<*>.replaceAllConstructors(crossinline hooker: Hooker) = hookAllConstructors(object : XC_MethodReplacement() {
override fun replaceHookedMethod(param: MethodHookParam) = param.callHooker(hooker)
})
fun String.hookMethod(
method: String?, vararg args: Any?
) = try {
findClass().hookMethod(method, *args)
} catch (e: ClassNotFoundError) {
Log.e(e)
null
} catch (e: ClassNotFoundException) {
Log.e(e)
null
}
inline fun String.hookBeforeMethod(
method: String?, vararg args: Any?, crossinline hooker: Hooker
) = try {
findClass().hookBeforeMethod(method, *args, hooker = hooker)
} catch (e: ClassNotFoundError) {
Log.e(e)
null
} catch (e: ClassNotFoundException) {
Log.e(e)
null
}
inline fun String.hookAfterMethod(
method: String?, vararg args: Any?, crossinline hooker: Hooker
) = try {
findClass().hookAfterMethod(method, *args, hooker = hooker)
} catch (e: ClassNotFoundError) {
Log.e(e)
null
} catch (e: ClassNotFoundException) {
Log.e(e)
null
}
inline fun String.replaceMethod(
method: String?, vararg args: Any?, crossinline replacer: Replacer
) = try {
findClass().replaceMethod(method, *args, replacer = replacer)
} catch (e: ClassNotFoundError) {
Log.e(e)
null
} catch (e: ClassNotFoundException) {
Log.e(e)
null
}
fun MethodHookParam.invokeOriginalMethod(): Any? = invokeOriginalMethod(method, thisObject, args)
inline fun <T, R> T.runCatchingOrNull(func: T.() -> R?) = try {
func()
} catch (e: Throwable) {
null
}
fun Any.getObjectField(field: String?): Any? = getObjectField(this, field)
fun Any.getObjectFieldOrNull(field: String?): Any? = runCatchingOrNull {
getObjectField(this, field)
}
@Suppress("UNCHECKED_CAST")
fun <T> Any.getObjectFieldAs(field: String?) = getObjectField(this, field) as T
@Suppress("UNCHECKED_CAST")
fun <T> Any.getObjectFieldOrNullAs(field: String?) = runCatchingOrNull {
getObjectField(this, field) as T
}
fun Any.getIntField(field: String?) = getIntField(this, field)
fun Any.getIntFieldOrNull(field: String?) = runCatchingOrNull {
getIntField(this, field)
}
fun Any.getLongField(field: String?) = getLongField(this, field)
fun Any.getLongFieldOrNull(field: String?) = runCatchingOrNull {
getLongField(this, field)
}
fun Any.getBooleanField(field: String?) = getBooleanField(this, field)
fun Any.getBooleanFieldOrNull(field: String?) = runCatchingOrNull {
getBooleanField(this, field)
}
fun Any.callMethod(methodName: String?, vararg args: Any?): Any? = callMethod(this, methodName, *args)
fun Any.callMethodOrNull(methodName: String?, vararg args: Any?): Any? = runCatchingOrNull {
callMethod(this, methodName, *args)
}
fun Class<*>.callStaticMethod(methodName: String?, vararg args: Any?): Any? = callStaticMethod(this, methodName, *args)
fun Class<*>.callStaticMethodOrNull(methodName: String?, vararg args: Any?): Any? = runCatchingOrNull {
callStaticMethod(this, methodName, *args)
}
@Suppress("UNCHECKED_CAST")
fun <T> Class<*>.callStaticMethodAs(methodName: String?, vararg args: Any?) = callStaticMethod(this, methodName, *args) as T
@Suppress("UNCHECKED_CAST")
fun <T> Class<*>.callStaticMethodOrNullAs(methodName: String?, vararg args: Any?) = runCatchingOrNull {
callStaticMethod(this, methodName, *args) as T
}
@Suppress("UNCHECKED_CAST")
fun <T> Class<*>.getStaticObjectFieldAs(field: String?) = getStaticObjectField(this, field) as T
@Suppress("UNCHECKED_CAST")
fun <T> Class<*>.getStaticObjectFieldOrNullAs(field: String?) = runCatchingOrNull {
getStaticObjectField(this, field) as T
}
fun Class<*>.getStaticObjectField(field: String?): Any? = getStaticObjectField(this, field)
fun Class<*>.getStaticObjectFieldOrNull(field: String?): Any? = runCatchingOrNull {
getStaticObjectField(this, field)
}
fun Class<*>.setStaticObjectField(field: String?, obj: Any?) = apply {
setStaticObjectField(this, field, obj)
}
fun Class<*>.setStaticObjectFieldIfExist(field: String?, obj: Any?) = apply {
try {
setStaticObjectField(this, field, obj)
} catch (ignored: Throwable) {
}
}
inline fun <reified T> Class<*>.findFieldByExactType(): Field? = findFirstFieldByExactType(this, T::class.java)
fun Class<*>.findFieldByExactType(type: Class<*>): Field? = findFirstFieldByExactType(this, type)
@Suppress("UNCHECKED_CAST")
fun <T> Any.callMethodAs(methodName: String?, vararg args: Any?) = callMethod(this, methodName, *args) as T
@Suppress("UNCHECKED_CAST")
fun <T> Any.callMethodOrNullAs(methodName: String?, vararg args: Any?) = runCatchingOrNull {
callMethod(this, methodName, *args) as T
}
fun Any.callMethod(methodName: String?, parameterTypes: Array<Class<*>>, vararg args: Any?): Any? =
callMethod(this, methodName, parameterTypes, *args)
fun Any.callMethodOrNull(
methodName: String?, parameterTypes: Array<Class<*>>, vararg args: Any?
): Any? = runCatchingOrNull {
callMethod(this, methodName, parameterTypes, *args)
}
fun Class<*>.callStaticMethod(
methodName: String?, parameterTypes: Array<Class<*>>, vararg args: Any?
): Any? = callStaticMethod(this, methodName, parameterTypes, *args)
fun Class<*>.callStaticMethodOrNull(
methodName: String?, parameterTypes: Array<Class<*>>, vararg args: Any?
): Any? = runCatchingOrNull {
callStaticMethod(this, methodName, parameterTypes, *args)
}
fun String.findClass(): Class<*> = findClass(this, ezXClassLoader)
fun String.findClassOrNull(): Class<*>? = findClassIfExists(this, ezXClassLoader)
fun Class<*>.new(vararg args: Any?): Any = newInstance(this, *args)
fun Class<*>.new(parameterTypes: Array<Class<*>>, vararg args: Any?): Any = newInstance(this, parameterTypes, *args)
fun Class<*>.findField(field: String?): Field = findField(this, field)
fun Class<*>.findFieldOrNull(field: String?): Field? = findFieldIfExists(this, field)
fun <T> T.setIntField(field: String?, value: Int) = apply {
setIntField(this, field, value)
}
fun <T> T.setLongField(field: String?, value: Long) = apply {
setLongField(this, field, value)
}
fun <T> T.setFloatField(field: String?, value: Float) = apply {
setFloatField(this, field, value)
}
fun <T> T.setBooleanField(field: String?, value: Boolean) = apply {
setBooleanField(this, field, value)
}
fun <T> T.setObjectField(field: String?, value: Any?) = apply {
setObjectField(this, field, value)
}
inline fun XResources.hookLayout(
id: Int, crossinline hooker: (XC_LayoutInflated.LayoutInflatedParam) -> Unit
) {
try {
hookLayout(id, object : XC_LayoutInflated() {
override fun handleLayoutInflated(liparam: LayoutInflatedParam) {
try {
hooker(liparam)
} catch (e: Throwable) {
Log.e(e)
}
}
})
} catch (e: Throwable) {
Log.e(e)
}
}
@SuppressLint("DiscouragedApi")
inline fun XResources.hookLayout(
pkg: String, type: String, name: String, crossinline hooker: (XC_LayoutInflated.LayoutInflatedParam) -> Unit
) {
try {
val id = getIdentifier(name, type, pkg)
hookLayout(id, hooker)
} catch (e: Throwable) {
Log.e(e)
}
}
fun Class<*>.findFirstFieldByExactType(type: Class<*>): Field = findFirstFieldByExactType(this, type)
fun Class<*>.findFirstFieldByExactTypeOrNull(type: Class<*>?): Field? = runCatchingOrNull {
findFirstFieldByExactType(this, type)
}
fun Any.getFirstFieldByExactType(type: Class<*>): Any? = javaClass.findFirstFieldByExactType(type).get(this)
@Suppress("UNCHECKED_CAST")
fun <T> Any.getFirstFieldByExactTypeAs(type: Class<*>) = javaClass.findFirstFieldByExactType(type).get(this) as? T
inline fun <reified T : Any> Any.getFirstFieldByExactType() = javaClass.findFirstFieldByExactType(T::class.java).get(this) as? T
fun Any.getFirstFieldByExactTypeOrNull(type: Class<*>?): Any? = runCatchingOrNull {
javaClass.findFirstFieldByExactTypeOrNull(type)?.get(this)
}
@Suppress("UNCHECKED_CAST")
fun <T> Any.getFirstFieldByExactTypeOrNullAs(type: Class<*>?) = getFirstFieldByExactTypeOrNull(type) as? T
inline fun <reified T> Any.getFirstFieldByExactTypeOrNull() = getFirstFieldByExactTypeOrNull(T::class.java) as? T
inline fun ClassLoader.findDexClassLoader(crossinline delegator: (BaseDexClassLoader) -> BaseDexClassLoader = { x -> x }): BaseDexClassLoader? {
var classLoader = this
while (classLoader !is BaseDexClassLoader) {
if (classLoader.parent != null) classLoader = classLoader.parent
else return null
}
return delegator(classLoader)
}
inline fun ClassLoader.allClassesList(crossinline delegator: (BaseDexClassLoader) -> BaseDexClassLoader = { x -> x }): List<String> {
return findDexClassLoader(delegator)?.getObjectField("pathList")?.getObjectFieldAs<Array<Any>>("dexElements")?.flatMap {
it.getObjectField("dexFile")?.callMethodAs<Enumeration<String>>("entries")?.toList().orEmpty()
}.orEmpty()
}
val Member.isStatic: Boolean
inline get() = Modifier.isStatic(modifiers)
val Member.isFinal: Boolean
inline get() = Modifier.isFinal(modifiers)
val Member.isPublic: Boolean
inline get() = Modifier.isPublic(modifiers)
val Member.isNotStatic: Boolean
inline get() = !isStatic
val Class<*>.isAbstract: Boolean
inline get() = !isPrimitive && Modifier.isAbstract(modifiers)

View File

@@ -38,7 +38,6 @@
<string name="github_url">Vítejte více vývojářů, aby se podíleli na vývoji</string>
<string name="issues">Zpětná vazba/návrh</string>
<string name="issues_url">Kliknutím zobrazíte problémy GitHub</string>
<string name="xposeddescription">Nástroj pro přizpůsobení MIUI13(Android 12)</string>
<string name="statusbar">Stavová lišta</string>
<string name="status_bar_time_seconds">Zobrazit vteřiny</string>
<string name="status_bar_network_speed_refresh_speed">Obnovení rychlosti sítě v sekundách</string>
@@ -132,7 +131,6 @@
<string name="layout_compatibility_mode">Režim kompatibility</string>
<string name="left_margin">Levý okraj (0: Auto)</string>
<string name="right_margin">Pravý okraj (0: Auto)</string>
<string name="layout_compatibility_mode_summary">Umožnit zobrazení levého a pravého otvoru</string>
<string name="remove_macro_blacklist">Odstranit makro-černou listinu</string>
<string name="hide_network_speed_splitter">Skrýt rozdělovač rychlosti sítě</string>
<string name="remove_ota_validate_summary">- Podpořte pouze použití VAB série, prosím neotevírejte jiné série.\n- Nemusí být potřeba interní testovací kvalifikace, aby bylo možné nainstalovat celý interní testovací balíček.\n- Ti, kdo mají interní testovací oprávnění, nebudou moci přijímat aktualizace interních testů a mohou být použity k blokování aktualizací systému.\n- Po aktualizaci křížových verzí je doporučeno vymazat data.\n- Neoficiální ROM použití není podporováno.</string>

View File

@@ -39,7 +39,7 @@
<string name="github_url">Más desarrolladores están invitados a participar en el proyecto</string>
<string name="issues">Comentarios/Sugerencias</string>
<string name="issues_url">Clic para ver errores en GitHub</string>
<string name="xposeddescription">Herramienta de personalización para MIUI13 (Android 12)</string>
<string name="xposeddescription">Herramienta de personalización para MIUI13+(Android 12+)</string>
<string name="statusbar">Barra de estado</string>
<string name="status_bar_time_seconds">Mostrar segundos</string>
<string name="status_bar_network_speed_refresh_speed">La velocidad de red se actualiza en segundos</string>
@@ -136,7 +136,7 @@
<string name="layout_compatibility_mode">Modo de compatibilidad</string>
<string name="left_margin">Margen izquierdo (0: Auto)</string>
<string name="right_margin">Margen derecho (0: Auto)</string>
<string name="layout_compatibility_mode_summary">Hace que los agujeros izquierdo y derecho de la pantalla se puedan mostrar normalmente</string>
<string name="layout_compatibility_mode_summary">Forzar el diseño a pantalla completa (compatible con cualquier forma de pantalla)</string>
<string name="remove_macro_blacklist">Remueve la lista negra de game macro</string>
<string name="hide_network_speed_splitter">Remover el divisor de la velocidad de red</string>
<string name="updater">Actualizador</string>
@@ -240,4 +240,12 @@
<string name="miuihome_recentview_remove_card_animation">Modificar la animación de marcado de tarjetas</string>
<string name="miuihome_recentview_remove_card_animation_summary">Modificar el efecto de animación al remover ventana de tareas recientes</string>
<string name="miuihome_recentwiew_wallpaper_darkening">Deshabilitar atenuación de fondo de pantalla</string>
<string name="miuihome_recentwiew_wallpaper_darkening_summary">Esto deshabilitará el efecto en el que el fondo de pantalla se ilumina gradualmente cuando se abre y se cierra una tarea reciente</string>
<string name="miuihome_scroll_icon_name">Desplazar el nombre de la app</string>
<string name="miuihome_scroll_icon_name_summary">Si el nombre de la aplicación es demasiado largo se mostrará con desplazamiento y sin ningúna línea nueva</string>
<string name="miuihome_shortcut_add_small_window">Añadir ventana al menú de accesos directos</string>
<string name="miuihome_shortcut_add_small_window_summary">Mantener presionando el icono del escritorio para añadir a una ventana de acceso rápido</string>
<string name="miuihome_shortcut_add_small_window_title">Ventana pequeña </string>
<string name="click_to_view_use_cases">Clic para ver casos de uso</string>
<string name="disable_bluetooth_temporarily_off" comment="This function is used to completely close Bluetooth">Deshabilitar Bluetooth temporalmente apagado</string>
</resources>

View File

@@ -34,7 +34,6 @@
<string name="github_url">Bienvenue à d\'autres développeurs pour participer au développement</string>
<string name="issues">Feed-back/Proposition</string>
<string name="issues_url">Cliquez pour voir GitHub</string>
<string name="xposeddescription">Outil de personnalisation pour MIUI13(Android 12)</string>
<string name="statusbar">Barre d\'État</string>
<string name="status_bar_time_seconds">Affichage des secondes</string>
<string name="status_bar_network_speed_refresh_speed">Rafraichissement de la vitesse du réseau en secondes</string>
@@ -127,7 +126,6 @@
<string name="layout_compatibility_mode">Mode Compatibilité</string>
<string name="left_margin">Marge gauche (0: Auto)</string>
<string name="right_margin">Marge droite (0: Auto)</string>
<string name="layout_compatibility_mode_summary">L\'écran de trou peut s\'afficher normalement</string>
<string name="remove_macro_blacklist">Supprimer la liste noire des macros du jeu</string>
<string name="hide_network_speed_splitter">Masquer le écart de vitesse du réseau</string>
<string name="updater">Mise à jour</string>

View File

@@ -37,7 +37,6 @@
<string name="github_url">Szeretnénk, hogy több fejlesztő vegyen részt a fejlesztésben</string>
<string name="issues">Visszajelzés/javaslat</string>
<string name="issues_url">Kattintson a GitHub problémák megtekintéséhez</string>
<string name="xposeddescription">Testreszabási eszköz a MIUI13(Android 12) számára</string>
<string name="statusbar">Állapotsor</string>
<string name="status_bar_time_seconds">Másodpercek kijelzése</string>
<string name="status_bar_network_speed_refresh_speed">Hálózati sebesség frissítése másodpercekben</string>
@@ -133,7 +132,6 @@
<string name="layout_compatibility_mode">Kompatibilitási mód</string>
<string name="left_margin">Bal margó (0: Automatikus)</string>
<string name="right_margin">Jobb margó (0: Automatikus)</string>
<string name="layout_compatibility_mode_summary">A bal és jobb oldali lyuk képernyő normálisan jeleníthető meg</string>
<string name="remove_macro_blacklist">Játék makró feketelista eltávolítása</string>
<string name="hide_network_speed_splitter">Hálózati sebességosztó elrejtése</string>
<string name="updater">Frissítés</string>

View File

@@ -35,7 +35,6 @@
<string name="github_url">Selamat datang lebih banyak developer untuk berpartisipasi dalam pengembangan</string>
<string name="issues">Umpan Balik/Usulan</string>
<string name="issues_url">Klik untuk melihat Masalah GitHub</string>
<string name="xposeddescription">Alat perubahan untuk MIUI13 (Android 12)</string>
<string name="status_bar_time_seconds">Tampilkan detik</string>
<string name="status_bar_network_speed_refresh_speed">Perubahan kecepatan jaringan dalam detik</string>
<string name="remove_the_maximum_number_of_notification_icons">Hapus jumlah maksimum ikon notifikasi</string>
@@ -126,7 +125,6 @@
<string name="layout_compatibility_mode">Mode kompatibel</string>
<string name="left_margin">Batas kiri (0: Otomatis)</string>
<string name="right_margin">Batas kanan (0: Otomatis)</string>
<string name="layout_compatibility_mode_summary">Buat layar lubang kiri dan kanan dapat ditampilkan secara normal</string>
<string name="remove_macro_blacklist">Hapus pengecualian makro game</string>
<string name="hide_network_speed_splitter">Sembunyikan pembagi kecepatan jaringan</string>
<string name="updater">Pembaruan</string>

View File

@@ -39,7 +39,7 @@
<string name="github_url">開発に参加できる開発者を歓迎します</string>
<string name="issues">ご意見・ご提案</string>
<string name="issues_url">クリックして GitHub Issues を表示する</string>
<string name="xposeddescription">MIUI13 (Android 12) カスタマイズツール</string>
<string name="xposeddescription">MIUI13 (Android 12) 以降向けカスタマイズツール</string>
<string name="statusbar">ステータスバー</string>
<string name="status_bar_time_seconds">秒を表示する</string>
<string name="status_bar_network_speed_refresh_speed">ネットワーク速度を秒単位で更新</string>
@@ -70,6 +70,7 @@
<string name="status_bar_clock_size">時計のサイズ (0: 変更しない)</string>
<string name="status_bar_clock_double_line_size">デュアル行サイズ (0: 変更しない)</string>
<string name="matters_needing_attention">機能が動作していませんか? </string>
<string name="Done">OK</string>
<string name="about_module_summary">モジュール関連情報を表示</string>
<string name="contributor_list">オープンソースリポジトリの貢献者一覧</string>
<string name="developer">開発者</string>
@@ -135,7 +136,7 @@
<string name="layout_compatibility_mode">互換モード</string>
<string name="left_margin">左マージン0自動</string>
<string name="right_margin">右マージン0自動</string>
<string name="layout_compatibility_mode_summary">左右の穴の画面を正常に表示できるようにする</string>
<string name="layout_compatibility_mode_summary">全画面レイアウトを強制(すべての特殊な形状の画面に対応)</string>
<string name="remove_macro_blacklist">ゲームのマクロブラックリストを削除</string>
<string name="hide_network_speed_splitter">ネットワーク速度分割器を非表示</string>
<string name="updater">更新</string>
@@ -236,4 +237,15 @@
<string name="pkg_installer_summary">アプリインストール時のカウントチェックを無効にします</string>
<string name="big_mobile_type_only_show_network_card">ネットワークカードのみを表示する大きなモバイルタイプ</string>
<string name="big_mobile_type_location">大きなモバイルタイプの位置</string>
<string name="miuihome_recentview_remove_card_animation">カードマーキングアニメーションを変更する</string>
<string name="miuihome_recentview_remove_card_animation_summary">アプリ履歴でカードを削除するときのアニメーション効果を変更します</string>
<string name="miuihome_recentwiew_wallpaper_darkening">壁紙の調整を無効にする</string>
<string name="miuihome_recentwiew_wallpaper_darkening_summary">アプリ履歴へ出入りするときに壁紙の明るさが徐々に変化する効果を無効します</string>
<string name="miuihome_scroll_icon_name">アプリ名をスクロール</string>
<string name="miuihome_scroll_icon_name_summary">アプリ名が長すぎるとき、改行させずスクロール表示させます</string>
<string name="miuihome_shortcut_add_small_window">ショートカットメニューの追加ウィンドウ</string>
<string name="miuihome_shortcut_add_small_window_summary">ホーム画面のアイコンを長押しすると、素早く開けるウィンドウを追加できます</string>
<string name="miuihome_shortcut_add_small_window_title">小さいウィンドウ</string>
<string name="click_to_view_use_cases">クリックして使用例を表示</string>
<string name="disable_bluetooth_temporarily_off" comment="This function is used to completely close Bluetooth">Bluetooth を一時的に無効にする</string>
</resources>

View File

@@ -38,7 +38,6 @@
<string name="github_url">개발에 참여하는 더 많은 개발자를 환영합니다</string>
<string name="issues">피드백 및 제안</string>
<string name="issues_url">클릭해 GitHub 이슈 보기</string>
<string name="xposeddescription">MIUI 13(Android 12) 용 커스텀 도구</string>
<string name="statusbar">상태 바</string>
<string name="status_bar_time_seconds">화면 표시 시간</string>
<string name="status_bar_network_speed_refresh_speed">몇 초에 네트워크 속도 새로 고침</string>

View File

@@ -35,7 +35,6 @@
<string name="github_url">Welkom meer ontwikkelaars om deel te nemen in de ontwikkeling</string>
<string name="issues">Feedback/Voorstel</string>
<string name="issues_url">Klik om GitHub Problemen te bekijken</string>
<string name="xposeddescription">Aanpassingsgereedschap voor MIUI13(Android 12)</string>
<string name="statusbar">Statusbalk</string>
<string name="status_bar_time_seconds">Seconden weergeven</string>
<string name="status_bar_network_speed_refresh_speed">Netwerksnelheid vernieuwen in seconden</string>

View File

@@ -39,7 +39,7 @@
<string name="github_url">Zachęcam do rozwijania projektu innych deweloperów</string>
<string name="issues">Opinie/propozycje</string>
<string name="issues_url">Kliknij, aby wyświetlić zgłoszenia na GitHubie</string>
<string name="xposeddescription">Narzędzie do dostosowywania MIUI 13 (Android 12)</string>
<string name="xposeddescription">Narzędzie do dostosowywania MIUI 13+ (Android 12+)</string>
<string name="statusbar">Pasek statusu</string>
<string name="status_bar_time_seconds">Wyświetlaj sekundy</string>
<string name="status_bar_network_speed_refresh_speed">Odświeżenie prędkości sieci w sekundach</string>
@@ -47,6 +47,7 @@
<string name="main_switch">Główny przełącznik modułu</string>
<string name="hide_gps_icon">Ukryj ikonę GPS</string>
<string name="hide_status_bar_network_speed_second">Ukryj jednostki prędkości sieci (/s)</string>
<string name="menu">Menu</string>
<string name="Tips">Porady</string>
<string name="skip_waiting_time">Pomiń 5/10-sekundowe zakładki z ostrzeżeniem</string>
<string name="unlock_unlimited_cropping">Usuń ograniczenie przycinania zdjęć/zrzutów ekranu</string>
@@ -69,6 +70,7 @@
<string name="status_bar_clock_size">Rozmiar zegara (0: brak zmian)</string>
<string name="status_bar_clock_double_line_size">Rozmiar wiersza (0: brak zmian)</string>
<string name="matters_needing_attention">Funkcja nie działa? </string>
<string name="Done">OK</string>
<string name="about_module_summary">Wyświetl informacje dotyczące modułu</string>
<string name="contributor_list">Lista współtwórców repozytorium</string>
<string name="developer">Deweloper</string>
@@ -134,7 +136,7 @@
<string name="layout_compatibility_mode">Tryb zgodności</string>
<string name="left_margin">Lewy margines (0: autom.)</string>
<string name="right_margin">Prawy margines (0: autom.)</string>
<string name="layout_compatibility_mode_summary">Spraw, aby lewy i prawy otwór na aparat mógł być wyświetlany normalnie</string>
<string name="layout_compatibility_mode_summary">Wymuś układ pełnoekranowy (obsługuje wszystkie ekrany o specjalnym kształcie)</string>
<string name="remove_macro_blacklist">Usuń czarną listę gier, dla których wyłączono obsługę makr</string>
<string name="hide_network_speed_splitter">Ukryj rozdzielacz prędkości sieci</string>
<string name="updater">Aktualizacje</string>
@@ -235,4 +237,14 @@
<string name="pkg_installer_summary">Wyłącz sprawdzanie licznika instalacji aplikacji</string>
<string name="big_mobile_type_only_show_network_card">Duża ikona typu sieci tylko dla aktywnej karty SIM</string>
<string name="big_mobile_type_location">Pozycja dużej ikony typu sieci</string>
<string name="miuihome_recentview_remove_card_animation">Zmodyfikuj animację oznaczania kart</string>
<string name="miuihome_recentview_remove_card_animation_summary">Zmodyfikuj efekt animacji karty usunięcia ostatniego zadania</string>
<string name="miuihome_recentwiew_wallpaper_darkening">Wyłącz przyciemnianie tapety</string>
<string name="miuihome_recentwiew_wallpaper_darkening_summary">Spowoduje to wyłączenie efektu polegającego na tym, że tapeta stopniowo rozjaśnia się od przyciemnienia podczas wchodzenia i wychodzenia z ostatnich zadań</string>
<string name="miuihome_scroll_icon_name">Przewiń nazwę aplikacji</string>
<string name="miuihome_scroll_icon_name_summary">Zbyt długa nazwa aplikacji zostanie przewinięta i wyświetlona bez nowego wiersza</string>
<string name="miuihome_shortcut_add_small_window">Dodaj widżet \"Menu skrótów\"</string>
<string name="miuihome_shortcut_add_small_window_summary">Naciśnij i przytrzymaj ikonę na ekranie głównym, aby dodać okno szybkiego otwierania</string>
<string name="miuihome_shortcut_add_small_window_title">Małe okno</string>
<string name="click_to_view_use_cases">Kliknij, aby wyświetlić przypadki użycia</string>
</resources>

View File

@@ -1,11 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="performance">Desempenho</string>
<string name="lock_max_fps">Bloqueie o limite superior da taxa de atualização atual</string>
<string name="ui">Interface</string>
<string name="delete_on_post_notification">Remover exibição sobre notificação</string>
<string name="delete_on_post_notification_summary">Remover a notificação \"este aplicativo é exibido sobre outros aplicativos\"</string>
<string name="other">Outros</string>
<string name="disable_flag_secure">Permitir captura de ecrã</string>
<!--Status bar icons-->
</resources>

View File

@@ -38,7 +38,6 @@
<string name="github_url">Sunt bineveniți mai mulți dezvoltatori să participe la dezvoltare</string>
<string name="issues">Feedback/Propunere</string>
<string name="issues_url">Clic pentru a vizualiza problemele pe GitHub</string>
<string name="xposeddescription">Instrument de personalizare pentru MIUI13 (Android 12)</string>
<string name="statusbar">Bară de stare</string>
<string name="status_bar_time_seconds">Afișare secunde</string>
<string name="status_bar_network_speed_refresh_speed">Reîmprospătare viteză rețea în secunde</string>
@@ -134,7 +133,6 @@
<string name="layout_compatibility_mode">Mod compatibilitate</string>
<string name="left_margin">Marginea din stânga (0: Auto)</string>
<string name="right_margin">Marginea din dreapta (0: auto)</string>
<string name="layout_compatibility_mode_summary">Aliniere pictograme</string>
<string name="remove_macro_blacklist">Elimină lista neagră a macrocomenzilor jocurilor</string>
<string name="hide_network_speed_splitter">Ascunde separatorul vitezei rețelei</string>
<string name="updater">Actualizator</string>

View File

@@ -39,7 +39,6 @@
<string name="github_url">Приглашаем больше разработчиков принять участие в разработке</string>
<string name="issues">Обратная связь</string>
<string name="issues_url">Нажмите, чтобы просмотреть обсуждение на GitHub</string>
<string name="xposeddescription">Инструмент настройки для MIUI13 (Android 12)</string>
<string name="statusbar">Строка состояния</string>
<string name="status_bar_time_seconds">Секунды</string>
<string name="status_bar_network_speed_refresh_speed">Обновление скорости сети в секундах</string>
@@ -136,7 +135,6 @@
<string name="layout_compatibility_mode">Режим совместимости</string>
<string name="left_margin">Отступ слева (0: Авто)</string>
<string name="right_margin">Отступ справа (0: Автоматически)</string>
<string name="layout_compatibility_mode_summary">Выравнивание иконок</string>
<string name="remove_macro_blacklist">Удалить черный список игровых макросов</string>
<string name="hide_network_speed_splitter">Скрыть разделитель скорости сети</string>
<string name="updater">OTA</string>
@@ -241,4 +239,14 @@
<string name="pkg_installer_summary">Отключить проверку количества установок</string>
<string name="big_mobile_type_only_show_network_card">Большая иконка типа сети только для активной сим</string>
<string name="big_mobile_type_location">Положение большой иконки типа сети</string>
<string name="miuihome_recentview_remove_card_animation">Изменение анимации обозначения карты</string>
<string name="miuihome_recentview_remove_card_animation_summary">Изменить эффект анимации последней карты удаления задачи</string>
<string name="miuihome_recentwiew_wallpaper_darkening">Отключить затемнение обоев</string>
<string name="miuihome_recentwiew_wallpaper_darkening_summary">Отключит эффект видимости обоев от затемнения при запуске и выходе из недавней задачи</string>
<string name="miuihome_scroll_icon_name">Бегущая строка имени приложений</string>
<string name="miuihome_scroll_icon_name_summary">Длинное имя приложения будет прокручено и отображено в одну строку</string>
<string name="miuihome_shortcut_add_small_window">Меню добавления окна</string>
<string name="miuihome_shortcut_add_small_window_summary">Нажмите и удерживайте иконку рабочего стола, чтобы добавить быстрое открытое окно</string>
<string name="miuihome_shortcut_add_small_window_title">Маленькое окно</string>
<string name="click_to_view_use_cases">Нажмите, чтобы просмотреть варианты использования</string>
</resources>

View File

@@ -39,7 +39,6 @@
<string name="github_url">Geliştirmeye katılmak için daha fazla geliştiriciye hoş geldiniz</string>
<string name="issues">Geribildirim/Teklif</string>
<string name="issues_url">GitHub Sorunlarını görüntülemek için tıklayın</string>
<string name="xposeddescription">MIUI13 (Android 12) için özelleştirme aracı</string>
<string name="statusbar">Durum çubuğu</string>
<string name="status_bar_time_seconds">Saniye göster</string>
<string name="status_bar_network_speed_refresh_speed">Saniyeler içinde ağ hızı yenileme</string>
@@ -136,7 +135,6 @@
<string name="layout_compatibility_mode">Uyumluluk modu</string>
<string name="left_margin">Sol kenar boşluğu (0: Otomatik)</string>
<string name="right_margin">Sağ kenar boşluğu (0: Otomatik)</string>
<string name="layout_compatibility_mode_summary">Sol ve sağ delik ekranının normal olarak görüntülenebilmesini sağlayın</string>
<string name="remove_macro_blacklist">Oyun makrosu kara listesini kaldır</string>
<string name="hide_network_speed_splitter">Ağ hızı ayırıcısını gizle</string>
<string name="updater">Güncelleyici</string>

View File

@@ -39,7 +39,7 @@
<string name="github_url">Chào mừng các nhà phát triển tham gia vào quá trình phát triển</string>
<string name="issues">Phản hồi/Đề xuất</string>
<string name="issues_url">Ấn để xem GitHub Issues</string>
<string name="xposeddescription">Công cụ tuỳ chỉnh hoá MIUI13(Android 12)</string>
<string name="xposeddescription">Công cụ tuỳ chỉnh cho MIUI13+(Android 12+)</string>
<string name="statusbar">Thanh trạng thái</string>
<string name="status_bar_time_seconds">Hiển thị giây</string>
<string name="status_bar_network_speed_refresh_speed">Làm mới tốc độ mạng trong vài giây</string>
@@ -136,7 +136,7 @@
<string name="layout_compatibility_mode">Chế độ tương thích</string>
<string name="left_margin">Lề trái (0: Tự động)</string>
<string name="right_margin">Lề phải (0: Tự động)</string>
<string name="layout_compatibility_mode_summary">Làm cho màn hình đục lỗ bên trái và bên phải có thể hiển thị bình thường</string>
<string name="layout_compatibility_mode_summary">Bắt buộc bố cục toàn màn hình (hỗ trợ tất cả các màn hình có hình dạng đặc biệt)</string>
<string name="remove_macro_blacklist">Xóa danh sách đen macro trò chơi</string>
<string name="hide_network_speed_splitter">Ẩn bộ chia tốc độ mạng</string>
<string name="updater">Trình cập nhật</string>
@@ -237,4 +237,15 @@
<string name="pkg_installer_summary">Tắt kiểm tra số lần cài đặt ứng dụng</string>
<string name="big_mobile_type_only_show_network_card">Mạng dữ liệu lớn chỉ hiển thị thẻ mạng</string>
<string name="big_mobile_type_location">Vị trí mạng dữ liệu lớn</string>
<string name="miuihome_recentview_remove_card_animation">Sửa đổi hoạt ảnh đánh dấu thẻ</string>
<string name="miuihome_recentview_remove_card_animation_summary">Sửa đổi hiệu ứng hoạt ảnh của thẻ loại bỏ nhiệm vụ gần đây</string>
<string name="miuihome_recentwiew_wallpaper_darkening">Tắt làm mờ hình nền</string>
<string name="miuihome_recentwiew_wallpaper_darkening_summary">Điều này sẽ vô hiệu hóa hiệu ứng mà hình nền sẽ sáng lên rồi mờ khi vào và ra khỏi tác vụ gần đây</string>
<string name="miuihome_scroll_icon_name">Cuộn tên ứng dụng</string>
<string name="miuihome_scroll_icon_name_summary">Tên ứng dụng quá dài sẽ bị cuộn và hiển thị mà không có dòng mới nào</string>
<string name="miuihome_shortcut_add_small_window">Menu phím tắt thêm cửa sổ</string>
<string name="miuihome_shortcut_add_small_window_summary">Nhấn và giữ biểu tượng màn hình chính để thêm cửa sổ mở nhanh</string>
<string name="miuihome_shortcut_add_small_window_title">Cửa sổ nhỏ</string>
<string name="click_to_view_use_cases">Nhấp để xem các trường hợp sử dụng</string>
<string name="disable_bluetooth_temporarily_off" comment="This function is used to completely close Bluetooth">Vô hiệu hóa bluetooth tạm thời tắt</string>
</resources>

View File

@@ -39,7 +39,7 @@
<string name="github_url">欢迎更多开发者共同参与开发</string>
<string name="issues">反馈/提议</string>
<string name="issues_url">点击查看GitHub Issues</string>
<string name="xposeddescription">基于 MIUI13(Android 12) 适配的自定义工具</string>
<string name="xposeddescription">基于 MIUI13+(Android 12+) 适配的自定义工具</string>
<string name="statusbar">状态栏</string>
<string name="status_bar_time_seconds">显示秒数</string>
<string name="status_bar_network_speed_refresh_speed">网速秒刷新</string>
@@ -136,7 +136,7 @@
<string name="layout_compatibility_mode">兼容模式</string>
<string name="left_margin">左边距 (0: 自动)</string>
<string name="right_margin">右边距 (0: 自动)</string>
<string name="layout_compatibility_mode_summary">使左右挖孔屏幕能正常显示</string>
<string name="layout_compatibility_mode_summary">强制完整屏布局(支持所有异形屏)</string>
<string name="remove_macro_blacklist">去除游戏自动连招黑名单</string>
<string name="hide_network_speed_splitter">隐藏网速分隔符</string>
<string name="updater">系统更新</string>
@@ -247,4 +247,5 @@
<string name="miuihome_shortcut_add_small_window_summary">桌面图标长按快捷菜单位置添加快速打开小窗</string>
<string name="miuihome_shortcut_add_small_window_title">小窗</string>
<string name="click_to_view_use_cases">点击查看用例</string>
<string name="disable_bluetooth_temporarily_off" comment="This function is used to completely close Bluetooth">禁用临时关闭蓝牙</string>
</resources>

View File

@@ -1,179 +1,251 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="performance">性能</string>
<string name="lock_max_fps">鎖定當前刷新率上限</string>
<string name="ui"></string>
<string name="lock_max_fps">鎖定目前重新整理速率上限</string>
<string name="ui"></string>
<string name="delete_on_post_notification">移除上層顯示通知</string>
<string name="delete_on_post_notification_summary">移除 \"此應用正顯示在螢幕上其他應用的上層\" 通知</string>
<string name="delete_on_post_notification_summary">移除此應用程式正顯示在螢幕上其他應用程式的上層通知</string>
<string name="other">其他</string>
<string name="disable_flag_secure">允許截圖</string>
<string name="disable_flag_secure_summary">開啟後允許在不允許截圖的軟件中截圖\n支持添加下拉控制中心快速開關,保障安全</string>
<string name="disable_flag_secure">允許螢幕截圖</string>
<string name="disable_flag_secure_summary">開啟後允許在不允許截圖的軟件中截圖\n支援新增下拉控制中心快速開關,保障安全</string>
<string name="home">桌面</string>
<string name="home_time">始終顯示桌面時鐘</string>
<string name="reboot_host">重啟全部作用域</string>
<string name="reboot_host">重啟所有作用範圍</string>
<string name="reboot">重啟系統</string>
<!--Status bar icons-->
<string name="status_bar_icon">狀態欄圖標</string>
<string name="hide_no_sim_icon">隱藏 無SIM卡 圖標</string>
<string name="hide_sim_one_icon">隱藏 SIM卡一 圖標</string>
<string name="hide_sim_two_icon">隱藏 SIM卡二 圖標</string>
<string name="hide_vpn_icon">隱藏 VPN 圖標</string>
<string name="hide_airplane_icon">隱藏 飛行模式 圖標</string>
<string name="hide_wifi_icon">隱藏 WIFI 圖標</string>
<string name="hide_bluetooth_icon">隱藏 藍牙 圖標</string>
<string name="hide_volume_zen_icon">隱藏 聲音、勿擾 圖標</string>
<string name="hide_alarm_icon">隱藏 鬧鐘 圖標</string>
<string name="hide_hotspot_icon">隱藏 WIFI熱點 圖標</string>
<string name="hide_headset_icon">隱藏 耳機 圖標</string>
<string name="hide_bluetooth_battery_icon">隱藏 藍牙電量 圖標</string>
<string name="hide_nfc_icon">隱藏 NFC 圖標</string>
<string name="hide_big_hd_icon">隱藏 大HD 圖標</string>
<string name="hide_small_hd_icon">隱藏 小HD 圖標</string>
<string name="hide_new_hd_icon">隱藏 新HD 圖標</string>
<string name="hide_hd_no_service_icon">隱藏 HD無服務 圖標</string>
<string name="status_bar_icon">狀態列圖示</string>
<string name="hide_no_sim_icon">隱藏「無 SIM 卡」圖示</string>
<string name="hide_sim_one_icon">隱藏SIM 卡 1」圖示</string>
<string name="hide_sim_two_icon">隱藏SIM 卡 2」圖示</string>
<string name="hide_vpn_icon">隱藏VPN」圖示</string>
<string name="hide_airplane_icon">隱藏飛行模式」圖示</string>
<string name="hide_wifi_icon">隱藏WIFI」圖示</string>
<string name="hide_bluetooth_icon">隱藏藍牙」圖示</string>
<string name="hide_volume_zen_icon">隱藏聲音、勿擾」圖示</string>
<string name="hide_alarm_icon">隱藏鬧鐘」圖示</string>
<string name="hide_hotspot_icon">隱藏WIFI 熱點」圖示</string>
<string name="hide_headset_icon">隱藏耳機」圖示</string>
<string name="hide_bluetooth_battery_icon">隱藏藍牙電量」圖示</string>
<string name="hide_nfc_icon">隱藏NFC」圖示</string>
<string name="hide_big_hd_icon">隱藏「大型 HD」圖示</string>
<string name="hide_small_hd_icon">隱藏「小型 HD」圖示</string>
<string name="hide_new_hd_icon">隱藏「新 HD」圖示</string>
<string name="hide_hd_no_service_icon">隱藏HD 無服務」圖示</string>
<string name="about">關於</string>
<string name="about_module">關於模</string>
<string name="about_module">關於模</string>
<string name="verison">版本</string>
<string name="dev_coolapk">開發酷安</string>
<string name="opensource">源倉</string>
<string name="github_url">歡迎更多開發共同參與開發</string>
<string name="issues">饋/提議</string>
<string name="issues_url">點擊查看GitHub Issues</string>
<string name="xposeddescription">基於 MIUI13(Android 12) 適配的自定義工具</string>
<string name="statusbar">狀態</string>
<string name="dev_coolapk">開發人員酷安</string>
<string name="opensource">放原始碼存放</string>
<string name="github_url">歡迎更多開發人員共同參與開發</string>
<string name="issues">饋/提議</string>
<string name="issues_url">按一下以檢視 GitHub 問題</string>
<string name="xposeddescription">基於 MIUI13+(Android 12+) 的客製化工具</string>
<string name="statusbar">狀態</string>
<string name="status_bar_time_seconds">顯示秒數</string>
<string name="status_bar_network_speed_refresh_speed">網速秒刷新</string>
<string name="remove_the_maximum_number_of_notification_icons">除通知圖標個數上限</string>
<string name="main_switch">塊總開關</string>
<string name="hide_gps_icon">隱藏 GPS 圖標</string>
<string name="hide_status_bar_network_speed_second">隱藏網速(/s單位</string>
<string name="menu"></string>
<string name="status_bar_network_speed_refresh_speed">每秒更新即時網絡速度</string>
<string name="remove_the_maximum_number_of_notification_icons">除通知圖示數目上限</string>
<string name="main_switch">組主開關</string>
<string name="hide_gps_icon">隱藏GPS」圖示</string>
<string name="hide_status_bar_network_speed_second">隱藏網絡速度 (/s) 單位</string>
<string name="menu"></string>
<string name="Tips">提示</string>
<string name="skip_waiting_time">跳過 5/10 秒警告時間</string>
<string name="unlock_unlimited_cropping">移除裁剪圖片/螢幕截圖的限制</string>
<string name="hide_slave_wifi_icon">隱藏 WIFI輔助 圖標</string>
<string name="HideLauncherIcon">隱藏桌面圖</string>
<string name="hide_battery_percentage_icon">隱藏電量%</string>
<string name="hide_battery_icon">隱藏 電池 圖標</string>
<string name="status_bar_clock_format">狀態時鐘格式</string>
<string name="hide_slave_wifi_icon">隱藏WIFI 次要」圖示</string>
<string name="HideLauncherIcon">隱藏桌面圖</string>
<string name="hide_battery_percentage_icon">隱藏電量 (%)</string>
<string name="hide_battery_icon">隱藏電池」圖示</string>
<string name="status_bar_clock_format">狀態時鐘格式</string>
<string name="status_bar_time_year">顯示年份</string>
<string name="status_bar_time_month">顯示月份</string>
<string name="status_bar_time_day">顯示日期</string>
<string name="status_bar_time_week">顯示星期</string>
<string name="status_bar_time_hide_space">隱藏間隔</string>
<string name="allow_screenshots">允許截圖</string>
<string name="lock_max">鎖定前上限</string>
<string name="lock_max">鎖定前上限</string>
<string name="status_bar_time_double_hour">顯示時辰</string>
<string name="custom_clock_switch">定義時鐘-總開關</string>
<string name="custom_clock_switch">訂時鐘 - 主開關</string>
<string name="status_bar_time_period">顯示時段</string>
<string name="status_bar_time_double_line">顯示</string>
<string name="status_bar_clock_size">時鐘大小0不更改</string>
<string name="status_bar_clock_double_line_size">大小0不更改</string>
<string name="status_bar_time_double_line">顯示</string>
<string name="status_bar_clock_size">時鐘大小 (0無變更)</string>
<string name="status_bar_clock_double_line_size">大小 (0無變更)</string>
<string name="matters_needing_attention">功能無法生效?</string>
<string name="Done">確定</string>
<string name="about_module_summary">查看模塊相關訊息</string>
<string name="contributor_list">源倉庫貢獻者名單</string>
<string name="developer">開發</string>
<string name="about_module_summary">檢視模組相關資訊</string>
<string name="contributor_list">放原始碼存放庫貢獻者名單</string>
<string name="developer">開發人員</string>
<string name="thank_list">感謝名單</string>
<string name="third_party_open_source_statement">第三方開聲明</string>
<string name="corepacth">除安裝限制</string>
<string name="corepacth_summary">降級/不同簽/無簽安裝</string>
<string name="prevent_recovery_of_battery_optimization_white_list">防止恢復電池優化白名單</string>
<string name="third_party_open_source_statement">第三方開放原始碼聲明</string>
<string name="corepacth">除安裝限制</string>
<string name="corepacth_summary">降級/不同簽/無簽安裝</string>
<string name="prevent_recovery_of_battery_optimization_white_list">防止復原電池效能最佳化白名單</string>
<string name="failed_after_restart">系統重啟後仍會還原</string>
<string name="battery_optimization">電池</string>
<string name="battery_optimization_summary">快速打開被MIUI隱藏的電池化功能</string>
<string name="battery_optimization">電池效能最佳</string>
<string name="battery_optimization_summary">快速開啟被 MIUI 隱藏的電池效能最佳化功能</string>
<string name="remove_small_window_restrictions">強制使用小窗</string>
<string name="app_coolapk_url">來酷安給我們五星好評</string>
<string name="app_coolapk_url_summary">這可以使我們被更多的人發現</string>
<string name="qq_channel">加入 官方QQ頻道</string>
<string name="tg_channel">加入 官方TG頻道</string>
<string name="tg_channel_summary">可在頻道資料頁進入交流群</string>
<string name="qq_channel">加入官方 QQ 頻道</string>
<string name="tg_channel">加入官方 TG 頻道</string>
<string name="tg_channel_summary">可在頻道頁面進入聊天群組</string>
<string name="discussions">討論</string>
<string name="remove_small_window_restrictions_summary">忽略系統黑名單與軟件禁止小窗</string>
<string name="remove_the_left_side_of_the_lock_screen">移除鎖定螢幕負一屏功能</string>
<string name="remove_small_window_restrictions_summary">忽略系統黑名單與軟件小窗封鎖</string>
<string name="remove_the_left_side_of_the_lock_screen">移除負一屏功能鎖定</string>
<string name="remove_lock_screen_camera">移除鎖定螢幕相機功能</string>
<string name="only_official_default_themes_are_supported">僅支官方默認主題</string>
<string name="lock_one_hundred">手機管家鎖定100分</string>
<string name="scope">作用</string>
<string name="scope_android">系統</string>
<string name="scope_systemui">系統界面</string>
<string name="only_official_default_themes_are_supported">僅支官方預設主題</string>
<string name="lock_one_hundred">手機管家鎖定 100 </string>
<string name="scope">作用範圍</string>
<string name="scope_android">系統架</string>
<string name="scope_systemui">系統 UI</string>
<string name="scope_miuihome">系統桌面</string>
<string name="scope_other">其他</string>
<string name="status_bar_network_speed_refresh_speed_summary">將狀態欄網速組件的刷新頻率改成1s</string>
<string name="status_bar_network_speed_refresh_speed_summary">將狀態列網絡速度元件的更新間隔變更為 1s</string>
<string name="hide_battery_percentage_icon_summary">需自行開啟電池百分比外顯功能</string>
<string name="hide_status_bar_network_speed_second_summary">隱藏狀態欄網速組件的(/s單位</string>
<string name="remove_the_maximum_number_of_notification_icons_summary">除狀態最多能顯示3個通知的限制</string>
<string name="scope_systemui_summary">定義系統面、狀態、鎖定螢幕等</string>
<string name="scope_android_summary">首次啟動模塊 或 模塊更新後,\n此處的功能需重啟系統後才能生效</string>
<string name="scope_other_summary">手機管家、相編輯、電量與性能等</string>
<string name="hide_status_bar_network_speed_second_summary">隱藏狀態列網絡速度元件的 (/s) 單位</string>
<string name="remove_the_maximum_number_of_notification_icons_summary">除狀態最多能顯示三條通知的限制</string>
<string name="scope_systemui_summary">系統面、狀態、鎖定螢幕等</string>
<string name="scope_android_summary">首次啟動模組或模組更新後,\n此處的功能需重啟系統後才能生效</string>
<string name="scope_other_summary">手機管家、相簿編輯、電量與性能等</string>
<string name="scope_powerkeeper">電量與性能</string>
<string name="scope_securitycenter">手機管家</string>
<string name="scope_mediaeditor">編輯</string>
<string name="home_time_summary">開啟後即使存在時鐘小組件\n也不會對狀態欄隱藏時鐘</string>
<string name="skip_waiting_time_summary">開啟後可忽略MIUI在開啟USB調試、\n未知來源、無障礙時的凍結時間</string>
<string name="lock_one_hundred_summary">鎖定手機管家100分並屏蔽修復按鈕</string>
<string name="unlock_unlimited_cropping_summary">無視MIUI對圖片裁切的最小限制</string>
<string name="hide_wifi_activity_icon">隱藏 WIFI箭頭 圖標</string>
<string name="hide_mobile_activity_icon">隱藏 移動箭頭 圖標</string>
<string name="hide_mobile_type_icon">隱藏 移動類型 圖標</string>
<string name="show_weather_main_switch">顯示天氣-總開關</string>
<string name="scope_mediaeditor">簿編輯</string>
<string name="home_time_summary">開啟後即使存在時鐘小工具\n也不會隱藏狀態列時鐘</string>
<string name="skip_waiting_time_summary">開啟後可忽略 MIUI 在開啟 USB 偵錯、\n未知應用程式來源、無障礙時的凍結時間</string>
<string name="lock_one_hundred_summary">鎖定手機管家 100 分並封鎖修復按鈕</string>
<string name="unlock_unlimited_cropping_summary">忽略 MIUI 對圖片裁切的最小限制</string>
<string name="hide_wifi_activity_icon">隱藏WIFI 活動」圖示</string>
<string name="hide_mobile_activity_icon">隱藏「流動網絡活動」圖示</string>
<string name="hide_mobile_type_icon">隱藏「流動網絡類型」圖示</string>
<string name="show_weather_main_switch">顯示天氣 - 主開關</string>
<string name="lock_screen">鎖定螢幕</string>
<string name="notification_center">通知中心</string>
<string name="show_city">顯示城市</string>
<string name="lock_max_fps_summary">持添加下拉控制中心快速開關,時切換</string>
<string name="lock_max_fps_summary">援新增下拉控制中心快速開關,時切換</string>
<string name="control_center">控制中心</string>
<string name="control_center_weather_summary">暫不支妙享版控制中心</string>
<string name="not_support">您似乎正在使用過時的 LSPosed 版本或 LSPosed 未啟,請更新 LSPosed 或者啟動後再試。</string>
<string name="matters_needing_attention_context">首次啟動或更新後建議重啟手機\n絕大部分功能更後需要在右上角重啟作用域後生效</string>
<string name="control_center_weather_summary">暫不支妙享版控制中心</string>
<string name="not_support">您似乎正在使用過時的 LSPosed 版本或 LSPosed 未啟,請更新 LSPosed 或啟用後再試一次</string>
<string name="matters_needing_attention_context">首次啟動或更新後建議重啟手機\n絕大部分功能更後需要在右上角重啟範圍後生效</string>
<string name="are_you_sure_reboot">確定重啟系統?</string>
<string name="cancel">取消</string>
<string name="are_you_sure_reboot_scope">確定重啟全部作用域</string>
<string name="hide_battery_charging_icon">隱藏 充電 圖標</string>
<string name="hide_wifi_standard_icon">隱藏 WIFI標準 圖標</string>
<string name="status_bar_time_center">時間</string>
<string name="status_bar_layout_summary">更多狀態欄佈局等待開發中</string>
<string name="status_bar_layout">狀態欄佈局</string>
<string name="layout_compatibility_mode">兼容模式</string>
<string name="left_margin">左邊距 (0: 自動)</string>
<string name="right_margin">右邊距 (0: 自動)</string>
<string name="layout_compatibility_mode_summary">使左右挖孔螢幕能正常顯示</string>
<string name="remove_macro_blacklist">除遊戲自動連招黑名單</string>
<string name="hide_network_speed_splitter">隱藏網速分隔符</string>
<string name="are_you_sure_reboot_scope">確定重啟所有作用範圍</string>
<string name="hide_battery_charging_icon">隱藏充電」圖示</string>
<string name="hide_wifi_standard_icon">隱藏WIFI 標準」圖示</string>
<string name="status_bar_time_center">時間</string>
<string name="status_bar_layout_summary">更多狀態列配置等候開發中</string>
<string name="status_bar_layout">狀態列配置</string>
<string name="layout_compatibility_mode">相容性模式</string>
<string name="left_margin">左邊距 (0自動)</string>
<string name="right_margin">右邊距 (0自動)</string>
<string name="layout_compatibility_mode_summary">強制全螢幕配置 (支援所有螢幕凹口或空缺)</string>
<string name="remove_macro_blacklist">除遊戲自動連招黑名單</string>
<string name="hide_network_speed_splitter">隱藏網絡速度分割器</string>
<string name="updater">系統更新</string>
<string name="remove_ota_validate">*移除OTA驗證 [實驗性]</string>
<string name="remove_ota_validate_summary">- 僅支VAB系列使用其餘系列請不要開啟。\n- 無需內測資格即可刷入完整內測包。\n- 擁有內測權限的用戶將無法接收內測更新\n可用於屏蔽系統更新。\n- 跨版本類型升級後,建議清空數據。\n- 不支非官方ROM使用。</string>
<string name="remove_ota_validate">*移除 OTA 驗證 [實驗性]</string>
<string name="remove_ota_validate_summary">- 僅支VAB 系列使用,其餘系列請不要開啟。\n- 無需內測資格即可刷入完整內測包。\n- 擁有內測權限的使用者將無法接收內測更新\n可用於隱藏系統更新。\n- 跨版本類型升級後,建議清除資料。\n- 不支非官方 ROM 使用。</string>
<string name="settings">設定</string>
<string name="show_notification_importance">顯示通知重要程度</string>
<string name="show_notification_importance_summary">顯示 MIUI 12 及之後版本被隱藏的通知重要程度設定</string>
<string name="remove_ad">廣告</string>
<string name="remove_thememanager_ads">拿掉主題壁紙的廣告</string>
<string name="battery_life_function">電池頁面展示當前溫度</string>
<string name="enable_wave_charge_animation">啟用Alpha充電動畫</string>
<string name="max_wallpaper_scale">壁紙縮放比例</string>
<string name="def">"默認值:"</string>
<string name="current">前值:</string>
<string name="remove_ad">移除廣告</string>
<string name="remove_thememanager_ads">移除個性主題廣告</string>
<string name="battery_life_function">電池頁面顯示目前溫度</string>
<string name="enable_wave_charge_animation">啟用 MIX Alpha 充電動畫</string>
<string name="max_wallpaper_scale">桌布縮放比例</string>
<string name="def">"預設值: "</string>
<string name="current">前值:</string>
<string name="participate_in_translation">參與翻譯</string>
<string name="participate_in_translation_summary">助我們將這個APP翻譯您的語言</string>
<string name="lock_screen_charging_current">充電時顯示前電流</string>
<string name="current_current">前電流</string>
<string name="remove_open_app_confirmation_popup">移除打開應用彈</string>
<string name="remove_open_app_confirmation_popup_summary">移除 \"XXX 想要開 XXX\" 的彈窗 。</string>
<string name="hide_volume_icon">隱藏 音量 圖標</string>
<string name="hide_zen_icon">隱藏 勿擾 圖標</string>
<string name="hide_icon">隱藏圖</string>
<string name="double_tap_to_sleep">雙擊鎖定螢幕</string>
<string name="home_double_tap_to_sleep_summary">雙擊空白處鎖定螢幕</string>
<string name="participate_in_translation_summary">助我們將這個應用程式翻譯您的語言</string>
<string name="lock_screen_charging_current">充電時顯示前電流</string>
<string name="current_current">前電流</string>
<string name="remove_open_app_confirmation_popup">移除「開啟應用程式」彈出式視</string>
<string name="remove_open_app_confirmation_popup_summary">移除XXX 想要開 XXX」的彈出式視窗</string>
<string name="hide_volume_icon">隱藏音量」圖示</string>
<string name="hide_zen_icon">隱藏勿擾」圖示</string>
<string name="hide_icon">隱藏圖</string>
<string name="double_tap_to_sleep">輕觸兩下鎖定螢幕</string>
<string name="home_double_tap_to_sleep_summary">輕觸兩下空白位置鎖定螢幕</string>
<string name="old_quick_settings_panel">舊版快速設定面板</string>
<string name="old_qs_custom_switch">定義行列</string>
<string name="qs_custom_columns_unexpanded">未展開</string>
<string name="qs_custom_rows"></string>
<string name="qs_custom_columns"></string>
<string name="qs_custom_rows_horizontal">(橫屏)</string>
<string name="status_bar_dual_row_network_speed">排網路速度</string>
<string name="status_bar_dual_row_network_speed_summary">上下行網路速度顯示</string>
<string name="status_bar_network_speed">狀態列網速度</string>
<string name="status_bar_network_speed_dual_row_size">大小0不更改</string>
<string name="status_bar_network_speed_dual_row_icon">排圖標</string>
<string name="pkg_installer">應用包管理組件</string>
<string name="pkg_installer_summary">禁用頻繁安裝應用檢查</string>
<string name="old_qs_custom_switch">行列</string>
<string name="qs_custom_columns_unexpanded">行 (未展開)</string>
<string name="qs_custom_rows"></string>
<string name="qs_custom_columns"></string>
<string name="qs_custom_rows_horizontal">(橫向)</string>
<string name="status_bar_dual_row_network_speed">列網絡速度</string>
<string name="status_bar_dual_row_network_speed_summary">上下列網絡速度顯示</string>
<string name="status_bar_network_speed">狀態列網速度</string>
<string name="status_bar_network_speed_dual_row_size">大小 (0無變更)</string>
<string name="status_bar_network_speed_dual_row_icon">列圖示</string>
<string name="none"></string>
<string name="status_bar_network_speed_dual_row_gravity">雙列對齊</string>
<string name="left">置左</string>
<string name="right">置右</string>
<string name="big_mobile_type_icon">大型流動網絡圖示</string>
<string name="show_wifi_standard">顯示 WiFi 標準</string>
<string name="can_notification_slide">強制允許所有通知使用小窗</string>
<string name="battery_percentage_font_size">電量百分比字型大小</string>
<string name="zero_do_no_change">0無變更</string>
<string name="big_mobile_type_icon_size">大型流動網絡圖示大小</string>
<string name="big_mobile_type_icon_bold">大型流動網絡圖示粗體</string>
<string name="big_mobile_type_icon_up_and_down_position">大型流動網絡圖示上下位置</string>
<string name="input_error">輸入錯誤</string>
<string name="range">範圍:</string>
<string name="big_mobile_type_icon_left_and_right_margins">大型流動網絡圖示左右邊距</string>
<string name="cast">投放</string>
<string name="force_support_send_app">強制所有應用程式支援在其他裝置開啟</string>
<string name="status_bar_time_double_line_center_align">雙列置中對齊</string>
<string name="default1">預設值</string>
<string name="clock_center">時鐘置中</string>
<string name="clock_right">時鐘置右</string>
<string name="status_bar_layout_mode">狀態列配置模式</string>
<string name="clock_center_and_icon_left">時鐘置中 + 圖示置左</string>
<string name="maximum_number_of_notification_icons">通知圖示最大數目</string>
<string name="maximum_number_of_notification_dots">通知圓點最大數目</string>
<string name="custom_mobile_type_text">自訂流動網絡類型文字</string>
<string name="custom_mobile_type_text_switch">自訂流動網絡類型文字開關</string>
<string name="downgr">允許降級安裝應用程式</string>
<string name="downgr_summary">允許在已安裝新版的情況下覆寫為舊版本</string>
<string name="authcreak">停用安裝程式簽章驗證</string>
<string name="authcreak_summary">關閉安裝應用程式時的簽名驗證,可以安裝被修改的 APK</string>
<string name="digestCreak">停用 APK 簽章驗證</string>
<string name="digestCreak_summary">允許安裝套件名稱相同但簽章不同的應用程式</string>
<string name="UsePreSig">安裝時始終使用已安裝應用程式的簽章</string>
<string name="UsePreSig_summary">安裝時始終使用已安裝應用程式的簽章\n這非常<b>危險</b>\n僅在真正需要時啟用</string>
<string name="enhancedMode">增強模式</string>
<string name="enhancedMode_summary">可以解決一些應用程式內部的完整性驗證,一般不需要開啟</string>
<string name="rear_display">後方螢幕 (11 Ultra)</string>
<string name="lock_screen_clock_display_seconds">時鐘顯示秒數</string>
<string name="sound">聲音</string>
<string name="media_volume_steps_switch">媒體音量階數</string>
<string name="allow_untrusted_touches">允許不受信任的觸控</string>
<string name="take_effect_after_reboot">重新開機後生效</string>
<string name="media_volume_steps_summary">開啟後可能會導致音量列捲動卡頓或藍牙音量異常</string>
<string name="can_notification_slide_summary">可能無法支援一些使用小米推送 (Mi Push) 推播的通知</string>
<string name="screen_hole_location">螢幕凹口位置</string>
<string name="custom_clock_mode">自訂時鐘模式</string>
<string name="custom_clock_format_geek">時鐘格式</string>
<string name="off">關閉</string>
<string name="center">置中</string>
<string name="left_or_right">左右</string>
<string name="preset">預設</string>
<string name="geek">極客</string>
<string name="do_not_clear_app">防止終止背景應用程式</string>
<string name="do_not_clear_app_summary">可能會增加耗電,建議配合「使 Millet 更加積極」使用不建議配合墓碑、A1 記憶體管理等會強制應用程式進入快取的模組使用</string>
<string name="make_millet_more_aggressive">使 Millet 更加積極</string>
<string name="make_millet_more_aggressive_summary">允許 Millet 在背景應用程式有通知、有服務執行、有處理程序執行的狀況下凍結應用程式。\n不希望被凍結的應用程式可將省電策略設為無限制\n啟用前請先解除安裝墓碑和 NoANR 相關模組。</string>
<string name="make_millet_ignore_active">允許 Millet 凍結使用中的應用程式</string>
<string name="make_millet_ignore_active_summary">非常積極,可能會影響應用程式執行</string>
<string name="pkg_installer">套件安裝程式</string>
<string name="pkg_installer_summary">停用頻繁應用程式安裝檢查</string>
<string name="big_mobile_type_only_show_network_card">大型流動網絡僅會顯示網絡卡</string>
<string name="big_mobile_type_location">大型流動網絡位置</string>
<string name="miuihome_recentview_remove_card_animation">修改卡片動畫</string>
<string name="miuihome_recentview_remove_card_animation_summary">修改在最近任務介面移除卡片的動畫效果</string>
<string name="miuihome_recentwiew_wallpaper_darkening">停用桌布壓暗</string>
<string name="miuihome_recentwiew_wallpaper_darkening_summary">這將會停用進出最近任務介面時的桌布壓暗效果</string>
<string name="miuihome_scroll_icon_name">捲動顯示應用程式名稱</string>
<string name="miuihome_scroll_icon_name_summary">過長的應用程式名稱將會捲動,而不會在多列顯示</string>
<string name="miuihome_shortcut_add_small_window">捷徑選單新增小窗</string>
<string name="miuihome_shortcut_add_small_window_summary">長按桌面圖示以快速開啟小窗應用程式</string>
<string name="miuihome_shortcut_add_small_window_title">小窗應用程式</string>
<string name="click_to_view_use_cases">按一下以檢視案例</string>
<string name="disable_bluetooth_temporarily_off" comment="This function is used to completely close Bluetooth">停用暫時關閉藍牙</string>
</resources>

View File

@@ -1,225 +1,225 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="performance"></string>
<string name="lock_max_fps">鎖定螢幕更新率上限</string>
<string name="performance"></string>
<string name="lock_max_fps">鎖定目前重新整理速率上限</string>
<string name="ui">介面</string>
<string name="delete_on_post_notification">移除上層顯示通知</string>
<string name="delete_on_post_notification_summary">移除 \"此應用正顯示在螢幕上其他應用的上層\" 通知</string>
<string name="delete_on_post_notification_summary">移除此應用程式正顯示在螢幕上其他應用程式的上層通知</string>
<string name="other">其他</string>
<string name="disable_flag_secure">允許截圖</string>
<string name="disable_flag_secure_summary">開啟後允許在不允許截圖的軟體中截圖\n支援添加下拉控制中心快速開關,保障安全</string>
<string name="disable_flag_secure">允許螢幕截圖</string>
<string name="disable_flag_secure_summary">開啟後允許在不允許截圖的軟體中截圖\n支援新增下拉控制中心快速開關,保障安全</string>
<string name="home">桌面</string>
<string name="home_time">始終顯示桌面時鐘</string>
<string name="reboot_host">重啟全部作用域</string>
<string name="reboot_host">重啟所有作用範圍</string>
<string name="reboot">重啟系統</string>
<!--Status bar icons-->
<string name="status_bar_icon">狀態圖示</string>
<string name="hide_no_sim_icon">隱藏 無SIM卡 圖示</string>
<string name="hide_sim_one_icon">隱藏 SIM卡一 圖示</string>
<string name="hide_sim_two_icon">隱藏 SIM卡二 圖示</string>
<string name="hide_vpn_icon">隱藏 VPN 圖示</string>
<string name="hide_airplane_icon">隱藏 飛行模式 圖示</string>
<string name="hide_wifi_icon">隱藏 WIFI 圖示</string>
<string name="hide_bluetooth_icon">隱藏 藍牙 圖示</string>
<string name="hide_volume_zen_icon">隱藏 聲音、勿擾 圖示</string>
<string name="hide_alarm_icon">隱藏 鬧鐘 圖示</string>
<string name="hide_hotspot_icon">隱藏 WIFI熱點 圖示</string>
<string name="hide_headset_icon">隱藏 耳機 圖示</string>
<string name="hide_bluetooth_battery_icon">隱藏 藍牙電量 圖示</string>
<string name="hide_nfc_icon">隱藏 NFC 圖示</string>
<string name="hide_big_hd_icon">隱藏 HD 圖示</string>
<string name="hide_small_hd_icon">隱藏 HD 圖示</string>
<string name="hide_new_hd_icon">隱藏 HD 圖示</string>
<string name="hide_hd_no_service_icon">隱藏 HD無服務 圖示</string>
<string name="status_bar_icon">狀態圖示</string>
<string name="hide_no_sim_icon">隱藏「無 SIM 卡」圖示</string>
<string name="hide_sim_one_icon">隱藏SIM 卡 1」圖示</string>
<string name="hide_sim_two_icon">隱藏SIM 卡 2」圖示</string>
<string name="hide_vpn_icon">隱藏VPN圖示</string>
<string name="hide_airplane_icon">隱藏「飛航模式圖示</string>
<string name="hide_wifi_icon">隱藏WIFI圖示</string>
<string name="hide_bluetooth_icon">隱藏藍牙圖示</string>
<string name="hide_volume_zen_icon">隱藏聲音、勿擾圖示</string>
<string name="hide_alarm_icon">隱藏鬧鐘圖示</string>
<string name="hide_hotspot_icon">隱藏WIFI 熱點圖示</string>
<string name="hide_headset_icon">隱藏耳機圖示</string>
<string name="hide_bluetooth_battery_icon">隱藏藍牙電量圖示</string>
<string name="hide_nfc_icon">隱藏NFC圖示</string>
<string name="hide_big_hd_icon">隱藏「大型 HD圖示</string>
<string name="hide_small_hd_icon">隱藏「小型 HD圖示</string>
<string name="hide_new_hd_icon">隱藏「新 HD圖示</string>
<string name="hide_hd_no_service_icon">隱藏HD 無服務圖示</string>
<string name="about">關於</string>
<string name="about_module">關於模組</string>
<string name="verison">版本</string>
<string name="dev_coolapk">開發酷安</string>
<string name="opensource">源倉</string>
<string name="github_url">歡迎更多開發共同參與開發</string>
<string name="dev_coolapk">開發人員酷安</string>
<string name="opensource">放原始碼存放</string>
<string name="github_url">歡迎更多開發人員共同參與開發</string>
<string name="issues">回饋/提議</string>
<string name="issues_url">點擊查看GitHub Issues</string>
<string name="xposeddescription">基於 MIUI13(Android 12) 適配的自訂工具</string>
<string name="statusbar">狀態</string>
<string name="issues_url">按一下以檢視 GitHub 問題</string>
<string name="xposeddescription">基於 MIUI13+(Android 12+) 的客製化工具</string>
<string name="statusbar">狀態</string>
<string name="status_bar_time_seconds">顯示秒數</string>
<string name="status_bar_network_speed_refresh_speed">每秒更新即時網</string>
<string name="remove_the_maximum_number_of_notification_icons">除通知圖示數量上限</string>
<string name="main_switch">模組開關</string>
<string name="hide_gps_icon">隱藏 GPS 圖示</string>
<string name="hide_status_bar_network_speed_second">隱藏網速(/s單位</string>
<string name="status_bar_network_speed_refresh_speed">每秒更新即時網路速度</string>
<string name="remove_the_maximum_number_of_notification_icons">除通知圖示數量上限</string>
<string name="main_switch">模組開關</string>
<string name="hide_gps_icon">隱藏GPS圖示</string>
<string name="hide_status_bar_network_speed_second">隱藏網路速度 (/s) 單位</string>
<string name="menu">選單</string>
<string name="Tips">提示</string>
<string name="skip_waiting_time">跳過 5/10 秒警告時間</string>
<string name="unlock_unlimited_cropping">移除裁剪圖片/螢幕截圖的限制</string>
<string name="hide_slave_wifi_icon">隱藏 WIFI輔助 圖示</string>
<string name="hide_slave_wifi_icon">隱藏WIFI 次要」圖示</string>
<string name="HideLauncherIcon">隱藏桌面圖示</string>
<string name="hide_battery_percentage_icon">隱藏電量%</string>
<string name="hide_battery_icon">隱藏 電池 圖示</string>
<string name="status_bar_clock_format">狀態時鐘格式</string>
<string name="hide_battery_percentage_icon">隱藏電量 (%)</string>
<string name="hide_battery_icon">隱藏電池圖示</string>
<string name="status_bar_clock_format">狀態時鐘格式</string>
<string name="status_bar_time_year">顯示年份</string>
<string name="status_bar_time_month">顯示月份</string>
<string name="status_bar_time_day">顯示日期</string>
<string name="status_bar_time_week">顯示星期</string>
<string name="status_bar_time_hide_space">隱藏間隔</string>
<string name="allow_screenshots">允許截圖</string>
<string name="lock_max">鎖定前上限</string>
<string name="lock_max">鎖定前上限</string>
<string name="status_bar_time_double_hour">顯示時辰</string>
<string name="custom_clock_switch">自訂時鐘-總開關</string>
<string name="custom_clock_switch">自訂時鐘 - 主開關</string>
<string name="status_bar_time_period">顯示時段</string>
<string name="status_bar_time_double_line">顯示</string>
<string name="status_bar_clock_size">時鐘大小0不更改</string>
<string name="status_bar_clock_double_line_size">大小0不更改</string>
<string name="status_bar_time_double_line">顯示</string>
<string name="status_bar_clock_size">時鐘大小 (0無變更)</string>
<string name="status_bar_clock_double_line_size">大小 (0無變更)</string>
<string name="matters_needing_attention">功能無法生效?</string>
<string name="Done">確定</string>
<string name="about_module_summary">查看模組相關訊</string>
<string name="contributor_list">源倉庫貢獻者名單</string>
<string name="developer">開發</string>
<string name="about_module_summary">檢視模組相關</string>
<string name="contributor_list">放原始碼存放庫貢獻者名單</string>
<string name="developer">開發人員</string>
<string name="thank_list">感謝名單</string>
<string name="third_party_open_source_statement">第三方開聲明</string>
<string name="corepacth">除安裝限制</string>
<string name="corepacth_summary">降級/不同簽/無簽安裝</string>
<string name="prevent_recovery_of_battery_optimization_white_list">防止恢復電池最佳化白名單</string>
<string name="third_party_open_source_statement">第三方開放原始碼聲明</string>
<string name="corepacth">除安裝限制</string>
<string name="corepacth_summary">降級/不同簽/無簽安裝</string>
<string name="prevent_recovery_of_battery_optimization_white_list">防止復原電池效能最佳化白名單</string>
<string name="failed_after_restart">系統重啟後仍會還原</string>
<string name="battery_optimization">電池最佳化</string>
<string name="battery_optimization_summary">快速打開被MIUI隱藏的電池最佳化功能</string>
<string name="battery_optimization">電池效能最佳化</string>
<string name="battery_optimization_summary">快速開啟被 MIUI 隱藏的電池效能最佳化功能</string>
<string name="remove_small_window_restrictions">強制使用小窗</string>
<string name="app_coolapk_url">來酷安給我們五星好評</string>
<string name="app_coolapk_url_summary">這可以使我們被更多的人發現</string>
<string name="qq_channel">加入 官方QQ頻道</string>
<string name="tg_channel">加入 官方TG頻道</string>
<string name="tg_channel_summary">可在頻道資料頁進入交流群</string>
<string name="qq_channel">加入官方 QQ 頻道</string>
<string name="tg_channel">加入官方 TG 頻道</string>
<string name="tg_channel_summary">可在頻道頁面進入聊天群組</string>
<string name="discussions">討論</string>
<string name="remove_small_window_restrictions_summary">忽略系統黑名單與軟體禁止小窗</string>
<string name="remove_the_left_side_of_the_lock_screen">移除鎖定螢幕負一屏功能</string>
<string name="remove_small_window_restrictions_summary">忽略系統黑名單與軟體小窗封鎖</string>
<string name="remove_the_left_side_of_the_lock_screen">移除負一屏功能鎖定</string>
<string name="remove_lock_screen_camera">移除鎖定螢幕相機功能</string>
<string name="only_official_default_themes_are_supported">僅支援官方預設主題</string>
<string name="lock_one_hundred">手機管家鎖定100分</string>
<string name="scope">作用</string>
<string name="scope_android">系統</string>
<string name="scope_systemui">系統介面</string>
<string name="lock_one_hundred">手機管家鎖定 100 </string>
<string name="scope">作用範圍</string>
<string name="scope_android">系統架</string>
<string name="scope_systemui">系統 UI</string>
<string name="scope_miuihome">系統桌面</string>
<string name="scope_other">其他</string>
<string name="status_bar_network_speed_refresh_speed_summary">將狀態欄網速組件的更新頻率改成1s</string>
<string name="status_bar_network_speed_refresh_speed_summary">將狀態列網路速度元件的更新間隔變更為 1s</string>
<string name="hide_battery_percentage_icon_summary">需自行開啟電池百分比外顯功能</string>
<string name="hide_status_bar_network_speed_second_summary">隱藏狀態欄網速組件的(/s單位</string>
<string name="remove_the_maximum_number_of_notification_icons_summary">除狀態最多能顯示3個通知的限制</string>
<string name="scope_systemui_summary">自訂系統介面、狀態、鎖定螢幕等</string>
<string name="scope_android_summary">首次啟動模組模組更新後,\n此處的功能需重啟系統後才能生效</string>
<string name="hide_status_bar_network_speed_second_summary">隱藏狀態列網路速度元件的 (/s) 單位</string>
<string name="remove_the_maximum_number_of_notification_icons_summary">除狀態最多能顯示三條通知的限制</string>
<string name="scope_systemui_summary">自訂系統介面、狀態、鎖定螢幕等</string>
<string name="scope_android_summary">首次啟動模組模組更新後,\n此處的功能需重啟系統後才能生效</string>
<string name="scope_other_summary">手機管家、相簿編輯、電量與性能等</string>
<string name="scope_powerkeeper">電量與性能</string>
<string name="scope_securitycenter">手機管家</string>
<string name="scope_mediaeditor">相簿編輯</string>
<string name="home_time_summary">開啟後即使存在時鐘小組件\n也不會對狀態欄隱藏時鐘</string>
<string name="skip_waiting_time_summary">開啟後可忽略MIUI在開啟USB偵錯、\n未知應用來源、無障礙時的凍結時間</string>
<string name="lock_one_hundred_summary">鎖定手機管家100分並隱藏修復按鈕</string>
<string name="unlock_unlimited_cropping_summary">無視MIUI對圖片裁切的最小限制</string>
<string name="hide_wifi_activity_icon">隱藏 WIFI箭頭 圖示</string>
<string name="hide_mobile_activity_icon">隱藏動網路箭頭 圖示</string>
<string name="hide_mobile_type_icon">隱藏 行動網路類型 圖示</string>
<string name="show_weather_main_switch">顯示天氣-總開關</string>
<string name="scope_mediaeditor">相簿編輯</string>
<string name="home_time_summary">開啟後即使存在時鐘小工具\n也不會隱藏狀態列時鐘</string>
<string name="skip_waiting_time_summary">開啟後可忽略 MIUI 在開啟 USB 偵錯、\n未知應用程式來源、無障礙時的凍結時間</string>
<string name="lock_one_hundred_summary">鎖定手機管家 100 分並封鎖修復按鈕</string>
<string name="unlock_unlimited_cropping_summary">忽略 MIUI 對圖片裁切的最小限制</string>
<string name="hide_wifi_activity_icon">隱藏WIFI 活動」圖示</string>
<string name="hide_mobile_activity_icon">隱藏「行動網路活動」圖示</string>
<string name="hide_mobile_type_icon">隱藏行動網路類型圖示</string>
<string name="show_weather_main_switch">顯示天氣 - 主開關</string>
<string name="lock_screen">鎖定螢幕</string>
<string name="notification_center">通知中心</string>
<string name="show_city">顯示城市</string>
<string name="lock_max_fps_summary">支援添加下拉控制中心快速開關,即時切換</string>
<string name="lock_max_fps_summary">支援新增下拉控制中心快速開關,即時切換</string>
<string name="control_center">控制中心</string>
<string name="control_center_weather_summary">暫不支援妙享版控制中心</string>
<string name="not_support">您似乎正在使用過時的 LSPosed 版本或 LSPosed 未啟,請更新 LSPosed 或者啟動後再試。</string>
<string name="matters_needing_attention_context">首次啟動或更新後建議重啟手機\n絕大部分功能更後需要在右上角重啟作用域後生效</string>
<string name="not_support">您似乎正在使用過時的 LSPosed 版本或 LSPosed 未啟,請更新 LSPosed 或啟用後再試一次</string>
<string name="matters_needing_attention_context">首次啟動或更新後建議重啟手機\n絕大部分功能更後需要在右上角重啟範圍後生效</string>
<string name="are_you_sure_reboot">確定重啟系統?</string>
<string name="cancel">取消</string>
<string name="are_you_sure_reboot_scope">確定重啟全部作用域</string>
<string name="hide_battery_charging_icon">隱藏 充電 圖示</string>
<string name="hide_wifi_standard_icon">隱藏 WIFI標準 圖示</string>
<string name="status_bar_time_center">時間</string>
<string name="status_bar_layout_summary">更多狀態欄布局等待開發中</string>
<string name="status_bar_layout">狀態欄布局</string>
<string name="layout_compatibility_mode">相容模式</string>
<string name="left_margin">左邊距 (0: 自動)</string>
<string name="right_margin">右邊距 (0: 自動)</string>
<string name="layout_compatibility_mode_summary">使左右挖孔螢幕能正常顯示</string>
<string name="remove_macro_blacklist">除遊戲自動連招黑名單</string>
<string name="hide_network_speed_splitter">隱藏網速分隔符</string>
<string name="are_you_sure_reboot_scope">確定重啟所有作用範圍</string>
<string name="hide_battery_charging_icon">隱藏充電圖示</string>
<string name="hide_wifi_standard_icon">隱藏WIFI 標準圖示</string>
<string name="status_bar_time_center">時間</string>
<string name="status_bar_layout_summary">更多狀態列版面配置等候開發中</string>
<string name="status_bar_layout">狀態列版面配置</string>
<string name="layout_compatibility_mode">相容模式</string>
<string name="left_margin">左邊距 (0自動)</string>
<string name="right_margin">右邊距 (0自動)</string>
<string name="layout_compatibility_mode_summary">強制全螢幕版面配置 (支援所有螢幕凹口或空缺)</string>
<string name="remove_macro_blacklist">除遊戲自動連招黑名單</string>
<string name="hide_network_speed_splitter">隱藏網路速度分割器</string>
<string name="updater">系統更新</string>
<string name="remove_ota_validate">*移除OTA驗證 [實驗性]</string>
<string name="remove_ota_validate_summary">- 僅支援VAB系列使用其餘系列請不要開啟。\n- 無需內測資格即可刷入完整內測包。\n- 擁有內測權限的使用者將無法接收內測更新\n可用於隱藏系統更新。\n- 跨版本類型升級後,建議清空數據。\n- 不支援非官方ROM使用。</string>
<string name="remove_ota_validate">*移除 OTA 驗證 [實驗性]</string>
<string name="remove_ota_validate_summary">- 僅支援 VAB 系列使用,其餘系列請不要開啟。\n- 無需內測資格即可刷入完整內測包。\n- 擁有內測權限的使用者將無法接收內測更新\n可用於隱藏系統更新。\n- 跨版本類型升級後,建議清除資料。\n- 不支援非官方 ROM 使用。</string>
<string name="settings">設定</string>
<string name="show_notification_importance">顯示通知重要程度</string>
<string name="show_notification_importance_summary">顯示 MIUI 12 及之後版本被隱藏的通知重要程度設定</string>
<string name="remove_ad">廣告</string>
<string name="remove_thememanager_ads">拿掉主題壁紙的廣告</string>
<string name="battery_life_function">電池頁面示目前溫度</string>
<string name="enable_wave_charge_animation">啟用MIX Alpha充電動畫</string>
<string name="remove_ad">移除廣告</string>
<string name="remove_thememanager_ads">移除個性主題廣告</string>
<string name="battery_life_function">電池頁面示目前溫度</string>
<string name="enable_wave_charge_animation">啟用 MIX Alpha 充電動畫</string>
<string name="max_wallpaper_scale">桌布縮放比例</string>
<string name="def">"預設值: "</string>
<string name="current">目前值:</string>
<string name="participate_in_translation">參與翻譯</string>
<string name="participate_in_translation_summary">助我們將這個APP翻譯您的語言</string>
<string name="participate_in_translation_summary">助我們將這個應用程式翻譯您的語言</string>
<string name="lock_screen_charging_current">充電時顯示目前電流</string>
<string name="current_current">目前電流</string>
<string name="remove_open_app_confirmation_popup">移除打開應用彈出視窗</string>
<string name="remove_open_app_confirmation_popup_summary">移除 \"XXX 想要開 XXX\" 的彈出視窗</string>
<string name="hide_volume_icon">隱藏 音量 圖示</string>
<string name="hide_zen_icon">隱藏 勿擾 圖示</string>
<string name="remove_open_app_confirmation_popup">移除「開啟應用程式」彈出視窗</string>
<string name="remove_open_app_confirmation_popup_summary">移除XXX 想要開 XXX的彈出視窗</string>
<string name="hide_volume_icon">隱藏音量圖示</string>
<string name="hide_zen_icon">隱藏勿擾圖示</string>
<string name="hide_icon">隱藏圖示</string>
<string name="double_tap_to_sleep">雙擊鎖定螢幕</string>
<string name="home_double_tap_to_sleep_summary">雙擊空白位置鎖定螢幕</string>
<string name="old_quick_settings_panel">舊快速設定面板</string>
<string name="old_qs_custom_switch">定義行與</string>
<string name="qs_custom_columns_unexpanded"> (未展開)</string>
<string name="qs_custom_rows"></string>
<string name="qs_custom_columns"></string>
<string name="qs_custom_rows_horizontal"> (橫向)</string>
<string name="status_bar_dual_row_network_speed">網路速度</string>
<string name="status_bar_dual_row_network_speed_summary">上下網路速度顯示</string>
<string name="status_bar_network_speed">狀態網路速度</string>
<string name="status_bar_network_speed_dual_row_size">大小0不更改</string>
<string name="status_bar_network_speed_dual_row_icon">圖示</string>
<string name="double_tap_to_sleep">輕觸兩下鎖定螢幕</string>
<string name="home_double_tap_to_sleep_summary">輕觸兩下空白位置鎖定螢幕</string>
<string name="old_quick_settings_panel">快速設定面板</string>
<string name="old_qs_custom_switch">訂行</string>
<string name="qs_custom_columns_unexpanded"> (未展開)</string>
<string name="qs_custom_rows"></string>
<string name="qs_custom_columns"></string>
<string name="qs_custom_rows_horizontal"> (橫向)</string>
<string name="status_bar_dual_row_network_speed">網路速度</string>
<string name="status_bar_dual_row_network_speed_summary">上下網路速度顯示</string>
<string name="status_bar_network_speed">狀態網路速度</string>
<string name="status_bar_network_speed_dual_row_size">大小 (0無變更)</string>
<string name="status_bar_network_speed_dual_row_icon">圖示</string>
<string name="none"></string>
<string name="status_bar_network_speed_dual_row_gravity">行網速對齊</string>
<string name="status_bar_network_speed_dual_row_gravity">對齊</string>
<string name="left">置左</string>
<string name="right">置右</string>
<string name="big_mobile_type_icon">大行動網路圖示</string>
<string name="show_wifi_standard">顯示 Wifi 標準</string>
<string name="can_notification_slide">強制允許全部通知使用小窗</string>
<string name="battery_percentage_font_size">電量百分比字大小</string>
<string name="zero_do_no_change">0不修改</string>
<string name="big_mobile_type_icon_size">大行動網路圖示大小</string>
<string name="big_mobile_type_icon_bold">大行動網路圖示</string>
<string name="big_mobile_type_icon_up_and_down_position">大行動網路圖示上下位置</string>
<string name="big_mobile_type_icon">行動網路圖示</string>
<string name="show_wifi_standard">顯示 WiFi 標準</string>
<string name="can_notification_slide">強制允許所有通知使用小窗</string>
<string name="battery_percentage_font_size">電量百分比字大小</string>
<string name="zero_do_no_change">0無變更</string>
<string name="big_mobile_type_icon_size">行動網路圖示大小</string>
<string name="big_mobile_type_icon_bold">行動網路圖示粗</string>
<string name="big_mobile_type_icon_up_and_down_position">行動網路圖示上下位置</string>
<string name="input_error">輸入錯誤</string>
<string name="range">範圍:</string>
<string name="big_mobile_type_icon_left_and_right_margins">大行動網路圖示左右邊距</string>
<string name="cast">接力</string>
<string name="force_support_send_app">允許所有應用使用接力</string>
<string name="status_bar_time_double_line_center_align">行居中對齊</string>
<string name="big_mobile_type_icon_left_and_right_margins">行動網路圖示左右邊距</string>
<string name="cast">投放</string>
<string name="force_support_send_app">強制所有應用程式支援在其他裝置開啟</string>
<string name="status_bar_time_double_line_center_align">列置中對齊</string>
<string name="default1">預設值</string>
<string name="clock_center">時鐘置中</string>
<string name="clock_right">時鐘置右</string>
<string name="status_bar_layout_mode">狀態欄布局模式</string>
<string name="clock_center_and_icon_left">間居中+圖示置左</string>
<string name="status_bar_layout_mode">狀態列版面配置模式</string>
<string name="clock_center_and_icon_left">鐘置中 + 圖示置左</string>
<string name="maximum_number_of_notification_icons">通知圖示最大數量</string>
<string name="maximum_number_of_notification_dots">通知點點數量</string>
<string name="maximum_number_of_notification_dots">通知圓點最大數量</string>
<string name="custom_mobile_type_text">自訂行動網路類型文字</string>
<string name="custom_mobile_type_text_switch">自訂行動網路類型文字開關</string>
<string name="downgr">允許降級安裝應用</string>
<string name="downgr_summary">允許在已安裝新版的情況下覆蓋安裝舊版本</string>
<string name="authcreak">禁用應用安裝管理器簽名驗證</string>
<string name="authcreak_summary">關閉安裝應用時的簽名驗證可以安裝被修改的APK</string>
<string name="digestCreak">禁用APK簽名驗證</string>
<string name="digestCreak_summary">允許覆蓋安裝同包名不同簽名的應用</string>
<string name="UsePreSig">安裝時始終使用已安裝應用的簽</string>
<string name="UsePreSig_summary">安裝時始終使用已安裝應用的簽\n這非常<b>危險</b>\n僅在真正需要時啟用</string>
<string name="downgr">允許降級安裝應用程式</string>
<string name="downgr_summary">允許在已安裝新版的情況下覆寫為舊版本</string>
<string name="authcreak">停用安裝程式簽章驗證</string>
<string name="authcreak_summary">關閉安裝應用程式時的簽名驗證,可以安裝被修改的 APK</string>
<string name="digestCreak">停用 APK 簽章驗證</string>
<string name="digestCreak_summary">允許安裝套件名稱相同但簽章不同的應用程式</string>
<string name="UsePreSig">安裝時始終使用已安裝應用程式的簽</string>
<string name="UsePreSig_summary">安裝時始終使用已安裝應用程式的簽\n這非常<b>危險</b>\n僅在真正需要時啟用</string>
<string name="enhancedMode">增強模式</string>
<string name="enhancedMode_summary">可以解決一些應用內部的完整性驗,一般不需要開啟</string>
<string name="rear_display">後螢幕11Ultra</string>
<string name="enhancedMode_summary">可以解決一些應用程式內部的完整性驗,一般不需要開啟</string>
<string name="rear_display">螢幕 (11 Ultra)</string>
<string name="lock_screen_clock_display_seconds">時鐘顯示秒數</string>
<string name="sound">聲音</string>
<string name="media_volume_steps_switch">媒體音量階數</string>
<string name="allow_untrusted_touches">允許不受信任的觸控</string>
<string name="take_effect_after_reboot">重新開機後生效</string>
<string name="media_volume_steps_summary">開啟後可能會導致音量條的滾動卡頓或藍牙音量異常</string>
<string name="can_notification_slide_summary">可能無法支援一些使用小米推送(Mi Push)推播的通知</string>
<string name="screen_hole_location">螢幕挖孔位置</string>
<string name="media_volume_steps_summary">開啟後可能會導致音量列捲動卡頓或藍牙音量異常</string>
<string name="can_notification_slide_summary">可能無法支援一些使用小米推送 (Mi Push) 推播的通知</string>
<string name="screen_hole_location">螢幕凹口位置</string>
<string name="custom_clock_mode">自訂時鐘模式</string>
<string name="custom_clock_format_geek">時鐘格式</string>
<string name="off">關閉</string>
@@ -233,8 +233,19 @@
<string name="make_millet_more_aggressive_summary">允許 Millet 在背景應用程式有通知、有服務執行、有處理程序執行的狀況下凍結應用程式。\n不希望被凍結的應用程式可將省電策略設為無限制\n啟用前請先解除安裝墓碑和 NoANR 相關模組。</string>
<string name="make_millet_ignore_active">允許 Millet 凍結使用中的應用程式</string>
<string name="make_millet_ignore_active_summary">非常積極,可能會影響應用程式執行</string>
<string name="pkg_installer">應用包管理組件</string>
<string name="pkg_installer_summary">用頻繁安裝應用檢查</string>
<string name="big_mobile_type_only_show_network_card">大行動網路僅會顯示網路卡</string>
<string name="big_mobile_type_location">大行動網路位置</string>
<string name="pkg_installer">套件安裝程式</string>
<string name="pkg_installer_summary">用頻繁應用程式安裝檢查</string>
<string name="big_mobile_type_only_show_network_card">行動網路僅會顯示網路卡</string>
<string name="big_mobile_type_location">行動網路位置</string>
<string name="miuihome_recentview_remove_card_animation">修改卡片動畫</string>
<string name="miuihome_recentview_remove_card_animation_summary">修改在最近任務介面移除卡片的動畫效果</string>
<string name="miuihome_recentwiew_wallpaper_darkening">停用桌布壓暗</string>
<string name="miuihome_recentwiew_wallpaper_darkening_summary">這將會停用進出最近任務介面時的桌布壓暗效果</string>
<string name="miuihome_scroll_icon_name">捲動顯示應用程式名稱</string>
<string name="miuihome_scroll_icon_name_summary">過長的應用程式名稱將會捲動,而不會在多列顯示</string>
<string name="miuihome_shortcut_add_small_window">捷徑選單新增小窗</string>
<string name="miuihome_shortcut_add_small_window_summary">長按桌面圖示以快速開啟小窗應用程式</string>
<string name="miuihome_shortcut_add_small_window_title">小窗應用程式</string>
<string name="click_to_view_use_cases">按一下以檢視案例</string>
<string name="disable_bluetooth_temporarily_off" comment="This function is used to completely close Bluetooth">停用暫時關閉藍牙</string>
</resources>

View File

@@ -140,7 +140,7 @@
<string name="layout_compatibility_mode">Compatibility mode</string>
<string name="left_margin">Left margin (0: Auto)</string>
<string name="right_margin">Right margin (0: Auto)</string>
<string name="layout_compatibility_mode_summary">Make the left and right hole screen can be displayed normally</string>
<string name="layout_compatibility_mode_summary">Force full screen layout (supports all special-shaped screens)</string>
<string name="remove_macro_blacklist">Remove game macro blacklist</string>
<string name="hide_network_speed_splitter">Hide network speed splitter</string>
<string name="updater">Updater</string>