Compare commits

15 Commits

Author SHA1 Message Date
乌堆小透明
9af50d9dd5 New translations strings.xml (Chinese Traditional)
[ci skip] New translations from Crowdin
2022-03-29 18:42:48 +08:00
乌堆小透明
c2fa56a90c New translations strings.xml (Romanian)
[ci skip] New translations from Crowdin
2022-03-29 18:33:36 +08:00
乌堆小透明
912fee632d New translations strings.xml (Russian)
[ci skip] New translations from Crowdin
2022-03-29 17:44:29 +08:00
乌堆小透明
390be46825 New translations strings.xml (Chinese Traditional)
[ci skip] New translations from Crowdin
2022-03-29 17:16:40 +08:00
LittleTurtle2333
d8baadae59 Update version to 1.5.6 2022-03-29 16:48:00 +08:00
乌堆小透明
d2035121ce New Crowdin updates (#114) 2022-03-29 16:47:42 +08:00
LittleTurtle2333
b29bfb45f9 新增自定义通知图标上限 2022-03-29 16:43:25 +08:00
LittleTurtle2333
657c65164f 新增状态栏时钟居中+图标居左布局 2022-03-29 16:15:38 +08:00
LittleTurtle2333
5c3ca4caa4 Merge remote-tracking branch 'origin/main' 2022-03-28 23:57:08 +08:00
LittleTurtle2333
08b4abf08c 新增时钟居中+图标居左(未完成) 2022-03-28 23:56:56 +08:00
CDzungx
acdbd23248 Typo fixes (#117) 2022-03-28 04:10:32 +08:00
LittleTurtle2333
2bed96532f 新增状态栏时钟居右布局 2022-03-28 03:14:02 +08:00
LittleTurtle2333
314fc7b46f Update README.md 2022-03-28 02:17:19 +08:00
LittleTurtle2333
ff94fce5d0 修复开启时钟居中对齐后上移的问题 2022-03-28 02:12:49 +08:00
LittleTurtle2333
d56d291e51 Fix Thai cannot hide network speed unit 2022-03-27 19:43:04 +08:00
14 changed files with 480 additions and 147 deletions

View File

@@ -48,6 +48,8 @@ Xposed仓库下载[点击此处下载最新发行版](https://github.com/Xpos
[LSPosed/CorePatch](https://github.com/LSPosed/CorePatch) [LSPosed/CorePatch](https://github.com/LSPosed/CorePatch)
##### GNU Lesser General Public License v2.1 ##### 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)
--- ---

View File

@@ -45,6 +45,8 @@ Xposed Repo[Click here to download the latest release](https://github.com/Xpo
[LSPosed/CorePatch](https://github.com/LSPosed/CorePatch) [LSPosed/CorePatch](https://github.com/LSPosed/CorePatch)
##### GNU Lesser General Public License v2.1 ##### 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)
--- ---

View File

@@ -12,8 +12,8 @@ android {
applicationId = "com.lt2333.simplicitytools" applicationId = "com.lt2333.simplicitytools"
minSdk = 31 minSdk = 31
targetSdk = 32 targetSdk = 32
versionCode = 56 versionCode = 57
versionName = "1.5.5" versionName = "1.5.6"
} }
buildTypes { buildTypes {

View File

@@ -508,13 +508,58 @@ class SettingsActivity : MIUIActivity() {
) )
add(LineV()) add(LineV())
add(TitleTextV(resId = R.string.status_bar_layout)) 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( add(
TextSummaryWithSwitchV( TextWithSpinnerV(
TextSummaryV( TextV(resId = R.string.status_bar_layout_mode),
textId = R.string.status_bar_time_center, SpinnerV(
tipsId = R.string.status_bar_layout_summary arrayListOf<MIUIPopupData>().apply {
), add(MIUIPopupData(statusBarLayoutMode[0].toString()) {
SwitchV("status_bar_time_center") 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( val layoutCompatibilityModeBinding = getDataBinding(
@@ -874,12 +919,16 @@ class SettingsActivity : MIUIActivity() {
) )
) )
add( add(
TextSummaryWithSwitchV( TextV(
TextSummaryV( resId = R.string.maximum_number_of_notification_icons
textId = R.string.remove_the_maximum_number_of_notification_icons, )
tipsId = R.string.remove_the_maximum_number_of_notification_icons_summary )
), add(
SwitchV("remove_the_maximum_number_of_notification_icons") SeekBarWithTextV(
"maximum_number_of_notification_icons",
1,
30,
3
) )
) )
add( add(

View File

@@ -21,7 +21,7 @@ object SystemUI: AppRegister() {
HideMobileTypeIcon, //隐藏移动类型图标 HideMobileTypeIcon, //隐藏移动类型图标
HideStatusBarNetworkSpeedSecond, //隐藏状态栏网速/s HideStatusBarNetworkSpeedSecond, //隐藏状态栏网速/s
HideWifiActivityIcon, //隐藏WIFI活动箭头图标 HideWifiActivityIcon, //隐藏WIFI活动箭头图标
RemoveTheMaximumNumberOfNotificationIcons, //移除通知图标上限 MaximumNumberOfNotificationIcons, //通知图标上限
StatusBarNetworkSpeedRefreshSpeed, //状态栏网速秒刷新 StatusBarNetworkSpeedRefreshSpeed, //状态栏网速秒刷新
StatusBarTimeCustomization, //状态栏时钟自定义 StatusBarTimeCustomization, //状态栏时钟自定义
RemoveTheLeftSideOfTheLockScreen, //移除锁屏负一屏功能 RemoveTheLeftSideOfTheLockScreen, //移除锁屏负一屏功能

View File

@@ -15,6 +15,7 @@ object HideStatusBarNetworkSpeedSecond: HookRegister() {
.replace("/", "") .replace("/", "")
.replace("s", "") .replace("s", "")
.replace("'", "") .replace("'", "")
.replace("วิ", "")
} }
} }
} }

View File

@@ -1,20 +1,17 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hook.app.systemui
import com.lt2333.simplicitytools.util.callMethod import com.lt2333.simplicitytools.util.*
import com.lt2333.simplicitytools.util.hasEnable
import com.lt2333.simplicitytools.util.replaceMethod
import com.lt2333.simplicitytools.util.setIntField
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.util.xposed.base.HookRegister
object RemoveTheMaximumNumberOfNotificationIcons: HookRegister() { object MaximumNumberOfNotificationIcons: HookRegister() {
override fun init() { 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) { "com.android.systemui.statusbar.phone.NotificationIconContainer".replaceMethod(getDefaultClassLoader(), "miuiShowNotificationIcons", Boolean::class.java) {
if (it.args[0] as Boolean) { if (it.args[0] as Boolean) {
it.thisObject.setIntField("MAX_DOTS", 30) it.thisObject.setIntField("MAX_DOTS", size)
it.thisObject.setIntField("MAX_STATIC_ICONS", 30) it.thisObject.setIntField("MAX_STATIC_ICONS", size)
it.thisObject.setIntField("MAX_VISIBLE_ICONS_ON_LOCK", 30) it.thisObject.setIntField("MAX_VISIBLE_ICONS_ON_LOCK", size)
} else { } else {
it.thisObject.setIntField("MAX_DOTS", 0) it.thisObject.setIntField("MAX_DOTS", 0)
it.thisObject.setIntField("MAX_STATIC_ICONS", 0) it.thisObject.setIntField("MAX_STATIC_ICONS", 0)
@@ -23,6 +20,5 @@ object RemoveTheMaximumNumberOfNotificationIcons: HookRegister() {
it.thisObject.callMethod("updateState") it.thisObject.callMethod("updateState")
} }
} }
}
} }

View File

@@ -1,6 +1,7 @@
package com.lt2333.simplicitytools.hook.app.systemui package com.lt2333.simplicitytools.hook.app.systemui
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.KeyguardManager
import android.content.Context import android.content.Context
import android.content.res.Configuration import android.content.res.Configuration
import android.content.res.Resources import android.content.res.Resources
@@ -8,18 +9,20 @@ import android.os.Bundle
import android.view.Gravity import android.view.Gravity
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import cn.fkj233.ui.activity.dp2px
import com.lt2333.simplicitytools.util.XSPUtils import com.lt2333.simplicitytools.util.XSPUtils
import com.lt2333.simplicitytools.util.findClass import com.lt2333.simplicitytools.util.findClass
import com.lt2333.simplicitytools.util.getObjectField import com.lt2333.simplicitytools.util.getObjectField
import com.lt2333.simplicitytools.util.hookAfterMethod import com.lt2333.simplicitytools.util.hookAfterMethod
import com.lt2333.simplicitytools.util.xposed.base.HookRegister import com.lt2333.simplicitytools.util.xposed.base.HookRegister
import de.robv.android.xposed.XposedHelpers
@SuppressLint("StaticFieldLeak") @SuppressLint("StaticFieldLeak")
object StatusBarLayout: HookRegister() { object StatusBarLayout : HookRegister() {
private var mLeftLayout: LinearLayout? = null private var mLeftLayout: LinearLayout? = null
private var mRightLayout: LinearLayout? = null private var mRightLayout: LinearLayout? = null
@@ -32,10 +35,15 @@ object StatusBarLayout: HookRegister() {
private var statusBarBottom = 0 private var statusBarBottom = 0
override fun init() { 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 = val collapsedStatusBarFragmentClass =
"com.android.systemui.statusbar.phone.CollapsedStatusBarFragment".findClass(getDefaultClassLoader()) "com.android.systemui.statusbar.phone.CollapsedStatusBarFragment".findClass(
getDefaultClassLoader()
)
collapsedStatusBarFragmentClass.hookAfterMethod( collapsedStatusBarFragmentClass.hookAfterMethod(
"onViewCreated", "onViewCreated",
@@ -46,16 +54,25 @@ object StatusBarLayout: HookRegister() {
param.thisObject.getObjectField("mStatusBar") as ViewGroup param.thisObject.getObjectField("mStatusBar") as ViewGroup
val context: Context = MiuiPhoneStatusBarView.context val context: Context = MiuiPhoneStatusBarView.context
val res: Resources = MiuiPhoneStatusBarView.resources val res: Resources = MiuiPhoneStatusBarView.resources
val statusBarId: Int = res.getIdentifier("status_bar", "id", "com.android.systemui") val statusBarId: Int =
res.getIdentifier("status_bar", "id", "com.android.systemui")
val statusBarContentsId: Int = val statusBarContentsId: Int =
res.getIdentifier("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("phone_status_bar_left_container", "id", "com.android.systemui") res.getIdentifier(
"phone_status_bar_left_container",
"id",
"com.android.systemui"
)
val notificationIconAreaInnerId: Int = val notificationIconAreaInnerId: Int =
res.getIdentifier("notification_icon_area_inner", "id", "com.android.systemui") 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)
@@ -77,13 +94,13 @@ object StatusBarLayout: HookRegister() {
) )
(systemIconArea.parent as ViewGroup).removeView(systemIconArea) (systemIconArea.parent as ViewGroup).removeView(systemIconArea)
val mConstraintLayoutLp = ConstraintLayout.LayoutParams( val mConstraintLayout =
ConstraintLayout(context).also {
it.layoutParams = ConstraintLayout.LayoutParams(
ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.MATCH_PARENT,
ConstraintLayout.LayoutParams.MATCH_PARENT ConstraintLayout.LayoutParams.MATCH_PARENT
) )
}
val mConstraintLayout =
ConstraintLayout(context).also { it.layoutParams = mConstraintLayoutLp }
mConstraintLayout.addView(notificationIconAreaInner) mConstraintLayout.addView(notificationIconAreaInner)
@@ -141,11 +158,11 @@ object StatusBarLayout: HookRegister() {
} }
updateLayout(context) updateLayout(context)
} }
} }
val phoneStatusBarViewClass = val phoneStatusBarViewClass =
"com.android.systemui.statusbar.phone.PhoneStatusBarView".findClass(getDefaultClassLoader()) "com.android.systemui.statusbar.phone.PhoneStatusBarView".findClass(
getDefaultClassLoader()
)
phoneStatusBarViewClass.hookAfterMethod("updateLayoutForCutout") { phoneStatusBarViewClass.hookAfterMethod("updateLayoutForCutout") {
if (XSPUtils.getBoolean("layout_compatibility_mode", false)) { if (XSPUtils.getBoolean("layout_compatibility_mode", false)) {
@@ -153,19 +170,273 @@ object StatusBarLayout: HookRegister() {
updateLayout(context) updateLayout(context)
} }
} }
val miuiPhoneStatusBarViewClass = }
"com.android.systemui.statusbar.phone.MiuiPhoneStatusBarView".findClass(getDefaultClassLoader()) //时钟居右
2 -> {
val collapsedStatusBarFragmentClass =
"com.android.systemui.statusbar.phone.CollapsedStatusBarFragment".findClass(
getDefaultClassLoader()
)
miuiPhoneStatusBarViewClass.hookAfterMethod("updateNotificationIconAreaInnnerParent") { collapsedStatusBarFragmentClass.hookAfterMethod(
val viewGroup = it.thisObject as ViewGroup "onViewCreated",
val fullscreen_notification_icon_area_lp = FrameLayout.LayoutParams( 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
//组件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")
//查找组件
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)
}
}
//时钟居中+图标居左
3 -> {
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 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,
ConstraintLayout.LayoutParams.MATCH_PARENT ConstraintLayout.LayoutParams.MATCH_PARENT
) )
viewGroup.layoutParams = fullscreen_notification_icon_area_lp
}
} }
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) { private fun updateLayout(context: Context) {
//判断屏幕方向 //判断屏幕方向

View File

@@ -112,7 +112,7 @@ object StatusBarTimeCustomization : HookRegister() {
val res: Resources = MiuiPhoneStatusBarView.resources val res: Resources = MiuiPhoneStatusBarView.resources
val clockId: Int = res.getIdentifier("clock", "id", "com.android.systemui") val clockId: Int = res.getIdentifier("clock", "id", "com.android.systemui")
val clock: TextView = MiuiPhoneStatusBarView.findViewById(clockId) val clock: TextView = MiuiPhoneStatusBarView.findViewById(clockId)
clock.gravity = Gravity.CENTER_HORIZONTAL clock.gravity = Gravity.CENTER
} }
} }
} }

View File

@@ -194,4 +194,5 @@
<string name="clock_right">Ceas la dreapta</string> <string name="clock_right">Ceas la dreapta</string>
<string name="status_bar_layout_mode">Aspect bară de stare</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="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> </resources>

View File

@@ -198,4 +198,5 @@
<string name="clock_right">Часы справа</string> <string name="clock_right">Часы справа</string>
<string name="status_bar_layout_mode">Стиль строки состояния</string> <string name="status_bar_layout_mode">Стиль строки состояния</string>
<string name="clock_center_and_icon_left">Часы по центру и иконки слева</string> <string name="clock_center_and_icon_left">Часы по центру и иконки слева</string>
<string name="maximum_number_of_notification_icons">Максимальное количество значков уведомлений</string>
</resources> </resources>

View File

@@ -193,4 +193,6 @@
<string name="clock_center">时钟居中</string> <string name="clock_center">时钟居中</string>
<string name="clock_right">时钟居右</string> <string name="clock_right">时钟居右</string>
<string name="status_bar_layout_mode">状态栏布局模式</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> </resources>

View File

@@ -66,7 +66,7 @@
<string name="status_bar_time_period">顯示時段</string> <string name="status_bar_time_period">顯示時段</string>
<string name="status_bar_time_double_line">雙行顯示</string> <string name="status_bar_time_double_line">雙行顯示</string>
<string name="status_bar_clock_size">時鐘大小0不更改</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="matters_needing_attention">功能無法生效?</string>
<string name="Done">確定</string> <string name="Done">確定</string>
<string name="about_module_summary">查看模組相關訊息</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">雙行網路速度</string>
<string name="status_bar_dual_row_network_speed_summary">上下行網路速度顯示</string> <string name="status_bar_dual_row_network_speed_summary">上下行網路速度顯示</string>
<string name="status_bar_network_speed">狀態欄網路速度</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="status_bar_network_speed_dual_row_icon">雙行圖示</string>
<string name="none"></string> <string name="none"></string>
<string name="status_bar_network_speed_dual_row_gravity">雙行網速對齊</string> <string name="status_bar_network_speed_dual_row_gravity">雙行網速對齊</string>
@@ -188,9 +188,11 @@
<string name="big_mobile_type_icon_left_and_right_margins">大行動網路圖示左右邊距</string> <string name="big_mobile_type_icon_left_and_right_margins">大行動網路圖示左右邊距</string>
<string name="cast">接力</string> <string name="cast">接力</string>
<string name="force_support_send_app">允許所有應用使用接力</string> <string name="force_support_send_app">允許所有應用使用接力</string>
<string name="status_bar_time_double_line_center_align">居中對齊</string> <string name="status_bar_time_double_line_center_align">居中對齊</string>
<string name="default1">預設值</string> <string name="default1">預設值</string>
<string name="clock_center">時鐘置中</string> <string name="clock_center">時鐘置中</string>
<string name="clock_right">時鐘置右</string> <string name="clock_right">時鐘置右</string>
<string name="status_bar_layout_mode">狀態欄布局模式</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> </resources>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<string name="app_name" translatable="false">Simplicity Tools</string> <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="lock_max_fps">Lock the current refresh rate upper limit</string>
<string name="ui">Interface</string> <string name="ui">Interface</string>
<string name="delete_on_post_notification">Remove display over notification</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="hide_status_bar_network_speed_second">Hide network speed (/s) units</string>
<string name="menu">Menu</string> <string name="menu">Menu</string>
<string name="Tips">Tips</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="unlock_unlimited_cropping">Remove restriction on cropping pictures/screenshots</string>
<string name="hide_slave_wifi_icon">Hide WIFI secondary icon</string> <string name="hide_slave_wifi_icon">Hide WIFI secondary icon</string>
<string name="HideLauncherIcon">Hide Launcher 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="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="lock_screen_charging_current">Display current information during charging</string>
<string name="current_current">Current</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">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_summary">Remove \"Allow XXX to open XXX\" Chain start popup</string>
<string name="hide_volume_icon">Hide Volume icon</string> <string name="hide_volume_icon">Hide Volume icon</string>
<string name="hide_zen_icon">Hide ZEN icon</string> <string name="hide_zen_icon">Hide ZEN icon</string>
<string name="hide_icon">Hide Icon</string> <string name="hide_icon">Hide Icon</string>
@@ -193,4 +193,10 @@
<string name="cast">Cast</string> <string name="cast">Cast</string>
<string name="force_support_send_app">Force all apps support open on another device</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="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> </resources>