From 5ee5dd71b15ec54d91a09577effb59d003239b82 Mon Sep 17 00:00:00 2001 From: LittleTurtle2333 Date: Sun, 27 Mar 2022 16:59:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=8C=E6=8E=92=E6=97=B6=E9=92=9F=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=B1=85=E4=B8=AD=E5=AF=B9=E9=BD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/SettingsActivity.kt | 7 ++++ .../systemui/StatusBarTimeCustomization.kt | 33 ++++++++++++++++--- app/src/main/res/values/strings.xml | 3 +- 3 files changed, 37 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt b/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt index 49dae49e..9c21ae77 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/activity/SettingsActivity.kt @@ -665,6 +665,13 @@ class SettingsActivity : MIUIActivity() { dataBindingRecv = customClockBinding.binding.getRecv(2) ) ) + add( + TextWithSwitchV( + TextV(resId = R.string.status_bar_time_double_line_center_align), + SwitchV("status_bar_time_double_line_center_align"), + dataBindingRecv = customClockBinding.binding.getRecv(2) + ) + ) add( TextV( resId = R.string.status_bar_clock_size, diff --git a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarTimeCustomization.kt b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarTimeCustomization.kt index 02f25f61..c809fd02 100644 --- a/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarTimeCustomization.kt +++ b/app/src/main/java/com/lt2333/simplicitytools/hook/app/systemui/StatusBarTimeCustomization.kt @@ -2,21 +2,23 @@ package com.lt2333.simplicitytools.hook.app.systemui import android.annotation.SuppressLint import android.content.Context +import android.content.res.Resources +import android.os.Bundle import android.os.Handler import android.provider.Settings import android.util.AttributeSet import android.util.TypedValue +import android.view.Gravity +import android.view.View +import android.view.ViewGroup import android.widget.TextView -import com.lt2333.simplicitytools.util.XSPUtils -import com.lt2333.simplicitytools.util.findClass -import com.lt2333.simplicitytools.util.hookAfterConstructor -import com.lt2333.simplicitytools.util.hookAfterMethod +import com.lt2333.simplicitytools.util.* import com.lt2333.simplicitytools.util.xposed.base.HookRegister import java.lang.reflect.Method import java.text.SimpleDateFormat import java.util.* -object StatusBarTimeCustomization: HookRegister() { +object StatusBarTimeCustomization : HookRegister() { private val isYear = XSPUtils.getBoolean("status_bar_time_year", false) private val isMonth = XSPUtils.getBoolean("status_bar_time_month", false) @@ -29,6 +31,8 @@ object StatusBarTimeCustomization: HookRegister() { private val isPeriod = XSPUtils.getBoolean("status_bar_time_period", true) private val getClockSize = XSPUtils.getInt("status_bar_clock_size", 0) private val isOpen = XSPUtils.getBoolean("custom_clock_switch", false) + private val isCenterAlign = + XSPUtils.getBoolean("status_bar_time_double_line_center_align", false) private val getClockDoubleSize = XSPUtils.getInt("status_bar_clock_double_line_size", 0) private var nowTime: Date? = null private var str = "" @@ -68,6 +72,7 @@ object StatusBarTimeCustomization: HookRegister() { d.isAccessible = true d.invoke(textV) } + class T : TimerTask() { override fun run() { Handler(textV.context.mainLooper).post(r) @@ -92,6 +97,24 @@ object StatusBarTimeCustomization: HookRegister() { } catch (e: Exception) { } } + if (isCenterAlign) { + val collapsedStatusBarFragmentClass = + "com.android.systemui.statusbar.phone.CollapsedStatusBarFragment".findClass( + getDefaultClassLoader() + ) + collapsedStatusBarFragmentClass.hookAfterMethod( + "onViewCreated", + View::class.java, + Bundle::class.java + ) { + val MiuiPhoneStatusBarView: ViewGroup = + it.thisObject.getObjectField("mStatusBar") as ViewGroup + 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 + } + } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 629fa055..ecf1186c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -191,5 +191,6 @@ Range: Big mobile type icon left and right margins Cast - Force all apps support Handoff + Force all apps support open on another device + Dual row center align