mirror of
https://github.com/LittleTurtle2333/SimplicityTools.git
synced 2026-07-13 11:51:22 +08:00
Compare commits
26 Commits
revert-233
...
587141ca82
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
587141ca82 | ||
|
|
73d5e9855f | ||
|
|
0eeff2646b | ||
|
|
2b5f903006 | ||
|
|
8cba53fa3f | ||
|
|
cea867374c | ||
|
|
a5c39da799 | ||
|
|
870a742a0f | ||
|
|
367663df77 | ||
|
|
ea64b57d6a | ||
|
|
4bde2ccfdc | ||
|
|
772b019631 | ||
|
|
168ab492eb | ||
|
|
7b613d76b6 | ||
|
|
3b1651554d | ||
|
|
752fb84d39 | ||
|
|
b3fbfcea86 | ||
|
|
44b671fa9e | ||
|
|
7020324ef7 | ||
|
|
5fc1e9deaa | ||
|
|
2ce513bc97 | ||
|
|
28cf25b08c | ||
|
|
0b0b401d2f | ||
|
|
f31bdab7f9 | ||
|
|
33be4dd4e9 | ||
|
|
5eb4b08079 |
@@ -1,4 +1,4 @@
|
|||||||
name: PR Check
|
name: Android CI
|
||||||
|
|
||||||
on:
|
on:
|
||||||
pull_request:
|
pull_request:
|
||||||
50
.github/workflows/dev.yml
vendored
50
.github/workflows/dev.yml
vendored
@@ -1,50 +0,0 @@
|
|||||||
name: Dev
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ "main" ]
|
|
||||||
workflow_dispatch:
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
build:
|
|
||||||
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v3
|
|
||||||
- name: set up JDK 11
|
|
||||||
uses: actions/setup-java@v3
|
|
||||||
with:
|
|
||||||
java-version: '11'
|
|
||||||
distribution: 'temurin'
|
|
||||||
cache: gradle
|
|
||||||
|
|
||||||
- name: Grant execute permission for gradlew
|
|
||||||
run: chmod +x gradlew
|
|
||||||
|
|
||||||
- name: Clone UI
|
|
||||||
run: |
|
|
||||||
cd blockmiui
|
|
||||||
git submodule init
|
|
||||||
git submodule update
|
|
||||||
|
|
||||||
- name: Build with Gradle
|
|
||||||
run: |
|
|
||||||
bash ./gradlew assembleDebug
|
|
||||||
|
|
||||||
- name: Sign Debug APK
|
|
||||||
if: success()
|
|
||||||
id: sign_debug
|
|
||||||
uses: r0adkll/sign-android-release@v1.0.4
|
|
||||||
with:
|
|
||||||
releaseDirectory: ./app/build/outputs/apk/debug
|
|
||||||
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
|
|
||||||
alias: ${{ secrets.KEY_STORE_ALIAS }}
|
|
||||||
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
|
|
||||||
keyPassword: ${{ secrets.KEY_STORE_PASSWORD }}
|
|
||||||
|
|
||||||
- name: Upload Debug APK
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: WooBox_Debug
|
|
||||||
path: ${{ steps.sign_debug.outputs.signedReleaseFile }}
|
|
||||||
@@ -15,8 +15,6 @@
|
|||||||
|
|
||||||
开发者:[酷安@乌堆小透明](http://www.coolapk.com/u/883441)
|
开发者:[酷安@乌堆小透明](http://www.coolapk.com/u/883441)
|
||||||
|
|
||||||
当前仅基于`Android13`进行开发,`Android12`几乎不再维护。也有基于`Android13`开发,但是能在`Android12`使用的情况,请广大社区使用`Android12`的开发者自行测试和修复后提交`Pull Request`。
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### 模块截图
|
### 模块截图
|
||||||
|
|||||||
@@ -11,12 +11,6 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Module Description
|
|
||||||
|
|
||||||
Currently only developed based on `Android13`, `Android12` is almost no longer maintained. There are also cases where the development is based on `Android13`, but it can be used in `Android12`. Developers in the community who use `Android12` are requested to submit `Pull Request` after testing and repairing by themselves.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
### Screenshot
|
### Screenshot
|
||||||
|
|
||||||

|

|
||||||
|
|||||||
@@ -11,8 +11,8 @@ android {
|
|||||||
applicationId = "com.lt2333.simplicitytools"
|
applicationId = "com.lt2333.simplicitytools"
|
||||||
minSdk = 31
|
minSdk = 31
|
||||||
targetSdk = 33
|
targetSdk = 33
|
||||||
versionCode = 75
|
versionCode = 74
|
||||||
versionName = "1.7.5"
|
versionName = "1.7.4"
|
||||||
buildConfigField("String", "BUILD_TIME", "\"${System.currentTimeMillis()}\"")
|
buildConfigField("String", "BUILD_TIME", "\"${System.currentTimeMillis()}\"")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package com.lt2333.simplicitytools.activity.pages.s
|
package com.lt2333.simplicitytools.activity.pages.s
|
||||||
|
|
||||||
import android.content.Intent
|
|
||||||
import android.net.Uri
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.widget.Switch
|
import android.widget.Switch
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
@@ -13,11 +11,11 @@ import cn.fkj233.ui.activity.view.SwitchV
|
|||||||
import cn.fkj233.ui.activity.view.TextSummaryV
|
import cn.fkj233.ui.activity.view.TextSummaryV
|
||||||
import cn.fkj233.ui.activity.view.TextV
|
import cn.fkj233.ui.activity.view.TextV
|
||||||
import cn.fkj233.ui.dialog.MIUIDialog
|
import cn.fkj233.ui.dialog.MIUIDialog
|
||||||
import cn.fkj233.ui.dialog.NewDialog
|
|
||||||
import com.lt2333.simplicitytools.R
|
import com.lt2333.simplicitytools.R
|
||||||
|
import java.util.HashMap
|
||||||
|
|
||||||
|
|
||||||
@BMPage("scope_systemui", "System UI", hideMenu = false)
|
@BMPage("scope_systemui","System UI", hideMenu = false)
|
||||||
class SystemUIPageForS : BasePage() {
|
class SystemUIPageForS : BasePage() {
|
||||||
|
|
||||||
override fun onCreate() {
|
override fun onCreate() {
|
||||||
@@ -56,10 +54,11 @@ class SystemUIPageForS : BasePage() {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
val layoutCompatibilityBinding = GetDataBinding({
|
val layoutCompatibilityModeBinding = GetDataBinding({
|
||||||
MIUIActivity.safeSP.getBoolean(
|
MIUIActivity.safeSP.getInt(
|
||||||
"layout_compatibility_mode", false
|
"screen_hole_location",
|
||||||
)
|
0
|
||||||
|
) == 2
|
||||||
}) { view, flags, data ->
|
}) { view, flags, data ->
|
||||||
when (flags) {
|
when (flags) {
|
||||||
1 -> (view as Switch).isEnabled = data as Boolean
|
1 -> (view as Switch).isEnabled = data as Boolean
|
||||||
@@ -67,23 +66,57 @@ class SystemUIPageForS : BasePage() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TextSummaryWithSwitch(
|
val screenHoleLocation: HashMap<Int, String> = hashMapOf<Int, String>().also {
|
||||||
|
it[0] = getString(R.string.off)
|
||||||
|
it[1] = getString(R.string.center)
|
||||||
|
it[2] = getString(R.string.left_or_right)
|
||||||
|
}
|
||||||
|
TextSummaryWithSpinner(
|
||||||
TextSummaryV(
|
TextSummaryV(
|
||||||
textId = R.string.layout_compatibility_mode, tipsId = R.string.layout_compatibility_mode_summary
|
textId = R.string.layout_compatibility_mode,
|
||||||
), SwitchV("layout_compatibility_mode", dataBindingSend = layoutCompatibilityBinding.bindingSend)
|
tipsId = R.string.screen_hole_location
|
||||||
)
|
),
|
||||||
|
SpinnerV(
|
||||||
|
screenHoleLocation[MIUIActivity.safeSP.getInt(
|
||||||
|
"screen_hole_location",
|
||||||
|
0
|
||||||
|
)].toString()
|
||||||
|
) {
|
||||||
|
add(screenHoleLocation[0].toString()) {
|
||||||
|
MIUIActivity.safeSP.putAny("screen_hole_location", 0)
|
||||||
|
layoutCompatibilityModeBinding.binding.Send().send(false)
|
||||||
|
}
|
||||||
|
add(screenHoleLocation[1].toString()) {
|
||||||
|
MIUIActivity.safeSP.putAny("screen_hole_location", 1)
|
||||||
|
layoutCompatibilityModeBinding.binding.Send().send(false)
|
||||||
|
}
|
||||||
|
add(screenHoleLocation[2].toString()) {
|
||||||
|
MIUIActivity.safeSP.putAny("screen_hole_location", 2)
|
||||||
|
layoutCompatibilityModeBinding.binding.Send().send(true)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
Text(
|
Text(
|
||||||
textId = R.string.left_margin, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
|
textId = R.string.left_margin,
|
||||||
|
dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
|
||||||
)
|
)
|
||||||
SeekBarWithText(
|
SeekBarWithText(
|
||||||
"status_bar_left_margin", 0, 300, 0, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
|
"status_bar_left_margin",
|
||||||
|
0,
|
||||||
|
300,
|
||||||
|
0,
|
||||||
|
dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
|
||||||
)
|
)
|
||||||
Text(
|
Text(
|
||||||
textId = R.string.right_margin, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
|
textId = R.string.right_margin,
|
||||||
|
dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
|
||||||
)
|
)
|
||||||
SeekBarWithText(
|
SeekBarWithText(
|
||||||
"status_bar_right_margin", 0, 300, 0, dataBindingRecv = layoutCompatibilityBinding.binding.getRecv(2)
|
"status_bar_right_margin",
|
||||||
|
0,
|
||||||
|
300,
|
||||||
|
0,
|
||||||
|
dataBindingRecv = layoutCompatibilityModeBinding.binding.getRecv(2)
|
||||||
)
|
)
|
||||||
Line()
|
Line()
|
||||||
TitleText(textId = R.string.status_bar_clock_format)
|
TitleText(textId = R.string.status_bar_clock_format)
|
||||||
@@ -213,37 +246,23 @@ class SystemUIPageForS : BasePage() {
|
|||||||
|
|
||||||
//极客模式起始
|
//极客模式起始
|
||||||
TextSummaryWithArrow(TextSummaryV(textId = R.string.custom_clock_format_geek) {
|
TextSummaryWithArrow(TextSummaryV(textId = R.string.custom_clock_format_geek) {
|
||||||
NewDialog(activity) {
|
MIUIDialog(activity) {
|
||||||
setTitle(R.string.custom_clock_format_geek)
|
setTitle(R.string.custom_clock_format_geek)
|
||||||
setEditText(
|
setEditText(MIUIActivity.safeSP.getString("custom_clock_format_geek", "HH:mm:ss"), "", isSingleLine = false)
|
||||||
MIUIActivity.safeSP.getString("custom_clock_format_geek", "HH:mm:ss"), "", isSingleLine = false
|
setLButton(textId = R.string.cancel) {
|
||||||
)
|
dismiss()
|
||||||
Button(getString(R.string.click_to_view_use_cases)) {
|
|
||||||
val locale = context.resources.configuration.locale
|
|
||||||
val language = locale.language
|
|
||||||
if (language.endsWith("zh")) {
|
|
||||||
val uri = Uri.parse("https://zhuti.designer.xiaomi.com/docs/grammar/#%E6%97%B6%E9%97%B4%E6%97%A5%E6%9C%9F")
|
|
||||||
val intent = Intent(Intent.ACTION_VIEW, uri)
|
|
||||||
activity.startActivity(intent)
|
|
||||||
} else {
|
|
||||||
val uri = Uri.parse("https://docs.google.com/spreadsheets/d/1ghkT2iFbxB3bT4TKCiKAfmEdGt6kTVKFU3dm4Nz1or8/edit?usp=sharing")
|
|
||||||
val intent = Intent(Intent.ACTION_VIEW, uri)
|
|
||||||
activity.startActivity(intent)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Button(getString(R.string.Done)) {
|
setRButton(textId = R.string.Done) {
|
||||||
if (getEditText().isNotEmpty()) {
|
if (getEditText().isNotEmpty()) {
|
||||||
try {
|
try {
|
||||||
MIUIActivity.safeSP.putAny("custom_clock_format_geek", getEditText())
|
MIUIActivity.safeSP.putAny("custom_clock_format_geek", getEditText())
|
||||||
dismiss()
|
dismiss()
|
||||||
return@Button
|
return@setRButton
|
||||||
} catch (_: Throwable) {
|
} catch (_: Throwable) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT).show()
|
Toast.makeText(activity, R.string.input_error, Toast.LENGTH_SHORT)
|
||||||
}
|
.show()
|
||||||
Button(getString(R.string.cancel), cancelStyle = true) {
|
|
||||||
dismiss()
|
|
||||||
}
|
}
|
||||||
}.show()
|
}.show()
|
||||||
}, dataBindingRecv = customClockGeekBinding.binding.getRecv(2))
|
}, dataBindingRecv = customClockGeekBinding.binding.getRecv(2))
|
||||||
|
|||||||
@@ -566,13 +566,6 @@ import com.lt2333.simplicitytools.R
|
|||||||
)
|
)
|
||||||
Line()
|
Line()
|
||||||
TitleText(textId = R.string.control_center)
|
TitleText(textId = R.string.control_center)
|
||||||
TextSummaryWithSwitch(
|
|
||||||
TextSummaryV(
|
|
||||||
textId = R.string.disable_bluetooth_temporarily_off
|
|
||||||
), SwitchV(
|
|
||||||
"disable_bluetooth_temporarily_off"
|
|
||||||
)
|
|
||||||
)
|
|
||||||
val controlCenterWeatherBinding = GetDataBinding({
|
val controlCenterWeatherBinding = GetDataBinding({
|
||||||
MIUIActivity.safeSP.getBoolean(
|
MIUIActivity.safeSP.getBoolean(
|
||||||
"control_center_weather", false
|
"control_center_weather", false
|
||||||
|
|||||||
@@ -32,7 +32,37 @@ import com.lt2333.simplicitytools.hooks.rules.s.systemui.StatusBarLayoutForS
|
|||||||
import com.lt2333.simplicitytools.hooks.rules.s.systemui.StatusBarNetworkSpeedRefreshSpeedForS
|
import com.lt2333.simplicitytools.hooks.rules.s.systemui.StatusBarNetworkSpeedRefreshSpeedForS
|
||||||
import com.lt2333.simplicitytools.hooks.rules.s.systemui.StatusBarTimeCustomizationForS
|
import com.lt2333.simplicitytools.hooks.rules.s.systemui.StatusBarTimeCustomizationForS
|
||||||
import com.lt2333.simplicitytools.hooks.rules.s.systemui.WaveChargeForS
|
import com.lt2333.simplicitytools.hooks.rules.s.systemui.WaveChargeForS
|
||||||
import com.lt2333.simplicitytools.hooks.rules.t.systemui.*
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.BatteryPercentageForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.CanNotificationSlideForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.ControlCenterWeatherForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.CustomMobileTypeTextForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.DoubleLineNetworkSpeedForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideBatteryIconForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideHDIconForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideMobileActivityIconForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideMobileTypeIconForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideNetworkSpeedSplitterForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideSimIconForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideStatusBarIconForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideStatusBarNetworkSpeedSecondForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.HideWifiActivityIconForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.LockScreenClockDisplaySecondsForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.LockScreenCurrentForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.LockScreenDoubleTapToSleepForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.MaximumNumberOfNotificationIconsForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.NewNotificationWeatherForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.NotificationWeatherForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.OldNotificationWeatherForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.OldQSCustomForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.RemoveLockScreenCameraForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.RemoveTheLeftSideOfTheLockScreenForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.ShowWifiStandardForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.StatusBarBigMobileTypeIconForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.StatusBarDoubleTapToSleepForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.StatusBarLayoutForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.StatusBarNetworkSpeedRefreshSpeedForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.StatusBarTimeCustomizationForT
|
||||||
|
import com.lt2333.simplicitytools.hooks.rules.t.systemui.WaveChargeForT
|
||||||
import com.lt2333.simplicitytools.utils.xposed.base.AppRegister
|
import com.lt2333.simplicitytools.utils.xposed.base.AppRegister
|
||||||
import de.robv.android.xposed.callbacks.XC_LoadPackage
|
import de.robv.android.xposed.callbacks.XC_LoadPackage
|
||||||
|
|
||||||
@@ -75,7 +105,6 @@ object SystemUI : AppRegister() {
|
|||||||
CanNotificationSlideForT, //允许下滑通知打开小窗
|
CanNotificationSlideForT, //允许下滑通知打开小窗
|
||||||
LockScreenClockDisplaySecondsForT, // 锁屏时钟显示秒
|
LockScreenClockDisplaySecondsForT, // 锁屏时钟显示秒
|
||||||
ShowWifiStandardForT, // 显示 WIFI 角标
|
ShowWifiStandardForT, // 显示 WIFI 角标
|
||||||
DisableBluetoothTemporarilyOffForT, //禁用临时蓝牙关闭
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package com.lt2333.simplicitytools.hooks.rules.s.systemui
|
package com.lt2333.simplicitytools.hooks.rules.s.systemui
|
||||||
|
|
||||||
|
|
||||||
import android.app.KeyguardManager
|
import android.app.KeyguardManager
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
@@ -17,11 +16,10 @@ import com.lt2333.simplicitytools.utils.XSPUtils
|
|||||||
import com.lt2333.simplicitytools.utils.hasEnable
|
import com.lt2333.simplicitytools.utils.hasEnable
|
||||||
import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
|
import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
|
||||||
|
|
||||||
|
|
||||||
object StatusBarLayoutForS : HookRegister() {
|
object StatusBarLayoutForS : HookRegister() {
|
||||||
|
|
||||||
private val getMode = XSPUtils.getInt("status_bar_layout_mode", 0)
|
private val getMode = XSPUtils.getInt("status_bar_layout_mode", 0)
|
||||||
private val isCompatibilityMode = XSPUtils.getBoolean("layout_compatibility_mode", false)
|
private val getHoleLocation = XSPUtils.getInt("screen_hole_location", 0)
|
||||||
|
|
||||||
private var statusBarLeft = 0
|
private var statusBarLeft = 0
|
||||||
private var statusBarTop = 0
|
private var statusBarTop = 0
|
||||||
@@ -34,31 +32,23 @@ object StatusBarLayoutForS : HookRegister() {
|
|||||||
var mCenterLayout: LinearLayout?
|
var mCenterLayout: LinearLayout?
|
||||||
var statusBar: ViewGroup? = null
|
var statusBar: ViewGroup? = null
|
||||||
|
|
||||||
//判断屏幕状态更新布局 mode: 1正常布局 2居中布局
|
fun updateLayout(context: Context) {
|
||||||
fun updateLayout(context: Context,mode: Int) {
|
//判断屏幕方向
|
||||||
when(mode){
|
val mConfiguration: Configuration = context.resources.configuration
|
||||||
1->{
|
if (mConfiguration.orientation == Configuration.ORIENTATION_PORTRAIT) {
|
||||||
val mConfiguration: Configuration = context.resources.configuration
|
mLeftLayout!!.setPadding(statusBarLeft, 0, 0, 0)
|
||||||
if (mConfiguration.orientation == Configuration.ORIENTATION_PORTRAIT) { //横屏
|
mRightLayout!!.setPadding(0, 0, statusBarRight, 0)
|
||||||
statusBar!!.setPadding(statusBarLeft, statusBarTop, statusBarRight, statusBarBottom)
|
statusBar!!.setPadding(0, statusBarTop, 0, statusBarBottom)
|
||||||
}
|
} else {
|
||||||
}
|
//横屏状态
|
||||||
2->{
|
mLeftLayout!!.setPadding(175, 0, 0, 0)
|
||||||
val mConfiguration: Configuration = context.resources.configuration
|
mRightLayout!!.setPadding(0, 0, 175, 0)
|
||||||
if (mConfiguration.orientation == Configuration.ORIENTATION_PORTRAIT) { //横屏
|
statusBar!!.setPadding(0, statusBarTop, 0, statusBarBottom)
|
||||||
mLeftLayout!!.setPadding(statusBarLeft, 0, 0, 0)
|
|
||||||
mRightLayout!!.setPadding(0, 0, statusBarRight, 0)
|
|
||||||
statusBar!!.setPadding(0, statusBarTop, 0, statusBarBottom)
|
|
||||||
}else{ //竖屏
|
|
||||||
mLeftLayout!!.setPadding(0, 0, 0, 0)
|
|
||||||
mRightLayout!!.setPadding(0, 0, 0, 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//判断是否开启挖孔兼容模式
|
//判断是否开启居中挖孔兼容模式
|
||||||
if (isCompatibilityMode) {
|
if (getHoleLocation == 1) {
|
||||||
findMethod("com.android.systemui.ScreenDecorations\$DisplayCutoutView") {
|
findMethod("com.android.systemui.ScreenDecorations\$DisplayCutoutView") {
|
||||||
name == "boundsFromDirection" && parameterCount == 3 && isStatic
|
name == "boundsFromDirection" && parameterCount == 3 && isStatic
|
||||||
}.hookBefore {
|
}.hookBefore {
|
||||||
@@ -66,83 +56,48 @@ object StatusBarLayoutForS : HookRegister() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//修改对应布局
|
|
||||||
when (getMode) {
|
when (getMode) {
|
||||||
//默认
|
//默认
|
||||||
0 -> {
|
0 -> return
|
||||||
|
|
||||||
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") {
|
|
||||||
name == "onViewCreated" && parameterCount == 2
|
|
||||||
}.hookAfter { param ->
|
|
||||||
val miuiPhoneStatusBarView = param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
|
|
||||||
val context: Context = miuiPhoneStatusBarView.context
|
|
||||||
val res: Resources = miuiPhoneStatusBarView.resources
|
|
||||||
val statusBarId: Int = res.getIdentifier("status_bar", "id", "com.android.systemui")
|
|
||||||
statusBar = miuiPhoneStatusBarView.findViewById(statusBarId)
|
|
||||||
if (statusBar == null) return@hookAfter
|
|
||||||
|
|
||||||
statusBarLeft = statusBar!!.paddingLeft
|
|
||||||
statusBarTop = statusBar!!.paddingTop
|
|
||||||
statusBarRight = statusBar!!.paddingRight
|
|
||||||
statusBarBottom = statusBar!!.paddingBottom
|
|
||||||
|
|
||||||
|
|
||||||
if (isCompatibilityMode) {
|
|
||||||
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,1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//兼容模式
|
|
||||||
findMethod("com.android.systemui.statusbar.phone.PhoneStatusBarView") {
|
|
||||||
name == "updateLayoutForCutout"
|
|
||||||
}.hookAfter {
|
|
||||||
if (isCompatibilityMode) {
|
|
||||||
val context = (it.thisObject as ViewGroup).context
|
|
||||||
updateLayout(context,1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//时钟居中
|
//时钟居中
|
||||||
1 -> {
|
1 -> {
|
||||||
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") {
|
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") {
|
||||||
name == "onViewCreated" && parameterCount == 2
|
name == "onViewCreated" && parameterCount == 2
|
||||||
}.hookAfter { param ->
|
}.hookAfter { param ->
|
||||||
val miuiPhoneStatusBarView = param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
|
val miuiPhoneStatusBarView =
|
||||||
|
param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
|
||||||
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 =
|
||||||
val statusBarContentsId: Int = res.getIdentifier(
|
res.getIdentifier("status_bar", "id", "com.android.systemui")
|
||||||
"status_bar_contents", "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 systemIconAreaId: Int =
|
||||||
|
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 = res.getIdentifier(
|
val phoneStatusBarLeftContainerId: Int =
|
||||||
"phone_status_bar_left_container", "id", "com.android.systemui"
|
res.getIdentifier(
|
||||||
)
|
"phone_status_bar_left_container",
|
||||||
val notificationIconAreaInnerId: Int = res.getIdentifier(
|
"id",
|
||||||
"notification_icon_area_inner", "id", "com.android.systemui"
|
"com.android.systemui"
|
||||||
)
|
)
|
||||||
|
val notificationIconAreaInnerId: Int =
|
||||||
|
res.getIdentifier(
|
||||||
|
"notification_icon_area_inner",
|
||||||
|
"id",
|
||||||
|
"com.android.systemui"
|
||||||
|
)
|
||||||
statusBar = miuiPhoneStatusBarView.findViewById(statusBarId)
|
statusBar = miuiPhoneStatusBarView.findViewById(statusBarId)
|
||||||
val statusBarContents: ViewGroup = miuiPhoneStatusBarView.findViewById(statusBarContentsId)
|
val statusBarContents: ViewGroup =
|
||||||
|
miuiPhoneStatusBarView.findViewById(statusBarContentsId)
|
||||||
if (statusBar == null) return@hookAfter
|
if (statusBar == null) return@hookAfter
|
||||||
val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId)
|
val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId)
|
||||||
val phoneStatusBarLeftContainer: ViewGroup = miuiPhoneStatusBarView.findViewById(
|
val phoneStatusBarLeftContainer: ViewGroup =
|
||||||
phoneStatusBarLeftContainerId
|
miuiPhoneStatusBarView.findViewById(phoneStatusBarLeftContainerId)
|
||||||
)
|
val notificationIconAreaInner: ViewGroup =
|
||||||
val notificationIconAreaInner: ViewGroup = miuiPhoneStatusBarView.findViewById(
|
miuiPhoneStatusBarView.findViewById(notificationIconAreaInnerId)
|
||||||
notificationIconAreaInnerId
|
val systemIconArea: ViewGroup =
|
||||||
)
|
miuiPhoneStatusBarView.findViewById(systemIconAreaId)
|
||||||
val systemIconArea: ViewGroup = miuiPhoneStatusBarView.findViewById(systemIconAreaId)
|
|
||||||
|
|
||||||
(clock.parent as ViewGroup).removeView(clock)
|
(clock.parent as ViewGroup).removeView(clock)
|
||||||
(phoneStatusBarLeftContainer.parent as ViewGroup).removeView(
|
(phoneStatusBarLeftContainer.parent as ViewGroup).removeView(
|
||||||
@@ -153,39 +108,41 @@ object StatusBarLayoutForS : HookRegister() {
|
|||||||
)
|
)
|
||||||
(systemIconArea.parent as ViewGroup).removeView(systemIconArea)
|
(systemIconArea.parent as ViewGroup).removeView(systemIconArea)
|
||||||
|
|
||||||
val mConstraintLayout = ConstraintLayout(context).also {
|
val mConstraintLayout =
|
||||||
it.layoutParams = ConstraintLayout.LayoutParams(
|
ConstraintLayout(context).also {
|
||||||
ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.MATCH_PARENT
|
it.layoutParams = ConstraintLayout.LayoutParams(
|
||||||
)
|
ConstraintLayout.LayoutParams.MATCH_PARENT,
|
||||||
}
|
ConstraintLayout.LayoutParams.MATCH_PARENT
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
mConstraintLayout.addView(notificationIconAreaInner)
|
mConstraintLayout.addView(notificationIconAreaInner)
|
||||||
|
|
||||||
val fullscreenNotificationIconAreaLp = LinearLayout.LayoutParams(
|
val fullscreenNotificationIconAreaLp = LinearLayout.LayoutParams(
|
||||||
ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.MATCH_PARENT
|
ConstraintLayout.LayoutParams.MATCH_PARENT,
|
||||||
|
ConstraintLayout.LayoutParams.MATCH_PARENT
|
||||||
)
|
)
|
||||||
|
|
||||||
notificationIconAreaInner.layoutParams = fullscreenNotificationIconAreaLp
|
notificationIconAreaInner.layoutParams = fullscreenNotificationIconAreaLp
|
||||||
|
|
||||||
//增加一个左对齐布局
|
//增加一个左对齐布局
|
||||||
mLeftLayout = LinearLayout(context)
|
mLeftLayout = LinearLayout(context)
|
||||||
val leftLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
|
val leftLp: LinearLayout.LayoutParams =
|
||||||
0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f
|
LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f)
|
||||||
)
|
|
||||||
mLeftLayout!!.layoutParams = leftLp
|
mLeftLayout!!.layoutParams = leftLp
|
||||||
mLeftLayout!!.gravity = Gravity.START or Gravity.CENTER_VERTICAL
|
mLeftLayout!!.gravity = Gravity.START or Gravity.CENTER_VERTICAL
|
||||||
|
|
||||||
//增加一个居中布局
|
//增加一个居中布局
|
||||||
mCenterLayout = LinearLayout(context)
|
mCenterLayout = LinearLayout(context)
|
||||||
val centerLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
|
val centerLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
|
||||||
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT
|
LinearLayout.LayoutParams.WRAP_CONTENT,
|
||||||
|
LinearLayout.LayoutParams.MATCH_PARENT
|
||||||
)
|
)
|
||||||
mCenterLayout!!.layoutParams = centerLp
|
mCenterLayout!!.layoutParams = centerLp
|
||||||
mCenterLayout!!.gravity = Gravity.CENTER or Gravity.CENTER_VERTICAL
|
mCenterLayout!!.gravity = Gravity.CENTER or Gravity.CENTER_VERTICAL
|
||||||
mRightLayout = LinearLayout(context)
|
mRightLayout = LinearLayout(context)
|
||||||
val rightLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
|
val rightLp: LinearLayout.LayoutParams =
|
||||||
0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f
|
LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f)
|
||||||
)
|
|
||||||
mRightLayout!!.layoutParams = rightLp
|
mRightLayout!!.layoutParams = rightLp
|
||||||
mRightLayout!!.gravity = Gravity.END or Gravity.CENTER_VERTICAL
|
mRightLayout!!.gravity = Gravity.END or Gravity.CENTER_VERTICAL
|
||||||
mLeftLayout!!.addView(phoneStatusBarLeftContainer)
|
mLeftLayout!!.addView(phoneStatusBarLeftContainer)
|
||||||
@@ -203,7 +160,7 @@ object StatusBarLayoutForS : HookRegister() {
|
|||||||
statusBarBottom = statusBar!!.paddingBottom
|
statusBarBottom = statusBar!!.paddingBottom
|
||||||
|
|
||||||
|
|
||||||
if (isCompatibilityMode) {
|
if (getHoleLocation == 2) {
|
||||||
val customLeftMargin = XSPUtils.getInt("status_bar_left_margin", 0)
|
val customLeftMargin = XSPUtils.getInt("status_bar_left_margin", 0)
|
||||||
if (customLeftMargin != 0) {
|
if (customLeftMargin != 0) {
|
||||||
statusBarLeft = customLeftMargin
|
statusBarLeft = customLeftMargin
|
||||||
@@ -213,7 +170,7 @@ object StatusBarLayoutForS : HookRegister() {
|
|||||||
if (customRightMargin != 0) {
|
if (customRightMargin != 0) {
|
||||||
statusBarRight = customRightMargin
|
statusBarRight = customRightMargin
|
||||||
}
|
}
|
||||||
updateLayout(context,2)
|
updateLayout(context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -222,7 +179,7 @@ object StatusBarLayoutForS : HookRegister() {
|
|||||||
}.hookAfter {
|
}.hookAfter {
|
||||||
hasEnable("layout_compatibility_mode") {
|
hasEnable("layout_compatibility_mode") {
|
||||||
val context = (it.thisObject as ViewGroup).context
|
val context = (it.thisObject as ViewGroup).context
|
||||||
updateLayout(context,2)
|
updateLayout(context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -231,12 +188,14 @@ object StatusBarLayoutForS : HookRegister() {
|
|||||||
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") {
|
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") {
|
||||||
name == "onViewCreated" && parameterCount == 2
|
name == "onViewCreated" && parameterCount == 2
|
||||||
}.hookAfter { param ->
|
}.hookAfter { param ->
|
||||||
val miuiPhoneStatusBarView = param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
|
val miuiPhoneStatusBarView =
|
||||||
|
param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
|
||||||
val context: Context = miuiPhoneStatusBarView.context
|
val context: Context = miuiPhoneStatusBarView.context
|
||||||
val res: Resources = miuiPhoneStatusBarView.resources
|
val res: Resources = miuiPhoneStatusBarView.resources
|
||||||
|
|
||||||
//组件ID
|
//组件ID
|
||||||
val statusBarId: Int = res.getIdentifier("status_bar", "id", "com.android.systemui")
|
val statusBarId: Int =
|
||||||
|
res.getIdentifier("status_bar", "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 batteryId: Int = res.getIdentifier("battery", "id", "com.android.systemui")
|
val batteryId: Int = res.getIdentifier("battery", "id", "com.android.systemui")
|
||||||
|
|
||||||
@@ -248,7 +207,8 @@ object StatusBarLayoutForS : HookRegister() {
|
|||||||
|
|
||||||
//新建布局
|
//新建布局
|
||||||
val rightLp = LinearLayout.LayoutParams(
|
val rightLp = LinearLayout.LayoutParams(
|
||||||
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT
|
LinearLayout.LayoutParams.WRAP_CONTENT,
|
||||||
|
LinearLayout.LayoutParams.MATCH_PARENT
|
||||||
).also {
|
).also {
|
||||||
it.marginStart = dp2px(context, 5f)
|
it.marginStart = dp2px(context, 5f)
|
||||||
}
|
}
|
||||||
@@ -260,36 +220,6 @@ object StatusBarLayoutForS : HookRegister() {
|
|||||||
battery.addView(mRightLayout)
|
battery.addView(mRightLayout)
|
||||||
(clock.parent as ViewGroup).removeView(clock)
|
(clock.parent as ViewGroup).removeView(clock)
|
||||||
mRightLayout!!.addView(clock)
|
mRightLayout!!.addView(clock)
|
||||||
|
|
||||||
|
|
||||||
statusBarLeft = statusBar!!.paddingLeft
|
|
||||||
statusBarTop = statusBar!!.paddingTop
|
|
||||||
statusBarRight = statusBar!!.paddingRight
|
|
||||||
statusBarBottom = statusBar!!.paddingBottom
|
|
||||||
|
|
||||||
|
|
||||||
if (isCompatibilityMode) {
|
|
||||||
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,1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//兼容模式
|
|
||||||
findMethod("com.android.systemui.statusbar.phone.PhoneStatusBarView") {
|
|
||||||
name == "updateLayoutForCutout"
|
|
||||||
}.hookAfter {
|
|
||||||
if (isCompatibilityMode) {
|
|
||||||
val context = (it.thisObject as ViewGroup).context
|
|
||||||
updateLayout(context,1)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//时钟居中+图标居左
|
//时钟居中+图标居左
|
||||||
@@ -297,45 +227,65 @@ object StatusBarLayoutForS : HookRegister() {
|
|||||||
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") {
|
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") {
|
||||||
name == "onViewCreated" && parameterCount == 2
|
name == "onViewCreated" && parameterCount == 2
|
||||||
}.hookAfter { param ->
|
}.hookAfter { param ->
|
||||||
val miuiPhoneStatusBarView = param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
|
val miuiPhoneStatusBarView =
|
||||||
|
param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
|
||||||
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 =
|
||||||
val statusBarContentsId: Int = res.getIdentifier(
|
res.getIdentifier("status_bar", "id", "com.android.systemui")
|
||||||
"status_bar_contents", "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 systemIconAreaId: Int =
|
||||||
|
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 = res.getIdentifier(
|
val phoneStatusBarLeftContainerId: Int =
|
||||||
"phone_status_bar_left_container", "id", "com.android.systemui"
|
res.getIdentifier(
|
||||||
)
|
"phone_status_bar_left_container",
|
||||||
val fullscreenNotificationIconAreaId: Int = res.getIdentifier(
|
"id",
|
||||||
"fullscreen_notification_icon_area", "id", "com.android.systemui"
|
"com.android.systemui"
|
||||||
)
|
)
|
||||||
val statusIconsId: Int = res.getIdentifier(
|
val fullscreenNotificationIconAreaId: Int =
|
||||||
"statusIcons", "id", "com.android.systemui"
|
res.getIdentifier(
|
||||||
)
|
"fullscreen_notification_icon_area",
|
||||||
val systemIconsId: Int = res.getIdentifier(
|
"id",
|
||||||
"system_icons", "id", "com.android.systemui"
|
"com.android.systemui"
|
||||||
)
|
)
|
||||||
val batteryId: Int = res.getIdentifier(
|
val statusIconsId: Int =
|
||||||
"battery", "id", "com.android.systemui"
|
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"
|
||||||
|
)
|
||||||
|
|
||||||
statusBar = miuiPhoneStatusBarView.findViewById(statusBarId)
|
statusBar = miuiPhoneStatusBarView.findViewById(statusBarId)
|
||||||
val statusBarContents: ViewGroup = miuiPhoneStatusBarView.findViewById(statusBarContentsId)
|
val statusBarContents: ViewGroup =
|
||||||
|
miuiPhoneStatusBarView.findViewById(statusBarContentsId)
|
||||||
if (statusBar == null) return@hookAfter
|
if (statusBar == null) return@hookAfter
|
||||||
val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId)
|
val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId)
|
||||||
val phoneStatusBarLeftContainer: ViewGroup = miuiPhoneStatusBarView.findViewById(
|
val phoneStatusBarLeftContainer: ViewGroup =
|
||||||
phoneStatusBarLeftContainerId
|
miuiPhoneStatusBarView.findViewById(phoneStatusBarLeftContainerId)
|
||||||
)
|
val fullscreenNotificationIconArea: ViewGroup =
|
||||||
val fullscreenNotificationIconArea: ViewGroup = miuiPhoneStatusBarView.findViewById(
|
miuiPhoneStatusBarView.findViewById(fullscreenNotificationIconAreaId)
|
||||||
fullscreenNotificationIconAreaId
|
val systemIconArea: ViewGroup =
|
||||||
)
|
miuiPhoneStatusBarView.findViewById(systemIconAreaId)
|
||||||
val systemIconArea: ViewGroup = miuiPhoneStatusBarView.findViewById(systemIconAreaId)
|
val statusIcons: ViewGroup =
|
||||||
val statusIcons: ViewGroup = miuiPhoneStatusBarView.findViewById(statusIconsId)
|
miuiPhoneStatusBarView.findViewById(statusIconsId)
|
||||||
val systemIcons: ViewGroup = miuiPhoneStatusBarView.findViewById(systemIconsId)
|
val systemIcons: ViewGroup =
|
||||||
val battery: ViewGroup = miuiPhoneStatusBarView.findViewById(batteryId)
|
miuiPhoneStatusBarView.findViewById(systemIconsId)
|
||||||
|
val battery: ViewGroup =
|
||||||
|
miuiPhoneStatusBarView.findViewById(batteryId)
|
||||||
|
|
||||||
(clock.parent as ViewGroup).removeView(clock)
|
(clock.parent as ViewGroup).removeView(clock)
|
||||||
(phoneStatusBarLeftContainer.parent as ViewGroup).removeView(
|
(phoneStatusBarLeftContainer.parent as ViewGroup).removeView(
|
||||||
@@ -349,25 +299,29 @@ object StatusBarLayoutForS : HookRegister() {
|
|||||||
fullscreenNotificationIconArea
|
fullscreenNotificationIconArea
|
||||||
)
|
)
|
||||||
|
|
||||||
val mConstraintLayout = ConstraintLayout(context).also {
|
val mConstraintLayout =
|
||||||
it.layoutParams = ConstraintLayout.LayoutParams(
|
ConstraintLayout(context).also {
|
||||||
ConstraintLayout.LayoutParams.MATCH_PARENT, ConstraintLayout.LayoutParams.MATCH_PARENT
|
it.layoutParams = ConstraintLayout.LayoutParams(
|
||||||
)
|
ConstraintLayout.LayoutParams.MATCH_PARENT,
|
||||||
}
|
ConstraintLayout.LayoutParams.MATCH_PARENT
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
mConstraintLayout.addView(fullscreenNotificationIconArea)
|
mConstraintLayout.addView(fullscreenNotificationIconArea)
|
||||||
mConstraintLayout.addView(battery)
|
mConstraintLayout.addView(battery)
|
||||||
|
|
||||||
|
|
||||||
battery.layoutParams = ConstraintLayout.LayoutParams(
|
battery.layoutParams = ConstraintLayout.LayoutParams(
|
||||||
ConstraintLayout.LayoutParams.WRAP_CONTENT, ConstraintLayout.LayoutParams.MATCH_PARENT
|
ConstraintLayout.LayoutParams.WRAP_CONTENT,
|
||||||
|
ConstraintLayout.LayoutParams.MATCH_PARENT
|
||||||
).also {
|
).also {
|
||||||
it.endToEnd = 0
|
it.endToEnd = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fullscreenNotificationIconArea.layoutParams = ConstraintLayout.LayoutParams(
|
fullscreenNotificationIconArea.layoutParams = ConstraintLayout.LayoutParams(
|
||||||
0, ConstraintLayout.LayoutParams.MATCH_PARENT
|
0,
|
||||||
|
ConstraintLayout.LayoutParams.MATCH_PARENT
|
||||||
).also {
|
).also {
|
||||||
it.startToEnd = batteryId
|
it.startToEnd = batteryId
|
||||||
it.endToEnd = 0
|
it.endToEnd = 0
|
||||||
@@ -377,25 +331,24 @@ object StatusBarLayoutForS : HookRegister() {
|
|||||||
|
|
||||||
//增加一个左对齐布局
|
//增加一个左对齐布局
|
||||||
mLeftLayout = LinearLayout(context)
|
mLeftLayout = LinearLayout(context)
|
||||||
val leftLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
|
val leftLp: LinearLayout.LayoutParams =
|
||||||
0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f
|
LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f)
|
||||||
)
|
|
||||||
mLeftLayout!!.layoutParams = leftLp
|
mLeftLayout!!.layoutParams = leftLp
|
||||||
mLeftLayout!!.gravity = Gravity.START or Gravity.CENTER_VERTICAL
|
mLeftLayout!!.gravity = Gravity.START or Gravity.CENTER_VERTICAL
|
||||||
|
|
||||||
//增加一个居中布局
|
//增加一个居中布局
|
||||||
mCenterLayout = LinearLayout(context)
|
mCenterLayout = LinearLayout(context)
|
||||||
val centerLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
|
val centerLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
|
||||||
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT
|
LinearLayout.LayoutParams.WRAP_CONTENT,
|
||||||
|
LinearLayout.LayoutParams.MATCH_PARENT
|
||||||
)
|
)
|
||||||
mCenterLayout!!.layoutParams = centerLp
|
mCenterLayout!!.layoutParams = centerLp
|
||||||
mCenterLayout!!.gravity = Gravity.CENTER or Gravity.CENTER_VERTICAL
|
mCenterLayout!!.gravity = Gravity.CENTER or Gravity.CENTER_VERTICAL
|
||||||
|
|
||||||
//增加一个右布局
|
//增加一个右布局
|
||||||
mRightLayout = LinearLayout(context)
|
mRightLayout = LinearLayout(context)
|
||||||
val rightLp: LinearLayout.LayoutParams = LinearLayout.LayoutParams(
|
val rightLp: LinearLayout.LayoutParams =
|
||||||
0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f
|
LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1.0f)
|
||||||
)
|
|
||||||
mRightLayout!!.layoutParams = rightLp
|
mRightLayout!!.layoutParams = rightLp
|
||||||
mRightLayout!!.gravity = Gravity.END or Gravity.CENTER_VERTICAL
|
mRightLayout!!.gravity = Gravity.END or Gravity.CENTER_VERTICAL
|
||||||
|
|
||||||
@@ -422,7 +375,7 @@ object StatusBarLayoutForS : HookRegister() {
|
|||||||
statusBarBottom = statusBar!!.paddingBottom
|
statusBarBottom = statusBar!!.paddingBottom
|
||||||
|
|
||||||
|
|
||||||
if (isCompatibilityMode) {
|
if (getHoleLocation == 2) {
|
||||||
val customLeftMargin = XSPUtils.getInt("status_bar_left_margin", 0)
|
val customLeftMargin = XSPUtils.getInt("status_bar_left_margin", 0)
|
||||||
if (customLeftMargin != 0) {
|
if (customLeftMargin != 0) {
|
||||||
statusBarLeft = customLeftMargin
|
statusBarLeft = customLeftMargin
|
||||||
@@ -432,16 +385,16 @@ object StatusBarLayoutForS : HookRegister() {
|
|||||||
if (customRightMargin != 0) {
|
if (customRightMargin != 0) {
|
||||||
statusBarRight = customRightMargin
|
statusBarRight = customRightMargin
|
||||||
}
|
}
|
||||||
updateLayout(context,2)
|
updateLayout(context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//兼容模式
|
//兼容模式
|
||||||
findMethod("com.android.systemui.statusbar.phone.PhoneStatusBarView") {
|
findMethod("com.android.systemui.statusbar.phone.PhoneStatusBarView") {
|
||||||
name == "updateLayoutForCutout"
|
name == "updateLayoutForCutout"
|
||||||
}.hookAfter {
|
}.hookAfter {
|
||||||
if (isCompatibilityMode) {
|
if (getHoleLocation == 2) {
|
||||||
val context = (it.thisObject as ViewGroup).context
|
val context = (it.thisObject as ViewGroup).context
|
||||||
updateLayout(context,2)
|
updateLayout(context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -451,10 +404,12 @@ object StatusBarLayoutForS : HookRegister() {
|
|||||||
}.hookAfter {
|
}.hookAfter {
|
||||||
val miuiPhoneStatusBarView = it.thisObject.getObjectAs<ViewGroup>("mStatusBar")
|
val miuiPhoneStatusBarView = it.thisObject.getObjectAs<ViewGroup>("mStatusBar")
|
||||||
val res = miuiPhoneStatusBarView.resources
|
val res = miuiPhoneStatusBarView.resources
|
||||||
val statusBarId = res.getIdentifier("status_bar", "id", "com.android.systemui")
|
val statusBarId =
|
||||||
|
res.getIdentifier("status_bar", "id", "com.android.systemui")
|
||||||
val statusBar1 = miuiPhoneStatusBarView.findViewById<ViewGroup>(statusBarId)
|
val statusBar1 = miuiPhoneStatusBarView.findViewById<ViewGroup>(statusBarId)
|
||||||
//非锁屏下整个状态栏布局
|
//非锁屏下整个状态栏布局
|
||||||
val keyguardMgr = statusBar1.context.getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
|
val keyguardMgr =
|
||||||
|
statusBar1.context.getSystemService(Context.KEYGUARD_SERVICE) as KeyguardManager
|
||||||
if (keyguardMgr.isKeyguardLocked) {
|
if (keyguardMgr.isKeyguardLocked) {
|
||||||
statusBar1!!.visibility = View.GONE
|
statusBar1!!.visibility = View.GONE
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -2,10 +2,12 @@ package com.lt2333.simplicitytools.hooks.rules.s.systemui
|
|||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.content.res.Resources
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
import android.util.TypedValue
|
import android.util.TypedValue
|
||||||
import android.view.Gravity
|
import android.view.Gravity
|
||||||
|
import android.view.ViewGroup
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import com.github.kyuubiran.ezxhelper.utils.*
|
import com.github.kyuubiran.ezxhelper.utils.*
|
||||||
import com.lt2333.simplicitytools.utils.XSPUtils
|
import com.lt2333.simplicitytools.utils.XSPUtils
|
||||||
@@ -14,7 +16,6 @@ import java.lang.reflect.Method
|
|||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
|
|
||||||
object StatusBarTimeCustomizationForS : HookRegister() {
|
object StatusBarTimeCustomizationForS : HookRegister() {
|
||||||
|
|
||||||
private val getMode = XSPUtils.getInt("custom_clock_mode", 0)
|
private val getMode = XSPUtils.getInt("custom_clock_mode", 0)
|
||||||
@@ -29,12 +30,14 @@ object StatusBarTimeCustomizationForS : HookRegister() {
|
|||||||
private val isSecond = XSPUtils.getBoolean("status_bar_time_seconds", false)
|
private val isSecond = XSPUtils.getBoolean("status_bar_time_seconds", false)
|
||||||
private val isDoubleHour = XSPUtils.getBoolean("status_bar_time_double_hour", false)
|
private val isDoubleHour = XSPUtils.getBoolean("status_bar_time_double_hour", false)
|
||||||
private val isPeriod = XSPUtils.getBoolean("status_bar_time_period", true)
|
private val isPeriod = XSPUtils.getBoolean("status_bar_time_period", true)
|
||||||
private val isCenterAlign = XSPUtils.getBoolean("status_bar_time_double_line_center_align", false)
|
private val isCenterAlign =
|
||||||
|
XSPUtils.getBoolean("status_bar_time_double_line_center_align", false)
|
||||||
|
|
||||||
//极客模式
|
//极客模式
|
||||||
private val getGeekClockSize = XSPUtils.getInt("status_bar_clock_size_geek", 0)
|
private val getGeekClockSize = XSPUtils.getInt("status_bar_clock_size_geek", 0)
|
||||||
private val getGeekFormat = XSPUtils.getString("custom_clock_format_geek", "HH:mm:ss")
|
private val getGeekFormat = XSPUtils.getString("custom_clock_format_geek", "HH:mm:ss")
|
||||||
private val isGeekCenterAlign = XSPUtils.getBoolean("status_bar_time_center_align_geek", false)
|
private val isGeekCenterAlign =
|
||||||
|
XSPUtils.getBoolean("status_bar_time_center_align_geek", false)
|
||||||
|
|
||||||
private lateinit var nowTime: Date
|
private lateinit var nowTime: Date
|
||||||
private var str = ""
|
private var str = ""
|
||||||
@@ -80,7 +83,9 @@ object StatusBarTimeCustomizationForS : HookRegister() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Timer().scheduleAtFixedRate(
|
Timer().scheduleAtFixedRate(
|
||||||
T(), 1000 - System.currentTimeMillis() % 1000, 1000
|
T(),
|
||||||
|
1000 - System.currentTimeMillis() % 1000,
|
||||||
|
1000
|
||||||
)
|
)
|
||||||
} catch (_: Exception) {
|
} catch (_: Exception) {
|
||||||
}
|
}
|
||||||
@@ -93,7 +98,8 @@ object StatusBarTimeCustomizationForS : HookRegister() {
|
|||||||
val textV = it.thisObject as TextView
|
val textV = it.thisObject as TextView
|
||||||
if (textV.resources.getResourceEntryName(textV.id) == "clock") {
|
if (textV.resources.getResourceEntryName(textV.id) == "clock") {
|
||||||
val t = Settings.System.getString(
|
val t = Settings.System.getString(
|
||||||
c!!.contentResolver, Settings.System.TIME_12_24
|
c!!.contentResolver,
|
||||||
|
Settings.System.TIME_12_24
|
||||||
)
|
)
|
||||||
val is24 = t == "24"
|
val is24 = t == "24"
|
||||||
nowTime = Calendar.getInstance().time
|
nowTime = Calendar.getInstance().time
|
||||||
@@ -104,18 +110,15 @@ object StatusBarTimeCustomizationForS : HookRegister() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isCenterAlign) {
|
if (isCenterAlign) {
|
||||||
findConstructor("com.android.systemui.statusbar.views.MiuiClock") {
|
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") {
|
||||||
paramCount == 3
|
name == "onViewCreated" && parameterCount == 2
|
||||||
}.hookAfter {
|
}.hookAfter {
|
||||||
try {
|
val miuiPhoneStatusBarView =
|
||||||
val textV = it.thisObject as TextView
|
it.thisObject.getObject("mStatusBar") as ViewGroup
|
||||||
if (textV.resources.getResourceEntryName(textV.id) == "clock") {
|
val res: Resources = miuiPhoneStatusBarView.resources
|
||||||
c = it.args[0] as Context
|
val clockId: Int = res.getIdentifier("clock", "id", "com.android.systemui")
|
||||||
val textV = it.thisObject as TextView
|
val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId)
|
||||||
textV.gravity = Gravity.CENTER
|
clock.gravity = Gravity.CENTER
|
||||||
}
|
|
||||||
} catch (_: Exception) {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -149,7 +152,9 @@ object StatusBarTimeCustomizationForS : HookRegister() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
Timer().scheduleAtFixedRate(
|
Timer().scheduleAtFixedRate(
|
||||||
T(), 1000 - System.currentTimeMillis() % 1000, 1000
|
T(),
|
||||||
|
1000 - System.currentTimeMillis() % 1000,
|
||||||
|
1000
|
||||||
)
|
)
|
||||||
} catch (_: Exception) {
|
} catch (_: Exception) {
|
||||||
}
|
}
|
||||||
@@ -157,38 +162,27 @@ object StatusBarTimeCustomizationForS : HookRegister() {
|
|||||||
|
|
||||||
findMethod("com.android.systemui.statusbar.views.MiuiClock") {
|
findMethod("com.android.systemui.statusbar.views.MiuiClock") {
|
||||||
name == "updateTime"
|
name == "updateTime"
|
||||||
}.hookBefore {
|
}.hookAfter {
|
||||||
try {
|
try {
|
||||||
val textV = it.thisObject as TextView
|
val textV = it.thisObject as TextView
|
||||||
if (textV.resources.getResourceEntryName(textV.id) == "clock") {
|
if (textV.resources.getResourceEntryName(textV.id) == "clock") {
|
||||||
val mMiuiStatusBarClockController = textV.getObject("mMiuiStatusBarClockController")
|
nowTime = Calendar.getInstance().time
|
||||||
val mCalendar = mMiuiStatusBarClockController.invokeMethodAuto("getCalendar")
|
textV.text = SimpleDateFormat(getGeekFormat).format(nowTime)
|
||||||
mCalendar?.invokeMethodAuto(
|
|
||||||
"setTimeInMillis", System.currentTimeMillis()
|
|
||||||
)
|
|
||||||
val textSb = StringBuilder()
|
|
||||||
val formatSb = StringBuilder(getGeekFormat.toString())
|
|
||||||
mCalendar?.invokeMethodAuto("format", c, textSb, formatSb)
|
|
||||||
textV.text = textSb.toString()
|
|
||||||
it.result = null
|
|
||||||
}
|
}
|
||||||
} catch (_: Exception) {
|
} catch (_: Exception) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isGeekCenterAlign) {
|
if (isGeekCenterAlign) {
|
||||||
findConstructor("com.android.systemui.statusbar.views.MiuiClock") {
|
findMethod("com.android.systemui.statusbar.phone.CollapsedStatusBarFragment") {
|
||||||
paramCount == 3
|
name == "onViewCreated" && parameterCount == 2
|
||||||
}.hookAfter {
|
}.hookAfter {
|
||||||
try {
|
val miuiPhoneStatusBarView =
|
||||||
val textV = it.thisObject as TextView
|
it.thisObject.getObject("mStatusBar") as ViewGroup
|
||||||
if (textV.resources.getResourceEntryName(textV.id) == "clock") {
|
val res: Resources = miuiPhoneStatusBarView.resources
|
||||||
c = it.args[0] as Context
|
val clockId: Int = res.getIdentifier("clock", "id", "com.android.systemui")
|
||||||
val textV = it.thisObject as TextView
|
val clock: TextView = miuiPhoneStatusBarView.findViewById(clockId)
|
||||||
textV.gravity = Gravity.CENTER
|
clock.gravity = Gravity.CENTER
|
||||||
}
|
|
||||||
} catch (_: Exception) {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -203,6 +197,7 @@ object StatusBarTimeCustomizationForS : HookRegister() {
|
|||||||
if (isYear) {
|
if (isYear) {
|
||||||
if (isZh) {
|
if (isZh) {
|
||||||
datePattern += "YY年"
|
datePattern += "YY年"
|
||||||
|
// if (!isHideSpace) datePattern = "$datePattern "
|
||||||
} else {
|
} else {
|
||||||
datePattern += "YY"
|
datePattern += "YY"
|
||||||
if (isMonth || isDay) datePattern += "/"
|
if (isMonth || isDay) datePattern += "/"
|
||||||
@@ -211,6 +206,7 @@ object StatusBarTimeCustomizationForS : HookRegister() {
|
|||||||
if (isMonth) {
|
if (isMonth) {
|
||||||
if (isZh) {
|
if (isZh) {
|
||||||
datePattern += "M月"
|
datePattern += "M月"
|
||||||
|
// if (!isHideSpace) datePattern = "$datePattern "
|
||||||
} else {
|
} else {
|
||||||
datePattern += "M"
|
datePattern += "M"
|
||||||
if (isDay) datePattern += "/"
|
if (isDay) datePattern += "/"
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
package com.lt2333.simplicitytools.hooks.rules.t.systemui
|
|
||||||
|
|
||||||
import com.github.kyuubiran.ezxhelper.utils.findMethod
|
|
||||||
import com.github.kyuubiran.ezxhelper.utils.hookBefore
|
|
||||||
import com.lt2333.simplicitytools.utils.hasEnable
|
|
||||||
import com.lt2333.simplicitytools.utils.xposed.base.HookRegister
|
|
||||||
|
|
||||||
object DisableBluetoothTemporarilyOffForT: HookRegister() {
|
|
||||||
override fun init()= hasEnable("disable_bluetooth_temporarily_off") {
|
|
||||||
findMethod("com.android.settingslib.bluetooth.LocalBluetoothAdapter"){
|
|
||||||
name == "isSupportBluetoothRestrict" && parameterCount==1
|
|
||||||
}.hookBefore {
|
|
||||||
it.result = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -28,31 +28,21 @@ object StatusBarLayoutForT : HookRegister() {
|
|||||||
private var statusBarBottom = 0
|
private var statusBarBottom = 0
|
||||||
|
|
||||||
override fun init() {
|
override fun init() {
|
||||||
|
|
||||||
|
// TODO: Android13状态栏布局不可用
|
||||||
|
|
||||||
var mLeftLayout: LinearLayout? = null
|
var mLeftLayout: LinearLayout? = null
|
||||||
var mRightLayout: LinearLayout? = null
|
var mRightLayout: LinearLayout? = null
|
||||||
var mCenterLayout: LinearLayout?
|
var mCenterLayout: LinearLayout?
|
||||||
var statusBar: ViewGroup? = null
|
var statusBar: ViewGroup? = null
|
||||||
|
|
||||||
//判断屏幕状态更新布局 mode: 1正常布局 2居中布局
|
fun updateLayout(context: Context) {
|
||||||
fun updateLayout(context: Context,mode: Int) {
|
//判断屏幕方向
|
||||||
when(mode){
|
val mConfiguration: Configuration = context.resources.configuration
|
||||||
1->{
|
if (mConfiguration.orientation == Configuration.ORIENTATION_PORTRAIT) {
|
||||||
val mConfiguration: Configuration = context.resources.configuration
|
mLeftLayout!!.setPadding(statusBarLeft, 0, 0, 0)
|
||||||
if (mConfiguration.orientation == Configuration.ORIENTATION_PORTRAIT) { //横屏
|
mRightLayout!!.setPadding(0, 0, statusBarRight, 0)
|
||||||
statusBar!!.setPadding(statusBarLeft, statusBarTop, statusBarRight, statusBarBottom)
|
statusBar!!.setPadding(0, statusBarTop, 0, statusBarBottom)
|
||||||
}
|
|
||||||
}
|
|
||||||
2->{
|
|
||||||
val mConfiguration: Configuration = context.resources.configuration
|
|
||||||
if (mConfiguration.orientation == Configuration.ORIENTATION_PORTRAIT) { //横屏
|
|
||||||
mLeftLayout!!.setPadding(statusBarLeft, 0, 0, 0)
|
|
||||||
mRightLayout!!.setPadding(0, 0, statusBarRight, 0)
|
|
||||||
statusBar!!.setPadding(0, statusBarTop, 0, statusBarBottom)
|
|
||||||
}else{ //竖屏
|
|
||||||
mLeftLayout!!.setPadding(0, 0, 0, 0)
|
|
||||||
mRightLayout!!.setPadding(0, 0, 0, 0)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -65,52 +55,9 @@ object StatusBarLayoutForT : HookRegister() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//修改对应布局
|
|
||||||
when (getMode) {
|
when (getMode) {
|
||||||
//默认
|
//默认
|
||||||
0 -> {
|
0 -> return
|
||||||
|
|
||||||
findMethod("com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment") {
|
|
||||||
name == "onViewCreated" && parameterCount == 2
|
|
||||||
}.hookAfter { param ->
|
|
||||||
val miuiPhoneStatusBarView = param.thisObject.getObjectAs<ViewGroup>("mStatusBar")
|
|
||||||
val context: Context = miuiPhoneStatusBarView.context
|
|
||||||
val res: Resources = miuiPhoneStatusBarView.resources
|
|
||||||
val statusBarId: Int = res.getIdentifier("status_bar", "id", "com.android.systemui")
|
|
||||||
statusBar = miuiPhoneStatusBarView.findViewById(statusBarId)
|
|
||||||
if (statusBar == null) return@hookAfter
|
|
||||||
|
|
||||||
statusBarLeft = statusBar!!.paddingLeft
|
|
||||||
statusBarTop = statusBar!!.paddingTop
|
|
||||||
statusBarRight = statusBar!!.paddingRight
|
|
||||||
statusBarBottom = statusBar!!.paddingBottom
|
|
||||||
|
|
||||||
|
|
||||||
if (isCompatibilityMode) {
|
|
||||||
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,1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//兼容模式
|
|
||||||
findMethod("com.android.systemui.statusbar.phone.PhoneStatusBarView") {
|
|
||||||
name == "updateLayoutForCutout"
|
|
||||||
}.hookAfter {
|
|
||||||
if (isCompatibilityMode) {
|
|
||||||
val context = (it.thisObject as ViewGroup).context
|
|
||||||
updateLayout(context,1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//时钟居中
|
//时钟居中
|
||||||
1 -> {
|
1 -> {
|
||||||
findMethod("com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment") {
|
findMethod("com.android.systemui.statusbar.phone.fragment.CollapsedStatusBarFragment") {
|
||||||
@@ -212,7 +159,7 @@ object StatusBarLayoutForT : HookRegister() {
|
|||||||
if (customRightMargin != 0) {
|
if (customRightMargin != 0) {
|
||||||
statusBarRight = customRightMargin
|
statusBarRight = customRightMargin
|
||||||
}
|
}
|
||||||
updateLayout(context,2)
|
updateLayout(context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -221,7 +168,7 @@ object StatusBarLayoutForT : HookRegister() {
|
|||||||
}.hookAfter {
|
}.hookAfter {
|
||||||
hasEnable("layout_compatibility_mode") {
|
hasEnable("layout_compatibility_mode") {
|
||||||
val context = (it.thisObject as ViewGroup).context
|
val context = (it.thisObject as ViewGroup).context
|
||||||
updateLayout(context,2)
|
updateLayout(context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -259,36 +206,6 @@ object StatusBarLayoutForT : HookRegister() {
|
|||||||
battery.addView(mRightLayout)
|
battery.addView(mRightLayout)
|
||||||
(clock.parent as ViewGroup).removeView(clock)
|
(clock.parent as ViewGroup).removeView(clock)
|
||||||
mRightLayout!!.addView(clock)
|
mRightLayout!!.addView(clock)
|
||||||
|
|
||||||
|
|
||||||
statusBarLeft = statusBar!!.paddingLeft
|
|
||||||
statusBarTop = statusBar!!.paddingTop
|
|
||||||
statusBarRight = statusBar!!.paddingRight
|
|
||||||
statusBarBottom = statusBar!!.paddingBottom
|
|
||||||
|
|
||||||
|
|
||||||
if (isCompatibilityMode) {
|
|
||||||
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,1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//兼容模式
|
|
||||||
findMethod("com.android.systemui.statusbar.phone.PhoneStatusBarView") {
|
|
||||||
name == "updateLayoutForCutout"
|
|
||||||
}.hookAfter {
|
|
||||||
if (isCompatibilityMode) {
|
|
||||||
val context = (it.thisObject as ViewGroup).context
|
|
||||||
updateLayout(context,1)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//时钟居中+图标居左
|
//时钟居中+图标居左
|
||||||
@@ -431,7 +348,7 @@ object StatusBarLayoutForT : HookRegister() {
|
|||||||
if (customRightMargin != 0) {
|
if (customRightMargin != 0) {
|
||||||
statusBarRight = customRightMargin
|
statusBarRight = customRightMargin
|
||||||
}
|
}
|
||||||
updateLayout(context,2)
|
updateLayout(context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//兼容模式
|
//兼容模式
|
||||||
@@ -440,7 +357,7 @@ object StatusBarLayoutForT : HookRegister() {
|
|||||||
}.hookAfter {
|
}.hookAfter {
|
||||||
if (isCompatibilityMode) {
|
if (isCompatibilityMode) {
|
||||||
val context = (it.thisObject as ViewGroup).context
|
val context = (it.thisObject as ViewGroup).context
|
||||||
updateLayout(context,2)
|
updateLayout(context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -240,11 +240,4 @@
|
|||||||
<string name="miuihome_recentview_remove_card_animation">Modificar la animación de marcado de tarjetas</string>
|
<string name="miuihome_recentview_remove_card_animation">Modificar la animación de marcado de tarjetas</string>
|
||||||
<string name="miuihome_recentview_remove_card_animation_summary">Modificar el efecto de animación al remover ventana de tareas recientes</string>
|
<string name="miuihome_recentview_remove_card_animation_summary">Modificar el efecto de animación al remover ventana de tareas recientes</string>
|
||||||
<string name="miuihome_recentwiew_wallpaper_darkening">Deshabilitar atenuación de fondo de pantalla</string>
|
<string name="miuihome_recentwiew_wallpaper_darkening">Deshabilitar atenuación de fondo de pantalla</string>
|
||||||
<string name="miuihome_recentwiew_wallpaper_darkening_summary">Esto deshabilitará el efecto en el que el fondo de pantalla se ilumina gradualmente cuando se abre y se cierra una tarea reciente</string>
|
|
||||||
<string name="miuihome_scroll_icon_name">Desplazar el nombre de la app</string>
|
|
||||||
<string name="miuihome_scroll_icon_name_summary">Si el nombre de la aplicación es demasiado largo se mostrará con desplazamiento y sin ningúna línea nueva</string>
|
|
||||||
<string name="miuihome_shortcut_add_small_window">Añadir ventana al menú de accesos directos</string>
|
|
||||||
<string name="miuihome_shortcut_add_small_window_summary">Mantener presionando el icono del escritorio para añadir a una ventana de acceso rápido</string>
|
|
||||||
<string name="miuihome_shortcut_add_small_window_title">Ventana pequeña </string>
|
|
||||||
<string name="click_to_view_use_cases">Clic para ver casos de uso</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -39,7 +39,6 @@
|
|||||||
<string name="github_url">開発に参加できる開発者を歓迎します</string>
|
<string name="github_url">開発に参加できる開発者を歓迎します</string>
|
||||||
<string name="issues">ご意見・ご提案</string>
|
<string name="issues">ご意見・ご提案</string>
|
||||||
<string name="issues_url">クリックして GitHub Issues を表示する</string>
|
<string name="issues_url">クリックして GitHub Issues を表示する</string>
|
||||||
<string name="xposeddescription">MIUI13 (Android 12) 以降向けカスタマイズツール</string>
|
|
||||||
<string name="statusbar">ステータスバー</string>
|
<string name="statusbar">ステータスバー</string>
|
||||||
<string name="status_bar_time_seconds">秒を表示する</string>
|
<string name="status_bar_time_seconds">秒を表示する</string>
|
||||||
<string name="status_bar_network_speed_refresh_speed">ネットワーク速度を秒単位で更新</string>
|
<string name="status_bar_network_speed_refresh_speed">ネットワーク速度を秒単位で更新</string>
|
||||||
|
|||||||
@@ -239,12 +239,4 @@
|
|||||||
<string name="big_mobile_type_location">Pozycja dużej ikony typu sieci</string>
|
<string name="big_mobile_type_location">Pozycja dużej ikony typu sieci</string>
|
||||||
<string name="miuihome_recentview_remove_card_animation">Zmodyfikuj animację oznaczania kart</string>
|
<string name="miuihome_recentview_remove_card_animation">Zmodyfikuj animację oznaczania kart</string>
|
||||||
<string name="miuihome_recentview_remove_card_animation_summary">Zmodyfikuj efekt animacji karty usunięcia ostatniego zadania</string>
|
<string name="miuihome_recentview_remove_card_animation_summary">Zmodyfikuj efekt animacji karty usunięcia ostatniego zadania</string>
|
||||||
<string name="miuihome_recentwiew_wallpaper_darkening">Wyłącz przyciemnianie tapety</string>
|
|
||||||
<string name="miuihome_recentwiew_wallpaper_darkening_summary">Spowoduje to wyłączenie efektu polegającego na tym, że tapeta stopniowo rozjaśnia się od przyciemnienia podczas wchodzenia i wychodzenia z ostatnich zadań</string>
|
|
||||||
<string name="miuihome_scroll_icon_name">Przewiń nazwę aplikacji</string>
|
|
||||||
<string name="miuihome_scroll_icon_name_summary">Zbyt długa nazwa aplikacji zostanie przewinięta i wyświetlona bez nowego wiersza</string>
|
|
||||||
<string name="miuihome_shortcut_add_small_window">Dodaj widżet \"Menu skrótów\"</string>
|
|
||||||
<string name="miuihome_shortcut_add_small_window_summary">Naciśnij i przytrzymaj ikonę na ekranie głównym, aby dodać okno szybkiego otwierania</string>
|
|
||||||
<string name="miuihome_shortcut_add_small_window_title">Małe okno</string>
|
|
||||||
<string name="click_to_view_use_cases">Kliknij, aby wyświetlić przypadki użycia</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -247,5 +247,4 @@
|
|||||||
<string name="miuihome_shortcut_add_small_window_summary">桌面图标长按快捷菜单位置添加快速打开小窗</string>
|
<string name="miuihome_shortcut_add_small_window_summary">桌面图标长按快捷菜单位置添加快速打开小窗</string>
|
||||||
<string name="miuihome_shortcut_add_small_window_title">小窗</string>
|
<string name="miuihome_shortcut_add_small_window_title">小窗</string>
|
||||||
<string name="click_to_view_use_cases">点击查看用例</string>
|
<string name="click_to_view_use_cases">点击查看用例</string>
|
||||||
<string name="disable_bluetooth_temporarily_off" comment="This function is used to completely close Bluetooth">禁用临时关闭蓝牙</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
<string name="performance">性能</string>
|
<string name="performance">效能</string>
|
||||||
<string name="lock_max_fps">鎖定目前重新整理速率上限</string>
|
<string name="lock_max_fps">鎖定目前重新整理速率上限</string>
|
||||||
<string name="ui">介面</string>
|
<string name="ui">介面</string>
|
||||||
<string name="delete_on_post_notification">移除上層顯示通知</string>
|
<string name="delete_on_post_notification">移除上層顯示通知</string>
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
<string name="disable_flag_secure_summary">開啟後允許在不允許截圖的軟體中截圖\n支援新增下拉控制中心快速開關,保障安全</string>
|
<string name="disable_flag_secure_summary">開啟後允許在不允許截圖的軟體中截圖\n支援新增下拉控制中心快速開關,保障安全</string>
|
||||||
<string name="home">桌面</string>
|
<string name="home">桌面</string>
|
||||||
<string name="home_time">始終顯示桌面時鐘</string>
|
<string name="home_time">始終顯示桌面時鐘</string>
|
||||||
<string name="reboot_host">重啟所有作用範圍</string>
|
<string name="reboot_host">重啟所有範圍</string>
|
||||||
<string name="reboot">重啟系統</string>
|
<string name="reboot">重啟系統</string>
|
||||||
<!--Status bar icons-->
|
<!--Status bar icons-->
|
||||||
<string name="status_bar_icon">狀態列圖示</string>
|
<string name="status_bar_icon">狀態列圖示</string>
|
||||||
@@ -43,7 +43,7 @@
|
|||||||
<string name="statusbar">狀態列</string>
|
<string name="statusbar">狀態列</string>
|
||||||
<string name="status_bar_time_seconds">顯示秒數</string>
|
<string name="status_bar_time_seconds">顯示秒數</string>
|
||||||
<string name="status_bar_network_speed_refresh_speed">每秒更新即時網路速度</string>
|
<string name="status_bar_network_speed_refresh_speed">每秒更新即時網路速度</string>
|
||||||
<string name="remove_the_maximum_number_of_notification_icons">移除通知圖示數量上限</string>
|
<string name="remove_the_maximum_number_of_notification_icons">解除通知圖示數量上限</string>
|
||||||
<string name="main_switch">模組主開關</string>
|
<string name="main_switch">模組主開關</string>
|
||||||
<string name="hide_gps_icon">隱藏「GPS」圖示</string>
|
<string name="hide_gps_icon">隱藏「GPS」圖示</string>
|
||||||
<string name="hide_status_bar_network_speed_second">隱藏網路速度 (/s) 單位</string>
|
<string name="hide_status_bar_network_speed_second">隱藏網路速度 (/s) 單位</string>
|
||||||
@@ -76,7 +76,7 @@
|
|||||||
<string name="developer">開發人員</string>
|
<string name="developer">開發人員</string>
|
||||||
<string name="thank_list">感謝名單</string>
|
<string name="thank_list">感謝名單</string>
|
||||||
<string name="third_party_open_source_statement">第三方開放原始碼聲明</string>
|
<string name="third_party_open_source_statement">第三方開放原始碼聲明</string>
|
||||||
<string name="corepacth">移除安裝限制</string>
|
<string name="corepacth">解除安裝限制</string>
|
||||||
<string name="corepacth_summary">支援降級/不同簽章/無簽章安裝</string>
|
<string name="corepacth_summary">支援降級/不同簽章/無簽章安裝</string>
|
||||||
<string name="prevent_recovery_of_battery_optimization_white_list">防止復原電池效能最佳化白名單</string>
|
<string name="prevent_recovery_of_battery_optimization_white_list">防止復原電池效能最佳化白名單</string>
|
||||||
<string name="failed_after_restart">系統重啟後仍會還原</string>
|
<string name="failed_after_restart">系統重啟後仍會還原</string>
|
||||||
@@ -94,7 +94,7 @@
|
|||||||
<string name="remove_lock_screen_camera">移除鎖定螢幕相機功能</string>
|
<string name="remove_lock_screen_camera">移除鎖定螢幕相機功能</string>
|
||||||
<string name="only_official_default_themes_are_supported">僅支援官方預設主題</string>
|
<string name="only_official_default_themes_are_supported">僅支援官方預設主題</string>
|
||||||
<string name="lock_one_hundred">手機管家鎖定 100 分</string>
|
<string name="lock_one_hundred">手機管家鎖定 100 分</string>
|
||||||
<string name="scope">作用範圍</string>
|
<string name="scope">範圍</string>
|
||||||
<string name="scope_android">系統架構</string>
|
<string name="scope_android">系統架構</string>
|
||||||
<string name="scope_systemui">系統 UI</string>
|
<string name="scope_systemui">系統 UI</string>
|
||||||
<string name="scope_miuihome">系統桌面</string>
|
<string name="scope_miuihome">系統桌面</string>
|
||||||
@@ -102,7 +102,7 @@
|
|||||||
<string name="status_bar_network_speed_refresh_speed_summary">將狀態列網路速度元件的更新間隔變更為 1s</string>
|
<string name="status_bar_network_speed_refresh_speed_summary">將狀態列網路速度元件的更新間隔變更為 1s</string>
|
||||||
<string name="hide_battery_percentage_icon_summary">需自行開啟電池百分比外顯功能</string>
|
<string name="hide_battery_percentage_icon_summary">需自行開啟電池百分比外顯功能</string>
|
||||||
<string name="hide_status_bar_network_speed_second_summary">隱藏狀態列網路速度元件的 (/s) 單位</string>
|
<string name="hide_status_bar_network_speed_second_summary">隱藏狀態列網路速度元件的 (/s) 單位</string>
|
||||||
<string name="remove_the_maximum_number_of_notification_icons_summary">移除狀態列最多僅能顯示三條通知的限制</string>
|
<string name="remove_the_maximum_number_of_notification_icons_summary">解除狀態列最多僅能顯示三條通知的限制</string>
|
||||||
<string name="scope_systemui_summary">自訂系統介面、狀態列、鎖定螢幕等</string>
|
<string name="scope_systemui_summary">自訂系統介面、狀態列、鎖定螢幕等</string>
|
||||||
<string name="scope_android_summary">首次啟動模組或模組更新後,\n此處的功能需重啟系統後才能生效</string>
|
<string name="scope_android_summary">首次啟動模組或模組更新後,\n此處的功能需重啟系統後才能生效</string>
|
||||||
<string name="scope_other_summary">手機管家、相簿編輯、電量與性能等</string>
|
<string name="scope_other_summary">手機管家、相簿編輯、電量與性能等</string>
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
<string name="matters_needing_attention_context">首次啟動或更新後建議重啟手機\n絕大部分功能變更後需要在右上角重啟範圍後生效</string>
|
<string name="matters_needing_attention_context">首次啟動或更新後建議重啟手機\n絕大部分功能變更後需要在右上角重啟範圍後生效</string>
|
||||||
<string name="are_you_sure_reboot">確定重啟系統?</string>
|
<string name="are_you_sure_reboot">確定重啟系統?</string>
|
||||||
<string name="cancel">取消</string>
|
<string name="cancel">取消</string>
|
||||||
<string name="are_you_sure_reboot_scope">確定要重啟所有作用範圍?</string>
|
<string name="are_you_sure_reboot_scope">確定重啟所有範圍?</string>
|
||||||
<string name="hide_battery_charging_icon">隱藏「充電」圖示</string>
|
<string name="hide_battery_charging_icon">隱藏「充電」圖示</string>
|
||||||
<string name="hide_wifi_standard_icon">隱藏「WIFI 標準」圖示</string>
|
<string name="hide_wifi_standard_icon">隱藏「WIFI 標準」圖示</string>
|
||||||
<string name="status_bar_time_center">時間置中</string>
|
<string name="status_bar_time_center">時間置中</string>
|
||||||
@@ -246,5 +246,5 @@
|
|||||||
<string name="miuihome_shortcut_add_small_window">捷徑選單新增小窗</string>
|
<string name="miuihome_shortcut_add_small_window">捷徑選單新增小窗</string>
|
||||||
<string name="miuihome_shortcut_add_small_window_summary">長按桌面圖示以快速開啟小窗應用程式</string>
|
<string name="miuihome_shortcut_add_small_window_summary">長按桌面圖示以快速開啟小窗應用程式</string>
|
||||||
<string name="miuihome_shortcut_add_small_window_title">小窗應用程式</string>
|
<string name="miuihome_shortcut_add_small_window_title">小窗應用程式</string>
|
||||||
<string name="click_to_view_use_cases">按一下以檢視案例</string>
|
<string name="click_to_view_use_cases">按一下以檢視用例</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
<string name="github_url">Welcome more developers to participate in the development</string>
|
<string name="github_url">Welcome more developers to participate in the development</string>
|
||||||
<string name="issues">Feedback/Proposal</string>
|
<string name="issues">Feedback/Proposal</string>
|
||||||
<string name="issues_url">Click to view GitHub Issues</string>
|
<string name="issues_url">Click to view GitHub Issues</string>
|
||||||
<string name="xposeddescription">Customization tool for MIUI13+(Android 12+)</string>
|
<string name="xposeddescription">Customization tool for MIUI13(Android 12)</string>
|
||||||
<string name="statusbar">Status bar</string>
|
<string name="statusbar">Status bar</string>
|
||||||
<string name="status_bar_time_seconds">Display seconds</string>
|
<string name="status_bar_time_seconds">Display seconds</string>
|
||||||
<string name="status_bar_network_speed_refresh_speed">Network speed refresh in seconds</string>
|
<string name="status_bar_network_speed_refresh_speed">Network speed refresh in seconds</string>
|
||||||
@@ -251,5 +251,4 @@
|
|||||||
<string name="miuihome_shortcut_add_small_window_summary">Press and hold the desktop icon to add a quick open window</string>
|
<string name="miuihome_shortcut_add_small_window_summary">Press and hold the desktop icon to add a quick open window</string>
|
||||||
<string name="miuihome_shortcut_add_small_window_title">Small window</string>
|
<string name="miuihome_shortcut_add_small_window_title">Small window</string>
|
||||||
<string name="click_to_view_use_cases">Click to view use cases</string>
|
<string name="click_to_view_use_cases">Click to view use cases</string>
|
||||||
<string name="disable_bluetooth_temporarily_off">Disable bluetooth temporarily off</string>
|
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
Reference in New Issue
Block a user