mirror of
https://github.com/KokaKiwi/BarInsta
synced 2024-12-23 05:16:58 +00:00
added scroll position save and restore in favorites tab
This commit is contained in:
parent
01c944486d
commit
caa71faab1
@ -2,6 +2,7 @@ package awais.instagrabber.fragments
|
||||
|
||||
import android.content.DialogInterface
|
||||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
@ -23,6 +24,8 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
class FavoritesFragment : Fragment() {
|
||||
private var shouldRefresh = true
|
||||
|
||||
private var scrollPosition = 0
|
||||
|
||||
private lateinit var binding: FragmentFavoritesBinding
|
||||
private lateinit var root: RecyclerView
|
||||
private lateinit var adapter: FavoritesAdapter
|
||||
@ -46,11 +49,19 @@ class FavoritesFragment : Fragment() {
|
||||
shouldRefresh = false
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
scrollPosition = (root.getLayoutManager() as LinearLayoutManager).findLastVisibleItemPosition()
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if (!this::adapter.isInitialized) return
|
||||
// refresh list every time in onViewStateRestored since it is cheaper than implementing pull down to refresh
|
||||
favoritesViewModel.list.observe(viewLifecycleOwner, { list: List<Favorite?>? -> adapter.submitList(list) })
|
||||
favoritesViewModel.list.observe(viewLifecycleOwner, {
|
||||
list: List<Favorite?>? -> adapter.submitList(list, Runnable {
|
||||
root.scrollToPosition(scrollPosition)})
|
||||
})
|
||||
}
|
||||
|
||||
private fun init() {
|
||||
|
Loading…
Reference in New Issue
Block a user