Merge pull request #48 from YuKongA/main

电池温度
This commit is contained in:
乌堆小透明
2022-03-11 23:03:44 +08:00
committed by GitHub
12 changed files with 108 additions and 20 deletions

View File

@@ -32,10 +32,24 @@ jobs:
path: |
~/.gradle/caches/build-cache-*
key: gradle-builds-${{ github.sha }}
- name: Clone UI
run: git clone https://github.com/Block-Network/blockmiui.git
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
- name: Init Submodule
run: |
git submodule init
git submodule update
- name: Build with Gradle
run: bash ./gradlew assemble
- name: Upload Release APK
uses: actions/upload-artifact@v2
with:
name: SimplicityTools_Release
path: "app/build/outputs/apk/release/*.apk"
- name: Upload Debug APK
uses: actions/upload-artifact@v2
with:
name: Simplicity Tools_Debug
path: "app/build/outputs/apk/debug/*.apk"

View File

@@ -19,13 +19,8 @@ android {
buildTypes {
release {
isMinifyEnabled = true
isZipAlignEnabled = true
isShrinkResources = true
setProguardFiles(
listOf(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
setProguardFiles(listOf("proguard-rules.pro")
)
}
}
@@ -50,7 +45,7 @@ android {
applicationVariants.all {
outputs.all {
(this as BaseVariantOutputImpl).outputFileName =
"Simplicity_Tools_Xposed-${versionName}-${name}.apk"
"Simplicity_Tools_Xposed-$versionName-$name.apk"
}
}
}

View File

@@ -974,6 +974,14 @@ class SettingsActivity : MIUIActivity() {
SwitchV("remove_macro_blacklist")
)
)
add(
TextSummaryWithSwitchV(
TextSummaryV(
textId = R.string.battery_life_function
),
SwitchV("battery_life_function")
)
)
add(LineV())
add(TitleTextV(resId = R.string.scope_mediaeditor))
add(

View File

@@ -2,12 +2,14 @@ package com.lt2333.simplicitytools.hook.app
import com.lt2333.simplicitytools.hook.app.securitycenter.LockOneHundred
import com.lt2333.simplicitytools.hook.app.securitycenter.RemoveMacroBlacklist
import com.lt2333.simplicitytools.hook.app.securitycenter.ShowBatteryTemperature
import com.lt2333.simplicitytools.hook.app.securitycenter.SkipWaitingTime
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.XposedBridge
import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam
class SecurityCenter : IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: LoadPackageParam) {
XposedBridge.log("Simplicitytools: 成功 Hook "+javaClass.simpleName)
//跳过 5/10秒等待时间
@@ -16,5 +18,7 @@ class SecurityCenter : IXposedHookLoadPackage {
LockOneHundred().handleLoadPackage(lpparam)
//去除自动连招黑名单
RemoveMacroBlacklist().handleLoadPackage(lpparam)
//显示电池温度
ShowBatteryTemperature().handleLoadPackage(lpparam)
}
}

View File

@@ -1,8 +1,8 @@
package com.lt2333.simplicitytools.hook.app
import com.lt2333.simplicitytools.util.XSPUtils
import com.lt2333.simplicitytools.util.hookBeforeMethod
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.XC_MethodHook
import de.robv.android.xposed.XposedHelpers
import de.robv.android.xposed.callbacks.XC_LoadPackage
@@ -15,11 +15,9 @@ class Updater : IXposedHookLoadPackage {
"com.android.updater.common.utils.$letter", lpparam.classLoader
) ?: continue
if (classIfExists.declaredFields.size >= 9 && classIfExists.declaredMethods.size > 60) {
XposedHelpers.findAndHookMethod(classIfExists, "T", object : XC_MethodHook() {
override fun beforeHookedMethod(param: MethodHookParam) {
param.result = false
classIfExists.hookBeforeMethod("T") {
it.result = false
}
})
return
}
letter++

View File

@@ -1,6 +1,7 @@
package com.lt2333.simplicitytools.hook.app.android
import com.lt2333.simplicitytools.util.*
import com.lt2333.simplicitytools.util.hasEnable
import com.lt2333.simplicitytools.util.hookBeforeMethod
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.callbacks.XC_LoadPackage

View File

@@ -0,0 +1,64 @@
package com.lt2333.simplicitytools.hook.app.securitycenter
import android.app.AndroidAppHelper
import android.content.BroadcastReceiver
import android.content.Context
import android.content.IntentFilter
import android.content.res.Configuration
import android.graphics.Color
import android.graphics.Typeface
import android.util.TypedValue
import android.view.Gravity
import android.view.View
import android.widget.LinearLayout
import android.widget.TextView
import cn.fkj233.ui.activity.dp2px
import com.lt2333.simplicitytools.util.*
import de.robv.android.xposed.IXposedHookLoadPackage
import de.robv.android.xposed.callbacks.XC_LoadPackage
import java.lang.reflect.Field
class ShowBatteryTemperature: IXposedHookLoadPackage {
override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) {
if (!XSPUtils.getBoolean("battery_life_function", false)) return
val a = "com.miui.powercenter.a\$a".findClass(lpparam.classLoader)
"com.miui.powercenter.a".hookBeforeMethod(lpparam.classLoader, "b", Context::class.java) {
it.result = getBatteryTemperature(it.args[0] as Context).toString()
}
a.hookAfterMethod("run") {
val context = AndroidAppHelper.currentApplication().applicationContext
val isDarkMode = context.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK == Configuration.UI_MODE_NIGHT_YES
val currentTemperatureValue = context.resources.getIdentifier("current_temperature_value", "id", "com.miui.securitycenter")
val field = a.getDeclaredField("a") as Field
field.isAccessible = true
val view = field.get(it.thisObject) as View
val textView = view.findViewById<TextView>(currentTemperatureValue)
textView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 36.399998f)
textView.gravity = Gravity.NO_GRAVITY
textView.setPadding(0, 0, 0, 0)
textView.height = dp2px(context, 49.099983f)
textView.textAlignment = View.TEXT_ALIGNMENT_VIEW_START
(textView.layoutParams as LinearLayout.LayoutParams).marginStart = dp2px(context, 25f)
(textView.layoutParams as LinearLayout.LayoutParams).topMargin = 0
val tempView = TextView(context)
tempView.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, dp2px(context, 49.099983f))
(tempView.layoutParams as LinearLayout.LayoutParams).marginStart = dp2px(context, 3.599976f)
tempView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13.099977f)
tempView.setPadding(0, dp2px(context, 25f), 0, 0)
tempView.text = ""
tempView.setTextColor(Color.parseColor(if (isDarkMode) "#e6e6e6" else "#333333"))
tempView.typeface = Typeface.create(null, 500, false)
tempView.textAlignment = View.TEXT_ALIGNMENT_VIEW_START
val tempeValueContainer = context.resources.getIdentifier("tempe_value_container", "id", "com.miui.securitycenter")
val linearLayout = view.findViewById<LinearLayout>(tempeValueContainer)
linearLayout.addView(tempView)
}
}
private fun getBatteryTemperature(context: Context): Int {
return context.registerReceiver(
null as BroadcastReceiver?,
IntentFilter("android.intent.action.BATTERY_CHANGED")
)!!.getIntExtra("temperature", 0) / 10
}
}

