Skip to content

Commit f751ab4

Browse files
authored
Optimize the Layout ViewBinding (#5830)
1 parent 3e915f9 commit f751ab4

File tree

2 files changed

+17
-29
lines changed

2 files changed

+17
-29
lines changed

app/src/main/java/fr/free/nrw/commons/explore/media/PageableMediaFragment.kt

-19
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,15 @@ package fr.free.nrw.commons.explore.media
22

33
import android.content.Context
44
import android.os.Bundle
5-
import android.view.LayoutInflater
65
import android.view.View
7-
import android.view.ViewGroup
86
import fr.free.nrw.commons.Media
97
import fr.free.nrw.commons.R
108
import fr.free.nrw.commons.category.CategoryImagesCallback
11-
import fr.free.nrw.commons.databinding.FragmentSearchPaginatedBinding
129
import fr.free.nrw.commons.explore.paging.BasePagingFragment
1310
import fr.free.nrw.commons.media.MediaDetailPagerFragment.MediaDetailProvider
1411

1512
abstract class PageableMediaFragment : BasePagingFragment<Media>(), MediaDetailProvider {
1613

17-
/**
18-
* ViewBinding
19-
*/
20-
private var _binding: FragmentSearchPaginatedBinding? = null
21-
private val binding get() = _binding!!
22-
2314
override val pagedListAdapter by lazy {
2415
PagedMediaAdapter(categoryImagesCallback::onMediaClicked)
2516
}
@@ -39,15 +30,6 @@ abstract class PageableMediaFragment : BasePagingFragment<Media>(), MediaDetailP
3930
}
4031
}
4132

42-
override fun onCreateView(
43-
inflater: LayoutInflater,
44-
container: ViewGroup?,
45-
savedInstanceState: Bundle?
46-
): View {
47-
_binding = FragmentSearchPaginatedBinding.inflate(inflater, container, false)
48-
return binding.root
49-
}
50-
5133
private val simpleDataObserver =
5234
SimpleDataObserver { categoryImagesCallback.viewPagerNotifyDataSetChanged() }
5335

@@ -57,7 +39,6 @@ abstract class PageableMediaFragment : BasePagingFragment<Media>(), MediaDetailP
5739
}
5840

5941
override fun onDestroyView() {
60-
_binding = null
6142
super.onDestroyView()
6243
pagedListAdapter.unregisterAdapterDataObserver(simpleDataObserver)
6344
}

app/src/main/java/fr/free/nrw/commons/explore/paging/BasePagingFragment.kt

+17-10
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,19 @@ abstract class BasePagingFragment<T> : CommonsDaggerSupportFragment(),
2929
private val mergeAdapter by lazy { MergeAdapter(pagedListAdapter, loadingAdapter) }
3030
private var searchResults: LiveData<PagedList<T>>? = null
3131

32-
private var binding : FragmentSearchPaginatedBinding? = null
32+
protected lateinit var binding : FragmentSearchPaginatedBinding
33+
34+
override fun onCreateView(
35+
inflater: LayoutInflater,
36+
container: ViewGroup?,
37+
savedInstanceState: Bundle?
38+
): View? {
39+
binding = FragmentSearchPaginatedBinding.inflate(inflater, container, false)
40+
return binding.root
41+
}
3342

3443
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
3544
super.onViewCreated(view, savedInstanceState)
36-
val binding = FragmentSearchPaginatedBinding.bind(view)
37-
this.binding = binding
3845

3946
binding.paginatedSearchResultsList.apply {
4047
layoutManager = GridLayoutManager(context, if (isPortrait) 1 else 2)
@@ -51,7 +58,7 @@ abstract class BasePagingFragment<T> : CommonsDaggerSupportFragment(),
5158
*/
5259
override fun onConfigurationChanged(newConfig: Configuration) {
5360
super.onConfigurationChanged(newConfig)
54-
binding!!.paginatedSearchResultsList.apply {
61+
binding.paginatedSearchResultsList.apply {
5562
layoutManager = GridLayoutManager(context, if (isPortrait) 1 else 2)
5663
}
5764
}
@@ -75,30 +82,30 @@ abstract class BasePagingFragment<T> : CommonsDaggerSupportFragment(),
7582
}
7683

7784
override fun hideInitialLoadProgress() {
78-
binding!!.paginatedSearchInitialLoadProgress.visibility = GONE
85+
binding.paginatedSearchInitialLoadProgress.visibility = GONE
7986
}
8087

8188
override fun showInitialLoadInProgress() {
82-
binding!!.paginatedSearchInitialLoadProgress.visibility = VISIBLE
89+
binding.paginatedSearchInitialLoadProgress.visibility = VISIBLE
8390
}
8491

8592
override fun showSnackbar() {
86-
ViewUtil.showShortSnackbar(binding!!.paginatedSearchResultsList, errorTextId)
93+
ViewUtil.showShortSnackbar(binding.paginatedSearchResultsList, errorTextId)
8794
}
8895

8996
fun onQueryUpdated(query: String) {
9097
injectedPresenter.onQueryUpdated(query)
9198
}
9299

93100
override fun showEmptyText(query: String) {
94-
binding!!.contentNotFound.text = getEmptyText(query)
95-
binding!!.contentNotFound.visibility = VISIBLE
101+
binding.contentNotFound.text = getEmptyText(query)
102+
binding.contentNotFound.visibility = VISIBLE
96103
}
97104

98105
abstract fun getEmptyText(query: String): String
99106

100107
override fun hideEmptyText() {
101-
binding!!.contentNotFound.visibility = GONE
108+
binding.contentNotFound.visibility = GONE
102109
}
103110
}
104111

0 commit comments

Comments
 (0)