Merge "Fix missing space between umo and shelf" into tm-dev
This commit is contained in:
@@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user