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.ViewGroup
import android.widget.ProgressBar
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.GridLayoutManager
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.model.Result
import fr.free.nrw.commons.customselector.listeners.FolderClickListener
import fr.free.nrw.commons.customselector.model.CallbackStatus
import fr.free.nrw.commons.customselector.model.Folder
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.media.MediaClient
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
/**
@ -28,6 +25,12 @@ import javax.inject.Inject
*/
class FolderFragment : CommonsDaggerSupportFragment() {
/**
* ViewBinding
*/
private var _binding: FragmentCustomSelectorBinding? = null
private val binding get() = _binding
/**
* 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.
*/
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)
gridLayoutManager = GridLayoutManager(context, columnCount())
selectorRV = root.selector_rv
loader = root.loader
with(root.selector_rv){
this.layoutManager = gridLayoutManager
setHasFixedSize(true)
this.adapter = folderAdapter
selectorRV = binding?.selectorRv
loader = binding?.loader
with(binding?.selectorRv){
this?.layoutManager = gridLayoutManager
this?.setHasFixedSize(true)
this?.adapter = folderAdapter
}
viewModel?.result?.observe(viewLifecycleOwner, Observer {
viewModel?.result?.observe(viewLifecycleOwner) {
handleResult(it)
})
return root
}
return binding?.root
}
/**
@ -115,7 +118,7 @@ class FolderFragment : CommonsDaggerSupportFragment() {
val images = result.images
if(images.isNullOrEmpty())
{
empty_text?.let {
binding?.emptyText?.let {
it.visibility = View.VISIBLE
}
}
@ -140,6 +143,15 @@ class FolderFragment : CommonsDaggerSupportFragment() {
super.onResume()
}
/**
* onDestroyView
* clearing view binding
*/
override fun onDestroyView() {
_binding = null
super.onDestroyView()
}
/**
* Return Column count ie span count for grid view adapter.
*/