summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Steve Elliott <steell@google.com> 2024-01-19 20:33:50 -0500
committer Steve Elliott <steell@google.com> 2024-01-20 01:37:10 +0000
commite679d1ad3fa312b14458fc19e58ccfc329f29735 (patch)
tree0355ccb992cd30a29b2848587b6cdeb6c4994046
parent57e6b7f44099665b63857f8a4abb56d4b90d92a9 (diff)
Apply SBIV LayoutParams when added to NIC
Flag: ACONFIG com.android.systemui.notifications_icon_container_refactor TEAMFOOD Bug: 318858608 Test: v2/sysui/suite/test-mapping-silver-e2e Change-Id: I364a0c9ddede69822329e4201f025e72ce51851e
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/NotificationIconContainerViewBinder.kt10
1 files changed, 6 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/NotificationIconContainerViewBinder.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/NotificationIconContainerViewBinder.kt
index 0bc8e682c891..f375ebce2de3 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/NotificationIconContainerViewBinder.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/NotificationIconContainerViewBinder.kt
@@ -187,7 +187,7 @@ object NotificationIconContainerViewBinder {
configuration.getDimensionPixelSize(RInternal.dimen.status_bar_icon_size_sp)
val iconHorizontalPaddingFlow: Flow<Int> =
configuration.getDimensionPixelSize(R.dimen.status_bar_icon_horizontal_margin)
- val layoutParams: Flow<FrameLayout.LayoutParams> =
+ val layoutParams: StateFlow<FrameLayout.LayoutParams> =
combine(iconSizeFlow, iconHorizontalPaddingFlow, systemBarUtilsState.statusBarHeight) {
iconSize,
iconHPadding,
@@ -206,7 +206,7 @@ object NotificationIconContainerViewBinder {
private suspend fun Flow<NotificationIconsViewData>.bindIcons(
view: NotificationIconContainer,
- layoutParams: Flow<FrameLayout.LayoutParams>,
+ layoutParams: StateFlow<FrameLayout.LayoutParams>,
notifyBindingFailures: (Collection<String>) -> Unit,
viewStore: IconViewStore,
bindIcon: suspend (iconKey: String, view: StatusBarIconView) -> Unit,
@@ -259,7 +259,7 @@ object NotificationIconContainerViewBinder {
// added again.
removeTransientView(sbiv)
}
- view.addView(sbiv)
+ view.addView(sbiv, layoutParams.value)
boundViewsByNotifKey.remove(notifKey)?.second?.cancel()
boundViewsByNotifKey[notifKey] =
Pair(
@@ -267,7 +267,9 @@ object NotificationIconContainerViewBinder {
launch {
launch {
layoutParams.collectTracingEach("SBIV#bindLayoutParams") {
- sbiv.layoutParams = it
+ if (it != sbiv.layoutParams) {
+ sbiv.layoutParams = it
+ }
}
}
bindIcon(notifKey, sbiv)