View File

@@ -149,5 +149,6 @@
<string name="show_notification_importance">显示通知重要程度</string>
<string name="remove_ad">去广告</string>
<string name="remove_thememanager_ads">移除主题壁纸的广告</string>
<string name="battery_life_function">电池页面显示当前温度</string>
<string name="enable_wave_charge_animation">启用Alpha充电动画</string>
</resources>

View File

@@ -149,5 +149,6 @@
<string name="settings">設定</string>
<string name="remove_ad">去廣告</string>
<string name="remove_thememanager_ads">拿掉主題壁紙的廣告</string>
<string name="battery_life_function">電池頁面展示當前溫度</string>
<string name="enable_wave_charge_animation">啟用Alpha充電動畫</string>
</resources>

View File

@@ -149,5 +149,6 @@
<string name="settings">設定</string>
<string name="remove_ad">去廣告</string>
<string name="remove_thememanager_ads">拿掉主題壁紙的廣告</string>
<string name="battery_life_function">電池頁面展示當前溫度</string>
<string name="enable_wave_charge_animation">啟用Alpha充電動畫</string>
</resources>

View File

@@ -149,5 +149,6 @@
<string name="show_notification_importance_summary">Show notification importance settings which are hidden in MIUI 12 and later versions</string>
<string name="remove_ad">Remove ads</string>
<string name="remove_thememanager_ads">Remove ads for theme manager</string>
<string name="battery_life_function">Battery page shows the current temperature</string>
<string name="enable_wave_charge_animation">Enable wave charge animation</string>
</resources>

View File

@@ -1,6 +1,6 @@
#Sun Feb 13 16:53:34 CST 2022
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME