mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-29 00:10:32 +05:30
feat(ui): save scroll position in trends
This commit is contained in:
parent
e8b911c6fa
commit
c8e921de16
@ -7,6 +7,8 @@ import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.core.view.isGone
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.lifecycle.DefaultLifecycleObserver
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.databinding.FragmentTrendsBinding
|
||||
import com.github.libretube.ui.activities.SettingsActivity
|
||||
@ -39,6 +41,7 @@ class TrendsFragment : DynamicLayoutManagerFragment() {
|
||||
viewModel.trendingVideos.observe(viewLifecycleOwner) { videos ->
|
||||
if (videos == null) return@observe
|
||||
|
||||
binding.recview.layoutManager?.onRestoreInstanceState(viewModel.recyclerViewState)
|
||||
binding.recview.adapter = VideosAdapter(videos.toMutableList())
|
||||
binding.homeRefresh.isRefreshing = false
|
||||
binding.progressBar.isGone = true
|
||||
@ -58,6 +61,12 @@ class TrendsFragment : DynamicLayoutManagerFragment() {
|
||||
viewModel.fetchTrending(requireContext())
|
||||
}
|
||||
|
||||
viewLifecycleOwner.lifecycle.addObserver(object : DefaultLifecycleObserver {
|
||||
override fun onDestroy(owner: LifecycleOwner) {
|
||||
viewModel.recyclerViewState = _binding?.recview?.layoutManager?.onSaveInstanceState()
|
||||
}
|
||||
})
|
||||
|
||||
viewModel.fetchTrending(requireContext())
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.github.libretube.ui.models
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Parcelable
|
||||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
@ -20,6 +21,7 @@ import java.io.IOException
|
||||
|
||||
class TrendsViewModel: ViewModel() {
|
||||
val trendingVideos = MutableLiveData<List<StreamItem>>()
|
||||
var recyclerViewState: Parcelable? = null
|
||||
|
||||
fun fetchTrending(context: Context) {
|
||||
viewModelScope.launch {
|
||||
|
Loading…
x
Reference in New Issue
Block a user