app: remove swipe refresh
This is causing crashes Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
@@ -31,7 +31,6 @@ dependencies {
|
||||
implementation(libs.kotlin.coroutines.android)
|
||||
implementation(libs.thirdparty.accompanist.coil)
|
||||
implementation(libs.thirdparty.accompanist.flow)
|
||||
implementation(libs.thirdparty.accompanist.swiperefresh)
|
||||
implementation(libs.thirdparty.moshi.lib)
|
||||
implementation(libs.thirdparty.moshix.metadatareflect)
|
||||
implementation(libs.thirdparty.retrofit.moshiConverter)
|
||||
|
||||
@@ -96,7 +96,6 @@ fun LobstersApp() {
|
||||
modifier = Modifier.padding(bottom = innerPadding.calculateBottomPadding()),
|
||||
isPostSaved = viewModel::isPostSaved,
|
||||
saveAction = viewModel::toggleSave,
|
||||
refreshAction = viewModel::reloadHottestPosts,
|
||||
viewComments = { navController.navigate("comments/$it") },
|
||||
)
|
||||
}
|
||||
@@ -107,7 +106,6 @@ fun LobstersApp() {
|
||||
modifier = Modifier.padding(bottom = innerPadding.calculateBottomPadding()),
|
||||
isPostSaved = viewModel::isPostSaved,
|
||||
saveAction = viewModel::toggleSave,
|
||||
refreshAction = viewModel::reloadNewestPosts,
|
||||
viewComments = { navController.navigate("comments/$it") },
|
||||
)
|
||||
}
|
||||
|
||||
@@ -11,8 +11,6 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.paging.LoadState
|
||||
import androidx.paging.compose.LazyPagingItems
|
||||
import androidx.paging.compose.items
|
||||
import com.google.accompanist.swiperefresh.SwipeRefresh
|
||||
import com.google.accompanist.swiperefresh.rememberSwipeRefreshState
|
||||
import dev.msfjarvis.lobsters.data.local.SavedPost
|
||||
import dev.msfjarvis.lobsters.model.LobstersPost
|
||||
import dev.msfjarvis.lobsters.ui.urllauncher.LocalUrlLauncher
|
||||
@@ -26,43 +24,33 @@ fun NetworkPosts(
|
||||
modifier: Modifier = Modifier,
|
||||
isPostSaved: (String) -> Boolean,
|
||||
saveAction: (SavedPost) -> Unit,
|
||||
refreshAction: () -> Unit,
|
||||
viewComments: (String) -> Unit,
|
||||
) {
|
||||
val urlLauncher = LocalUrlLauncher.current
|
||||
val isRefreshing = posts.loadState.refresh == LoadState.Loading
|
||||
|
||||
SwipeRefresh(
|
||||
state = rememberSwipeRefreshState(isRefreshing),
|
||||
onRefresh = {
|
||||
if (!isRefreshing) {
|
||||
refreshAction()
|
||||
}
|
||||
},
|
||||
) {
|
||||
if (isRefreshing) {
|
||||
LazyColumn { items(15) { LoadingLobstersItem() } }
|
||||
} else {
|
||||
LazyColumn(
|
||||
state = listState,
|
||||
modifier = Modifier.then(modifier),
|
||||
) {
|
||||
items(posts) { item ->
|
||||
if (item != null) {
|
||||
@Suppress("NAME_SHADOWING") val item = item.toDbModel()
|
||||
var isSaved by remember(item.shortId) { mutableStateOf(isPostSaved(item.shortId)) }
|
||||
if (isRefreshing) {
|
||||
LazyColumn { items(15) { LoadingLobstersItem() } }
|
||||
} else {
|
||||
LazyColumn(
|
||||
state = listState,
|
||||
modifier = Modifier.then(modifier),
|
||||
) {
|
||||
items(posts) { item ->
|
||||
if (item != null) {
|
||||
@Suppress("NAME_SHADOWING") val item = item.toDbModel()
|
||||
var isSaved by remember(item.shortId) { mutableStateOf(isPostSaved(item.shortId)) }
|
||||
|
||||
LobstersItem(
|
||||
post = item,
|
||||
isSaved = isSaved,
|
||||
viewPost = { urlLauncher.launch(item.url.ifEmpty { item.commentsUrl }) },
|
||||
viewComments = viewComments,
|
||||
toggleSave = {
|
||||
isSaved = isSaved.not()
|
||||
saveAction.invoke(item)
|
||||
},
|
||||
)
|
||||
}
|
||||
LobstersItem(
|
||||
post = item,
|
||||
isSaved = isSaved,
|
||||
viewPost = { urlLauncher.launch(item.url.ifEmpty { item.commentsUrl }) },
|
||||
viewComments = viewComments,
|
||||
toggleSave = {
|
||||
isSaved = isSaved.not()
|
||||
saveAction.invoke(item)
|
||||
},
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,14 +68,6 @@ constructor(
|
||||
return lobstersRepository.fetchPostDetails(postId)
|
||||
}
|
||||
|
||||
fun reloadHottestPosts() {
|
||||
hottestPostsPagingSource?.invalidate()
|
||||
}
|
||||
|
||||
fun reloadNewestPosts() {
|
||||
newestPostsPagingSource?.invalidate()
|
||||
}
|
||||
|
||||
fun toggleSave(post: SavedPost) {
|
||||
viewModelScope.launch {
|
||||
val isSaved = lobstersRepository.isPostSaved(post.shortId)
|
||||
|
||||
Reference in New Issue
Block a user