Release view bindings in SearchResultFragment.

This commit is contained in:
Isira Seneviratne 2023-02-11 14:53:05 +05:30
parent cec4f4da66
commit a0408840c4

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,14 +76,20 @@ 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() {
lifecycleScope.launchWhenCreated {
view?.let { context?.hideKeyboard(it) }