Wire in sorting preference awareness

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya 2021-03-23 17:42:14 +05:30
parent 1408bee041
commit 3be1d2ad87
No known key found for this signature in database
GPG key ID: 366D7BBAD1031E80
2 changed files with 8 additions and 0 deletions

View file

@ -84,6 +84,7 @@ fun LobstersApp() {
posts = savedPosts, posts = savedPosts,
saveAction = viewModel::toggleSave, saveAction = viewModel::toggleSave,
modifier = Modifier.padding(bottom = innerPadding.calculateBottomPadding()), modifier = Modifier.padding(bottom = innerPadding.calculateBottomPadding()),
sortReversed = viewModel.getSortOrder(),
) )
} }
} }

View file

@ -10,6 +10,8 @@ import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.lazy.rememberLazyListState
import androidx.compose.material.Text import androidx.compose.material.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color 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.ui.urllauncher.LocalUrlLauncher
import dev.msfjarvis.lobsters.util.IconResource import dev.msfjarvis.lobsters.util.IconResource
import dev.msfjarvis.lobsters.util.asZonedDateTime import dev.msfjarvis.lobsters.util.asZonedDateTime
import kotlinx.coroutines.flow.Flow
@OptIn(ExperimentalFoundationApi::class) @OptIn(ExperimentalFoundationApi::class)
@Composable @Composable
fun SavedPosts( fun SavedPosts(
posts: List<SavedPost>, posts: List<SavedPost>,
sortReversed: Flow<Boolean>,
modifier: Modifier = Modifier, modifier: Modifier = Modifier,
saveAction: (SavedPost) -> Unit, saveAction: (SavedPost) -> Unit,
) { ) {
val listState = rememberLazyListState() val listState = rememberLazyListState()
val urlLauncher = LocalUrlLauncher.current val urlLauncher = LocalUrlLauncher.current
val sortOrder by sortReversed.collectAsState(false)
if (posts.isEmpty()) { if (posts.isEmpty()) {
Column( Column(
@ -55,6 +60,8 @@ fun SavedPosts(
stickyHeader { stickyHeader {
MonthHeader(month = month) MonthHeader(month = month)
} }
@Suppress("NAME_SHADOWING")
val posts = if (sortOrder) posts.reversed() else posts
items(posts) { item -> items(posts) { item ->
LobstersItem( LobstersItem(
post = item, post = item,