diff --git a/app/src/main/java/be/ugent/sel/studeez/common/composable/feed/Feed.kt b/app/src/main/java/be/ugent/sel/studeez/common/composable/feed/Feed.kt index 6c7c0c1..5dac1c0 100644 --- a/app/src/main/java/be/ugent/sel/studeez/common/composable/feed/Feed.kt +++ b/app/src/main/java/be/ugent/sel/studeez/common/composable/feed/Feed.kt @@ -16,34 +16,11 @@ import androidx.compose.ui.unit.sp import be.ugent.sel.studeez.common.composable.DateText import be.ugent.sel.studeez.data.local.models.FeedEntry import be.ugent.sel.studeez.data.local.models.timer_functional.HoursMinutesSeconds -import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.flowOf - -data class FeedActions( - val getFeedEntries: () -> Flow>>, - val continueTask: (String, String) -> Unit, -) - -fun getFeedActions( - viewmodel: FeedViewModel, - open: (String) -> Unit, -): FeedActions { - return FeedActions( - getFeedEntries = viewmodel::getFeedEntries, - continueTask = { subjectId, taskId -> - viewmodel.continueTask( - open, - subjectId, - taskId, - ) - }, - ) -} @Composable fun Feed( - feedActions: FeedActions, uiState: FeedUiState, + continueTask: (String, String) -> Unit, ) { when (uiState) { FeedUiState.Loading -> { @@ -58,7 +35,6 @@ fun Feed( } } is FeedUiState.Succes -> { -// val feedEntries = feedActions.getFeedEntries().collectAsState(initial = emptyMap()) val feedEntries = uiState.feedEntries LazyColumn { items(feedEntries.toList()) { (date, feedEntries) -> @@ -79,7 +55,7 @@ fun Feed( } feedEntries.forEach { feedEntry -> FeedEntry(feedEntry = feedEntry) { - feedActions.continueTask(feedEntry.subjectId, feedEntry.taskId) + continueTask(feedEntry.subjectId, feedEntry.taskId) } } Spacer(modifier = Modifier.height(20.dp)) @@ -89,11 +65,49 @@ fun Feed( } } +@Preview +@Composable +fun FeedLoadingPreview() { + Feed( + uiState = FeedUiState.Loading, + continueTask = { _, _ -> run {} }, + ) +} + @Preview @Composable fun FeedPreview() { Feed( - feedActions = FeedActions({ flowOf() }, { _, _ -> run {} }), - uiState = FeedUiState.Loading, + uiState = FeedUiState.Succes( + mapOf( + "08 May 2023" to listOf( + FeedEntry( + argb_color = 0xFFFFD200, + subJectName = "Test Subject", + taskName = "Test Task", + totalStudyTime = 600, + ), + FeedEntry( + argb_color = 0xFFFFD200, + subJectName = "Test Subject", + taskName = "Test Task", + totalStudyTime = 20, + ), + ), + "09 May 2023" to listOf( + FeedEntry( + argb_color = 0xFFFD1200, + subJectName = "Test Subject", + taskName = "Test Task", + ), + FeedEntry( + argb_color = 0xFFFFD200, + subJectName = "Test Subject", + taskName = "Test Task", + ), + ) + ) + ), + continueTask = { _, _ -> run {} }, ) } \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/common/composable/feed/FeedViewModel.kt b/app/src/main/java/be/ugent/sel/studeez/common/composable/feed/FeedViewModel.kt index d31d83a..443d0c9 100644 --- a/app/src/main/java/be/ugent/sel/studeez/common/composable/feed/FeedViewModel.kt +++ b/app/src/main/java/be/ugent/sel/studeez/common/composable/feed/FeedViewModel.kt @@ -21,8 +21,6 @@ class FeedViewModel @Inject constructor( logService: LogService ) : StudeezViewModel(logService) { - private val entries: Flow>> = feedDAO.getFeedEntries() - val uiState: StateFlow = feedDAO.getFeedEntries() .map { FeedUiState.Succes(it) } .stateIn( @@ -31,10 +29,6 @@ class FeedViewModel @Inject constructor( started = SharingStarted.Eagerly, ) - fun getFeedEntries(): Flow>> { - return entries - } - fun continueTask(open: (String) -> Unit, subjectId: String, taskId: String) { viewModelScope.launch { val task = taskDAO.getTask(subjectId, taskId) diff --git a/app/src/main/java/be/ugent/sel/studeez/screens/home/HomeScreen.kt b/app/src/main/java/be/ugent/sel/studeez/screens/home/HomeScreen.kt index 78d5ddb..dad3dd2 100644 --- a/app/src/main/java/be/ugent/sel/studeez/screens/home/HomeScreen.kt +++ b/app/src/main/java/be/ugent/sel/studeez/screens/home/HomeScreen.kt @@ -11,10 +11,12 @@ import androidx.compose.ui.tooling.preview.Preview import be.ugent.sel.studeez.R import be.ugent.sel.studeez.common.composable.PrimaryScreenTemplate import be.ugent.sel.studeez.common.composable.drawer.DrawerActions -import be.ugent.sel.studeez.common.composable.feed.* +import be.ugent.sel.studeez.common.composable.feed.Feed +import be.ugent.sel.studeez.common.composable.feed.FeedUiState +import be.ugent.sel.studeez.common.composable.feed.FeedViewModel import be.ugent.sel.studeez.common.composable.navbar.NavigationBarActions +import be.ugent.sel.studeez.data.local.models.FeedEntry import be.ugent.sel.studeez.resources -import kotlinx.coroutines.flow.flowOf @Composable fun HomeRoute( @@ -28,8 +30,8 @@ fun HomeRoute( drawerActions = drawerActions, open = open, navigationBarActions = navigationBarActions, - feedActions = getFeedActions(feedViewModel, open), feedUiState = feedUiState, + continueTask = { subjectId, taskId -> feedViewModel.continueTask(open, subjectId, taskId) }, ) } @@ -38,8 +40,8 @@ fun HomeScreen( open: (String) -> Unit, drawerActions: DrawerActions, navigationBarActions: NavigationBarActions, - feedActions: FeedActions, feedUiState: FeedUiState, + continueTask: (String, String) -> Unit, ) { PrimaryScreenTemplate( title = resources().getString(R.string.home), @@ -47,7 +49,7 @@ fun HomeScreen( navigationBarActions = navigationBarActions, // TODO barAction = { FriendsAction() } ) { - Feed(feedActions, feedUiState) + Feed(feedUiState, continueTask) } } @@ -68,7 +70,36 @@ fun HomeScreenPreview() { drawerActions = DrawerActions({}, {}, {}, {}, {}), navigationBarActions = NavigationBarActions({ false }, {}, {}, {}, {}, {}, {}, {}), open = {}, - feedActions = FeedActions({ flowOf() }, { _, _ -> run {} }), - feedUiState = FeedUiState.Loading, + feedUiState = FeedUiState.Succes( + mapOf( + "08 May 2023" to listOf( + FeedEntry( + argb_color = 0xFFABD200, + subJectName = "Test Subject", + taskName = "Test Task", + totalStudyTime = 600, + ), + FeedEntry( + argb_color = 0xFFFFD200, + subJectName = "Test Subject", + taskName = "Test Task", + totalStudyTime = 20, + ), + ), + "09 May 2023" to listOf( + FeedEntry( + argb_color = 0xFFFD1200, + subJectName = "Test Subject", + taskName = "Test Task", + ), + FeedEntry( + argb_color = 0xFFFF5C89, + subJectName = "Test Subject", + taskName = "Test Task", + ), + ) + ) + ), + continueTask = { _, _ -> run {} }, ) }