mirror of
https://github.com/LittleTurtle2333/SimplicityTools.git
synced 2026-07-13 03:41:19 +08:00
Compare commits
15 Commits
ca784bd7d6
...
9af50d9dd5
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9af50d9dd5 | ||
|
|
c2fa56a90c | ||
|
|
912fee632d | ||
|
|
390be46825 | ||
|
|
d8baadae59 | ||
|
|
d2035121ce | ||
|
|
b29bfb45f9 | ||
|
|
657c65164f | ||
|
|
5c3ca4caa4 | ||
|
|
08b4abf08c | ||
|
|
acdbd23248 | ||
|
|
2bed96532f | ||
|
|
314fc7b46f | ||
|
|
ff94fce5d0 | ||
|
|
d56d291e51 |
@@ -48,6 +48,8 @@ Xposed仓库下载:[点击此处下载最新发行版](https://github.com/Xpos
|
||||
[LSPosed/CorePatch](https://github.com/LSPosed/CorePatch)
|
||||
##### GNU Lesser General Public License v2.1
|
||||
[577fkj/blockmiui](https://github.com/577fkj/blockmiui)
|
||||
##### Apache License 2.0
|
||||
[KyuubiRan/EzXHelper](https://github.com/KyuubiRan/EzXHelper)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -44,7 +44,9 @@ Xposed Repo:[Click here to download the latest release](https://github.com/Xpo
|
||||
##### GNU General Public License v2.0
|
||||
[LSPosed/CorePatch](https://github.com/LSPosed/CorePatch)
|
||||
##### GNU Lesser General Public License v2.1
|
||||
[577fkj/blockmiui](https://github.com/577fkj/blockmiui)
|
||||
[577fkj/blockmiui](https://github.com/577fkj/blockmiui)
|
||||
##### Apache License 2.0
|
||||
[KyuubiRan/EzXHelper](https://github.com/KyuubiRan/EzXHelper)
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -12,8 +12,8 @@ android {
|
||||
applicationId = "com.lt2333.simplicitytools"
|
||||
minSdk = 31
|
||||
targetSdk = 32
|
||||
versionCode = 56
|
||||
versionName = "1.5.5"
|
||||
versionCode = 57
|
||||
versionName = "1.5.6"
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
|
||||
@@ -508,13 +508,58 @@ class SettingsActivity : MIUIActivity() {
|
||||
)
|
||||
add(LineV())
|
||||
add(TitleTextV(resId = R.string.status_bar_layout))
|
||||
val statusBarLayoutMode: HashMap<Int, String> = hashMapOf<Int, String>().also {
|
||||
it[0] = getString(R.string.default1)
|
||||
it[1] = getString(R.string.clock_center)
|
||||
it[2] = getString(R.string.clock_right)
|
||||
it[3] = getString(R.string.clock_center_and_icon_left)
|
||||
}
|
||||
add(
|
||||
TextSummaryWithSwitchV(
|
||||
TextSummaryV(
|
||||
textId = R.string.status_bar_time_center,
|
||||
tipsId = R.string.status_bar_layout_summary
|
||||
),
|
||||
SwitchV("status_bar_time_center")
|
||||
TextWithSpinnerV(
|
||||
TextV(resId = R.string.status_bar_layout_mode),
|
||||
SpinnerV(
|
||||
arrayListOf<MIUIPopupData>().apply {
|
||||
add(MIUIPopupData(statusBarLayoutMode[0].toString()) {
|
||||
OwnSP.ownSP.edit().run {
|
||||
putInt(
|
||||
"status_bar_layout_mode",
|
||||
0
|
||||
)
|
||||
apply()
|
||||
}
|
||||
})
|
||||
add(MIUIPopupData(statusBarLayoutMode[1].toString()) {
|
||||
OwnSP.ownSP.edit().run {
|
||||
putInt(
|
||||
"status_bar_layout_mode",
|
||||
1
|
||||
)
|
||||
apply()
|
||||
}
|
||||
})
|
||||
add(MIUIPopupData(statusBarLayoutMode[2].toString()) {
|
||||
OwnSP.ownSP.edit().run {
|
||||
putInt(
|
||||
"status_bar_layout_mode",
|
||||
2
|
||||
)
|
||||
apply()
|
||||
}
|
||||
})
|
||||
add(MIUIPopupData(statusBarLayoutMode[3].toString()) {
|
||||
OwnSP.ownSP.edit().run {
|
||||
putInt(
|
||||
"status_bar_layout_mode",
|
||||
3
|
||||
)
|
||||
apply()
|
||||
}
|
||||
})
|
||||
}, currentValue = statusBarLayoutMode[OwnSP.ownSP.getInt(
|
||||
"status_bar_layout_mode",
|
||||
0
|
||||
)].toString()
|
||||
)
|
||||
)
|
||||
)
|
||||
val layoutCompatibilityModeBinding = getDataBinding(
|
||||
@@ -874,12 +919,16 @@ class SettingsActivity : MIUIActivity() {
|
||||
)
|
||||
)
|
||||
add(
|
||||
TextSummaryWithSwitchV(
|
||||
TextSummaryV(
|
||||
textId = R.string.remove_the_maximum_number_of_notification_icons,
|
||||
tipsId = R.string.remove_the_maximum_number_of_notification_icons_summary
|
||||
),
|
||||
SwitchV("remove_the_maximum_number_of_notification_icons")
|
||||
TextV(
|
||||
resId = R.string.maximum_number_of_notification_icons
|
||||
)
|
||||
)
|
||||
add(
|
||||
SeekBarWithTextV(
|
||||
"maximum_number_of_notification_icons",
|
||||
1,
|
||||
30,
|
||||
3
|
||||
)
|
||||
)
|
||||
add(
|
||||
|
||||
@@ -21,7 +21,7 @@ object SystemUI: AppRegister() {
|
||||
HideMobileTypeIcon, //隐藏移动类型图标
|
||||
HideStatusBarNetworkSpeedSecond, //隐藏状态栏网速/s
|
||||
HideWifiActivityIcon, //隐藏WIFI活动箭头图标
|
||||
RemoveTheMaximumNumberOfNotificationIcons, //移除通知图标上限
|
||||
MaximumNumberOfNotificationIcons, //通知图标上限
|
||||
StatusBarNetworkSpeedRefreshSpeed, //状态栏网速秒刷新
|
||||
StatusBarTimeCustomization, //状态栏时钟自定义
|
||||
RemoveTheLeftSideOfTheLockScreen, //移除锁屏负一屏功能
|
||||
|
||||
@@ -15,6 +15,7 @@ object HideStatusBarNetworkSpeedSecond: HookRegister() {
|
||||
.replace("/", "")
|
||||
.replace("s", "")
|
||||
.replace("'", "")
|
||||
.replace("วิ", "")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,20 +1,17 @@
|
||||
package com.lt2333.simplicitytools.hook.app.systemui
|
||||
|
||||
import com.lt2333.simplicitytools.util.callMethod
|
||||
import com.lt2333.simplicitytools.util.hasEnable
|
||||
import com.lt2333.simplicitytools.util.replaceMethod
|
||||
import com.lt2333.simplicitytools.util.setIntField
|
||||
import com.lt2333.simplicitytools.util.*
|
||||
import com.lt2333.simplicitytools.util.xposed.base.HookRegister
|
||||
|
||||
object RemoveTheMaximumNumberOfNotificationIcons: HookRegister() {
|
||||
object MaximumNumberOfNotificationIcons: HookRegister() {
|
||||
|
||||
override fun init() {
|
||||
hasEnable("remove_the_maximum_number_of_notification_icons") {
|
||||
val size = XSPUtils.getInt("maximum_number_of_notification_icons",3)
|
||||
"com.android.systemui.statusbar.phone.NotificationIconContainer".replaceMethod(getDefaultClassLoader(), "miuiShowNotificationIcons", Boolean::class.java) {
|
||||
if (it.args[0] as Boolean) {
|
||||
it.thisObject.setIntField("MAX_DOTS", 30)
|
||||
it.thisObject.setIntField("MAX_STATIC_ICONS", 30)
|
||||
it.thisObject.setIntField("MAX_VISIBLE_ICONS_ON_LOCK", 30)
|
||||
it.thisObject.setIntField("MAX_DOTS", size)
|
||||
it.thisObject.setIntField("MAX_STATIC_ICONS", size)
|
||||
it.thisObject.setIntField("MAX_VISIBLE_ICONS_ON_LOCK", size)
|
||||
} else {
|
||||
it.thisObject.setIntField("MAX_DOTS", 0)
|
||||
it.thisObject.setIntField("MAX_STATIC_ICONS", 0)
|
||||
@@ -22,7 +19,6 @@ object RemoveTheMaximumNumberOfNotificationIcons: HookRegister() {
|
||||
}
|
||||
it.thisObject.callMethod("updateState")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.lt2333.simplicitytools.hook.app.systemui
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.KeyguardManager
|
||||
import android.content.Context
|
||||
import android.content.res.Configuration
|
||||
import android.content.res.Resources
|
||||
@@ -8,18 +9,20 @@ import android.os.Bundle
|
||||
import android.view.Gravity
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.FrameLayout
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
import cn.fkj233.ui.activity.dp2px
|
||||
import com.lt2333.simplicitytools.util.XSPUtils
|
||||
import com.lt2333.simplicitytools.util.findClass
|
||||
import com.lt2333.simplicitytools.util.getObjectField
|
||||
import com.lt2333.simplicitytools.util.hookAfterMethod
|
||||
import com.lt2333.simplicitytools.util.xposed.base.HookRegister
|
||||
import de.robv.android.xposed.XposedHelpers
|
||||
|
||||
|
||||
@SuppressLint("StaticFieldLeak")
|
||||
object StatusBarLayout: HookRegister() {
|
||||
object StatusBarLayout : HookRegister() {
|
||||
|
||||
private var mLeftLayout: LinearLayout? = null
|
||||
private var mRightLayout: LinearLayout? = null
|
||||
@@ -32,141 +35,409 @@ object StatusBarLayout: HookRegister() {
|
||||
private var statusBarBottom = 0
|
||||
|
||||
override fun init() {
|
||||
if (!XSPUtils.getBoolean("status_bar_time_center", false)) return
|
||||
when (XSPUtils.getInt("status_bar_layout_mode", 0)) {
|
||||
//默认
|
||||
0 -> return
|
||||
//时钟居中
|
||||
1 -> {
|
||||
val collapsedStatusBarFragmentClass =
|
||||
"com.android.systemui.statusbar.phone.CollapsedStatusBarFragment".findClass(
|
||||
getDefaultClassLoader()
|
||||
)
|
||||
|
||||
val collapsedStatusBarFragmentClass =
|
||||
"com.android.systemui.statusbar.phone.CollapsedStatusBarFragment".findClass(getDefaultClassLoader())
|
||||
collapsedStatusBarFragmentClass.hookAfterMethod(
|
||||
"onViewCreated",
|
||||
View::class.java,
|
||||
Bundle::class.java
|
||||
) { param ->
|
||||
val MiuiPhoneStatusBarView: ViewGroup =
|
||||
param.thisObject.getObjectField("mStatusBar") as ViewGroup
|
||||
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 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"
|
||||
)
|
||||
statusBar = MiuiPhoneStatusBarView.findViewById(statusBarId)
|
||||
val statusBarContents: ViewGroup =
|
||||
MiuiPhoneStatusBarView.findViewById(statusBarContentsId)
|
||||
if (statusBar == null) return@hookAfterMethod
|
||||
val clock: TextView = MiuiPhoneStatusBarView.findViewById(clockId)
|
||||
val phoneStatusBarLeftContainer: ViewGroup =
|
||||
MiuiPhoneStatusBarView.findViewById(phoneStatusBarLeftContainerId)
|
||||
val notificationIconAreaInner: ViewGroup =
|
||||
MiuiPhoneStatusBarView.findViewById(notificationIconAreaInnerId)
|
||||
val systemIconArea: ViewGroup =
|
||||
MiuiPhoneStatusBarView.findViewById(systemIconAreaId)
|
||||
|
||||
collapsedStatusBarFragmentClass.hookAfterMethod(
|
||||
"onViewCreated",
|
||||
View::class.java,
|
||||
Bundle::class.java
|
||||
) { param ->
|
||||
val MiuiPhoneStatusBarView: ViewGroup =
|
||||
param.thisObject.getObjectField("mStatusBar") as ViewGroup
|
||||
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 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")
|
||||
statusBar = MiuiPhoneStatusBarView.findViewById(statusBarId)
|
||||
val statusBarContents: ViewGroup =
|
||||
MiuiPhoneStatusBarView.findViewById(statusBarContentsId)
|
||||
if (statusBar == null) return@hookAfterMethod
|
||||
val clock: TextView = MiuiPhoneStatusBarView.findViewById(clockId)
|
||||
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(
|
||||
phoneStatusBarLeftContainer
|
||||
)
|
||||
(notificationIconAreaInner.parent as ViewGroup).removeView(
|
||||
notificationIconAreaInner
|
||||
)
|
||||
(systemIconArea.parent as ViewGroup).removeView(systemIconArea)
|
||||
|
||||
(clock.parent as ViewGroup).removeView(clock)
|
||||
(phoneStatusBarLeftContainer.parent as ViewGroup).removeView(
|
||||
phoneStatusBarLeftContainer
|
||||
)
|
||||
(notificationIconAreaInner.parent as ViewGroup).removeView(
|
||||
notificationIconAreaInner
|
||||
)
|
||||
(systemIconArea.parent as ViewGroup).removeView(systemIconArea)
|
||||
val mConstraintLayout =
|
||||
ConstraintLayout(context).also {
|
||||
it.layoutParams = ConstraintLayout.LayoutParams(
|
||||
ConstraintLayout.LayoutParams.MATCH_PARENT,
|
||||
ConstraintLayout.LayoutParams.MATCH_PARENT
|
||||
)
|
||||
}
|
||||
|
||||
val mConstraintLayoutLp = ConstraintLayout.LayoutParams(
|
||||
ConstraintLayout.LayoutParams.MATCH_PARENT,
|
||||
ConstraintLayout.LayoutParams.MATCH_PARENT
|
||||
)
|
||||
mConstraintLayout.addView(notificationIconAreaInner)
|
||||
|
||||
val mConstraintLayout =
|
||||
ConstraintLayout(context).also { it.layoutParams = mConstraintLayoutLp }
|
||||
val fullscreen_notification_icon_area_lp = LinearLayout.LayoutParams(
|
||||
ConstraintLayout.LayoutParams.MATCH_PARENT,
|
||||
ConstraintLayout.LayoutParams.MATCH_PARENT
|
||||
)
|
||||
|
||||
mConstraintLayout.addView(notificationIconAreaInner)
|
||||
notificationIconAreaInner.layoutParams = fullscreen_notification_icon_area_lp
|
||||
|
||||
val fullscreen_notification_icon_area_lp = LinearLayout.LayoutParams(
|
||||
ConstraintLayout.LayoutParams.MATCH_PARENT,
|
||||
ConstraintLayout.LayoutParams.MATCH_PARENT
|
||||
)
|
||||
//增加一个左对齐布局
|
||||
mLeftLayout = LinearLayout(context)
|
||||
val LeftLp: LinearLayout.LayoutParams =
|
||||
LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f)
|
||||
mLeftLayout!!.layoutParams = LeftLp
|
||||
mLeftLayout!!.gravity = Gravity.START or Gravity.CENTER_VERTICAL
|
||||
|
||||
notificationIconAreaInner.layoutParams = fullscreen_notification_icon_area_lp
|
||||
//增加一个居中布局
|
||||
mCenterLayout = LinearLayout(context)
|
||||
val CenterLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
|
||||
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)
|
||||
mRightLayout!!.layoutParams = RightLp
|
||||
mRightLayout!!.gravity = Gravity.END or Gravity.CENTER_VERTICAL
|
||||
mLeftLayout!!.addView(phoneStatusBarLeftContainer)
|
||||
mLeftLayout!!.addView(mConstraintLayout)
|
||||
|
||||
//增加一个左对齐布局
|
||||
mLeftLayout = LinearLayout(context)
|
||||
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!!.addView(clock)
|
||||
mRightLayout!!.addView(systemIconArea)
|
||||
statusBarContents.addView(mLeftLayout, 0)
|
||||
statusBarContents.addView(mCenterLayout)
|
||||
statusBarContents.addView(mRightLayout)
|
||||
|
||||
//增加一个居中布局
|
||||
mCenterLayout = LinearLayout(context)
|
||||
val CenterLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
|
||||
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)
|
||||
mRightLayout!!.layoutParams = RightLp
|
||||
mRightLayout!!.gravity = Gravity.END or Gravity.CENTER_VERTICAL
|
||||
mLeftLayout!!.addView(phoneStatusBarLeftContainer)
|
||||
mLeftLayout!!.addView(mConstraintLayout)
|
||||
|
||||
mCenterLayout!!.addView(clock)
|
||||
mRightLayout!!.addView(systemIconArea)
|
||||
statusBarContents.addView(mLeftLayout, 0)
|
||||
statusBarContents.addView(mCenterLayout)
|
||||
statusBarContents.addView(mRightLayout)
|
||||
|
||||
statusBarLeft = statusBar!!.paddingLeft
|
||||
statusBarTop = statusBar!!.paddingTop
|
||||
statusBarRight = statusBar!!.paddingRight
|
||||
statusBarBottom = statusBar!!.paddingBottom
|
||||
statusBarLeft = statusBar!!.paddingLeft
|
||||
statusBarTop = statusBar!!.paddingTop
|
||||
statusBarRight = statusBar!!.paddingRight
|
||||
statusBarBottom = statusBar!!.paddingBottom
|
||||
|
||||
|
||||
if (XSPUtils.getBoolean("layout_compatibility_mode", false)) {
|
||||
val customLeftMargin = XSPUtils.getInt("status_bar_left_margin", 0)
|
||||
if (customLeftMargin != 0) {
|
||||
statusBarLeft = customLeftMargin
|
||||
if (XSPUtils.getBoolean("layout_compatibility_mode", false)) {
|
||||
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)
|
||||
}
|
||||
}
|
||||
val phoneStatusBarViewClass =
|
||||
"com.android.systemui.statusbar.phone.PhoneStatusBarView".findClass(
|
||||
getDefaultClassLoader()
|
||||
)
|
||||
|
||||
val customRightMargin = XSPUtils.getInt("status_bar_right_margin", 0)
|
||||
if (customRightMargin != 0) {
|
||||
statusBarRight = customRightMargin
|
||||
phoneStatusBarViewClass.hookAfterMethod("updateLayoutForCutout") {
|
||||
if (XSPUtils.getBoolean("layout_compatibility_mode", false)) {
|
||||
val context = (it.thisObject as ViewGroup).context
|
||||
updateLayout(context)
|
||||
}
|
||||
}
|
||||
updateLayout(context)
|
||||
}
|
||||
//时钟居右
|
||||
2 -> {
|
||||
val collapsedStatusBarFragmentClass =
|
||||
"com.android.systemui.statusbar.phone.CollapsedStatusBarFragment".findClass(
|
||||
getDefaultClassLoader()
|
||||
)
|
||||
|
||||
}
|
||||
collapsedStatusBarFragmentClass.hookAfterMethod(
|
||||
"onViewCreated",
|
||||
View::class.java,
|
||||
Bundle::class.java
|
||||
) { param ->
|
||||
val MiuiPhoneStatusBarView: ViewGroup =
|
||||
param.thisObject.getObjectField("mStatusBar") as ViewGroup
|
||||
val context: Context = MiuiPhoneStatusBarView.context
|
||||
val res: Resources = MiuiPhoneStatusBarView.resources
|
||||
|
||||
val phoneStatusBarViewClass =
|
||||
"com.android.systemui.statusbar.phone.PhoneStatusBarView".findClass(getDefaultClassLoader())
|
||||
//组件ID
|
||||
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")
|
||||
|
||||
phoneStatusBarViewClass.hookAfterMethod("updateLayoutForCutout") {
|
||||
if (XSPUtils.getBoolean("layout_compatibility_mode", false)) {
|
||||
val context = (it.thisObject as ViewGroup).context
|
||||
updateLayout(context)
|
||||
//查找组件
|
||||
statusBar = MiuiPhoneStatusBarView.findViewById(statusBarId)
|
||||
if (statusBar == null) return@hookAfterMethod
|
||||
val clock: TextView = MiuiPhoneStatusBarView.findViewById(clockId)
|
||||
val battery: ViewGroup = MiuiPhoneStatusBarView.findViewById(batteryId)
|
||||
|
||||
//新建布局
|
||||
val RightLp = LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.WRAP_CONTENT,
|
||||
LinearLayout.LayoutParams.MATCH_PARENT
|
||||
).also {
|
||||
it.marginStart = dp2px(context, 5f)
|
||||
}
|
||||
mRightLayout = LinearLayout(context).also {
|
||||
it.layoutParams = RightLp
|
||||
}
|
||||
|
||||
//添加布局与组件
|
||||
battery.addView(mRightLayout)
|
||||
(clock.parent as ViewGroup).removeView(clock)
|
||||
mRightLayout!!.addView(clock)
|
||||
}
|
||||
}
|
||||
}
|
||||
val miuiPhoneStatusBarViewClass =
|
||||
"com.android.systemui.statusbar.phone.MiuiPhoneStatusBarView".findClass(getDefaultClassLoader())
|
||||
//时钟居中+图标居左
|
||||
3 -> {
|
||||
val collapsedStatusBarFragmentClass =
|
||||
"com.android.systemui.statusbar.phone.CollapsedStatusBarFragment".findClass(
|
||||
getDefaultClassLoader()
|
||||
)
|
||||
|
||||
miuiPhoneStatusBarViewClass.hookAfterMethod("updateNotificationIconAreaInnnerParent") {
|
||||
val viewGroup = it.thisObject as ViewGroup
|
||||
val fullscreen_notification_icon_area_lp = FrameLayout.LayoutParams(
|
||||
ConstraintLayout.LayoutParams.MATCH_PARENT,
|
||||
ConstraintLayout.LayoutParams.MATCH_PARENT
|
||||
)
|
||||
viewGroup.layoutParams = fullscreen_notification_icon_area_lp
|
||||
collapsedStatusBarFragmentClass.hookAfterMethod(
|
||||
"onViewCreated",
|
||||
View::class.java,
|
||||
Bundle::class.java
|
||||
) { param ->
|
||||
val MiuiPhoneStatusBarView: ViewGroup =
|
||||
param.thisObject.getObjectField("mStatusBar") as ViewGroup
|
||||
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 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 notificationIconAreaInnerId: Int =
|
||||
res.getIdentifier(
|
||||
"notification_icon_area_inner",
|
||||
"id",
|
||||
"com.android.systemui"
|
||||
)
|
||||
|
||||
statusBar = MiuiPhoneStatusBarView.findViewById(statusBarId)
|
||||
val statusBarContents: ViewGroup =
|
||||
MiuiPhoneStatusBarView.findViewById(statusBarContentsId)
|
||||
if (statusBar == null) return@hookAfterMethod
|
||||
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 notificationIconAreaInner: ViewGroup =
|
||||
MiuiPhoneStatusBarView.findViewById(notificationIconAreaInnerId)
|
||||
|
||||
(clock.parent as ViewGroup).removeView(clock)
|
||||
(phoneStatusBarLeftContainer.parent as ViewGroup).removeView(
|
||||
phoneStatusBarLeftContainer
|
||||
)
|
||||
(systemIconArea.parent as ViewGroup).removeView(systemIconArea)
|
||||
(statusIcons.parent as ViewGroup).removeView(statusIcons)
|
||||
(systemIcons.parent as ViewGroup).removeView(systemIcons)
|
||||
(battery.parent as ViewGroup).removeView(battery)
|
||||
(notificationIconAreaInner.parent as ViewGroup).removeView(
|
||||
notificationIconAreaInner
|
||||
)
|
||||
|
||||
val mConstraintLayout =
|
||||
ConstraintLayout(context).also {
|
||||
it.layoutParams = ConstraintLayout.LayoutParams(
|
||||
ConstraintLayout.LayoutParams.MATCH_PARENT,
|
||||
ConstraintLayout.LayoutParams.MATCH_PARENT
|
||||
)
|
||||
}
|
||||
|
||||
mConstraintLayout.addView(notificationIconAreaInner)
|
||||
mConstraintLayout.addView(battery)
|
||||
|
||||
|
||||
battery.layoutParams = ConstraintLayout.LayoutParams(
|
||||
ConstraintLayout.LayoutParams.WRAP_CONTENT,
|
||||
ConstraintLayout.LayoutParams.MATCH_PARENT
|
||||
).also {
|
||||
it.endToEnd = 0
|
||||
}
|
||||
|
||||
|
||||
notificationIconAreaInner.layoutParams = ConstraintLayout.LayoutParams(
|
||||
0,
|
||||
ConstraintLayout.LayoutParams.MATCH_PARENT
|
||||
).also {
|
||||
it.startToEnd = batteryId
|
||||
it.endToEnd = 0
|
||||
}
|
||||
notificationIconAreaInner.layoutDirection = View.LAYOUT_DIRECTION_RTL
|
||||
|
||||
|
||||
//增加一个左对齐布局
|
||||
mLeftLayout = LinearLayout(context)
|
||||
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
|
||||
)
|
||||
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)
|
||||
mRightLayout!!.layoutParams = RightLp
|
||||
mRightLayout!!.gravity = Gravity.END or Gravity.CENTER_VERTICAL
|
||||
|
||||
|
||||
mLeftLayout!!.addView(phoneStatusBarLeftContainer)
|
||||
mLeftLayout!!.addView(statusIcons)
|
||||
statusIcons.layoutDirection = View.LAYOUT_DIRECTION_RTL
|
||||
|
||||
mCenterLayout!!.addView(clock)
|
||||
|
||||
mRightLayout!!.addView(mConstraintLayout)
|
||||
fullscreenNotificationIconArea.layoutDirection = View.LAYOUT_DIRECTION_RTL
|
||||
|
||||
|
||||
statusBarContents.addView(mLeftLayout, 0)
|
||||
statusBarContents.addView(mCenterLayout)
|
||||
statusBarContents.addView(mRightLayout)
|
||||
|
||||
|
||||
|
||||
statusBarLeft = statusBar!!.paddingLeft
|
||||
statusBarTop = statusBar!!.paddingTop
|
||||
statusBarRight = statusBar!!.paddingRight
|
||||
statusBarBottom = statusBar!!.paddingBottom
|
||||
|
||||
|
||||
if (XSPUtils.getBoolean("layout_compatibility_mode", false)) {
|
||||
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)
|
||||
}
|
||||
}
|
||||
//兼容模式
|
||||
val phoneStatusBarViewClass =
|
||||
"com.android.systemui.statusbar.phone.PhoneStatusBarView".findClass(
|
||||
getDefaultClassLoader()
|
||||
)
|
||||
phoneStatusBarViewClass.hookAfterMethod("updateLayoutForCutout") {
|
||||
if (XSPUtils.getBoolean("layout_compatibility_mode", false)) {
|
||||
val context = (it.thisObject as ViewGroup).context
|
||||
updateLayout(context)
|
||||
}
|
||||
}
|
||||
//解决重叠
|
||||
val miuiCollapsedStatusBarFragmentClass =
|
||||
"com.android.systemui.statusbar.phone.MiuiCollapsedStatusBarFragment".findClass(
|
||||
getDefaultClassLoader()
|
||||
)
|
||||
|
||||
miuiCollapsedStatusBarFragmentClass.hookAfterMethod(
|
||||
"showClock",
|
||||
Boolean::class.java
|
||||
) {
|
||||
val MiuiPhoneStatusBarView =
|
||||
XposedHelpers.getObjectField(it.thisObject, "mStatusBar") as ViewGroup
|
||||
val res = MiuiPhoneStatusBarView.resources
|
||||
val status_bar_ID =
|
||||
res.getIdentifier("status_bar", "id", "com.android.systemui")
|
||||
val status_bar = MiuiPhoneStatusBarView.findViewById<ViewGroup>(status_bar_ID)
|
||||
//非锁屏下整个状态栏布局
|
||||
val keyguardMgr =
|
||||
status_bar.context.getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
|
||||
if (keyguardMgr.isKeyguardLocked) {
|
||||
status_bar!!.visibility = View.GONE
|
||||
} else {
|
||||
status_bar!!.visibility = View.VISIBLE
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private fun updateLayout(context: Context) {
|
||||
//判断屏幕方向
|
||||
val mConfiguration: Configuration = context.resources.configuration
|
||||
|
||||
@@ -112,7 +112,7 @@ object StatusBarTimeCustomization : HookRegister() {
|
||||
val res: Resources = MiuiPhoneStatusBarView.resources
|
||||
val clockId: Int = res.getIdentifier("clock", "id", "com.android.systemui")
|
||||
val clock: TextView = MiuiPhoneStatusBarView.findViewById(clockId)
|
||||
clock.gravity = Gravity.CENTER_HORIZONTAL
|
||||
clock.gravity = Gravity.CENTER
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<string name="hide_status_bar_network_speed_second">Ocultar unidad (/s) en velocidad de red</string>
|
||||
<string name="menu">Menú</string>
|
||||
<string name="Tips">Consejos</string>
|
||||
<string name="skip_waiting_time">Saltar advertencia de 5/10 segundos</string>
|
||||
<string name="skip_waiting_time">Saltar tiempo de advertencia de 5/10 segundos</string>
|
||||
<string name="unlock_unlimited_cropping">Elimina la restricción de recorte en imágenes/capturas de pantalla</string>
|
||||
<string name="hide_slave_wifi_icon">Ocultar icono de WIFI secundario</string>
|
||||
<string name="HideLauncherIcon">Esconder el icono del Launcher</string>
|
||||
@@ -154,8 +154,8 @@
|
||||
<string name="participate_in_translation_summary">Ayúdanos a traducir la app en tu idioma</string>
|
||||
<string name="lock_screen_charging_current">Mostrar la información de corriente durante la carga</string>
|
||||
<string name="current_current">Corriente de carga</string>
|
||||
<string name="remove_open_app_confirmation_popup">Eliminar ventana de inicio en cadena</string>
|
||||
<string name="remove_open_app_confirmation_popup_summary">Eliminar ventana \"Permitir XXX abrir XXX\" de inicio en cadena</string>
|
||||
<string name="remove_open_app_confirmation_popup">Remover popup de inicio en cadena</string>
|
||||
<string name="remove_open_app_confirmation_popup_summary">Eliminar ventana de inicio en cadena \"Permitir XXX abrir XXX\"</string>
|
||||
<string name="hide_volume_icon">Ocultar icono de volumen</string>
|
||||
<string name="hide_zen_icon">Ocultar icono ZEN</string>
|
||||
<string name="hide_icon">Ocultar Iconos</string>
|
||||
@@ -186,4 +186,12 @@
|
||||
<string name="input_error">Error de entrada</string>
|
||||
<string name="range">Rango: </string>
|
||||
<string name="big_mobile_type_icon_left_and_right_margins">Margen izquierdo y derecho del icono de red móvil grande</string>
|
||||
<string name="cast">Transmitir</string>
|
||||
<string name="force_support_send_app">Forzar que todas las apps soporten abrir en otro dispositivo</string>
|
||||
<string name="status_bar_time_double_line_center_align">Alinear al centro fila dual</string>
|
||||
<string name="default1">Por defecto</string>
|
||||
<string name="clock_center">Reloj centrado</string>
|
||||
<string name="clock_right">Reloj a la derecha</string>
|
||||
<string name="status_bar_layout_mode">Modo de diseño de barra de estado</string>
|
||||
<string name="clock_center_and_icon_left">Centrar reloj e icono a la izquierda</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">Performance</string>
|
||||
<string name="lock_max_fps">Verrouiller le taux de rafraîchissement actuel</string>
|
||||
<string name="ui">Interface</string>
|
||||
<string name="delete_on_post_notification">Supprimer l\'affichage sur la notification</string>
|
||||
@@ -47,7 +46,6 @@
|
||||
<string name="hide_status_bar_network_speed_second">Masquer les unités de vitesse réseau (/s)</string>
|
||||
<string name="menu">Menu</string>
|
||||
<string name="Tips">Conseils</string>
|
||||
<string name="skip_waiting_time">Sauter l\'alerte de 5/10 secondes</string>
|
||||
<string name="unlock_unlimited_cropping">Supprimer la restriction lors du recadrage des photos/captures d\'écran</string>
|
||||
<string name="hide_slave_wifi_icon">Masquer l\'icône secondaire WIFI</string>
|
||||
<string name="HideLauncherIcon">Masquer l\'icône en Homepage</string>
|
||||
@@ -154,8 +152,6 @@
|
||||
<string name="participate_in_translation_summary">Aidez-nous à traduire l\'application dans votre langue</string>
|
||||
<string name="lock_screen_charging_current">Afficher les informations actuelles pendant le chargement</string>
|
||||
<string name="current_current">Actuelles</string>
|
||||
<string name="remove_open_app_confirmation_popup">supprimer la popup de l\'application ouverte</string>
|
||||
<string name="remove_open_app_confirmation_popup_summary">supprimer le popup de démarrage de la chaîne \"Autoriser XXX à ouvrir XXX\"</string>
|
||||
<string name="hide_volume_icon">Masquer l\'icône de le volume</string>
|
||||
<string name="hide_zen_icon">Masquer l\'icône ZEN</string>
|
||||
<string name="hide_icon">Masquer l\'icône</string>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">Perfoma</string>
|
||||
<string name="lock_max_fps">Kunci batas atas kecepatan refresh layar saat ini</string>
|
||||
<string name="ui">Tampilan</string>
|
||||
<string name="delete_on_post_notification">Hapus tampilan di atas notifikasi</string>
|
||||
@@ -47,7 +46,6 @@
|
||||
<string name="hide_status_bar_network_speed_second">Sembunyikan unit kecepatan jaringan (/d)</string>
|
||||
<string name="menu">Menu</string>
|
||||
<string name="Tips">Tips</string>
|
||||
<string name="skip_waiting_time">Lewati 5/10 waktu peringatan</string>
|
||||
<string name="unlock_unlimited_cropping">Hilangkan pembatasan untuk memotong gambar/cuplikan layar</string>
|
||||
<string name="hide_slave_wifi_icon">Sembunyikan ikon WIFI tambahan</string>
|
||||
<string name="HideLauncherIcon">Sembunyikan ikon launcher</string>
|
||||
@@ -154,8 +152,6 @@
|
||||
<string name="participate_in_translation_summary">Bantu kami menerjemahkan aplikasi ke dalam bahasa Anda</string>
|
||||
<string name="lock_screen_charging_current">Tampilkan informasi pengisian saat mengecas</string>
|
||||
<string name="current_current">Pengisian</string>
|
||||
<string name="remove_open_app_confirmation_popup">hilangkan pop-up aplikasi saat membukanya</string>
|
||||
<string name="remove_open_app_confirmation_popup_summary">hilangkan \"Bolehkan XXX untuk membuka XXX\" pintasan rantai muncul pop-up</string>
|
||||
<string name="hide_volume_icon">Sembunyikan ikon suara</string>
|
||||
<string name="hide_zen_icon">Sembunyikan ikon ZEN (MIUI China)</string>
|
||||
<string name="hide_icon">Sembunyikan ikon</string>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">パフォーマンス設定</string>
|
||||
<string name="lock_max_fps">現在のリフレッシュレート上限をロック</string>
|
||||
<string name="ui">インタフェース</string>
|
||||
<string name="delete_on_post_notification">「他のアプリの上に表示」通知を削除</string>
|
||||
@@ -47,7 +46,6 @@
|
||||
<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">Wi-Fiセカンダリアイコンを隠す</string>
|
||||
<string name="HideLauncherIcon">ランチャーアイコンを隠す</string>
|
||||
@@ -154,8 +152,6 @@
|
||||
<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">「外部アプリを開く」ポップアップを削除します</string>
|
||||
<string name="hide_volume_icon">音量アイコンを非表示</string>
|
||||
<string name="hide_zen_icon">ZENアイコンを隠す</string>
|
||||
<string name="hide_icon">アイコンを隠す</string>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<string name="hide_status_bar_network_speed_second">Ascunde unitățile de viteză a rețelei (/s)</string>
|
||||
<string name="menu">Meniu</string>
|
||||
<string name="Tips">Sfaturi</string>
|
||||
<string name="skip_waiting_time">Omite timpul de avertizare de 5/10 secunde</string>
|
||||
<string name="skip_waiting_time">Se omite timpul de avertizare de 5/10 secunde</string>
|
||||
<string name="unlock_unlimited_cropping">Elimină restricția la decuparea fotografiilor/capturilor de ecran</string>
|
||||
<string name="hide_slave_wifi_icon">Ascunde pictograma secundară WIFI</string>
|
||||
<string name="HideLauncherIcon">Ascunde pictograma în lansator</string>
|
||||
@@ -187,4 +187,12 @@
|
||||
<string name="range">Interval: </string>
|
||||
<string name="big_mobile_type_icon_left_and_right_margins">Pictogramă mare tip date mobil, marginile din stânga și din dreapta</string>
|
||||
<string name="cast">Proiectare</string>
|
||||
<string name="force_support_send_app">Forțează trimiterea tuturor aplicațiilor către alt dispozitiv</string>
|
||||
<string name="status_bar_time_double_line_center_align">Aliniere rândului dublu la centru</string>
|
||||
<string name="default1">Implicit</string>
|
||||
<string name="clock_center">Ceas la centru</string>
|
||||
<string name="clock_right">Ceas la dreapta</string>
|
||||
<string name="status_bar_layout_mode">Aspect bară de stare</string>
|
||||
<string name="clock_center_and_icon_left">Ceas la centru și pictograme în stânga</string>
|
||||
<string name="maximum_number_of_notification_icons">Numărul maxim de pictograme de notificare</string>
|
||||
</resources>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
<string name="hide_status_bar_network_speed_second">Скрыть единицы измерения скорости сети</string>
|
||||
<string name="menu">Варианты перезагрузки</string>
|
||||
<string name="Tips">Подсказка</string>
|
||||
<string name="skip_waiting_time">Пропустить 5/10 секундное время предупреждения</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>
|
||||
@@ -193,4 +193,10 @@
|
||||
<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>
|
||||
</resources>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">Performans</string>
|
||||
<string name="performance">Performans </string>
|
||||
<string name="lock_max_fps">Geçerli yenileme hızı üst sınırını kilitle</string>
|
||||
<string name="ui">Arayüz </string>
|
||||
<string name="delete_on_post_notification">Bildirim üzerinden ekranı kaldır</string>
|
||||
@@ -48,7 +48,7 @@
|
||||
<string name="hide_status_bar_network_speed_second">Ağ hızı (/s) birimlerini gizle</string>
|
||||
<string name="menu">Menü</string>
|
||||
<string name="Tips">İpuçları</string>
|
||||
<string name="skip_waiting_time">5/10 saniyelik uyarı süresini atla</string>
|
||||
<string name="skip_waiting_time">5/10 saniye uyarı süresini atla</string>
|
||||
<string name="unlock_unlimited_cropping">Resimleri/ekran görüntülerini kırpma kısıtlamasını kaldırın</string>
|
||||
<string name="hide_slave_wifi_icon">WIFI ikincil simgesini gizle</string>
|
||||
<string name="HideLauncherIcon">Başlatıcı simgesini gizle</string>
|
||||
@@ -155,7 +155,7 @@
|
||||
<string name="participate_in_translation_summary">Uygulamayı kendi dilinize çevirmemize yardımcı olun</string>
|
||||
<string name="lock_screen_charging_current">Şarj sırasında mevcut bilgileri görüntüleyin</string>
|
||||
<string name="current_current">Akım </string>
|
||||
<string name="remove_open_app_confirmation_popup">açık uygulama açılır penceresini kaldır</string>
|
||||
<string name="remove_open_app_confirmation_popup">Açık uygulama açılır penceresini kaldır</string>
|
||||
<string name="remove_open_app_confirmation_popup_summary">\"XXX\'in XXX\'i açmasına izin ver\" Zincir başlatma açılır penceresini kaldırın</string>
|
||||
<string name="hide_volume_icon">Ses Düzeyi simgesini gizle</string>
|
||||
<string name="hide_zen_icon">ZEN simgesini gizle</string>
|
||||
@@ -187,4 +187,12 @@
|
||||
<string name="input_error">Giriş hatası</string>
|
||||
<string name="range">Menzil:</string>
|
||||
<string name="big_mobile_type_icon_left_and_right_margins">Büyük mobil tip simgesi sol ve sağ kenar boşlukları</string>
|
||||
<string name="cast">Yayınlama</string>
|
||||
<string name="force_support_send_app">Tüm uygulama desteğini başka bir cihazda açmaya zorla</string>
|
||||
<string name="status_bar_time_double_line_center_align">Çift sıralı merkez hizalama</string>
|
||||
<string name="default1">Varsayılan </string>
|
||||
<string name="clock_center">Merkezi saat</string>
|
||||
<string name="clock_right">Saat Sağ</string>
|
||||
<string name="status_bar_layout_mode">Durum çubuğu düzeni modu</string>
|
||||
<string name="clock_center_and_icon_left">Saat Merkezi ve Sol Simge</string>
|
||||
</resources>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">Hiệu năng</string>
|
||||
<string name="lock_max_fps">Khoá giới hạn tốc độ làm mới hiện tại</string>
|
||||
<string name="ui">Giao diện</string>
|
||||
<string name="delete_on_post_notification">Xoá thông báo hiển thị trên ứng dụng khác</string>
|
||||
@@ -47,7 +46,6 @@
|
||||
<string name="hide_status_bar_network_speed_second">Ẩn đơn vị tốc độ mạng (/s)</string>
|
||||
<string name="menu">Menu</string>
|
||||
<string name="Tips">Mẹo</string>
|
||||
<string name="skip_waiting_time">Bỏ qua 5/10 giây cảnh báo</string>
|
||||
<string name="unlock_unlimited_cropping">Bỏ qua danh sách đen hệ thống và phần mềm cấm cửa sổ nhỏ</string>
|
||||
<string name="hide_slave_wifi_icon">Ẩn biểu tượng WIFI thứ hai</string>
|
||||
<string name="HideLauncherIcon">Ẩn biểu tượng ứng dụng này khỏi màn hình chính</string>
|
||||
@@ -154,9 +152,6 @@
|
||||
<string name="participate_in_translation_summary">Giúp chúng tôi dịch ứng dụng sang ngôn ngữ của bạn</string>
|
||||
<string name="lock_screen_charging_current">Hiển thị thông tin hiện tại trong khi sạc</string>
|
||||
<string name="current_current">Hiện tại</string>
|
||||
<string name="remove_open_app_confirmation_popup">xóa cửa sổ bật lên ứng dụng đang mở</string>
|
||||
<string name="remove_open_app_confirmation_popup_summary">loại bỏ \"Cho phép XXX mở XXX\" Cửa sổ bật lên bắt đầu chuỗi
|
||||
TIẾP TỤC</string>
|
||||
<string name="hide_volume_icon">Ẩn biểu tượng Âm lượng</string>
|
||||
<string name="hide_zen_icon">Ẩn biểu tượng ZEN</string>
|
||||
<string name="hide_icon">Ẩn biểu tượng</string>
|
||||
|
||||
@@ -189,4 +189,10 @@
|
||||
<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>
|
||||
</resources>
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">性能</string>
|
||||
<string name="lock_max_fps">鎖定當前刷新率上限</string>
|
||||
<string name="ui">界面</string>
|
||||
<string name="delete_on_post_notification">移除上層顯示通知</string>
|
||||
@@ -47,7 +46,6 @@
|
||||
<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>
|
||||
@@ -154,8 +152,6 @@
|
||||
<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>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="performance">表現</string>
|
||||
<string name="performance">性能</string>
|
||||
<string name="lock_max_fps">鎖定螢幕更新率上限</string>
|
||||
<string name="ui">介面</string>
|
||||
<string name="delete_on_post_notification">移除上層顯示通知</string>
|
||||
@@ -66,7 +66,7 @@
|
||||
<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_clock_double_line_size">雙行大小(0:不更改)</string>
|
||||
<string name="matters_needing_attention">功能無法生效?</string>
|
||||
<string name="Done">確定</string>
|
||||
<string name="about_module_summary">查看模組相關訊息</string>
|
||||
@@ -170,7 +170,7 @@
|
||||
<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_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>
|
||||
@@ -186,4 +186,13 @@
|
||||
<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>
|
||||
</resources>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name" translatable="false">Simplicity Tools</string>
|
||||
<string name="performance">Performence</string>
|
||||
<string name="performance">Performance</string>
|
||||
<string name="lock_max_fps">Lock the current refresh rate upper limit</string>
|
||||
<string name="ui">Interface</string>
|
||||
<string name="delete_on_post_notification">Remove display over notification</string>
|
||||
@@ -51,7 +51,7 @@
|
||||
<string name="hide_status_bar_network_speed_second">Hide network speed (/s) units</string>
|
||||
<string name="menu">Menu</string>
|
||||
<string name="Tips">Tips</string>
|
||||
<string name="skip_waiting_time">Skip 5/10 second warning time</string>
|
||||
<string name="skip_waiting_time">Skip 5/10 seconds warning time</string>
|
||||
<string name="unlock_unlimited_cropping">Remove restriction on cropping pictures/screenshots</string>
|
||||
<string name="hide_slave_wifi_icon">Hide WIFI secondary icon</string>
|
||||
<string name="HideLauncherIcon">Hide Launcher icon</string>
|
||||
@@ -158,8 +158,8 @@
|
||||
<string name="participate_in_translation_summary">Help us translate the app into your language</string>
|
||||
<string name="lock_screen_charging_current">Display current information during charging</string>
|
||||
<string name="current_current">Current</string>
|
||||
<string name="remove_open_app_confirmation_popup">remove open app popup</string>
|
||||
<string name="remove_open_app_confirmation_popup_summary">remove \"Allow XXX to open XXX\" Chain start popup</string>
|
||||
<string name="remove_open_app_confirmation_popup">Remove open app popup</string>
|
||||
<string name="remove_open_app_confirmation_popup_summary">Remove \"Allow XXX to open XXX\" Chain start popup</string>
|
||||
<string name="hide_volume_icon">Hide Volume icon</string>
|
||||
<string name="hide_zen_icon">Hide ZEN icon</string>
|
||||
<string name="hide_icon">Hide Icon</string>
|
||||
@@ -193,4 +193,10 @@
|
||||
<string name="cast">Cast</string>
|
||||
<string name="force_support_send_app">Force all apps support open on another device</string>
|
||||
<string name="status_bar_time_double_line_center_align">Dual row center align</string>
|
||||
<string name="default1">Default</string>
|
||||
<string name="clock_center">Clock Center</string>
|
||||
<string name="clock_right">Clock Right</string>
|
||||
<string name="status_bar_layout_mode">Status bar layout mode</string>
|
||||
<string name="clock_center_and_icon_left">Clock Center and Icon Left</string>
|
||||
<string name="maximum_number_of_notification_icons">Maximum number of notification icons</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user