4664: Moved ImageFragment to ViewBinding (#5067)

This commit is contained in:
Ankush Bose 2022-10-29 14:20:25 +05:30 committed by GitHub
parent 64d4ffc5f1
commit 26d2669a74
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -14,7 +14,6 @@ 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.database.NotForUploadStatusDao import fr.free.nrw.commons.customselector.database.NotForUploadStatusDao
import fr.free.nrw.commons.customselector.database.UploadedStatusDao import fr.free.nrw.commons.customselector.database.UploadedStatusDao
import fr.free.nrw.commons.customselector.helper.ImageHelper import fr.free.nrw.commons.customselector.helper.ImageHelper
@ -27,13 +26,12 @@ import fr.free.nrw.commons.customselector.model.CallbackStatus
import fr.free.nrw.commons.customselector.model.Image import fr.free.nrw.commons.customselector.model.Image
import fr.free.nrw.commons.customselector.model.Result import fr.free.nrw.commons.customselector.model.Result
import fr.free.nrw.commons.customselector.ui.adapter.ImageAdapter import fr.free.nrw.commons.customselector.ui.adapter.ImageAdapter
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.theme.BaseActivity import fr.free.nrw.commons.theme.BaseActivity
import fr.free.nrw.commons.upload.FileProcessor import fr.free.nrw.commons.upload.FileProcessor
import fr.free.nrw.commons.upload.FileUtilsWrapper import fr.free.nrw.commons.upload.FileUtilsWrapper
import kotlinx.android.synthetic.main.fragment_custom_selector.*
import kotlinx.android.synthetic.main.fragment_custom_selector.view.*
import java.util.* import java.util.*
import javax.inject.Inject import javax.inject.Inject
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
@ -43,6 +41,9 @@ import kotlin.collections.ArrayList
*/ */
class ImageFragment: CommonsDaggerSupportFragment(), RefreshUIListener, PassDataListener { class ImageFragment: CommonsDaggerSupportFragment(), RefreshUIListener, PassDataListener {
private var _binding: FragmentCustomSelectorBinding? = null
private val binding get() = _binding
/** /**
* Current bucketId. * Current bucketId.
*/ */
@ -64,7 +65,7 @@ class ImageFragment: CommonsDaggerSupportFragment(), RefreshUIListener, PassData
private var selectorRV: RecyclerView? = null private var selectorRV: RecyclerView? = null
private var loader: ProgressBar? = null private var loader: ProgressBar? = null
private var switch: Switch? = null private var switch: Switch? = null
lateinit var filteredImages: ArrayList<Image>; lateinit var filteredImages: ArrayList<Image>
/** /**
* Stores all images * Stores all images
@ -171,33 +172,32 @@ class ImageFragment: CommonsDaggerSupportFragment(), RefreshUIListener, PassData
* SetUp recycler view. * SetUp recycler view.
*/ */
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
_binding = FragmentCustomSelectorBinding.inflate(inflater, container, false)
val root = inflater.inflate(R.layout.fragment_custom_selector, container, false)
imageAdapter = ImageAdapter(requireActivity(), activity as ImageSelectListener, imageLoader!!) imageAdapter = ImageAdapter(requireActivity(), activity as ImageSelectListener, imageLoader!!)
gridLayoutManager = GridLayoutManager(context,getSpanCount()) gridLayoutManager = GridLayoutManager(context,getSpanCount())
with(root.selector_rv){ with(binding?.selectorRv){
this.layoutManager = gridLayoutManager this?.layoutManager = gridLayoutManager
setHasFixedSize(true) this?.setHasFixedSize(true)
this.adapter = imageAdapter this?.adapter = imageAdapter
} }
viewModel?.result?.observe(viewLifecycleOwner, Observer{ viewModel?.result?.observe(viewLifecycleOwner, Observer{
handleResult(it) handleResult(it)
}) })
switch = root.switchWidget switch = binding?.switchWidget
switch?.visibility = View.VISIBLE switch?.visibility = View.VISIBLE
switch?.setOnCheckedChangeListener { _, isChecked -> onChangeSwitchState(isChecked) } switch?.setOnCheckedChangeListener { _, isChecked -> onChangeSwitchState(isChecked) }
selectorRV = root.selector_rv selectorRV = binding?.selectorRv
loader = root.loader loader = binding?.loader
progressLayout = root.progressLayout progressLayout = binding?.progressLayout
val sharedPreferences: SharedPreferences = val sharedPreferences: SharedPreferences =
requireContext().getSharedPreferences(CUSTOM_SELECTOR_PREFERENCE_KEY, MODE_PRIVATE) requireContext().getSharedPreferences(CUSTOM_SELECTOR_PREFERENCE_KEY, MODE_PRIVATE)
showAlreadyActionedImages = sharedPreferences.getBoolean(SHOW_ALREADY_ACTIONED_IMAGES_PREFERENCE_KEY, true) showAlreadyActionedImages = sharedPreferences.getBoolean(SHOW_ALREADY_ACTIONED_IMAGES_PREFERENCE_KEY, true)
switch?.isChecked = showAlreadyActionedImages switch?.isChecked = showAlreadyActionedImages
return root return binding?.root
} }
private fun onChangeSwitchState(checked: Boolean) { private fun onChangeSwitchState(checked: Boolean) {
@ -252,7 +252,7 @@ class ImageFragment: CommonsDaggerSupportFragment(), RefreshUIListener, PassData
} }
} }
else{ else{
empty_text?.let { binding?.emptyText?.let {
it.visibility = View.VISIBLE it.visibility = View.VISIBLE
} }
selectorRV?.let{ selectorRV?.let{
@ -311,6 +311,11 @@ class ImageFragment: CommonsDaggerSupportFragment(), RefreshUIListener, PassData
super.onDestroy() super.onDestroy()
} }
override fun onDestroyView() {
_binding = null
super.onDestroyView()
}
override fun refresh() { override fun refresh() {
imageAdapter.refresh(filteredImages, allImages) imageAdapter.refresh(filteredImages, allImages)
} }