Fix Crash When Explore Tab is Clicked (#5550)

This commit is contained in:
Shashank Kumar 2024-02-15 19:24:10 +05:30 committed by GitHub
parent 013bc7db39
commit 4c5d690a9e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -5,8 +5,7 @@ import android.content.res.Configuration
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.View.GONE import android.view.View.*
import android.view.View.VISIBLE
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
@ -19,6 +18,7 @@ import fr.free.nrw.commons.databinding.FragmentSearchPaginatedBinding
import fr.free.nrw.commons.di.CommonsDaggerSupportFragment import fr.free.nrw.commons.di.CommonsDaggerSupportFragment
import fr.free.nrw.commons.utils.ViewUtil import fr.free.nrw.commons.utils.ViewUtil
abstract class BasePagingFragment<T> : CommonsDaggerSupportFragment(), abstract class BasePagingFragment<T> : CommonsDaggerSupportFragment(),
PagingContract.View<T> { PagingContract.View<T> {
@ -29,20 +29,13 @@ abstract class BasePagingFragment<T> : CommonsDaggerSupportFragment(),
private val mergeAdapter by lazy { MergeAdapter(pagedListAdapter, loadingAdapter) } private val mergeAdapter by lazy { MergeAdapter(pagedListAdapter, loadingAdapter) }
private var searchResults: LiveData<PagedList<T>>? = null private var searchResults: LiveData<PagedList<T>>? = null
private var _binding: FragmentSearchPaginatedBinding? = null private var binding : FragmentSearchPaginatedBinding? = null
private val binding get() = _binding!!
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
_binding = FragmentSearchPaginatedBinding.inflate(inflater, container, false)
return binding.root
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
val binding = FragmentSearchPaginatedBinding.bind(view)
this.binding = binding
binding.paginatedSearchResultsList.apply { binding.paginatedSearchResultsList.apply {
layoutManager = GridLayoutManager(context, if (isPortrait) 1 else 2) layoutManager = GridLayoutManager(context, if (isPortrait) 1 else 2)
adapter = mergeAdapter adapter = mergeAdapter
@ -58,7 +51,7 @@ abstract class BasePagingFragment<T> : CommonsDaggerSupportFragment(),
*/ */
override fun onConfigurationChanged(newConfig: Configuration) { override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig) super.onConfigurationChanged(newConfig)
binding.paginatedSearchResultsList.apply { binding!!.paginatedSearchResultsList.apply {
layoutManager = GridLayoutManager(context, if (isPortrait) 1 else 2) layoutManager = GridLayoutManager(context, if (isPortrait) 1 else 2)
} }
} }
@ -82,15 +75,15 @@ abstract class BasePagingFragment<T> : CommonsDaggerSupportFragment(),
} }
override fun hideInitialLoadProgress() { override fun hideInitialLoadProgress() {
binding.paginatedSearchInitialLoadProgress.visibility = GONE binding!!.paginatedSearchInitialLoadProgress.visibility = GONE
} }
override fun showInitialLoadInProgress() { override fun showInitialLoadInProgress() {
binding.paginatedSearchInitialLoadProgress.visibility = VISIBLE binding!!.paginatedSearchInitialLoadProgress.visibility = VISIBLE
} }
override fun showSnackbar() { override fun showSnackbar() {
ViewUtil.showShortSnackbar(binding.paginatedSearchResultsList, errorTextId) ViewUtil.showShortSnackbar(binding!!.paginatedSearchResultsList, errorTextId)
} }
fun onQueryUpdated(query: String) { fun onQueryUpdated(query: String) {
@ -98,14 +91,14 @@ abstract class BasePagingFragment<T> : CommonsDaggerSupportFragment(),
} }
override fun showEmptyText(query: String) { override fun showEmptyText(query: String) {
binding.contentNotFound.text = getEmptyText(query) binding!!.contentNotFound.text = getEmptyText(query)
binding.contentNotFound.visibility = VISIBLE binding!!.contentNotFound.visibility = VISIBLE
} }
abstract fun getEmptyText(query: String): String abstract fun getEmptyText(query: String): String
override fun hideEmptyText() { override fun hideEmptyText() {
binding.contentNotFound.visibility = GONE binding!!.contentNotFound.visibility = GONE
} }
} }