新增时钟显秒

This commit is contained in:
LittleTurtle2333
2022-02-17 01:44:52 +08:00
parent c21a82d8ad
commit fa518a0116
2 changed files with 223 additions and 151 deletions

View File

@@ -10,8 +10,8 @@ android {
applicationId "com.lt2333.simplicitytools" applicationId "com.lt2333.simplicitytools"
minSdk 30 minSdk 30
targetSdk 32 targetSdk 32
versionCode 3 versionCode 4
versionName "1.0.2" versionName "1.0.3"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
} }

View File

@@ -1,12 +1,21 @@
package com.lt2333.simplicitytools.hook.app package com.lt2333.simplicitytools.hook.app
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent import android.content.Intent
import android.os.Handler
import android.provider.Settings
import android.util.AttributeSet
import android.util.Log import android.util.Log
import android.widget.TextView
import com.lt2333.simplicitytools.BuildConfig import com.lt2333.simplicitytools.BuildConfig
import com.lt2333.simplicitytools.hook.MainHook import com.lt2333.simplicitytools.hook.MainHook
import de.robv.android.xposed.* import de.robv.android.xposed.*
import de.robv.android.xposed.XC_MethodHook.MethodHookParam import de.robv.android.xposed.XC_MethodHook.MethodHookParam
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam
import java.lang.reflect.Method
import java.text.SimpleDateFormat
import java.util.*
class SystemUI : IXposedHookLoadPackage { class SystemUI : IXposedHookLoadPackage {
@@ -241,5 +250,68 @@ class SystemUI : IXposedHookLoadPackage {
XposedBridge.log(e) XposedBridge.log(e)
} }
//时钟显秒
if (prefs.hasFileChanged()) {
prefs.reload()
} }
if (prefs.getBoolean("statusbar_time_seconds", false)) {
var c: Context? = null
val classIfExists = XposedHelpers.findClassIfExists(
"com.android.systemui.statusbar.views.MiuiClock",
lpparam.classLoader
)
XposedHelpers.findAndHookConstructor(classIfExists,
Context::class.java,
AttributeSet::class.java,
Integer.TYPE,
object : XC_MethodHook() {
override fun afterHookedMethod(param: MethodHookParam) {
c = param.args[0] as Context
val textV = param.thisObject as TextView
val d: Method = textV.javaClass.getDeclaredMethod("updateTime")
val r = Runnable {
d.isAccessible = true
d.invoke(textV)
}
class T : TimerTask() {
override fun run() {
Handler(textV.context.mainLooper).post(r)
}
}
if (textV.resources.getResourceEntryName(textV.id) == "clock")
Timer().scheduleAtFixedRate(
T(),
1000 - System.currentTimeMillis() % 1000,
1000
)
}
}
)
XposedHelpers.findAndHookMethod(classIfExists, "updateTime",
object : XC_MethodHook() {
@SuppressLint("SetTextI18n", "SimpleDateFormat")
override fun afterHookedMethod(param: MethodHookParam) {
val textV = param.thisObject as TextView
if (textV.resources.getResourceEntryName(textV.id) == "clock") {
val t = Settings.System.getString(
c!!.contentResolver,
Settings.System.TIME_12_24
)
if (t == "24")
textV.text =
SimpleDateFormat("HH:mm:ss").format(Calendar.getInstance().time)
else
textV.text =
textV.text.toString() + SimpleDateFormat(":ss").format(Calendar.getInstance().time)
}
}
})
}
}
} }