Add detailed error logging to NICViewBinder
Flag: ACONFIG com.android.systemui.notifications_icon_container_refactor DEVELOPMENT
Bug: 309555139
Bug: 278765923
Test: atest SystemUITests
Change-Id: I07c0e6cbfdc5fc82ff7536c05ae02e1bbeb2ca93
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 db0fa99..65b798a 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
@@ -251,7 +251,7 @@
val replacingIcons =
iconsDiff.groupReplacements.mapValuesNotNullTo(ArrayMap()) { (_, v) ->
- viewStore.iconView(v.notifKey)?.statusBarIcon
+ viewStore.iconView(v.notifKey).statusBarIcon
}
view.setReplacingIcons(replacingIcons)
@@ -264,7 +264,7 @@
.mapNotNull { key -> childrenByNotifKey[key] }
.forEach { child -> view.removeView(child) }
- val toAdd = iconsDiff.added.mapNotNull { viewStore.iconView(it.notifKey) }
+ val toAdd = iconsDiff.added.map { viewStore.iconView(it.notifKey) }
for ((i, sbiv) in toAdd.withIndex()) {
// The view might still be transiently added if it was just removed
// and added again
@@ -277,7 +277,7 @@
val childCount = view.childCount
for (i in 0 until childCount) {
val actual = view.getChildAt(i)
- val expected = viewStore.iconView(iconsData.visibleKeys[i].notifKey)!!
+ val expected = viewStore.iconView(iconsData.visibleKeys[i].notifKey)
if (actual === expected) {
continue
}
@@ -314,7 +314,7 @@
/** External storage for [StatusBarIconView] instances. */
fun interface IconViewStore {
- fun iconView(key: String): StatusBarIconView?
+ fun iconView(key: String): StatusBarIconView
}
@ColorInt private val DEFAULT_AOD_ICON_COLOR = Color.WHITE
@@ -326,8 +326,10 @@
constructor(
private val notifCollection: NotifCollection,
) : IconViewStore {
- override fun iconView(key: String): StatusBarIconView? =
- notifCollection.getEntry(key)?.icons?.shelfIcon
+ override fun iconView(key: String): StatusBarIconView {
+ val entry = notifCollection.getEntry(key) ?: error("No entry found for key: $key")
+ return entry.icons.shelfIcon ?: error("No shelf IconView found for key: $key")
+ }
}
/** [IconViewStore] for the always-on display. */
@@ -336,8 +338,10 @@
constructor(
private val notifCollection: NotifCollection,
) : IconViewStore {
- override fun iconView(key: String): StatusBarIconView? =
- notifCollection.getEntry(key)?.icons?.aodIcon
+ override fun iconView(key: String): StatusBarIconView {
+ val entry = notifCollection.getEntry(key) ?: error("No entry found for key: $key")
+ return entry.icons.aodIcon ?: error("No AOD IconView found for key: $key")
+ }
}
/** [IconViewStore] for the status bar. */
@@ -346,8 +350,10 @@
constructor(
private val notifCollection: NotifCollection,
) : IconViewStore {
- override fun iconView(key: String): StatusBarIconView? =
- notifCollection.getEntry(key)?.icons?.statusBarIcon
+ override fun iconView(key: String): StatusBarIconView {
+ val entry = notifCollection.getEntry(key) ?: error("No entry found for key: $key")
+ return entry.icons.statusBarIcon ?: error("No status bar IconView found for key: $key")
+ }
}
private val View.viewBounds: Rect