Fix QQ, TIM make Activity DPI deformation problem

This commit is contained in:
2022-09-30 05:05:53 +08:00
parent 7f2e97a94e
commit 4bf53efa7a
2 changed files with 21 additions and 1 deletions

View File

@@ -23,6 +23,7 @@ package com.fankes.tsbattery.hook.entity
import android.app.Activity
import android.app.Service
import android.content.res.Configuration
import android.os.Build
import android.view.View
import android.view.ViewGroup
@@ -75,6 +76,9 @@ object QQTIMHooker : YukiBaseHooker() {
private val BaseChatPieClass =
VariousClass("${PackageName.QQ}.activity.aio.core.BaseChatPie", "${PackageName.QQ}.activity.BaseChatPie")
/** 默认的 [Configuration] */
var baseConfiguration: Configuration? = null
/**
* 当前是否为 QQ
* @return [Boolean]
@@ -504,6 +508,9 @@ object QQTIMHooker : YukiBaseHooker() {
override fun onHook() {
onAppLifecycle {
attachBaseContext { baseContext, hasCalledSuper ->
if (hasCalledSuper.not()) baseConfiguration = baseContext.resources.configuration
}
onCreate {
appVersionName = versionName
ConfigData.init(context = this)

View File

@@ -19,12 +19,13 @@
*
* This file is Created by fankes on 2022/9/28.
*/
@file:Suppress("SetTextI18n")
@file:Suppress("SetTextI18n", "DEPRECATION")
package com.fankes.tsbattery.ui.activity.parasitic
import android.content.ComponentName
import android.content.Intent
import android.content.res.Resources
import android.widget.TextView
import androidx.core.view.isGone
import androidx.core.view.isVisible
@@ -34,6 +35,7 @@ import com.fankes.tsbattery.data.ConfigData
import com.fankes.tsbattery.data.ConfigData.bind
import com.fankes.tsbattery.databinding.ActivityConfigBinding
import com.fankes.tsbattery.hook.HookEntry
import com.fankes.tsbattery.hook.entity.QQTIMHooker
import com.fankes.tsbattery.ui.activity.MainActivity
import com.fankes.tsbattery.ui.activity.base.BaseActivity
import com.fankes.tsbattery.utils.factory.*
@@ -117,6 +119,17 @@ class ConfigActivity : BaseActivity<ActivityConfigBinding>() {
text = text.toString().replace(oldValue = "{APP_NAME}", appName)
}
/** 重新设置 DPI 防止 QQ、TIM 修改它 */
override fun getResources(): Resources? = super.getResources().apply {
if (packageName == PackageName.QQ || packageName == PackageName.TIM)
QQTIMHooker.baseConfiguration?.also {
updateConfiguration(configuration.apply {
fontScale = it.fontScale
densityDpi = it.densityDpi
}, displayMetrics)
}
}
/**
* 获取当前 APP 名称
* @return [String]