feat: swipe refresh activity/notifications
This commit is contained in:
parent
e00bbb2d8e
commit
91bcacc978
5 changed files with 84 additions and 39 deletions
|
@ -87,23 +87,20 @@ class FeedFragment : Fragment() {
|
|||
) {
|
||||
page++
|
||||
binding.feedRefresh.visibility = ViewGroup.VISIBLE
|
||||
activity.lifecycleScope.launch(Dispatchers.IO) {
|
||||
val newRes = Anilist.query.getFeed(userId, global, page)
|
||||
withContext(Dispatchers.Main) {
|
||||
newRes?.data?.page?.activities?.let { activities ->
|
||||
activityList += activities
|
||||
val filtered = activities.filterNot {
|
||||
it.recipient?.id != null && it.recipient.id != Anilist.userid
|
||||
}
|
||||
adapter.addAll(filtered.map { ActivityItem(it, ::onActivityClick,requireActivity()) })
|
||||
}
|
||||
binding.feedRefresh.visibility = ViewGroup.GONE
|
||||
}
|
||||
loadPage {
|
||||
binding.feedRefresh.visibility = ViewGroup.GONE
|
||||
}
|
||||
}
|
||||
}
|
||||
false
|
||||
}
|
||||
|
||||
binding.feedSwipeRefresh.setOnRefreshListener {
|
||||
page = 1
|
||||
adapter.clear()
|
||||
activityList = emptyList()
|
||||
loadPage()
|
||||
}
|
||||
}
|
||||
}
|
||||
loadedFirstTime = true
|
||||
|
@ -111,6 +108,23 @@ class FeedFragment : Fragment() {
|
|||
}
|
||||
}
|
||||
|
||||
private fun loadPage(onFinish: () -> Unit = {}) {
|
||||
activity.lifecycleScope.launch(Dispatchers.IO) {
|
||||
val newRes = Anilist.query.getFeed(userId, global, page)
|
||||
withContext(Dispatchers.Main) {
|
||||
newRes?.data?.page?.activities?.let { activities ->
|
||||
activityList += activities
|
||||
val filtered = activities.filterNot {
|
||||
it.recipient?.id != null && it.recipient.id != Anilist.userid
|
||||
}
|
||||
adapter.addAll(filtered.map { ActivityItem(it, ::onActivityClick,requireActivity()) })
|
||||
}
|
||||
binding.feedSwipeRefresh.isRefreshing = false
|
||||
onFinish()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun onActivityClick(id: Int, type: String) {
|
||||
when (type) {
|
||||
"USER" -> {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue