Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/NotificationIconContainerViewBinder.kt +13 −8 Original line number Diff line number Diff line Loading @@ -142,7 +142,7 @@ object NotificationIconContainerViewBinder { /** Binds to [NotificationIconContainer.setAnimationsEnabled] */ private suspend fun Flow<Boolean>.bindAnimationsEnabled(view: NotificationIconContainer) { collect(view::setAnimationsEnabled) collectTracingEach("NIC#bindAnimationsEnabled", view::setAnimationsEnabled) } private suspend fun NotificationIconContainerStatusBarViewModel.bindIsolatedIcon( Loading @@ -151,12 +151,12 @@ object NotificationIconContainerViewBinder { ) { coroutineScope { launch { isolatedIconLocation.collect { location -> isolatedIconLocation.collectTracingEach("NIC#isolatedIconLocation") { location -> view.setIsolatedIconLocation(location, true) } } launch { isolatedIcon.collect { iconInfo -> isolatedIcon.collectTracingEach("NIC#showIconIsolated") { iconInfo -> val iconView = iconInfo.value?.let { viewStore.iconView(it.notifKey) } if (iconInfo.isAnimating) { view.showIconIsolatedAnimated(iconView, iconInfo::stopAnimating) Loading Loading @@ -214,7 +214,7 @@ object NotificationIconContainerViewBinder { val failedBindings = mutableSetOf<String>() val boundViewsByNotifKey = ArrayMap<String, Pair<StatusBarIconView, Job>>() var prevIcons = NotificationIconsViewData() collectTracingEach("NotifIconContainer#bindIcons") { iconsData: NotificationIconsViewData -> collectTracingEach("NIC#bindIcons") { iconsData: NotificationIconsViewData -> val iconsDiff = NotificationIconsViewData.computeDifference(iconsData, prevIcons) prevIcons = iconsData Loading Loading @@ -265,7 +265,11 @@ object NotificationIconContainerViewBinder { Pair( sbiv, launch { launch { layoutParams.collect { sbiv.layoutParams = it } } launch { layoutParams.collectTracingEach("SBIV#bindLayoutParams") { sbiv.layoutParams = it } } bindIcon(notifKey, sbiv) }, ) Loading Loading @@ -369,6 +373,7 @@ private val View.viewBounds: Rect ) } private suspend fun <T> Flow<T>.collectTracingEach(tag: String, collector: (T) -> Unit) { collect { traceSection(tag) { collector(it) } } } private suspend inline fun <T> Flow<T>.collectTracingEach( tag: String, crossinline collector: (T) -> Unit, ) = collect { traceSection(tag) { collector(it) } } packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/StatusBarIconViewBinder.kt +10 −4 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui.statusbar.notification.icon.ui.viewbinder import android.graphics.Rect import android.view.View import com.android.app.tracing.traceSection import com.android.internal.util.ContrastColorUtil import com.android.systemui.res.R import com.android.systemui.statusbar.StatusBarIconView Loading @@ -33,18 +34,18 @@ object StatusBarIconViewBinder { // view-model (which, at the time of this writing, does not yet exist). suspend fun bindColor(view: StatusBarIconView, color: Flow<Int>) { color.collect { color -> color.collectTracingEach("SBIV#bindColor") { color -> view.staticDrawableColor = color view.setDecorColor(color) } } suspend fun bindTintAlpha(view: StatusBarIconView, tintAlpha: Flow<Float>) { tintAlpha.collect { amt -> view.setTintAlpha(amt) } tintAlpha.collectTracingEach("SBIV#bindTintAlpha") { amt -> view.setTintAlpha(amt) } } suspend fun bindAnimationsEnabled(view: StatusBarIconView, allowAnimation: Flow<Boolean>) { allowAnimation.collect(view::setAllowAnimation) allowAnimation.collectTracingEach("SBIV#bindAnimationsEnabled", view::setAllowAnimation) } suspend fun bindIconColors( Loading @@ -52,7 +53,7 @@ object StatusBarIconViewBinder { iconColors: Flow<NotificationIconColors>, contrastColorUtil: ContrastColorUtil, ) { iconColors.collect { colors -> iconColors.collectTracingEach("SBIV#bindIconColors") { colors -> val isPreL = java.lang.Boolean.TRUE == view.getTag(R.id.icon_is_pre_L) val isColorized = !isPreL || NotificationUtils.isGrayscale(view, contrastColorUtil) view.staticDrawableColor = Loading @@ -73,3 +74,8 @@ private val View.viewBounds: Rect /* bottom = */ top + height, ) } private suspend inline fun <T> Flow<T>.collectTracingEach( tag: String, crossinline collector: (T) -> Unit, ) = collect { traceSection(tag) { collector(it) } } Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/NotificationIconContainerViewBinder.kt +13 −8 Original line number Diff line number Diff line Loading @@ -142,7 +142,7 @@ object NotificationIconContainerViewBinder { /** Binds to [NotificationIconContainer.setAnimationsEnabled] */ private suspend fun Flow<Boolean>.bindAnimationsEnabled(view: NotificationIconContainer) { collect(view::setAnimationsEnabled) collectTracingEach("NIC#bindAnimationsEnabled", view::setAnimationsEnabled) } private suspend fun NotificationIconContainerStatusBarViewModel.bindIsolatedIcon( Loading @@ -151,12 +151,12 @@ object NotificationIconContainerViewBinder { ) { coroutineScope { launch { isolatedIconLocation.collect { location -> isolatedIconLocation.collectTracingEach("NIC#isolatedIconLocation") { location -> view.setIsolatedIconLocation(location, true) } } launch { isolatedIcon.collect { iconInfo -> isolatedIcon.collectTracingEach("NIC#showIconIsolated") { iconInfo -> val iconView = iconInfo.value?.let { viewStore.iconView(it.notifKey) } if (iconInfo.isAnimating) { view.showIconIsolatedAnimated(iconView, iconInfo::stopAnimating) Loading Loading @@ -214,7 +214,7 @@ object NotificationIconContainerViewBinder { val failedBindings = mutableSetOf<String>() val boundViewsByNotifKey = ArrayMap<String, Pair<StatusBarIconView, Job>>() var prevIcons = NotificationIconsViewData() collectTracingEach("NotifIconContainer#bindIcons") { iconsData: NotificationIconsViewData -> collectTracingEach("NIC#bindIcons") { iconsData: NotificationIconsViewData -> val iconsDiff = NotificationIconsViewData.computeDifference(iconsData, prevIcons) prevIcons = iconsData Loading Loading @@ -265,7 +265,11 @@ object NotificationIconContainerViewBinder { Pair( sbiv, launch { launch { layoutParams.collect { sbiv.layoutParams = it } } launch { layoutParams.collectTracingEach("SBIV#bindLayoutParams") { sbiv.layoutParams = it } } bindIcon(notifKey, sbiv) }, ) Loading Loading @@ -369,6 +373,7 @@ private val View.viewBounds: Rect ) } private suspend fun <T> Flow<T>.collectTracingEach(tag: String, collector: (T) -> Unit) { collect { traceSection(tag) { collector(it) } } } private suspend inline fun <T> Flow<T>.collectTracingEach( tag: String, crossinline collector: (T) -> Unit, ) = collect { traceSection(tag) { collector(it) } }
packages/SystemUI/src/com/android/systemui/statusbar/notification/icon/ui/viewbinder/StatusBarIconViewBinder.kt +10 −4 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui.statusbar.notification.icon.ui.viewbinder import android.graphics.Rect import android.view.View import com.android.app.tracing.traceSection import com.android.internal.util.ContrastColorUtil import com.android.systemui.res.R import com.android.systemui.statusbar.StatusBarIconView Loading @@ -33,18 +34,18 @@ object StatusBarIconViewBinder { // view-model (which, at the time of this writing, does not yet exist). suspend fun bindColor(view: StatusBarIconView, color: Flow<Int>) { color.collect { color -> color.collectTracingEach("SBIV#bindColor") { color -> view.staticDrawableColor = color view.setDecorColor(color) } } suspend fun bindTintAlpha(view: StatusBarIconView, tintAlpha: Flow<Float>) { tintAlpha.collect { amt -> view.setTintAlpha(amt) } tintAlpha.collectTracingEach("SBIV#bindTintAlpha") { amt -> view.setTintAlpha(amt) } } suspend fun bindAnimationsEnabled(view: StatusBarIconView, allowAnimation: Flow<Boolean>) { allowAnimation.collect(view::setAllowAnimation) allowAnimation.collectTracingEach("SBIV#bindAnimationsEnabled", view::setAllowAnimation) } suspend fun bindIconColors( Loading @@ -52,7 +53,7 @@ object StatusBarIconViewBinder { iconColors: Flow<NotificationIconColors>, contrastColorUtil: ContrastColorUtil, ) { iconColors.collect { colors -> iconColors.collectTracingEach("SBIV#bindIconColors") { colors -> val isPreL = java.lang.Boolean.TRUE == view.getTag(R.id.icon_is_pre_L) val isColorized = !isPreL || NotificationUtils.isGrayscale(view, contrastColorUtil) view.staticDrawableColor = Loading @@ -73,3 +74,8 @@ private val View.viewBounds: Rect /* bottom = */ top + height, ) } private suspend inline fun <T> Flow<T>.collectTracingEach( tag: String, crossinline collector: (T) -> Unit, ) = collect { traceSection(tag) { collector(it) } }