Skip to content

Commit 1d7d44f

Browse files
committed
Refactor status bar icon tint and battery color application
- Add an informational note in `StatusbarScreen` regarding theme switching for status bar color updates. - Encapsulate battery color logic into a dedicated `updateBatteryColors` method in `StatusbarMisc`. - Reorganize `StatusbarMisc` to ensure `applyIconTint` and `updateBatteryColors` are called consistently.
1 parent 366b372 commit 1d7d44f

2 files changed

Lines changed: 40 additions & 28 deletions

File tree

app/src/main/java/com/drdisagree/iconify/features/home/tweaks/statusbar/screens/StatusbarScreen.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,13 @@ val statusbarPreferences = preferenceScreen {
8181
showResetButton = true,
8282
)
8383
}
84+
85+
category {
86+
info(
87+
key = "statusbar_custom_color",
88+
text = stringRes("Switch between light and dark themes to update the status bar color."),
89+
)
90+
}
8491
}
8592

8693
@Composable

app/src/main/java/com/drdisagree/iconify/xposed/modules/statusbar/StatusbarMisc.kt

Lines changed: 33 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,39 @@ class StatusbarMisc(context: Context) : ModPack(context) {
520520
updateStatusbarColor(param)
521521
}
522522

523+
updateBatteryColors()
524+
applyIconTint()
525+
}
526+
527+
private fun applyIconTint() {
528+
if (darkIconDispatcherImplInstance == null) return
529+
530+
val (statusbarColorLight, statusbarColorDark) = getStatusbarColors(mContext)
531+
532+
val mDarkIntensity = darkIconDispatcherImplInstance.getField("mDarkIntensity") as Float
533+
val argbEvaluator = ArgbEvaluator::class.java.callStaticMethod("getInstance")
534+
535+
val mIconTint = argbEvaluator.callMethod(
536+
"evaluate",
537+
mDarkIntensity,
538+
statusbarColorLight,
539+
statusbarColorDark
540+
).callMethod("intValue")
541+
val mContrastTint = argbEvaluator.callMethod(
542+
"evaluate",
543+
mDarkIntensity,
544+
statusbarColorLight,
545+
statusbarColorDark
546+
).callMethod("intValue")
547+
548+
darkIconDispatcherImplInstance.apply {
549+
setField("mIconTint", mIconTint)
550+
setField("mContrastTint", mContrastTint)
551+
callMethod("applyIconTint")
552+
}
553+
}
554+
555+
private fun updateBatteryColors() {
523556
if (!linkToCustomColor) return
524557

525558
val (statusbarColorLight, statusbarColorDark) = getStatusbarColors(mContext)
@@ -581,34 +614,6 @@ class StatusbarMisc(context: Context) : ModPack(context) {
581614
)
582615
}
583616

584-
private fun applyIconTint() {
585-
if (darkIconDispatcherImplInstance == null) return
586-
587-
val (statusbarColorLight, statusbarColorDark) = getStatusbarColors(mContext)
588-
589-
val mDarkIntensity = darkIconDispatcherImplInstance.getField("mDarkIntensity") as Float
590-
val argbEvaluator = ArgbEvaluator::class.java.callStaticMethod("getInstance")
591-
592-
val mIconTint = argbEvaluator.callMethod(
593-
"evaluate",
594-
mDarkIntensity,
595-
statusbarColorLight,
596-
statusbarColorDark
597-
).callMethod("intValue")
598-
val mContrastTint = argbEvaluator.callMethod(
599-
"evaluate",
600-
mDarkIntensity,
601-
statusbarColorLight,
602-
statusbarColorDark
603-
).callMethod("intValue")
604-
605-
darkIconDispatcherImplInstance.apply {
606-
setField("mIconTint", mIconTint)
607-
setField("mContrastTint", mContrastTint)
608-
callMethod("applyIconTint")
609-
}
610-
}
611-
612617
companion object {
613618

614619
private var mClockClickable = false

0 commit comments

Comments
 (0)