Merge pull request #3031 from Isira-Seneviratne/Search_view_binding

Release view bindings in search fragments.
This commit is contained in:
Bnyro 2023-02-12 12:19:01 +01:00 committed by GitHub
commit 3663583ff9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 9 deletions

View File

@ -20,7 +20,9 @@ import com.github.libretube.ui.base.BaseFragment
import com.github.libretube.ui.models.SearchViewModel
class SearchFragment : BaseFragment() {
private lateinit var binding: FragmentSearchBinding
private var _binding: FragmentSearchBinding? = null
private val binding get() = _binding!!
private val viewModel: SearchViewModel by activityViewModels()
private var query: String? = null
@ -35,7 +37,7 @@ class SearchFragment : BaseFragment() {
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = FragmentSearchBinding.inflate(layoutInflater, container, false)
_binding = FragmentSearchBinding.inflate(layoutInflater, container, false)
return binding.root
}

View File

@ -25,7 +25,8 @@ import kotlinx.coroutines.withContext
import retrofit2.HttpException
class SearchResultFragment : BaseFragment() {
private lateinit var binding: FragmentSearchResultBinding
private var _binding: FragmentSearchResultBinding? = null
private val binding get() = _binding!!
private var nextPage: String? = null
private var query: String = ""
@ -43,7 +44,7 @@ class SearchResultFragment : BaseFragment() {
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
binding = FragmentSearchResultBinding.inflate(layoutInflater, container, false)
_binding = FragmentSearchResultBinding.inflate(layoutInflater, container, false)
return binding.root
}
@ -75,12 +76,18 @@ class SearchResultFragment : BaseFragment() {
fetchSearch()
binding.searchRecycler.viewTreeObserver
.addOnScrollChangedListener {
if (!binding.searchRecycler.canScrollVertically(1)) {
if (nextPage != null) fetchNextSearchItems()
}
binding.searchRecycler.viewTreeObserver.addOnScrollChangedListener {
if (_binding?.searchRecycler?.canScrollVertically(1) == false &&
nextPage != null
) {
fetchNextSearchItems()
}
}
}
override fun onDestroyView() {
super.onDestroyView()
_binding = null
}
private fun fetchSearch() {