Skip to content

Commit db2c79f

Browse files
committed
DiningFragment favDinHall fix
1 parent b067d26 commit db2c79f

2 files changed

Lines changed: 9 additions & 8 deletions

File tree

PennMobile/src/main/java/com/pennapps/labs/pennmobile/dining/fragments/DiningFragment.kt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ import dagger.hilt.android.AndroidEntryPoint
7373
import rx.schedulers.Schedulers
7474
import java.time.LocalDateTime
7575
import java.time.format.DateTimeFormatter
76+
import kotlin.collections.listOf
7677
import kotlin.text.get
7778

7879
@AndroidEntryPoint
@@ -108,7 +109,7 @@ class DiningFragment : Fragment() {
108109
val pullToRefreshState = rememberPullToRefreshState()
109110
val isDataRefreshing by viewModel.isRefreshing.collectAsState()
110111
val allDiningHalls by viewModel.allDiningHalls.collectAsState()
111-
val favouriteDiningHalls by viewModel.favouriteDiningHalls.collectAsState(listOf())
112+
val favouriteDiningHalls = viewModel.favouriteDiningHalls.collectAsState(initial = listOf<DiningHall>())
112113

113114
var isOnline by remember { mutableStateOf<Boolean?>(null) }
114115
var isSortMenuExpanded by remember { mutableStateOf(false) }
@@ -279,7 +280,7 @@ class DiningFragment : Fragment() {
279280

280281
item {
281282
FavouriteDiningHalls(
282-
diningHalls = favouriteDiningHalls,
283+
diningHalls = favouriteDiningHalls.value as List<DiningHall>,
283284
toggleFavourite = { viewModel.toggleFavourite(it) },
284285
openDiningHallMenu = { hall -> navigateToMenuFragment(hall) },
285286
modifier =
@@ -307,7 +308,7 @@ class DiningFragment : Fragment() {
307308
items(allDiningHalls) { diningHall ->
308309
DiningHallCard(
309310
diningHall = diningHall,
310-
isFavourite = favouriteDiningHalls.contains(diningHall),
311+
isFavourite = (favouriteDiningHalls.value as List<DiningHall>).any { it.id == diningHall.id },
311312
toggleFavourite = { viewModel.toggleFavourite(diningHall) },
312313
openDiningHallMenu = { hall -> navigateToMenuFragment(hall) },
313314
)

PennMobile/src/main/java/com/pennapps/labs/pennmobile/dining/fragments/DiningViewModel.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,11 @@ class DiningViewModel
8181
val favouriteDiningHallIds: StateFlow<List<Int>> = _favouriteDiningHalls
8282
val favouriteDiningHalls =
8383
_allDiningHalls.combine(_favouriteDiningHalls) { allDiningHalls, favouriteDiningHalls ->
84-
sortDiningHalls(
85-
allDiningHalls.filter { diningHall ->
86-
favouriteDiningHalls.contains(diningHall.id)
87-
},
88-
)
84+
allDiningHalls
85+
.filter { diningHall -> favouriteDiningHalls.contains(diningHall.id) }
86+
.sortedWith { a, b ->
87+
DiningHallUtils.compareDiningHallsForSort(sortOrder.value, a, b)
88+
}
8989
}
9090

9191
init {

0 commit comments

Comments
 (0)