Merge "Fix missing space between umo and shelf" into tm-dev

This commit is contained in:
Lyn Han
2022-04-05 22:29:31 +00:00
committed by Android (Google) Code Review
2 changed files with 30 additions and 4 deletions

View File

@@ -139,6 +139,8 @@ constructor(
height += spaceNeeded height += spaceNeeded
count += 1 count += 1
} else { } else {
val gapBeforeFirstViewInShelf = current.calculateGapHeight(stack, previous, count)
height += gapBeforeFirstViewInShelf
height += shelfHeight height += shelfHeight
log { "returning height with shelf -> $height" } log { "returning height with shelf -> $height" }
return height return height
@@ -178,7 +180,9 @@ constructor(
if (visibleIndex != 0) { if (visibleIndex != 0) {
size += notificationPadding size += notificationPadding
} }
size += calculateGapHeight(stack, previousView, visibleIndex) val gapHeight = calculateGapHeight(stack, previousView, visibleIndex)
log { "\ti=$visibleIndex gapHeight=$gapHeight"}
size += gapHeight
return size return size
} }

View File

@@ -22,8 +22,6 @@ import android.view.View.VISIBLE
import androidx.test.filters.SmallTest import androidx.test.filters.SmallTest
import com.android.systemui.R import com.android.systemui.R
import com.android.systemui.SysuiTestCase import com.android.systemui.SysuiTestCase
import com.android.systemui.statusbar.StatusBarState.KEYGUARD
import com.android.systemui.statusbar.StatusBarState.SHADE
import com.android.systemui.statusbar.SysuiStatusBarStateController import com.android.systemui.statusbar.SysuiStatusBarStateController
import com.android.systemui.statusbar.notification.collection.NotificationEntry import com.android.systemui.statusbar.notification.collection.NotificationEntry
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
@@ -142,11 +140,13 @@ class NotificationStackSizeCalculatorTest : SysuiTestCase() {
} }
@Test @Test
fun computeHeight_returnsLessThanAvailableSpaceUsedToCalculateMaxNotifications() { fun computeHeight_returnsAtMostSpaceAvailable_withGapBeforeShelf() {
val rowHeight = ROW_HEIGHT val rowHeight = ROW_HEIGHT
val shelfHeight = SHELF_HEIGHT val shelfHeight = SHELF_HEIGHT
val totalSpaceForEachRow = GAP_HEIGHT + rowHeight + NOTIFICATION_PADDING val totalSpaceForEachRow = GAP_HEIGHT + rowHeight + NOTIFICATION_PADDING
val availableSpace = totalSpaceForEachRow * 2 val availableSpace = totalSpaceForEachRow * 2
// All rows in separate sections (default setup).
val rows = val rows =
listOf( listOf(
createMockRow(rowHeight), createMockRow(rowHeight),
@@ -156,6 +156,28 @@ class NotificationStackSizeCalculatorTest : SysuiTestCase() {
val maxNotifications = computeMaxKeyguardNotifications(rows, availableSpace, shelfHeight) val maxNotifications = computeMaxKeyguardNotifications(rows, availableSpace, shelfHeight)
assertThat(maxNotifications).isEqualTo(2) assertThat(maxNotifications).isEqualTo(2)
val height = sizeCalculator.computeHeight(stackLayout, maxNotifications, SHELF_HEIGHT)
assertThat(height).isAtMost(availableSpace + GAP_HEIGHT + SHELF_HEIGHT)
}
@Test
fun computeHeight_returnsAtMostSpaceAvailable_noGapBeforeShelf() {
val rowHeight = ROW_HEIGHT
val shelfHeight = SHELF_HEIGHT
val totalSpaceForEachRow = GAP_HEIGHT + rowHeight + NOTIFICATION_PADDING
val availableSpace = totalSpaceForEachRow * 1
// Both rows are in the same section.
whenever(stackLayout.calculateGapHeight(nullable(), nullable(), any()))
.thenReturn(0f)
val rows =
listOf(
createMockRow(rowHeight),
createMockRow(rowHeight))
val maxNotifications = computeMaxKeyguardNotifications(rows, availableSpace, shelfHeight)
assertThat(maxNotifications).isEqualTo(1)
val height = sizeCalculator.computeHeight(stackLayout, maxNotifications, SHELF_HEIGHT) val height = sizeCalculator.computeHeight(stackLayout, maxNotifications, SHELF_HEIGHT)
assertThat(height).isAtMost(availableSpace + SHELF_HEIGHT) assertThat(height).isAtMost(availableSpace + SHELF_HEIGHT)
} }