From 3be1d2ad87db2ad2dd8c69c1e1ad81b317c03225 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Tue, 23 Mar 2021 17:42:14 +0530 Subject: [PATCH] Wire in sorting preference awareness Signed-off-by: Harsh Shandilya --- .../java/dev/msfjarvis/lobsters/ui/main/LobstersApp.kt | 1 + .../java/dev/msfjarvis/lobsters/ui/posts/SavedPosts.kt | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/app/src/main/java/dev/msfjarvis/lobsters/ui/main/LobstersApp.kt b/app/src/main/java/dev/msfjarvis/lobsters/ui/main/LobstersApp.kt index 475c5f22..ff243edb 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/ui/main/LobstersApp.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/ui/main/LobstersApp.kt @@ -84,6 +84,7 @@ fun LobstersApp() { posts = savedPosts, saveAction = viewModel::toggleSave, modifier = Modifier.padding(bottom = innerPadding.calculateBottomPadding()), + sortReversed = viewModel.getSortOrder(), ) } } diff --git a/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/SavedPosts.kt b/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/SavedPosts.kt index 60b3e1d0..60570a82 100644 --- a/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/SavedPosts.kt +++ b/app/src/main/java/dev/msfjarvis/lobsters/ui/posts/SavedPosts.kt @@ -10,6 +10,8 @@ import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.material.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -20,16 +22,19 @@ import dev.msfjarvis.lobsters.data.local.SavedPost import dev.msfjarvis.lobsters.ui.urllauncher.LocalUrlLauncher import dev.msfjarvis.lobsters.util.IconResource import dev.msfjarvis.lobsters.util.asZonedDateTime +import kotlinx.coroutines.flow.Flow @OptIn(ExperimentalFoundationApi::class) @Composable fun SavedPosts( posts: List, + sortReversed: Flow, modifier: Modifier = Modifier, saveAction: (SavedPost) -> Unit, ) { val listState = rememberLazyListState() val urlLauncher = LocalUrlLauncher.current + val sortOrder by sortReversed.collectAsState(false) if (posts.isEmpty()) { Column( @@ -55,6 +60,8 @@ fun SavedPosts( stickyHeader { MonthHeader(month = month) } + @Suppress("NAME_SHADOWING") + val posts = if (sortOrder) posts.reversed() else posts items(posts) { item -> LobstersItem( post = item,