15 Commits

Author SHA1 Message Date
Hen_Ry
1401ddcc52 update german translation (#244) 2023-04-11 09:58:16 +08:00
乌堆小透明
eb7779ea84 Revert "合并拉取请求 #233" (#237)
This reverts commit 317340bf6f.
2023-03-05 21:07:11 +08:00
Howie
317340bf6f 合并拉取请求 #233
* 修改 隐藏 SIM 卡 的方法

* 修改 隐藏 SIM 卡 的方法
2023-02-27 16:36:06 +08:00
LittleTurtle2333
bc26ba512c 更新版本号至1.7.5 2023-02-20 21:37:28 +08:00
乌堆小透明
cd28e662a1 New Crowdin updates (#226)
* New translations strings.xml (Chinese Traditional)
[ci skip] New translations from Crowdin

* New translations strings.xml (Romanian)
[ci skip] New translations from Crowdin

* New translations strings.xml (French)
[ci skip] New translations from Crowdin

* New translations strings.xml (Spanish)
[ci skip] New translations from Crowdin

* New translations strings.xml (Czech)
[ci skip] New translations from Crowdin

* New translations strings.xml (Hungarian)
[ci skip] New translations from Crowdin

* New translations strings.xml (Japanese)
[ci skip] New translations from Crowdin

* New translations strings.xml (Korean)
[ci skip] New translations from Crowdin

* New translations strings.xml (Dutch)
[ci skip] New translations from Crowdin

* New translations strings.xml (Polish)
[ci skip] New translations from Crowdin

* New translations strings.xml (Portuguese)
[ci skip] New translations from Crowdin

* New translations strings.xml (Russian)
[ci skip] New translations from Crowdin

* New translations strings.xml (Turkish)
[ci skip] New translations from Crowdin

* New translations strings.xml (Chinese Simplified)
[ci skip] New translations from Crowdin

* New translations strings.xml (Chinese Traditional)
[ci skip] New translations from Crowdin

* New translations strings.xml (Vietnamese)
[ci skip] New translations from Crowdin

* New translations strings.xml (Portuguese, Brazilian)
[ci skip] New translations from Crowdin

* New translations strings.xml (Indonesian)
[ci skip] New translations from Crowdin

* New translations strings.xml (Chinese Traditional, Hong Kong)
[ci skip] New translations from Crowdin

* New translations strings.xml (Spanish)
[ci skip] New translations from Crowdin

* New translations strings.xml (Portuguese)
[ci skip] New translations from Crowdin

* New translations strings.xml (Chinese Simplified)
[ci skip] New translations from Crowdin

* New translations strings.xml (Vietnamese)
[ci skip] New translations from Crowdin

* New translations strings.xml (Portuguese, Brazilian)
[ci skip] New translations from Crowdin

* New translations strings.xml (Chinese Traditional)
[ci skip] New translations from Crowdin

* New translations strings.xml (Polish)
[ci skip] New translations from Crowdin

* New translations strings.xml (Polish)
[ci skip] New translations from Crowdin

* New translations strings.xml (Japanese)
[ci skip] New translations from Crowdin

* New translations strings.xml (Spanish)
[ci skip] New translations from Crowdin

* New translations strings.xml (Chinese Traditional)
[ci skip] New translations from Crowdin

* New translations strings.xml (Portuguese)
[ci skip] New translations from Crowdin

* New translations strings.xml (Portuguese, Brazilian)
[ci skip] New translations from Crowdin

* New translations strings.xml (Portuguese)
[ci skip] New translations from Crowdin

* New translations strings.xml (Chinese Simplified)
[ci skip] New translations from Crowdin

* New translations strings.xml (Portuguese, Brazilian)
[ci skip] New translations from Crowdin
2023-02-20 21:32:58 +08:00
LittleTurtle2333
f67d387020 新增A13禁用临时蓝牙关闭 2023-02-20 21:27:04 +08:00
乌堆小透明
f2354022aa [skip ci] rename android.yml 2023-02-20 20:17:08 +08:00
LittleTurtle2333
d7a1af8846 A12自定义时钟极客模式支持更多内容(未测试) 2023-02-20 20:15:04 +08:00
LittleTurtle2333
8a1c8a85c3 [skip ci] Update README.md 2023-02-19 23:22:59 +08:00
LittleTurtle2333
12848808d3 修复A12状态栏布局兼容模式的一些BUG 2023-02-19 23:03:29 +08:00
LittleTurtle2333
7f23f07209 修复状态栏布局兼容模式的一些BUG 2023-02-19 17:11:25 +08:00
乌堆小透明
54b31ea478 Update dev.yml 2023-02-19 16:25:40 +08:00
乌堆小透明
44e6995da1 Create dev.yml 2023-02-19 16:19:12 +08:00
LittleTurtle2333
12e76869dd 优化开启时间居中后的细节 2023-02-18 23:56:04 +08:00
LittleTurtle2333
97212d74d3 更新Xposed description 2023-02-18 22:31:26 +08:00
19 changed files with 757 additions and 296 deletions

50
.github/workflows/dev.yml vendored Normal file
View File

@@ -0,0 +1,50 @@
name: Dev
on:
push:
branches: [ "main" ]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Clone UI
run: |
cd blockmiui
git submodule init
git submodule update
- name: Build with Gradle
run: |
bash ./gradlew assembleDebug
- name: Sign Debug APK
if: success()
id: sign_debug
uses: r0adkll/sign-android-release@v1.0.4
with:
releaseDirectory: ./app/build/outputs/apk/debug
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.KEY_STORE_ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.KEY_STORE_PASSWORD }}
- name: Upload Debug APK
uses: actions/upload-artifact@v2
with:
name: WooBox_Debug
path: ${{ steps.sign_debug.outputs.signedReleaseFile }}

View File

@@ -1,4 +1,4 @@
name: Android CI name: PR Check
on: on:
pull_request: pull_request:

View File

@@ -13,7 +13,9 @@
### 模块说明 ### 模块说明
开发者:[酷安@乌堆小透明](http://www.coolapk.com/u/883441) 开发者:[酷安@乌堆小透明](http://www.coolapk.com/u/883441)
当前仅基于`Android13`进行开发,`Android12`几乎不再维护。也有基于`Android13`开发,但是能在`Android12`使用的情况,请广大社区使用`Android12`的开发者自行测试和修复后提交`Pull Request`
--- ---

View File

@@ -11,6 +11,12 @@
--- ---
### Module Description
Currently only developed based on `Android13`, `Android12` is almost no longer maintained. There are also cases where the development is based on `Android13`, but it can be used in `Android12`. Developers in the community who use `Android12` are requested to submit `Pull Request` after testing and repairing by themselves.
---
### Screenshot ### Screenshot
![Screenshot](https://raw.githubusercontent.com/LittleTurtle2333/SimplicityTools/main/doc/en.jpg) ![Screenshot](https://raw.githubusercontent.com/LittleTurtle2333/SimplicityTools/main/doc/en.jpg)

View File

@@ -11,8 +11,8 @@ android {
applicationId = "com.lt2333.simplicitytools" applicationId = "com.lt2333.simplicitytools"
minSdk = 31 minSdk = 31
targetSdk = 33 targetSdk = 33
versionCode = 74 versionCode = 75
versionName = "1.7.4" versionName = "1.7.5"
buildConfigField("String", "BUILD_TIME", "\"${System.currentTimeMillis()}\"") buildConfigField("String", "BUILD_TIME", "\"${System.currentTimeMillis()}\"")
} }

View File

@@ -1,5 +1,7 @@
package com.lt2333.simplicitytools.activity.pages.s package com.lt2333.simplicitytools.activity.pages.s
import android.content.Intent
import android.net.Uri
import android.view.View import android.view.View
import android.widget.Switch import android.widget.Switch
import android.widget.Toast import android.widget.Toast
@@ -11,11 +13,11 @@ import cn.fkj233.ui.activity.view.SwitchV
import cn.fkj233.ui.activity.view.TextSummaryV import cn.fkj233.ui.activity.view.TextSummaryV
import cn.fkj233.ui.activity.view.TextV import cn.fkj233.ui.activity.view.TextV
import cn.fkj233.ui.dialog.MIUIDialog import cn.fkj233.ui.dialog.MIUIDialog
import cn.fkj233.ui.dialog.NewDialog
import com.lt2333.simplicitytools.R import com.lt2333.simplicitytools.R
import java.util.HashMap
@BMPage("scope_systemui","System UI", hideMenu = false) @BMPage("scope_systemui", "System UI", hideMenu = false)
class SystemUIPageForS : BasePage() { class SystemUIPageForS : BasePage() {
override fun onCreate() { override fun onCreate() {
@@ -54,11 +56,10 @@ class SystemUIPageForS : BasePage() {
} }
}) })
val layoutCompatibilityModeBinding = GetDataBinding({ val layoutCompatibilityBinding = GetDataBinding({
MIUIActivity.safeSP.getInt( MIUIActivity.safeSP.getBoolean(
"screen_hole_location", "layout_compatibility_mode", false
0 )
) == 2
}) { view, flags, data -> }) { view, flags, data ->
when (flags) { when (flags) {
1 -> (view as Switch).isEnabled = data as Boolean 1 -> (view as Switch).isEnabled = data as Boolean
@@ -66,57 +67,23 @@ class SystemUIPageForS : BasePage() {
} }
} }
val screenHoleLocation: HashMap<Int, String> = hashMapOf<Int, String>().also { TextSummaryWithSwitch(
it[0] = getString(R.string.off)
it[1] = getString(R.string.center)
it[2] = getString(R.string.left_or_right)
}
TextSummaryWithSpinner(
TextSummaryV( TextSummaryV(
textId = R.string.layout_compatibility_mode, textId = R.string.layout_compatibility_mode, tipsId = R.string.layout_compatibility_mode_summary
tipsId = R.string.screen_hole_location ), SwitchV("layout_compatibility_mode", dataBindingSend = layoutCompatibilityBinding.bindingSend)
), )
SpinnerV(
screenHoleLocation[MIUIActivity.safeSP.getInt(
"screen_hole_location",
0
)].toString()
) {
add(screenHoleLocation[0].toString()) {
MIUIActivity.safeSP.putAny("screen_hole_location", 0)
layoutCompatibilityModeBinding.binding.Send().send(false)
}
add(screenHoleLocation[1].toString()) {
MIUIActivity.safeSP.putAny("screen_hole_location", 1)
layoutCompatibilityModeBinding.binding.Send().send(false)
}
add(screenHoleLocation[2].toString()) {
MIUIActivity.safeSP.putAny("screen_hole_location", 2)
layoutCompatibilityModeBinding.binding.Send().send(true)
}
})
Text( Text(
textId = R.string.left_margin, textId = R.string.left_margin, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
) )
SeekBarWithText( SeekBarWithText(
"status_bar_left_margin", "status_bar_left_margin", 0, 300, 0, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
0,
300,
0,
dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
) )
Text( Text(
textId = R.string.right_margin, textId = R.string.right_margin, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
) )
SeekBarWithText( SeekBarWithText(
"status_bar_right_margin", "status_bar_right_margin", 0, 300, 0, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
0,
300,
0,
dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
) )
Line() Line()
TitleText(textId = R.string.status_bar_clock_format) TitleText(textId = R.string.status_bar_clock_format)
@@ -246,23 +213,37 @@ class SystemUIPageForS : BasePage() {
//极客模式起始 //极客模式起始
TextSummaryWithArrow(TextSummaryV(textId = R.string.custom_clock_format_geek) { TextSummaryWithArrow(TextSummaryV(textId = R.string.custom_clock_format_geek) {
MIUIDialog(activity) { NewDialog(activity) {
setTitle(R.string.custom_clock_format_geek) setTitle(R.string.custom_clock_format_geek)
setEditText(MIUIActivity.safeSP.getString("custom_clock_format_geek", "HH:mm:ss"), "", isSingleLine = false) setEditText(
setLButton(textId = R.string.cancel) { MIUIActivity.safeSP.getString("custom_clock_format_geek", "HH:mm:ss"), "", isSingleLine = false
dismiss() )
Button(getString(R.string.click_to_view_use_cases)) {
val locale = context.resources.configuration.locale
val language = locale.language
if (language.endsWith("zh")) {
val uri = Uri.parse("https://zhuti.designer.xiaomi.com/docs/grammar/#%E6%97%B6%E9%97%B4%E6%97%A5%E6%9C%9F")
val intent = Intent(Intent.ACTION_VIEW, uri)
activity.startActivity(intent)
} else {
val uri = Uri.parse("https://docs.google.com/spreadsheets/d/1ghkT2iFbxB3bT4TKCiKAfmEdGt6kTVKFU3dm4Nz1or8/edit?usp=sharing")
val intent = Intent(Intent.ACTION_VIEW, uri)
activity.startActivity(intent)
}
} }
setRButton(textId = R.string.Done) { Button(getString(R.string.Done)) {
if (getEditText().isNotEmpty()) { if (getEditText().isNotEmpty()) {
try { try {
MIUIActivity.safeSP.putAny("custom_clock_format_geek", getEditText()) MIUIActivity.safeSP.putAny("custom_clock_format_geek", getEditText())
dismiss() dismiss()
return@setRButton return@Button
} catch (_: Throwable) { } catch (_: Throwable) {
} }
} }
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT) Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT).show()
.show() }
Button(getString(R.string.cancel), cancelStyle = true) {
dismiss()
} }
}.show() }.show()
}, dataBindingRecv = customClockGeekBinding.binding.getRecv(2)) }, dataBindingRecv = customClockGeekBinding.binding.getRecv(2))

View File

@@ -566,6 +566,13 @@ import com.lt2333.simplicitytools.R
) )
Line() Line()
TitleText(textId = R.string.control_center) TitleText(textId = R.string.control_center)
TextSummaryWithSwitch(
TextSummaryV(
textId = R.string.disable_bluetooth_temporarily_off
), SwitchV(
"disable_bluetooth_temporarily_off"
)
)
val controlCenterWeatherBinding = GetDataBinding({ val controlCenterWeatherBinding = GetDataBinding({
MIUIActivity.safeSP.getBoolean( MIUIActivity.safeSP.getBoolean(
"control_center_weather", false "control_center_weather", false

View File

@@ -32,37 +32,7 @@ import com.lt2333.simplicitytools.hooks.rules.s.systemui.StatusBarLayoutForS
import com.lt2333.simplicitytools.hooks.rules.s.systemui.StatusBarNetworkSpeedRefreshSpeedForS import com.lt2333.simplicitytools.hooks.rules.s.systemui.StatusBarNetworkSpeedRefreshSpeedForS
import com.lt2333.simplicitytools.hooks.rules.s.systemui.StatusBarTimeCustomizationForS import com.lt2333.simplicitytools.hooks.rules.s.systemui.StatusBarTimeCustomizationForS
import com.lt2333.simplicitytools.hooks.rules.s.systemui.WaveChargeForS import com.lt2333.simplicitytools.hooks.rules.s.systemui.WaveChargeForS
import com.lt2333.simplicitytools.hooks.rules.t.systemui.BatteryPercentageForT import com.lt2333.simplicitytools.hooks.rules.t.systemui.*
import com.lt2333.simplicitytools.hooks.rules.t.systemui.CanNotificationSlideForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.ControlCenterWeatherForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.CustomMobileTypeTextForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.DoubleLineNetworkSpeedForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideBatteryIconForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideHDIconForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideMobileActivityIconForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideMobileTypeIconForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideNetworkSpeedSplitterForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideSimIconForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideStatusBarIconForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideStatusBarNetworkSpeedSecondForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideWifiActivityIconForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.LockScreenClockDisplaySecondsForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.LockScreenCurrentForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.LockScreenDoubleTapToSleepForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.MaximumNumberOfNotificationIconsForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.NewNotificationWeatherForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.NotificationWeatherForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.OldNotificationWeatherForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.OldQSCustomForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.RemoveLockScreenCameraForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.RemoveTheLeftSideOfTheLockScreenForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.ShowWifiStandardForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.StatusBarBigMobileTypeIconForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.StatusBarDoubleTapToSleepForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.StatusBarLayoutForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.StatusBarNetworkSpeedRefreshSpeedForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.StatusBarTimeCustomizationForT
import com.lt2333.simplicitytools.hooks.rules.t.systemui.WaveChargeForT
import com.lt2333.simplicitytools.utils.xposed.base.AppRegister import com.lt2333.simplicitytools.utils.xposed.base.AppRegister
import de.robv.android.xposed.callbacks.XC_LoadPackage import de.robv.android.xposed.callbacks.XC_LoadPackage
@@ -105,6 +75,7 @@ object SystemUI : AppRegister() {
CanNotificationSlideForT, //允许下滑通知打开小窗 CanNotificationSlideForT, //允许下滑通知打开小窗
LockScreenClockDisplaySecondsForT, // 锁屏时钟显示秒 LockScreenClockDisplaySecondsForT, // 锁屏时钟显示秒
ShowWifiStandardForT, // 显示 WIFI 角标 ShowWifiStandardForT, // 显示 WIFI 角标
DisableBluetoothTemporarilyOffForT, //禁用临时蓝牙关闭
) )
} }

View File

@@ -1,5 +1,6 @@
package com.lt2333.simplicitytools.hooks.rules.s.systemui package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.app.KeyguardManager import android.app.KeyguardManager
import android.content.Context import android.content.Context
import android.content.res.Configuration import android.content.res.Configuration
@@ -16,10 +17,11 @@ import com.lt2333.simplicitytools.utils.XSPUtils
import com.lt2333.simplicitytools.utils.hasEnable import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.utils.xposed.base.HookRegister import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object StatusBarLayoutForS : HookRegister() { object StatusBarLayoutForS : HookRegister() {
private val getMode = XSPUtils.getInt("status_bar_layout_mode", 0) 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 statusBarLeft = 0
private var statusBarTop = 0 private var statusBarTop = 0
@@ -32,23 +34,31 @@ object StatusBarLayoutForS : HookRegister() {
var mCenterLayout: LinearLayout? var mCenterLayout: LinearLayout?
var statusBar: ViewGroup? = null var statusBar: ViewGroup? = null
fun updateLayout(context: Context) { //判断屏幕状态更新布局 mode: 1正常布局 2居中布局
//判断屏幕方向 fun updateLayout(context: Context,mode: Int) {
val mConfiguration: Configuration = context.resources.configuration when(mode){
if (mConfiguration.orientation == Configuration.ORIENTATION_PORTRAIT) { 1->{
mLeftLayout!!.setPadding(statusBarLeft, 0, 0, 0) val mConfiguration: Configuration = context.resources.configuration
mRightLayout!!.setPadding(0, 0, statusBarRight, 0) if (mConfiguration.orientation == Configuration.ORIENTATION_PORTRAIT) { //横屏
statusBar!!.setPadding(0, statusBarTop, 0, statusBarBottom) statusBar!!.setPadding(statusBarLeft, statusBarTop, statusBarRight, statusBarBottom)
} else { }
//横屏状态 }
mLeftLayout!!.setPadding(175, 0, 0, 0) 2->{
mRightLayout!!.setPadding(0, 0, 175, 0) val mConfiguration: Configuration = context.resources.configuration
statusBar!!.setPadding(0, statusBarTop, 0, statusBarBottom) if (mConfiguration.orientation == Configuration.ORIENTATION_PORTRAIT) { //横屏
mLeftLayout!!.setPadding(statusBarLeft, 0, 0, 0)
mRightLayout!!.setPadding(0, 0, statusBarRight, 0)
statusBar!!.setPadding(0, statusBarTop, 0, statusBarBottom)
}else{ //竖屏
mLeftLayout!!.setPadding(0, 0, 0, 0)
mRightLayout!!.setPadding(0, 0, 0, 0)
}
}
} }
} }
//判断是否开启居中挖孔兼容模式 //判断是否开启挖孔兼容模式
if (getHoleLocation == 1) { if (isCompatibilityMode) {
findMethod("com.android.systemui.ScreenDecorations\$DisplayCutoutView") { findMethod("com.android.systemui.ScreenDecorations\$DisplayCutoutView") {
name == "boundsFromDirection" && parameterCount == 3 && isStatic name == "boundsFromDirection" && parameterCount == 3 && isStatic
}.hookBefore { }.hookBefore {
@@ -56,48 +66,83 @@ object StatusBarLayoutForS : HookRegister() {
} }
} }
//修改对应布局
when (getMode) { when (getMode) {
//默认 //默认
0 -> return 0 -> {
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") {
name == "onViewCreated" && parameterCount == 2
}.hookAfter { param ->
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")
statusBar = miuiPhoneStatusBarView.findViewById(statusBarId)
if (statusBar == null) return@hookAfter
statusBarLeft = statusBar!!.paddingLeft
statusBarTop = statusBar!!.paddingTop
statusBarRight = statusBar!!.paddingRight
statusBarBottom = statusBar!!.paddingBottom
if (isCompatibilityMode) {
val customLeftMargin = XSPUtils.getInt("status_bar_left_margin", 0)
if (customLeftMargin != 0) {
statusBarLeft = customLeftMargin
}
val customRightMargin = XSPUtils.getInt("status_bar_right_margin", 0)
if (customRightMargin != 0) {
statusBarRight = customRightMargin
}
updateLayout(context,1)
}
}
//兼容模式
findMethod("com.android.systemui.statusbar.phone.PhoneStatusBarView") {
name == "updateLayoutForCutout"
}.hookAfter {
if (isCompatibilityMode) {
val context = (it.thisObject as ViewGroup).context
updateLayout(context,1)
}
}
}
//时钟居中 //时钟居中
1 -> { 1 -> {
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") { findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") {
name == "onViewCreated" && parameterCount == 2 name == "onViewCreated" && parameterCount == 2
}.hookAfter { param -> }.hookAfter { param ->
val miuiPhoneStatusBarView = val miuiPhoneStatusBarView = param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
val context: Context = miuiPhoneStatusBarView.context val context: Context = miuiPhoneStatusBarView.context
val res: Resources = miuiPhoneStatusBarView.resources val res: Resources = miuiPhoneStatusBarView.resources
val statusBarId: Int = val statusBarId: Int = res.getIdentifier("status_bar", "id", "com.android.systemui")
res.getIdentifier("status_bar", "id", "com.android.systemui") val statusBarContentsId: Int = res.getIdentifier(
val statusBarContentsId: Int = "status_bar_contents", "id", "com.android.systemui"
res.getIdentifier("status_bar_contents", "id", "com.android.systemui") )
val systemIconAreaId: Int = val systemIconAreaId: Int = res.getIdentifier("system_icon_area", "id", "com.android.systemui")
res.getIdentifier("system_icon_area", "id", "com.android.systemui")
val clockId: Int = res.getIdentifier("clock", "id", "com.android.systemui") val clockId: Int = res.getIdentifier("clock", "id", "com.android.systemui")
val phoneStatusBarLeftContainerId: Int = val phoneStatusBarLeftContainerId: Int = res.getIdentifier(
res.getIdentifier( "phone_status_bar_left_container", "id", "com.android.systemui"
"phone_status_bar_left_container", )
"id", val notificationIconAreaInnerId: Int = res.getIdentifier(
"com.android.systemui" "notification_icon_area_inner", "id", "com.android.systemui"
) )
val notificationIconAreaInnerId: Int =
res.getIdentifier(
"notification_icon_area_inner",
"id",
"com.android.systemui"
)
statusBar = miuiPhoneStatusBarView.findViewById(statusBarId) statusBar = miuiPhoneStatusBarView.findViewById(statusBarId)
val statusBarContents: ViewGroup = val statusBarContents: ViewGroup = miuiPhoneStatusBarView.findViewById(statusBarContentsId)
miuiPhoneStatusBarView.findViewById(statusBarContentsId)
if (statusBar == null) return@hookAfter if (statusBar == null) return@hookAfter
val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId) val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId)
val phoneStatusBarLeftContainer: ViewGroup = val phoneStatusBarLeftContainer: ViewGroup = miuiPhoneStatusBarView.findViewById(
miuiPhoneStatusBarView.findViewById(phoneStatusBarLeftContainerId) phoneStatusBarLeftContainerId
val notificationIconAreaInner: ViewGroup = )
miuiPhoneStatusBarView.findViewById(notificationIconAreaInnerId) val notificationIconAreaInner: ViewGroup = miuiPhoneStatusBarView.findViewById(
val systemIconArea: ViewGroup = notificationIconAreaInnerId
miuiPhoneStatusBarView.findViewById(systemIconAreaId) )
val systemIconArea: ViewGroup = miuiPhoneStatusBarView.findViewById(systemIconAreaId)
(clock.parent as ViewGroup).removeView(clock) (clock.parent as ViewGroup).removeView(clock)
(phoneStatusBarLeftContainer.parent as ViewGroup).removeView( (phoneStatusBarLeftContainer.parent as ViewGroup).removeView(
@@ -108,41 +153,39 @@ object StatusBarLayoutForS : HookRegister() {
) )
(systemIconArea.parent as ViewGroup).removeView(systemIconArea) (systemIconArea.parent as ViewGroup).removeView(systemIconArea)
val mConstraintLayout = val mConstraintLayout = ConstraintLayout(context).also {
ConstraintLayout(context).also { it.layoutParams = ConstraintLayout.LayoutParams(
it.layoutParams = ConstraintLayout.LayoutParams( ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.MATCH_PARENT
ConstraintLayout.LayoutParams.MATCH_PARENT, )
ConstraintLayout.LayoutParams.MATCH_PARENT }
)
}
mConstraintLayout.addView(notificationIconAreaInner) mConstraintLayout.addView(notificationIconAreaInner)
val fullscreenNotificationIconAreaLp = LinearLayout.LayoutParams( val fullscreenNotificationIconAreaLp = LinearLayout.LayoutParams(
ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.MATCH_PARENT
ConstraintLayout.LayoutParams.MATCH_PARENT
) )
notificationIconAreaInner.layoutParams = fullscreenNotificationIconAreaLp notificationIconAreaInner.layoutParams = fullscreenNotificationIconAreaLp
//增加一个左对齐布局 //增加一个左对齐布局
mLeftLayout = LinearLayout(context) mLeftLayout = LinearLayout(context)
val leftLp: LinearLayout.LayoutParams = val leftLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f) 0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f
)
mLeftLayout!!.layoutParams = leftLp mLeftLayout!!.layoutParams = leftLp
mLeftLayout!!.gravity = Gravity.START or Gravity.CENTER_VERTICAL mLeftLayout!!.gravity = Gravity.START or Gravity.CENTER_VERTICAL
//增加一个居中布局 //增加一个居中布局
mCenterLayout = LinearLayout(context) mCenterLayout = LinearLayout(context)
val centerLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams( val centerLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT
LinearLayout.LayoutParams.MATCH_PARENT
) )
mCenterLayout!!.layoutParams = centerLp mCenterLayout!!.layoutParams = centerLp
mCenterLayout!!.gravity = Gravity.CENTER or Gravity.CENTER_VERTICAL mCenterLayout!!.gravity = Gravity.CENTER or Gravity.CENTER_VERTICAL
mRightLayout = LinearLayout(context) mRightLayout = LinearLayout(context)
val rightLp: LinearLayout.LayoutParams = val rightLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f) 0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f
)
mRightLayout!!.layoutParams = rightLp mRightLayout!!.layoutParams = rightLp
mRightLayout!!.gravity = Gravity.END or Gravity.CENTER_VERTICAL mRightLayout!!.gravity = Gravity.END or Gravity.CENTER_VERTICAL
mLeftLayout!!.addView(phoneStatusBarLeftContainer) mLeftLayout!!.addView(phoneStatusBarLeftContainer)
@@ -160,7 +203,7 @@ object StatusBarLayoutForS : HookRegister() {
statusBarBottom = statusBar!!.paddingBottom statusBarBottom = statusBar!!.paddingBottom
if (getHoleLocation == 2) { if (isCompatibilityMode) {
val customLeftMargin = XSPUtils.getInt("status_bar_left_margin", 0) val customLeftMargin = XSPUtils.getInt("status_bar_left_margin", 0)
if (customLeftMargin != 0) { if (customLeftMargin != 0) {
statusBarLeft = customLeftMargin statusBarLeft = customLeftMargin
@@ -170,7 +213,7 @@ object StatusBarLayoutForS : HookRegister() {
if (customRightMargin != 0) { if (customRightMargin != 0) {
statusBarRight = customRightMargin statusBarRight = customRightMargin
} }
updateLayout(context) updateLayout(context,2)
} }
} }
@@ -179,7 +222,7 @@ object StatusBarLayoutForS : HookRegister() {
}.hookAfter { }.hookAfter {
hasEnable("layout_compatibility_mode") { hasEnable("layout_compatibility_mode") {
val context = (it.thisObject as ViewGroup).context val context = (it.thisObject as ViewGroup).context
updateLayout(context) updateLayout(context,2)
} }
} }
} }
@@ -188,14 +231,12 @@ object StatusBarLayoutForS : HookRegister() {
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") { findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") {
name == "onViewCreated" && parameterCount == 2 name == "onViewCreated" && parameterCount == 2
}.hookAfter { param -> }.hookAfter { param ->
val miuiPhoneStatusBarView = val miuiPhoneStatusBarView = param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
val context: Context = miuiPhoneStatusBarView.context val context: Context = miuiPhoneStatusBarView.context
val res: Resources = miuiPhoneStatusBarView.resources val res: Resources = miuiPhoneStatusBarView.resources
//组件ID //组件ID
val statusBarId: Int = val statusBarId: Int = res.getIdentifier("status_bar", "id", "com.android.systemui")
res.getIdentifier("status_bar", "id", "com.android.systemui")
val clockId: Int = res.getIdentifier("clock", "id", "com.android.systemui") val clockId: Int = res.getIdentifier("clock", "id", "com.android.systemui")
val batteryId: Int = res.getIdentifier("battery", "id", "com.android.systemui") val batteryId: Int = res.getIdentifier("battery", "id", "com.android.systemui")
@@ -207,8 +248,7 @@ object StatusBarLayoutForS : HookRegister() {
//新建布局 //新建布局
val rightLp = LinearLayout.LayoutParams( val rightLp = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT
LinearLayout.LayoutParams.MATCH_PARENT
).also { ).also {
it.marginStart = dp2px(context, 5f) it.marginStart = dp2px(context, 5f)
} }
@@ -220,6 +260,36 @@ object StatusBarLayoutForS : HookRegister() {
battery.addView(mRightLayout) battery.addView(mRightLayout)
(clock.parent as ViewGroup).removeView(clock) (clock.parent as ViewGroup).removeView(clock)
mRightLayout!!.addView(clock) mRightLayout!!.addView(clock)
statusBarLeft = statusBar!!.paddingLeft
statusBarTop = statusBar!!.paddingTop
statusBarRight = statusBar!!.paddingRight
statusBarBottom = statusBar!!.paddingBottom
if (isCompatibilityMode) {
val customLeftMargin = XSPUtils.getInt("status_bar_left_margin", 0)
if (customLeftMargin != 0) {
statusBarLeft = customLeftMargin
}
val customRightMargin = XSPUtils.getInt("status_bar_right_margin", 0)
if (customRightMargin != 0) {
statusBarRight = customRightMargin
}
updateLayout(context,1)
}
}
//兼容模式
findMethod("com.android.systemui.statusbar.phone.PhoneStatusBarView") {
name == "updateLayoutForCutout"
}.hookAfter {
if (isCompatibilityMode) {
val context = (it.thisObject as ViewGroup).context
updateLayout(context,1)
}
} }
} }
//时钟居中+图标居左 //时钟居中+图标居左
@@ -227,65 +297,45 @@ object StatusBarLayoutForS : HookRegister() {
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") { findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") {
name == "onViewCreated" && parameterCount == 2 name == "onViewCreated" && parameterCount == 2
}.hookAfter { param -> }.hookAfter { param ->
val miuiPhoneStatusBarView = val miuiPhoneStatusBarView = param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
val context: Context = miuiPhoneStatusBarView.context val context: Context = miuiPhoneStatusBarView.context
val res: Resources = miuiPhoneStatusBarView.resources val res: Resources = miuiPhoneStatusBarView.resources
val statusBarId: Int = val statusBarId: Int = res.getIdentifier("status_bar", "id", "com.android.systemui")
res.getIdentifier("status_bar", "id", "com.android.systemui") val statusBarContentsId: Int = res.getIdentifier(
val statusBarContentsId: Int = "status_bar_contents", "id", "com.android.systemui"
res.getIdentifier("status_bar_contents", "id", "com.android.systemui") )
val systemIconAreaId: Int = val systemIconAreaId: Int = res.getIdentifier("system_icon_area", "id", "com.android.systemui")
res.getIdentifier("system_icon_area", "id", "com.android.systemui")
val clockId: Int = res.getIdentifier("clock", "id", "com.android.systemui") val clockId: Int = res.getIdentifier("clock", "id", "com.android.systemui")
val phoneStatusBarLeftContainerId: Int = val phoneStatusBarLeftContainerId: Int = res.getIdentifier(
res.getIdentifier( "phone_status_bar_left_container", "id", "com.android.systemui"
"phone_status_bar_left_container", )
"id", val fullscreenNotificationIconAreaId: Int = res.getIdentifier(
"com.android.systemui" "fullscreen_notification_icon_area", "id", "com.android.systemui"
) )
val fullscreenNotificationIconAreaId: Int = val statusIconsId: Int = res.getIdentifier(
res.getIdentifier( "statusIcons", "id", "com.android.systemui"
"fullscreen_notification_icon_area", )
"id", val systemIconsId: Int = res.getIdentifier(
"com.android.systemui" "system_icons", "id", "com.android.systemui"
) )
val statusIconsId: Int = val batteryId: Int = res.getIdentifier(
res.getIdentifier( "battery", "id", "com.android.systemui"
"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) statusBar = miuiPhoneStatusBarView.findViewById(statusBarId)
val statusBarContents: ViewGroup = val statusBarContents: ViewGroup = miuiPhoneStatusBarView.findViewById(statusBarContentsId)
miuiPhoneStatusBarView.findViewById(statusBarContentsId)
if (statusBar == null) return@hookAfter if (statusBar == null) return@hookAfter
val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId) val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId)
val phoneStatusBarLeftContainer: ViewGroup = val phoneStatusBarLeftContainer: ViewGroup = miuiPhoneStatusBarView.findViewById(
miuiPhoneStatusBarView.findViewById(phoneStatusBarLeftContainerId) phoneStatusBarLeftContainerId
val fullscreenNotificationIconArea: ViewGroup = )
miuiPhoneStatusBarView.findViewById(fullscreenNotificationIconAreaId) val fullscreenNotificationIconArea: ViewGroup = miuiPhoneStatusBarView.findViewById(
val systemIconArea: ViewGroup = fullscreenNotificationIconAreaId
miuiPhoneStatusBarView.findViewById(systemIconAreaId) )
val statusIcons: ViewGroup = val systemIconArea: ViewGroup = miuiPhoneStatusBarView.findViewById(systemIconAreaId)
miuiPhoneStatusBarView.findViewById(statusIconsId) val statusIcons: ViewGroup = miuiPhoneStatusBarView.findViewById(statusIconsId)
val systemIcons: ViewGroup = val systemIcons: ViewGroup = miuiPhoneStatusBarView.findViewById(systemIconsId)
miuiPhoneStatusBarView.findViewById(systemIconsId) val battery: ViewGroup = miuiPhoneStatusBarView.findViewById(batteryId)
val battery: ViewGroup =
miuiPhoneStatusBarView.findViewById(batteryId)
(clock.parent as ViewGroup).removeView(clock) (clock.parent as ViewGroup).removeView(clock)
(phoneStatusBarLeftContainer.parent as ViewGroup).removeView( (phoneStatusBarLeftContainer.parent as ViewGroup).removeView(
@@ -299,29 +349,25 @@ object StatusBarLayoutForS : HookRegister() {
fullscreenNotificationIconArea fullscreenNotificationIconArea
) )
val mConstraintLayout = val mConstraintLayout = ConstraintLayout(context).also {
ConstraintLayout(context).also { it.layoutParams = ConstraintLayout.LayoutParams(
it.layoutParams = ConstraintLayout.LayoutParams( ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.MATCH_PARENT
ConstraintLayout.LayoutParams.MATCH_PARENT, )
ConstraintLayout.LayoutParams.MATCH_PARENT }
)
}
mConstraintLayout.addView(fullscreenNotificationIconArea) mConstraintLayout.addView(fullscreenNotificationIconArea)
mConstraintLayout.addView(battery) mConstraintLayout.addView(battery)
battery.layoutParams = ConstraintLayout.LayoutParams( battery.layoutParams = ConstraintLayout.LayoutParams(
ConstraintLayout.LayoutParams.WRAP_CONTENT, ConstraintLayout.LayoutParams.WRAP_CONTENT, ConstraintLayout.LayoutParams.MATCH_PARENT
ConstraintLayout.LayoutParams.MATCH_PARENT
).also { ).also {
it.endToEnd = 0 it.endToEnd = 0
} }
fullscreenNotificationIconArea.layoutParams = ConstraintLayout.LayoutParams( fullscreenNotificationIconArea.layoutParams = ConstraintLayout.LayoutParams(
0, 0, ConstraintLayout.LayoutParams.MATCH_PARENT
ConstraintLayout.LayoutParams.MATCH_PARENT
).also { ).also {
it.startToEnd = batteryId it.startToEnd = batteryId
it.endToEnd = 0 it.endToEnd = 0
@@ -331,24 +377,25 @@ object StatusBarLayoutForS : HookRegister() {
//增加一个左对齐布局 //增加一个左对齐布局
mLeftLayout = LinearLayout(context) mLeftLayout = LinearLayout(context)
val leftLp: LinearLayout.LayoutParams = val leftLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f) 0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f
)
mLeftLayout!!.layoutParams = leftLp mLeftLayout!!.layoutParams = leftLp
mLeftLayout!!.gravity = Gravity.START or Gravity.CENTER_VERTICAL mLeftLayout!!.gravity = Gravity.START or Gravity.CENTER_VERTICAL
//增加一个居中布局 //增加一个居中布局
mCenterLayout = LinearLayout(context) mCenterLayout = LinearLayout(context)
val centerLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams( val centerLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT
LinearLayout.LayoutParams.MATCH_PARENT
) )
mCenterLayout!!.layoutParams = centerLp mCenterLayout!!.layoutParams = centerLp
mCenterLayout!!.gravity = Gravity.CENTER or Gravity.CENTER_VERTICAL mCenterLayout!!.gravity = Gravity.CENTER or Gravity.CENTER_VERTICAL
//增加一个右布局 //增加一个右布局
mRightLayout = LinearLayout(context) mRightLayout = LinearLayout(context)
val rightLp: LinearLayout.LayoutParams = val rightLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f) 0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f
)
mRightLayout!!.layoutParams = rightLp mRightLayout!!.layoutParams = rightLp
mRightLayout!!.gravity = Gravity.END or Gravity.CENTER_VERTICAL mRightLayout!!.gravity = Gravity.END or Gravity.CENTER_VERTICAL
@@ -375,7 +422,7 @@ object StatusBarLayoutForS : HookRegister() {
statusBarBottom = statusBar!!.paddingBottom statusBarBottom = statusBar!!.paddingBottom
if (getHoleLocation == 2) { if (isCompatibilityMode) {
val customLeftMargin = XSPUtils.getInt("status_bar_left_margin", 0) val customLeftMargin = XSPUtils.getInt("status_bar_left_margin", 0)
if (customLeftMargin != 0) { if (customLeftMargin != 0) {
statusBarLeft = customLeftMargin statusBarLeft = customLeftMargin
@@ -385,16 +432,16 @@ object StatusBarLayoutForS : HookRegister() {
if (customRightMargin != 0) { if (customRightMargin != 0) {
statusBarRight = customRightMargin statusBarRight = customRightMargin
} }
updateLayout(context) updateLayout(context,2)
} }
} }
//兼容模式 //兼容模式
findMethod("com.android.systemui.statusbar.phone.PhoneStatusBarView") { findMethod("com.android.systemui.statusbar.phone.PhoneStatusBarView") {
name == "updateLayoutForCutout" name == "updateLayoutForCutout"
}.hookAfter { }.hookAfter {
if (getHoleLocation == 2) { if (isCompatibilityMode) {
val context = (it.thisObject as ViewGroup).context val context = (it.thisObject as ViewGroup).context
updateLayout(context) updateLayout(context,2)
} }
} }
@@ -404,12 +451,10 @@ object StatusBarLayoutForS : HookRegister() {
}.hookAfter { }.hookAfter {
val miuiPhoneStatusBarView = it.thisObject.getObjectAs<ViewGroup>("mStatusBar") val miuiPhoneStatusBarView = it.thisObject.getObjectAs<ViewGroup>("mStatusBar")
val res = miuiPhoneStatusBarView.resources val res = miuiPhoneStatusBarView.resources
val statusBarId = val statusBarId = res.getIdentifier("status_bar", "id", "com.android.systemui")
res.getIdentifier("status_bar", "id", "com.android.systemui")
val statusBar1 = miuiPhoneStatusBarView.findViewById<ViewGroup>(statusBarId) val statusBar1 = miuiPhoneStatusBarView.findViewById<ViewGroup>(statusBarId)
//非锁屏下整个状态栏布局 //非锁屏下整个状态栏布局
val keyguardMgr = val keyguardMgr = statusBar1.context.getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
statusBar1.context.getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
if (keyguardMgr.isKeyguardLocked) { if (keyguardMgr.isKeyguardLocked) {
statusBar1!!.visibility = View.GONE statusBar1!!.visibility = View.GONE
} else { } else {

View File

@@ -2,12 +2,10 @@ package com.lt2333.simplicitytools.hooks.rules.s.systemui
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.content.res.Resources
import android.os.Handler import android.os.Handler
import android.provider.Settings import android.provider.Settings
import android.util.TypedValue import android.util.TypedValue
import android.view.Gravity import android.view.Gravity
import android.view.ViewGroup
import android.widget.TextView import android.widget.TextView
import com.github.kyuubiran.ezxhelper.utils.* import com.github.kyuubiran.ezxhelper.utils.*
import com.lt2333.simplicitytools.utils.XSPUtils import com.lt2333.simplicitytools.utils.XSPUtils
@@ -16,6 +14,7 @@ import java.lang.reflect.Method
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
object StatusBarTimeCustomizationForS : HookRegister() { object StatusBarTimeCustomizationForS : HookRegister() {
private val getMode = XSPUtils.getInt("custom_clock_mode", 0) private val getMode = XSPUtils.getInt("custom_clock_mode", 0)
@@ -30,14 +29,12 @@ object StatusBarTimeCustomizationForS : HookRegister() {
private val isSecond = XSPUtils.getBoolean("status_bar_time_seconds", false) private val isSecond = XSPUtils.getBoolean("status_bar_time_seconds", false)
private val isDoubleHour = XSPUtils.getBoolean("status_bar_time_double_hour", false) private val isDoubleHour = XSPUtils.getBoolean("status_bar_time_double_hour", false)
private val isPeriod = XSPUtils.getBoolean("status_bar_time_period", true) private val isPeriod = XSPUtils.getBoolean("status_bar_time_period", true)
private val isCenterAlign = private val isCenterAlign = XSPUtils.getBoolean("status_bar_time_double_line_center_align", false)
XSPUtils.getBoolean("status_bar_time_double_line_center_align", false)
//极客模式 //极客模式
private val getGeekClockSize = XSPUtils.getInt("status_bar_clock_size_geek", 0) private val getGeekClockSize = XSPUtils.getInt("status_bar_clock_size_geek", 0)
private val getGeekFormat = XSPUtils.getString("custom_clock_format_geek", "HH:mm:ss") private val getGeekFormat = XSPUtils.getString("custom_clock_format_geek", "HH:mm:ss")
private val isGeekCenterAlign = private val isGeekCenterAlign = XSPUtils.getBoolean("status_bar_time_center_align_geek", false)
XSPUtils.getBoolean("status_bar_time_center_align_geek", false)
private lateinit var nowTime: Date private lateinit var nowTime: Date
private var str = "" private var str = ""
@@ -83,9 +80,7 @@ object StatusBarTimeCustomizationForS : HookRegister() {
} }
} }
Timer().scheduleAtFixedRate( Timer().scheduleAtFixedRate(
T(), T(), 1000 - System.currentTimeMillis() % 1000, 1000
1000 - System.currentTimeMillis() % 1000,
1000
) )
} catch (_: Exception) { } catch (_: Exception) {
} }
@@ -98,8 +93,7 @@ object StatusBarTimeCustomizationForS : HookRegister() {
val textV = it.thisObject as TextView val textV = it.thisObject as TextView
if (textV.resources.getResourceEntryName(textV.id) == "clock") { if (textV.resources.getResourceEntryName(textV.id) == "clock") {
val t = Settings.System.getString( val t = Settings.System.getString(
c!!.contentResolver, c!!.contentResolver, Settings.System.TIME_12_24
Settings.System.TIME_12_24
) )
val is24 = t == "24" val is24 = t == "24"
nowTime = Calendar.getInstance().time nowTime = Calendar.getInstance().time
@@ -110,15 +104,18 @@ object StatusBarTimeCustomizationForS : HookRegister() {
} }
if (isCenterAlign) { if (isCenterAlign) {
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") { findConstructor("com.android.systemui.statusbar.views.MiuiClock") {
name == "onViewCreated" && parameterCount == 2 paramCount == 3
}.hookAfter { }.hookAfter {
val miuiPhoneStatusBarView = try {
it.thisObject.getObject("mStatusBar") as ViewGroup val textV = it.thisObject as TextView
val res: Resources = miuiPhoneStatusBarView.resources if (textV.resources.getResourceEntryName(textV.id) == "clock") {
val clockId: Int = res.getIdentifier("clock", "id", "com.android.systemui") c = it.args[0] as Context
val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId) val textV = it.thisObject as TextView
clock.gravity = Gravity.CENTER textV.gravity = Gravity.CENTER
}
} catch (_: Exception) {
}
} }
} }
} }
@@ -152,9 +149,7 @@ object StatusBarTimeCustomizationForS : HookRegister() {
} }
} }
Timer().scheduleAtFixedRate( Timer().scheduleAtFixedRate(
T(), T(), 1000 - System.currentTimeMillis() % 1000, 1000
1000 - System.currentTimeMillis() % 1000,
1000
) )
} catch (_: Exception) { } catch (_: Exception) {
} }
@@ -162,27 +157,38 @@ object StatusBarTimeCustomizationForS : HookRegister() {
findMethod("com.android.systemui.statusbar.views.MiuiClock") { findMethod("com.android.systemui.statusbar.views.MiuiClock") {
name == "updateTime" name == "updateTime"
}.hookAfter { }.hookBefore {
try { try {
val textV = it.thisObject as TextView val textV = it.thisObject as TextView
if (textV.resources.getResourceEntryName(textV.id) == "clock") { if (textV.resources.getResourceEntryName(textV.id) == "clock") {
nowTime = Calendar.getInstance().time val mMiuiStatusBarClockController = textV.getObject("mMiuiStatusBarClockController")
textV.text = SimpleDateFormat(getGeekFormat).format(nowTime) val mCalendar = mMiuiStatusBarClockController.invokeMethodAuto("getCalendar")
mCalendar?.invokeMethodAuto(
"setTimeInMillis", System.currentTimeMillis()
)
val textSb = StringBuilder()
val formatSb = StringBuilder(getGeekFormat.toString())
mCalendar?.invokeMethodAuto("format", c, textSb, formatSb)
textV.text = textSb.toString()
it.result = null
} }
} catch (_: Exception) { } catch (_: Exception) {
} }
} }
if (isGeekCenterAlign) { if (isGeekCenterAlign) {
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") { findConstructor("com.android.systemui.statusbar.views.MiuiClock") {
name == "onViewCreated" && parameterCount == 2 paramCount == 3
}.hookAfter { }.hookAfter {
val miuiPhoneStatusBarView = try {
it.thisObject.getObject("mStatusBar") as ViewGroup val textV = it.thisObject as TextView
val res: Resources = miuiPhoneStatusBarView.resources if (textV.resources.getResourceEntryName(textV.id) == "clock") {
val clockId: Int = res.getIdentifier("clock", "id", "com.android.systemui") c = it.args[0] as Context
val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId) val textV = it.thisObject as TextView
clock.gravity = Gravity.CENTER textV.gravity = Gravity.CENTER
}
} catch (_: Exception) {
}
} }
} }
} }
@@ -197,7 +203,6 @@ object StatusBarTimeCustomizationForS : HookRegister() {
if (isYear) { if (isYear) {
if (isZh) { if (isZh) {
datePattern += "YY年" datePattern += "YY年"
// if (!isHideSpace) datePattern = "$datePattern "
} else { } else {
datePattern += "YY" datePattern += "YY"
if (isMonth || isDay) datePattern += "/" if (isMonth || isDay) datePattern += "/"
@@ -206,7 +211,6 @@ object StatusBarTimeCustomizationForS : HookRegister() {
if (isMonth) { if (isMonth) {
if (isZh) { if (isZh) {
datePattern += "M月" datePattern += "M月"
// if (!isHideSpace) datePattern = "$datePattern "
} else { } else {
datePattern += "M" datePattern += "M"
if (isDay) datePattern += "/" if (isDay) datePattern += "/"

View File

@@ -0,0 +1,16 @@
package com.lt2333.simplicitytools.hooks.rules.t.systemui
import com.github.kyuubiran.ezxhelper.utils.findMethod
import com.github.kyuubiran.ezxhelper.utils.hookBefore
import com.lt2333.simplicitytools.utils.hasEnable
import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
object DisableBluetoothTemporarilyOffForT: HookRegister() {
override fun init()= hasEnable("disable_bluetooth_temporarily_off") {
findMethod("com.android.settingslib.bluetooth.LocalBluetoothAdapter"){
name == "isSupportBluetoothRestrict" && parameterCount==1
}.hookBefore {
it.result = false
}
}
}

View File

@@ -28,21 +28,31 @@ object StatusBarLayoutForT : HookRegister() {
private var statusBarBottom = 0 private var statusBarBottom = 0
override fun init() { override fun init() {
// TODO: Android13状态栏布局不可用
var mLeftLayout: LinearLayout? = null var mLeftLayout: LinearLayout? = null
var mRightLayout: LinearLayout? = null var mRightLayout: LinearLayout? = null
var mCenterLayout: LinearLayout? var mCenterLayout: LinearLayout?
var statusBar: ViewGroup? = null var statusBar: ViewGroup? = null
fun updateLayout(context: Context) { //判断屏幕状态更新布局 mode: 1正常布局 2居中布局
//判断屏幕方向 fun updateLayout(context: Context,mode: Int) {
val mConfiguration: Configuration = context.resources.configuration when(mode){
if (mConfiguration.orientation == Configuration.ORIENTATION_PORTRAIT) { 1->{
mLeftLayout!!.setPadding(statusBarLeft, 0, 0, 0) val mConfiguration: Configuration = context.resources.configuration
mRightLayout!!.setPadding(0, 0, statusBarRight, 0) if (mConfiguration.orientation == Configuration.ORIENTATION_PORTRAIT) { //横屏
statusBar!!.setPadding(0, statusBarTop, 0, statusBarBottom) statusBar!!.setPadding(statusBarLeft, statusBarTop, statusBarRight, statusBarBottom)
}
}
2->{
val mConfiguration: Configuration = context.resources.configuration
if (mConfiguration.orientation == Configuration.ORIENTATION_PORTRAIT) { //横屏
mLeftLayout!!.setPadding(statusBarLeft, 0, 0, 0)
mRightLayout!!.setPadding(0, 0, statusBarRight, 0)
statusBar!!.setPadding(0, statusBarTop, 0, statusBarBottom)
}else{ //竖屏
mLeftLayout!!.setPadding(0, 0, 0, 0)
mRightLayout!!.setPadding(0, 0, 0, 0)
}
}
} }
} }
@@ -55,9 +65,52 @@ object StatusBarLayoutForT : HookRegister() {
} }
} }
//修改对应布局
when (getMode) { when (getMode) {
//默认 //默认
0 -> return 0 -> {
findMethod("com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment") {
name == "onViewCreated" && parameterCount == 2
}.hookAfter { param ->
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")
statusBar = miuiPhoneStatusBarView.findViewById(statusBarId)
if (statusBar == null) return@hookAfter
statusBarLeft = statusBar!!.paddingLeft
statusBarTop = statusBar!!.paddingTop
statusBarRight = statusBar!!.paddingRight
statusBarBottom = statusBar!!.paddingBottom
if (isCompatibilityMode) {
val customLeftMargin = XSPUtils.getInt("status_bar_left_margin", 0)
if (customLeftMargin != 0) {
statusBarLeft = customLeftMargin
}
val customRightMargin = XSPUtils.getInt("status_bar_right_margin", 0)
if (customRightMargin != 0) {
statusBarRight = customRightMargin
}
updateLayout(context,1)
}
}
//兼容模式
findMethod("com.android.systemui.statusbar.phone.PhoneStatusBarView") {
name == "updateLayoutForCutout"
}.hookAfter {
if (isCompatibilityMode) {
val context = (it.thisObject as ViewGroup).context
updateLayout(context,1)
}
}
}
//时钟居中 //时钟居中
1 -> { 1 -> {
findMethod("com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment") { findMethod("com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment") {
@@ -159,7 +212,7 @@ object StatusBarLayoutForT : HookRegister() {
if (customRightMargin != 0) { if (customRightMargin != 0) {
statusBarRight = customRightMargin statusBarRight = customRightMargin
} }
updateLayout(context) updateLayout(context,2)
} }
} }
@@ -168,7 +221,7 @@ object StatusBarLayoutForT : HookRegister() {
}.hookAfter { }.hookAfter {
hasEnable("layout_compatibility_mode") { hasEnable("layout_compatibility_mode") {
val context = (it.thisObject as ViewGroup).context val context = (it.thisObject as ViewGroup).context
updateLayout(context) updateLayout(context,2)
} }
} }
} }
@@ -206,6 +259,36 @@ object StatusBarLayoutForT : HookRegister() {
battery.addView(mRightLayout) battery.addView(mRightLayout)
(clock.parent as ViewGroup).removeView(clock) (clock.parent as ViewGroup).removeView(clock)
mRightLayout!!.addView(clock) mRightLayout!!.addView(clock)
statusBarLeft = statusBar!!.paddingLeft
statusBarTop = statusBar!!.paddingTop
statusBarRight = statusBar!!.paddingRight
statusBarBottom = statusBar!!.paddingBottom
if (isCompatibilityMode) {
val customLeftMargin = XSPUtils.getInt("status_bar_left_margin", 0)
if (customLeftMargin != 0) {
statusBarLeft = customLeftMargin
}
val customRightMargin = XSPUtils.getInt("status_bar_right_margin", 0)
if (customRightMargin != 0) {
statusBarRight = customRightMargin
}
updateLayout(context,1)
}
}
//兼容模式
findMethod("com.android.systemui.statusbar.phone.PhoneStatusBarView") {
name == "updateLayoutForCutout"
}.hookAfter {
if (isCompatibilityMode) {
val context = (it.thisObject as ViewGroup).context
updateLayout(context,1)
}
} }
} }
//时钟居中+图标居左 //时钟居中+图标居左
@@ -348,7 +431,7 @@ object StatusBarLayoutForT : HookRegister() {
if (customRightMargin != 0) { if (customRightMargin != 0) {
statusBarRight = customRightMargin statusBarRight = customRightMargin
} }
updateLayout(context) updateLayout(context,2)
} }
} }
//兼容模式 //兼容模式
@@ -357,7 +440,7 @@ object StatusBarLayoutForT : HookRegister() {
}.hookAfter { }.hookAfter {
if (isCompatibilityMode) { if (isCompatibilityMode) {
val context = (it.thisObject as ViewGroup).context val context = (it.thisObject as ViewGroup).context
updateLayout(context) updateLayout(context,2)
} }
} }

View File

@@ -1,4 +1,282 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<!--Status bar icons--> <!--Status bar icons-->
<string name="Done">OK</string>
<string name="HideLauncherIcon">Launcher-Symbol ausblenden</string>
<string name="Tips">Tipps</string>
<string name="UsePreSig">Verwenden Sie installierte Signaturen</string>
<string name="UsePreSig_summary">Verwenden Sie bei der Installation immer Signaturen von bereits installierten Apps.\nDas ist äußerst <b>gefährlich</b>.\nNur aktivieren, wenn es wirklich nötig ist!</string>
<string name="abc_action_bar_home_description">Zur Startseite</string>
<string name="abc_action_bar_up_description">Nach oben</string>
<string name="abc_action_menu_overflow_description">Weitere Optionen</string>
<string name="abc_action_mode_done">Fertig</string>
<string name="abc_activity_chooser_view_see_all">Alle anzeigen</string>
<string name="abc_activitychooserview_choose_application">App auswählen</string>
<string name="abc_capital_off">AUS</string>
<string name="abc_capital_on">AN</string>
<string name="abc_menu_alt_shortcut_label">Alt +</string>
<string name="abc_menu_ctrl_shortcut_label">Strg +</string>
<string name="abc_menu_delete_shortcut_label">Löschen</string>
<string name="abc_menu_enter_shortcut_label">Eingabetaste</string>
<string name="abc_menu_function_shortcut_label">Funktionstaste +</string>
<string name="abc_menu_meta_shortcut_label">Meta-Taste +</string>
<string name="abc_menu_shift_shortcut_label">Umschalttaste +</string>
<string name="abc_menu_space_shortcut_label">Leertaste</string>
<string name="abc_menu_sym_shortcut_label">Sym-Taste +</string>
<string name="abc_prepend_shortcut_label">Menütaste +</string>
<string name="abc_search_hint">Suchen…</string>
<string name="abc_searchview_description_clear">Suchanfrage löschen</string>
<string name="abc_searchview_description_query">Suchanfrage</string>
<string name="abc_searchview_description_search">Suche</string>
<string name="abc_searchview_description_submit">Anfrage senden</string>
<string name="abc_searchview_description_voice">Sprachsuche</string>
<string name="abc_shareactionprovider_share_with">Teilen mit</string>
<string name="abc_shareactionprovider_share_with_application">Mit %s teilen</string>
<string name="abc_toolbar_collapse_description">Minimieren</string>
<string name="about">Über</string>
<string name="about_module">Über dieses Modul</string>
<string name="about_module_summary">Modulbezogene Informationen anzeigen</string>
<string name="allow_screenshots">Screenshot zulassen</string>
<string name="allow_untrusted_touches">Lassen Sie nicht vertrauenswürdige Berührungen zu</string>
<string name="app_coolapk_url">Kommen Sie und geben Sie uns eine Fünf-Sterne-Bewertung</string>
<string name="app_coolapk_url_summary">Dies kann uns besser auffindbar machen</string>
<string name="app_name">WooBox für MIUI</string>
<string name="are_you_sure_reboot">Bist du sicher, dass du neu starten möchtest?</string>
<string name="are_you_sure_reboot_scope">Sind Sie sicher, dass Sie alle Bereiche neu starten?</string>
<string name="authcreak">Digest-Verifizierung deaktivieren</string>
<string name="authcreak_summary">Ermöglicht die Installation von Apps nach dem Ändern der Datei in apk (Ignorieren des ungültigen Digest-Fehlers).</string>
<string name="battery_life_function">Akkuseite zeigt die aktuelle Temperatur</string>
<string name="battery_optimization">Akkuoptimierung</string>
<string name="battery_optimization_summary">Das von MIUI ausgeblendete Akkuoptimierungsmenü schnell öffnen</string>
<string name="battery_percentage_font_size">Schriftgröße des Akku in Prozent</string>
<string name="big_mobile_type_icon">Großes Mobile-Typ-Symbol</string>
<string name="big_mobile_type_icon_bold">Großes Mobile-Typ-Symbol fett</string>
<string name="big_mobile_type_icon_left_and_right_margins">Großes mobiles Symbol am linken und rechten Rand</string>
<string name="big_mobile_type_icon_size">Größe des Symbols für große mobile Typen</string>
<string name="big_mobile_type_icon_up_and_down_position">Großes Symbol für mobile Typen nach oben und unten</string>
<string name="big_mobile_type_location">Großes Symbol für mobile Typen</string>
<string name="big_mobile_type_only_show_network_card">Großer Mobiltyp zeigt nur Netzwerkkarte</string>
<string name="can_notification_slide">Die meisten Benachrichtigungen können in ein kleines Fenster verschoben werden</string>
<string name="can_notification_slide_summary">Einige Benachrichtigungen über Mi Push werden möglicherweise nicht unterstützt.</string>
<string name="cancel">Abbrechen</string>
<string name="cast">Übertragen</string>
<string name="center">Zentriert</string>
<string name="click_to_view_use_cases">Tippen, um App-Fälle anzuzeigen</string>
<string name="clock_center">Uhr zentriert</string>
<string name="clock_center_and_icon_left">Uhr zentriert und Symbol links</string>
<string name="clock_right">Uhr rechts</string>
<string name="contributor_list">Liste der Open-Source-Repository-Mitwirkenden</string>
<string name="control_center">Kontrollzentrum</string>
<string name="control_center_weather_summary">Die MiSmart Hub Version wird derzeit nicht unterstützt</string>
<string name="corepacth">Einschränkungen entfernen</string>
<string name="corepacth_summary">Unterstützung für Downgrade/andere Signatur/unsignierte Installation</string>
<string name="current">Aktuell:</string>
<string name="current_current">Aktuell</string>
<string name="custom_clock_format_geek">Uhrformat</string>
<string name="custom_clock_mode">Benutzerdefinierter Uhrmodus</string>
<string name="custom_clock_switch">Benutzerdefinierter Uhrschalter</string>
<string name="custom_mobile_type_text">Benutzerdefinierter mobiler Text</string>
<string name="custom_mobile_type_text_switch">Benutzerdefinierter mobiler Textschalter</string>
<string name="def">"Standard: "</string>
<string name="default1">Standard</string>
<string name="delete_on_post_notification">Anzeige über Benachrichtigung entfernen</string>
<string name="delete_on_post_notification_summary">Entfernen Sie die Benachrichtigung „Diese App wird über anderen Apps angezeigt“</string>
<string name="dev_coolapk">Autor Coolapk</string>
<string name="dev_coolapk_name">\@Udui Little Transparent</string>
<string name="developer">Entwickler</string>
<string name="digestCreak">Vergleichssignaturen deaktivieren</string>
<string name="digestCreak_summary">Neuinstallation der App mit unterschiedlichen Signaturen zulassen.</string>
<string name="disable_bluetooth_temporarily_off">Bluetooth vorübergehend deaktivieren</string>
<string name="disable_flag_secure">Screenshot zulassen</string>
<string name="disable_flag_secure_summary">Erlaube Screenshot in Software, die es nicht erlaubt\ndas Hinzufügen von Drop-down-Schnelleinstellungen im Kontrollzentrum für Sicherheit zu unterstützen</string>
<string name="discussions">Diskussionen</string>
<string name="do_not_clear_app">Verhindert das killen von Hintergrund-Apps</string>
<string name="do_not_clear_app_summary">Kann zu erhöhtem Stromverbrauch führen, empfohlen mit \"Millet aggressiver machen\", NICHT empfohlen für die Verwendung mit Tombstones</string>
<string name="double_tap_to_sleep">Doppeltippen zum Schlafen</string>
<string name="downgr">Downgrade zulassen</string>
<string name="downgr_summary">Downgrade von Apps zulassen.</string>
<string name="enable_wave_charge_animation">Wellenladung-Animation aktivieren</string>
<string name="enhancedMode">Erweiterter Modus</string>
<string name="enhancedMode_summary">Führen Sie einige Validierungen in der App durch</string>
<string name="failed_after_restart">Es wird nach dem Neustart des Systems wiederhergestellt</string>
<string name="force_support_send_app">Erzwingen Sie das Öffnen aller unterstützten Apps auf einem anderen Gerät</string>
<string name="geek">Aussenseiter</string>
<string name="github_url">Mehr Entwickler zur Teilnahme an der Entwicklung einladen</string>
<string name="hide_airplane_icon">Flugzeugmodus-Symbol ausblenden</string>
<string name="hide_alarm_icon">Alarmsymbol ausblenden</string>
<string name="hide_battery_charging_icon">Ladesymbol ausblenden</string>
<string name="hide_battery_icon">Akkusymbol ausblenden</string>
<string name="hide_battery_percentage_icon">Akku ausblenden (%)</string>
<string name="hide_battery_percentage_icon_summary">Die Anzeigefunktion für den Akkuprozentsatz muss von Ihnen selbst aktiviert werden</string>
<string name="hide_big_hd_icon">Große HD-Symbol ausblenden</string>
<string name="hide_bluetooth_battery_icon">Bluetooth Akku-Symbol ausblenden</string>
<string name="hide_bluetooth_icon">Bluetooth-Symbol ausblenden</string>
<string name="hide_gps_icon">GPS-Symbol ausblenden</string>
<string name="hide_hd_no_service_icon">HD-Kein-Dienst-Symbol ausblenden</string>
<string name="hide_headset_icon">Kopfhörer-Symbol ausblenden</string>
<string name="hide_hotspot_icon">Symbol für tragbaren Hotspot ausblenden</string>
<string name="hide_icon">Symbol verbergen</string>
<string name="hide_mobile_activity_icon">Symbol für mobile Aktivität ausblenden</string>
<string name="hide_mobile_type_icon">Symbol für Mobil-Typ ausblenden</string>
<string name="hide_network_speed_splitter">Netzwerk-Speed-Splitter ausblenden</string>
<string name="hide_new_hd_icon">Neues HD-Symbol ausblenden</string>
<string name="hide_nfc_icon">NFC-Symbol ausblenden</string>
<string name="hide_no_sim_icon">Kein SIM-Symbol ausblenden</string>
<string name="hide_sim_one_icon">SIM-Karte 1 ausblenden</string>
<string name="hide_sim_two_icon">SIM-Karte 2 ausblenden</string>
<string name="hide_slave_wifi_icon">Zweites WLAN-Symbol ausblenden</string>
<string name="hide_small_hd_icon">Kleines HD-Symbol ausblenden</string>
<string name="hide_status_bar_network_speed_second">Netzwerkgeschwindigkeit (/s) ausblenden</string>
<string name="hide_status_bar_network_speed_second_summary">Blenden Sie die Einheiten (/s) der Netzwerkgeschwindigkeitskomponente der Statusleiste aus</string>
<string name="hide_volume_icon">Lautstärkesymbol ausblenden</string>
<string name="hide_volume_zen_icon">Ton- und DND-Symbol ausblenden</string>
<string name="hide_vpn_icon">VPN-Symbol ausblenden</string>
<string name="hide_wifi_activity_icon">WLAN-Aktivitätssymbol ausblenden</string>
<string name="hide_wifi_icon">WLAN-Symbol ausblenden</string>
<string name="hide_wifi_standard_icon">WLAN-Standardsymbol ausblenden</string>
<string name="hide_zen_icon">ZEN-Symbol ausblenden</string>
<string name="home">Hauptseite</string>
<string name="home_double_tap_to_sleep_summary">Doppeltippen Sie auf das leere Feld, um zu schlafen</string>
<string name="home_time">Startbildschirmuhr immer anzeigen</string>
<string name="home_time_summary">Wenn aktiviert, wird die Uhr nicht in der Statusleiste ausgeblendet, auch wenn es ein Uhr-Widget gibt</string>
<string name="input_error">Eingabe Fehler</string>
<string name="issues">Feedback/Vorschlag</string>
<string name="issues_url">Klicken Sie hier, um GitHub-Probleme anzuzeigen</string>
<string name="layout_compatibility_mode">Kompatibilitätsmodus</string>
<string name="layout_compatibility_mode_summary">Stellen Sie sicher, dass der Bildschirm für das linke und rechte Loch normal angezeigt werden kann</string>
<string name="left">Links</string>
<string name="left_margin">Linker Rand (0: Auto)</string>
<string name="left_or_right">Links oder rechts</string>
<string name="lock_max">Strombegrenzung sperren</string>
<string name="lock_max_fps">Sperren Sie die aktuelle Obergrenze der Aktualisierungsrate</string>
<string name="lock_max_fps_summary">Unterstützt das Hinzufügen von Drop-Down-Control-Center-Schnelleinstellungen für Echtzeit-Umschaltung</string>
<string name="lock_one_hundred">Setzen Sie 100 Punkte in der Sicherheits-App</string>
<string name="lock_one_hundred_summary">Setze die Punktzahl in der Sicherheits-App auf 100 Punkte und blockiere die Schaltfläche Optimieren</string>
<string name="lock_screen">Sperrbildschirm</string>
<string name="lock_screen_charging_current">Aktuelle Informationen während des Ladevorgangs anzeigen</string>
<string name="lock_screen_clock_display_seconds">Uhranzeige Sekunden</string>
<string name="main_switch">Hauptschalter des Moduls</string>
<string name="make_millet_ignore_active">Erlauben Sie Millet, aktive Apps einzufrieren</string>
<string name="make_millet_ignore_active_summary">Sehr aggressiv und kann die Ausführung der App beeinträchtigen</string>
<string name="make_millet_more_aggressive">Millet aggressiver machen</string>
<string name="make_millet_more_aggressive_summary">Ermöglicht Millet, Apps einzufrieren, während Hintergrund-Apps Benachrichtigungen, Dienste und Prozesse ausführen.\nApps, die nicht eingefroren werden möchten, können den Energiesparmodus auf Keine Einschränkung setzen\nBitte deinstallieren Sie Tombstone- und NoANR-bezogene Module, bevor Sie sie aktivieren.</string>
<string name="matters_needing_attention">Funktion funktioniert nicht? </string>
<string name="matters_needing_attention_context">Es wird empfohlen, das Telefon nach der ersten Aktivierung oder Aktualisierung neu zu starten\nDie meisten Änderungen erfordern einen Neustart in der rechten oberen Ecke um wirksam zu werden</string>
<string name="max_wallpaper_scale">Maximale Hintergrundskalierung</string>
<string name="maximum_number_of_notification_dots">Maximale Anzahl von Benachrichtigungspunkten</string>
<string name="maximum_number_of_notification_icons">Maximale Anzahl von Benachrichtigungssymbolen</string>
<string name="media_volume_steps_summary">Das Einschalten kann dazu führen, dass das Scrollen der Lautstärkeleiste einfriert oder die Bluetooth-Lautstärke anormal ist</string>
<string name="media_volume_steps_switch">Schritte der Medienlautstärke</string>
<string name="menu">Menü</string>
<string name="miuihome_recentview_remove_card_animation">Animation der Kartenmarkierung ändern</string>
<string name="miuihome_recentview_remove_card_animation_summary">Animationseffekt der Karte zum Entfernen der letzten Aufgabe ändern</string>
<string name="miuihome_recentwiew_wallpaper_darkening">Hintergrundbild dimmen deaktivieren</string>
<string name="miuihome_recentwiew_wallpaper_darkening_summary">Dadurch wird der Effekt deaktiviert, dass das Hintergrundbild allmählich heller wird, wenn man die aktuelle Aufgabe aufruft oder verlässt.</string>
<string name="miuihome_scroll_icon_name">App-Name rollen</string>
<string name="miuihome_scroll_icon_name_summary">Ein zu langer App-Name wird gerollt und ohne eine neue Zeile anzuzeigen</string>
<string name="miuihome_shortcut_add_small_window">Kontextmenü-Fenster hinzufügen</string>
<string name="miuihome_shortcut_add_small_window_summary">Desktop-Symbol gedrückt halten, um ein schnell zu öffnendes Fenster hinzuzufügen</string>
<string name="miuihome_shortcut_add_small_window_title">Schmale Fenster</string>
<string name="module_name">EzXHelper</string>
<string name="none">Keiner</string>
<string name="not_support">Sie scheinen eine veraltete Version von LSPosed zu verwenden oder LSPosed ist nicht aktiv. Bitte aktualisieren Sie LSPosed oder aktivieren Sie es und versuchen Sie es erneut.</string>
<string name="notification_center">Mitteilungs-Center</string>
<string name="off">Aus</string>
<string name="old_qs_custom_switch">Benutzerdefinierte Zeilen und Spalten</string>
<string name="old_quick_settings_panel">Altes Schnelleinstellungsfeld</string>
<string name="only_official_default_themes_are_supported">Es werden nur offizielle Standarddesigns unterstützt</string>
<string name="opensource">Open-Source-Repository</string>
<string name="other">Sonstiges</string>
<string name="participate_in_translation">Beteiligen Sie sich an der Übersetzung</string>
<string name="participate_in_translation_summary">Helfen Sie uns, die App in Ihre Sprache zu übersetzen</string>
<string name="performance">Leistung</string>
<string name="pkg_installer">Paket-Installer</string>
<string name="pkg_installer_summary">Zählprüfung der App-Installation deaktivieren</string>
<string name="preset">Voreinstellung</string>
<string name="prevent_recovery_of_battery_optimization_white_list">Verhindern Sie die Wiederherstellung der Whitelist für die Akkuoptimierung</string>
<string name="qq_channel">Treten Sie dem offiziellen QQ-Kanal bei</string>
<string name="qs_custom_columns">Spalten</string>
<string name="qs_custom_columns_unexpanded">Spalten (nicht erweitert)</string>
<string name="qs_custom_rows">Reihen</string>
<string name="qs_custom_rows_horizontal">Zeilen (horizontal)</string>
<string name="range">Bereich: </string>
<string name="rear_display">Heckdisplay (11Ultra)</string>
<string name="reboot">System neustarten</string>
<string name="reboot_host">Starten Sie alle Bereiche neu</string>
<string name="remove_ad">Werbung entfernen</string>
<string name="remove_lock_screen_camera">Entfernen Sie die Sperrbildschirm-Kamerafunktion</string>
<string name="remove_macro_blacklist">Entfernen Sie die schwarze Liste der Spielmakros</string>
<string name="remove_open_app_confirmation_popup">Entfernen Sie das Popup der geöffneten App</string>
<string name="remove_open_app_confirmation_popup_summary">Entfernen Sie das „Erlaube XXX, XXX zu öffnen“ Kettenstart-Popup</string>
<string name="remove_ota_validate">* OTA-Validierung entfernen [LAB]</string>
<string name="remove_ota_validate_summary">- Unterstützt nur die Verwendung von VAB-Serien, bitte öffnen Sie keine anderen Serien.\n- Keine interne Testqualifizierung erforderlich, um in das vollständige interne Testpaket zu flashen.\n- Personen mit interner Testberechtigung können keine internen Testaktualisierungen erhalten, und kann verwendet werden, um Systemaktualisierungen zu blockieren.\n- Nach einem Versionsübergreifenden Upgrade wird empfohlen, Daten zu löschen.\n- Inoffizielle ROM-Nutzung wird nicht unterstützt.</string>
<string name="remove_small_window_restrictions">Kleine Fenster erzwingen</string>
<string name="remove_small_window_restrictions_summary">Ignorieren Sie die System-Blacklist und das Software-Verbot kleiner Fenster</string>
<string name="remove_the_left_side_of_the_lock_screen">Entfernen Sie die Seitenabdeckung des Sperrbildschirms</string>
<string name="remove_the_maximum_number_of_notification_icons">Maximale Anzahl an Benachrichtigungssymbolen entfernen</string>
<string name="remove_the_maximum_number_of_notification_icons_summary">Entfernen Sie das Limit von 3 Benachrichtigungen in der Statusleiste</string>
<string name="remove_thememanager_ads">Entfernen Sie Anzeigen für den Themenmanager</string>
<string name="right">Rechts</string>
<string name="right_margin">Rechter Rand (0: Auto)</string>
<string name="scope">Zielfernrohr</string>
<string name="scope_android">Systemrahmen</string>
<string name="scope_android_summary">Nachdem das Modul zum ersten Mal aktiviert oder das Modul aktualisiert wurde, wird die Funktion hier nach dem Neustart des Systems wirksam</string>
<string name="scope_mediaeditor">Galerie-Editor</string>
<string name="scope_miuihome">Startbildschirm</string>
<string name="scope_other">Andere</string>
<string name="scope_other_summary">Sicherheits-App, Galerie-Editor, Akku und Leistung usw.</string>
<string name="scope_powerkeeper">Akku und Leistung</string>
<string name="scope_securitycenter">Sicherheits-App</string>
<string name="scope_systemui">SystemUI</string>
<string name="scope_systemui_summary">Passen Sie die Systemschnittstelle, die Statusleiste, den Sperrbildschirm usw. an.</string>
<string name="screen_hole_location">Position des Sieblochs</string>
<string name="search_menu_title">Suche</string>
<string name="settings">Einstellungen</string>
<string name="show_city">Stadt anzeigen</string>
<string name="show_notification_importance">Benachrichtigungswichtig anzeigen</string>
<string name="show_notification_importance_summary">Wichtigkeitseinstellungen für Benachrichtigungen anzeigen, die in MIUI 12 und späteren Versionen ausgeblendet sind</string>
<string name="show_weather_main_switch">Wetter anzeigen - Hauptschalter</string>
<string name="show_wifi_standard">WLAN-Standard anzeigen</string>
<string name="skip_waiting_time">5/10 Sekunden Warnzeit überspringen</string>
<string name="skip_waiting_time_summary">Ignoriere die Wartezeit von MIUI bei USB-Debugging, unbekannten Quellen und Zugänglichkeit</string>
<string name="sound">Klang</string>
<string name="status_bar_clock_double_line_size">Zweireihige Größe (0: nicht ändern)</string>
<string name="status_bar_clock_format">Uhrformat der Statusleiste</string>
<string name="status_bar_clock_size">Uhrgröße (0: nicht ändern)</string>
<string name="status_bar_dual_row_network_speed">Zweireihige Netzwerkgeschwindigkeit</string>
<string name="status_bar_dual_row_network_speed_summary">Anzeige der Netzwerkgeschwindigkeit nach oben und unten</string>
<string name="status_bar_icon">Statusleisten-Symbole</string>
<string name="status_bar_layout">Layout der Statusleiste</string>
<string name="status_bar_layout_mode">Statusleisten-Layoutmodus</string>
<string name="status_bar_layout_summary">Weitere Statusleisten-Layouts sind in Entwicklung</string>
<string name="status_bar_network_speed">Statusleiste Netzwerkgeschwindigkeit</string>
<string name="status_bar_network_speed_dual_row_gravity">Zweireihige Ausrichtung</string>
<string name="status_bar_network_speed_dual_row_icon">Zweireihiges Symbol</string>
<string name="status_bar_network_speed_dual_row_size">Zweireihige Größe (0: nicht ändern)</string>
<string name="status_bar_network_speed_refresh_speed">Netzwerkgeschwindigkeit in Sekunden aktualisieren</string>
<string name="status_bar_network_speed_refresh_speed_summary">Ändern Sie die Aktualisierungsfrequenz der Netzwerkgeschwindigkeitskomponente der Statusleiste auf 1 Sek</string>
<string name="status_bar_time_center">Zeitzentrum der Statusleiste</string>
<string name="status_bar_time_day">Datum anzeigen</string>
<string name="status_bar_time_double_hour">Zeigt chinesische zwölf Stunden an</string>
<string name="status_bar_time_double_line">Zweireihig</string>
<string name="status_bar_time_double_line_center_align">Zweireihige Mittelausrichtung</string>
<string name="status_bar_time_hide_space">Leerzeichen ausblenden</string>
<string name="status_bar_time_month">Monat anzeigen</string>
<string name="status_bar_time_period">AM/PM anzeigen</string>
<string name="status_bar_time_seconds">Sekunden anzeigen</string>
<string name="status_bar_time_week">Tag anzeigen</string>
<string name="status_bar_time_year">Jahr anzeigen</string>
<string name="statusbar">Statusleiste</string>
<string name="take_effect_after_reboot">Nach Neustart wirksam</string>
<string name="tg_channel">Tritt dem offiziellen TG-Kanal bei</string>
<string name="tg_channel_summary">Sie können die Chat-Gruppe auf der Kanalseite betreten</string>
<string name="thank_list">Dankesliste</string>
<string name="third_party_open_source_statement">Open-Source-Erklärung von Drittanbietern</string>
<string name="ui">Schnittstelle</string>
<string name="unlock_unlimited_cropping">Entfernen Sie die Einschränkung beim Zuschneiden von Bildern/Screenshots</string>
<string name="unlock_unlimited_cropping_summary">Ignorieren Sie die Mindestgrenze für das Zuschneiden von Bildern durch MIUI</string>
<string name="updater">Updater</string>
<string name="verison">Version</string>
<string name="xposeddescription">Anpassungstool für MIUI13 (Android 12)</string>
<string name="zero_do_no_change">0: nicht ändern</string>
</resources> </resources>

View File

@@ -240,4 +240,11 @@
<string name="miuihome_recentview_remove_card_animation">Modificar la animación de marcado de tarjetas</string> <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_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">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>
</resources> </resources>

View File

@@ -39,6 +39,7 @@
<string name="github_url">開発に参加できる開発者を歓迎します</string> <string name="github_url">開発に参加できる開発者を歓迎します</string>
<string name="issues">ご意見・ご提案</string> <string name="issues">ご意見・ご提案</string>
<string name="issues_url">クリックして GitHub Issues を表示する</string> <string name="issues_url">クリックして GitHub Issues を表示する</string>
<string name="xposeddescription">MIUI13 (Android 12) 以降向けカスタマイズツール</string>
<string name="statusbar">ステータスバー</string> <string name="statusbar">ステータスバー</string>
<string name="status_bar_time_seconds">秒を表示する</string> <string name="status_bar_time_seconds">秒を表示する</string>
<string name="status_bar_network_speed_refresh_speed">ネットワーク速度を秒単位で更新</string> <string name="status_bar_network_speed_refresh_speed">ネットワーク速度を秒単位で更新</string>

View File

@@ -239,4 +239,12 @@
<string name="big_mobile_type_location">Pozycja dużej ikony typu sieci</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">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_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> </resources>

View File

@@ -247,4 +247,5 @@
<string name="miuihome_shortcut_add_small_window_summary">桌面图标长按快捷菜单位置添加快速打开小窗</string> <string name="miuihome_shortcut_add_small_window_summary">桌面图标长按快捷菜单位置添加快速打开小窗</string>
<string name="miuihome_shortcut_add_small_window_title">小窗</string> <string name="miuihome_shortcut_add_small_window_title">小窗</string>
<string name="click_to_view_use_cases">点击查看用例</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> </resources>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="performance"></string> <string name="performance"></string>
<string name="lock_max_fps">鎖定目前重新整理速率上限</string> <string name="lock_max_fps">鎖定目前重新整理速率上限</string>
<string name="ui">介面</string> <string name="ui">介面</string>
<string name="delete_on_post_notification">移除上層顯示通知</string> <string name="delete_on_post_notification">移除上層顯示通知</string>
@@ -10,7 +10,7 @@
<string name="disable_flag_secure_summary">開啟後允許在不允許截圖的軟體中截圖\n支援新增下拉控制中心快速開關保障安全</string> <string name="disable_flag_secure_summary">開啟後允許在不允許截圖的軟體中截圖\n支援新增下拉控制中心快速開關保障安全</string>
<string name="home">桌面</string> <string name="home">桌面</string>
<string name="home_time">始終顯示桌面時鐘</string> <string name="home_time">始終顯示桌面時鐘</string>
<string name="reboot_host">重啟所有範圍</string> <string name="reboot_host">重啟所有作用範圍</string>
<string name="reboot">重啟系統</string> <string name="reboot">重啟系統</string>
<!--Status bar icons--> <!--Status bar icons-->
<string name="status_bar_icon">狀態列圖示</string> <string name="status_bar_icon">狀態列圖示</string>
@@ -43,7 +43,7 @@
<string name="statusbar">狀態列</string> <string name="statusbar">狀態列</string>
<string name="status_bar_time_seconds">顯示秒數</string> <string name="status_bar_time_seconds">顯示秒數</string>
<string name="status_bar_network_speed_refresh_speed">每秒更新即時網路速度</string> <string name="status_bar_network_speed_refresh_speed">每秒更新即時網路速度</string>
<string name="remove_the_maximum_number_of_notification_icons">除通知圖示數量上限</string> <string name="remove_the_maximum_number_of_notification_icons">除通知圖示數量上限</string>
<string name="main_switch">模組主開關</string> <string name="main_switch">模組主開關</string>
<string name="hide_gps_icon">隱藏「GPS」圖示</string> <string name="hide_gps_icon">隱藏「GPS」圖示</string>
<string name="hide_status_bar_network_speed_second">隱藏網路速度 (/s) 單位</string> <string name="hide_status_bar_network_speed_second">隱藏網路速度 (/s) 單位</string>
@@ -76,7 +76,7 @@
<string name="developer">開發人員</string> <string name="developer">開發人員</string>
<string name="thank_list">感謝名單</string> <string name="thank_list">感謝名單</string>
<string name="third_party_open_source_statement">第三方開放原始碼聲明</string> <string name="third_party_open_source_statement">第三方開放原始碼聲明</string>
<string name="corepacth">除安裝限制</string> <string name="corepacth">除安裝限制</string>
<string name="corepacth_summary">支援降級/不同簽章/無簽章安裝</string> <string name="corepacth_summary">支援降級/不同簽章/無簽章安裝</string>
<string name="prevent_recovery_of_battery_optimization_white_list">防止復原電池效能最佳化白名單</string> <string name="prevent_recovery_of_battery_optimization_white_list">防止復原電池效能最佳化白名單</string>
<string name="failed_after_restart">系統重啟後仍會還原</string> <string name="failed_after_restart">系統重啟後仍會還原</string>
@@ -94,7 +94,7 @@
<string name="remove_lock_screen_camera">移除鎖定螢幕相機功能</string> <string name="remove_lock_screen_camera">移除鎖定螢幕相機功能</string>
<string name="only_official_default_themes_are_supported">僅支援官方預設主題</string> <string name="only_official_default_themes_are_supported">僅支援官方預設主題</string>
<string name="lock_one_hundred">手機管家鎖定 100 分</string> <string name="lock_one_hundred">手機管家鎖定 100 分</string>
<string name="scope">範圍</string> <string name="scope">作用範圍</string>
<string name="scope_android">系統架構</string> <string name="scope_android">系統架構</string>
<string name="scope_systemui">系統 UI</string> <string name="scope_systemui">系統 UI</string>
<string name="scope_miuihome">系統桌面</string> <string name="scope_miuihome">系統桌面</string>
@@ -102,7 +102,7 @@
<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_battery_percentage_icon_summary">需自行開啟電池百分比外顯功能</string>
<string name="hide_status_bar_network_speed_second_summary">隱藏狀態列網路速度元件的 (/s) 單位</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="remove_the_maximum_number_of_notification_icons_summary">除狀態列最多僅能顯示三條通知的限制</string>
<string name="scope_systemui_summary">自訂系統介面、狀態列、鎖定螢幕等</string> <string name="scope_systemui_summary">自訂系統介面、狀態列、鎖定螢幕等</string>
<string name="scope_android_summary">首次啟動模組或模組更新後,\n此處的功能需重啟系統後才能生效</string> <string name="scope_android_summary">首次啟動模組或模組更新後,\n此處的功能需重啟系統後才能生效</string>
<string name="scope_other_summary">手機管家、相簿編輯、電量與性能等</string> <string name="scope_other_summary">手機管家、相簿編輯、電量與性能等</string>
@@ -127,7 +127,7 @@
<string name="matters_needing_attention_context">首次啟動或更新後建議重啟手機\n絕大部分功能變更後需要在右上角重啟範圍後生效</string> <string name="matters_needing_attention_context">首次啟動或更新後建議重啟手機\n絕大部分功能變更後需要在右上角重啟範圍後生效</string>
<string name="are_you_sure_reboot">確定重啟系統?</string> <string name="are_you_sure_reboot">確定重啟系統?</string>
<string name="cancel">取消</string> <string name="cancel">取消</string>
<string name="are_you_sure_reboot_scope">確定重啟所有範圍?</string> <string name="are_you_sure_reboot_scope">確定重啟所有作用範圍?</string>
<string name="hide_battery_charging_icon">隱藏「充電」圖示</string> <string name="hide_battery_charging_icon">隱藏「充電」圖示</string>
<string name="hide_wifi_standard_icon">隱藏「WIFI 標準」圖示</string> <string name="hide_wifi_standard_icon">隱藏「WIFI 標準」圖示</string>
<string name="status_bar_time_center">時間置中</string> <string name="status_bar_time_center">時間置中</string>
@@ -246,5 +246,5 @@
<string name="miuihome_shortcut_add_small_window">捷徑選單新增小窗</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_summary">長按桌面圖示以快速開啟小窗應用程式</string>
<string name="miuihome_shortcut_add_small_window_title">小窗應用程式</string> <string name="miuihome_shortcut_add_small_window_title">小窗應用程式</string>
<string name="click_to_view_use_cases">按一下以檢視</string> <string name="click_to_view_use_cases">按一下以檢視</string>
</resources> </resources>

View File

@@ -43,7 +43,7 @@
<string name="github_url">Welcome more developers to participate in the development</string> <string name="github_url">Welcome more developers to participate in the development</string>
<string name="issues">Feedback/Proposal</string> <string name="issues">Feedback/Proposal</string>
<string name="issues_url">Click to view GitHub Issues</string> <string name="issues_url">Click to view GitHub Issues</string>
<string name="xposeddescription">Customization tool for MIUI13(Android 12)</string> <string name="xposeddescription">Customization tool for MIUI13+(Android 12+)</string>
<string name="statusbar">Status bar</string> <string name="statusbar">Status bar</string>
<string name="status_bar_time_seconds">Display seconds</string> <string name="status_bar_time_seconds">Display seconds</string>
<string name="status_bar_network_speed_refresh_speed">Network speed refresh in seconds</string> <string name="status_bar_network_speed_refresh_speed">Network speed refresh in seconds</string>
@@ -251,4 +251,5 @@
<string name="miuihome_shortcut_add_small_window_summary">Press and hold the desktop icon to add a quick open window</string> <string name="miuihome_shortcut_add_small_window_summary">Press and hold the desktop icon to add a quick open window</string>
<string name="miuihome_shortcut_add_small_window_title">Small window</string> <string name="miuihome_shortcut_add_small_window_title">Small window</string>
<string name="click_to_view_use_cases">Click to view use cases</string> <string name="click_to_view_use_cases">Click to view use cases</string>
<string name="disable_bluetooth_temporarily_off">Disable bluetooth temporarily off</string>
</resources> </resources>