4664: Moved FolderFragment to ViewBinding (#5089)

This commit is contained in:
Ankush Bose 2022-10-29 15:03:33 +05:30 committed by GitHub
parent 26d2669a74
commit 4c24b65d2d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -5,22 +5,19 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ProgressBar import android.widget.ProgressBar
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import fr.free.nrw.commons.R
import fr.free.nrw.commons.customselector.helper.ImageHelper import fr.free.nrw.commons.customselector.helper.ImageHelper
import fr.free.nrw.commons.customselector.model.Result import fr.free.nrw.commons.customselector.model.Result
import fr.free.nrw.commons.customselector.listeners.FolderClickListener import fr.free.nrw.commons.customselector.listeners.FolderClickListener
import fr.free.nrw.commons.customselector.model.CallbackStatus import fr.free.nrw.commons.customselector.model.CallbackStatus
import fr.free.nrw.commons.customselector.model.Folder import fr.free.nrw.commons.customselector.model.Folder
import fr.free.nrw.commons.customselector.ui.adapter.FolderAdapter import fr.free.nrw.commons.customselector.ui.adapter.FolderAdapter
import fr.free.nrw.commons.databinding.FragmentCustomSelectorBinding
import fr.free.nrw.commons.di.CommonsDaggerSupportFragment import fr.free.nrw.commons.di.CommonsDaggerSupportFragment
import fr.free.nrw.commons.media.MediaClient import fr.free.nrw.commons.media.MediaClient
import fr.free.nrw.commons.upload.FileProcessor import fr.free.nrw.commons.upload.FileProcessor
import kotlinx.android.synthetic.main.fragment_custom_selector.*
import kotlinx.android.synthetic.main.fragment_custom_selector.view.*
import javax.inject.Inject import javax.inject.Inject
/** /**
@ -28,6 +25,12 @@ import javax.inject.Inject
*/ */
class FolderFragment : CommonsDaggerSupportFragment() { class FolderFragment : CommonsDaggerSupportFragment() {
/**
* ViewBinding
*/
private var _binding: FragmentCustomSelectorBinding? = null
private val binding get() = _binding
/** /**
* View Model for images. * View Model for images.
*/ */
@ -89,20 +92,20 @@ class FolderFragment : CommonsDaggerSupportFragment() {
* Inflate Layout, init adapter, init gridLayoutManager, setUp recycler view, observe the view model for result. * Inflate Layout, init adapter, init gridLayoutManager, setUp recycler view, observe the view model for result.
*/ */
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val root = inflater.inflate(R.layout.fragment_custom_selector, container, false) _binding = FragmentCustomSelectorBinding.inflate(inflater, container, false)
folderAdapter = FolderAdapter(activity!!, activity as FolderClickListener) folderAdapter = FolderAdapter(activity!!, activity as FolderClickListener)
gridLayoutManager = GridLayoutManager(context, columnCount()) gridLayoutManager = GridLayoutManager(context, columnCount())
selectorRV = root.selector_rv selectorRV = binding?.selectorRv
loader = root.loader loader = binding?.loader
with(root.selector_rv){ with(binding?.selectorRv){
this.layoutManager = gridLayoutManager this?.layoutManager = gridLayoutManager
setHasFixedSize(true) this?.setHasFixedSize(true)
this.adapter = folderAdapter this?.adapter = folderAdapter
} }
viewModel?.result?.observe(viewLifecycleOwner, Observer { viewModel?.result?.observe(viewLifecycleOwner) {
handleResult(it) handleResult(it)
}) }
return root return binding?.root
} }
/** /**
@ -115,7 +118,7 @@ class FolderFragment : CommonsDaggerSupportFragment() {
val images = result.images val images = result.images
if(images.isNullOrEmpty()) if(images.isNullOrEmpty())
{ {
empty_text?.let { binding?.emptyText?.let {
it.visibility = View.VISIBLE it.visibility = View.VISIBLE
} }
} }
@ -140,6 +143,15 @@ class FolderFragment : CommonsDaggerSupportFragment() {
super.onResume() super.onResume()
} }
/**
* onDestroyView
* clearing view binding
*/
override fun onDestroyView() {
_binding = null
super.onDestroyView()
}
/** /**
* Return Column count ie span count for grid view adapter. * Return Column count ie span count for grid view adapter.
*/ */