Insert room shortcuts in order

This prevents shortcuts from momentarily being shown out of order while
the shortcut list is in the process of being updated.
This commit is contained in:
David Teresi 2021-08-25 14:58:14 -04:00
parent 842ccb12b2
commit 2004d357d5
2 changed files with 5 additions and 4 deletions

View file

@ -58,7 +58,7 @@ class ShortcutCreator @Inject constructor(
}
@WorkerThread
fun create(roomSummary: RoomSummary): ShortcutInfoCompat {
fun create(roomSummary: RoomSummary, rank: Int = 1): ShortcutInfoCompat {
val intent = RoomDetailActivity.shortcutIntent(context, roomSummary.roomId)
val bitmap = try {
avatarRenderer.shortcutDrawable(GlideApp.with(context), roomSummary.toMatrixItem(), iconSize)
@ -70,6 +70,7 @@ class ShortcutCreator @Inject constructor(
.setIcon(bitmap?.toProfileImageIcon())
.setIntent(intent)
.setLongLived(true)
.setRank(rank)
// Make it show up in the direct share menu
.setCategories(setOf(

View file

@ -58,9 +58,9 @@ class ShortcutsHandler @Inject constructor(
.filter { !roomIds.contains(it) }
ShortcutManagerCompat.removeLongLivedShortcuts(context, deadShortcutIds)
val shortcuts = rooms
.asReversed()
.map { shortcutCreator.create(it) }
val shortcuts = rooms.mapIndexed { index, room ->
shortcutCreator.create(room, index)
}
shortcuts.forEach { shortcut ->
ShortcutManagerCompat.pushDynamicShortcut(context, shortcut)