app: remove swipe refresh

This is causing crashes

Signed-off-by: Harsh Shandilya <me@msfjarvis.dev>
This commit is contained in:
Harsh Shandilya
2021-05-09 00:49:56 +05:30
parent 5a4efa33cf
commit b847feae22
4 changed files with 21 additions and 44 deletions
-1
View File
@@ -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)