Skip to content

Commit

Permalink
Add pull refresh option
Browse files Browse the repository at this point in the history
Signed-off-by: Saul Henriquez <[email protected]>
  • Loading branch information
saulhdev committed Sep 5, 2023
1 parent 1b90817 commit fe64134
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 4 deletions.
46 changes: 43 additions & 3 deletions app/src/main/java/com/saulhdev/feeder/compose/pages/OverlayPage.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ package com.saulhdev.feeder.compose.pages
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
Expand All @@ -30,8 +31,12 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.material.ExperimentalMaterialApi
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Refresh
import androidx.compose.material.pullrefresh.PullRefreshIndicator
import androidx.compose.material.pullrefresh.pullRefresh
import androidx.compose.material.pullrefresh.rememberPullRefreshState
import androidx.compose.material3.Divider
import androidx.compose.material3.DropdownMenu
import androidx.compose.material3.DropdownMenuItem
Expand Down Expand Up @@ -82,6 +87,7 @@ import kotlinx.coroutines.plus
import org.kodein.di.compose.LocalDI
import java.time.LocalDateTime

@OptIn(ExperimentalMaterialApi::class)
@Composable
fun OverlayPage() {
val context = LocalContext.current
Expand Down Expand Up @@ -128,8 +134,29 @@ fun OverlayPage() {
}
}

Column(
modifier = Modifier.background(MaterialTheme.colorScheme.background)
var isRefreshing by remember { mutableStateOf(false) }

val pullRefreshState = rememberPullRefreshState(
refreshing = isRefreshing,
onRefresh = {
isRefreshing = true
refreshFeed(repository, articles, scope) {
feedList.clear()
PluginConnector.getFeedAsItLoads(0, { feed ->
feedList.addAll(feed)
}, {

feedList.sortByDescending { it.time }
isRefreshing = false
})
}
}
)
Box(
modifier = Modifier
.background(MaterialTheme.colorScheme.background)
.pullRefresh(pullRefreshState)

) {
var showMenu by remember { mutableStateOf(false) }
LazyColumn(
Expand Down Expand Up @@ -278,6 +305,19 @@ fun OverlayPage() {
}
}
}
if (isRefreshing) {
item {
Row(
horizontalArrangement = Arrangement.Center,
) {

PullRefreshIndicator(
refreshing = isRefreshing,
state = pullRefreshState
)
}
}
}

items(feedList.size) { index ->
val item = feedList[index]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,6 @@ class ArticleRepository(context: Context) {
}
}


/* Articles */
private val feedArticleDao = NeoFeedDb.getInstance(context).feedArticleDao()

Expand Down

0 comments on commit fe64134

Please sign in to comment.