Skip to content

4664: Moved ImageFragment to ViewBinding #5067

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ 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.database.NotForUploadStatusDao
import fr.free.nrw.commons.customselector.database.UploadedStatusDao
import fr.free.nrw.commons.customselector.helper.ImageHelper
Expand All @@ -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.Result
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.media.MediaClient
import fr.free.nrw.commons.theme.BaseActivity
import fr.free.nrw.commons.upload.FileProcessor
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 javax.inject.Inject
import kotlin.collections.ArrayList
Expand All @@ -43,6 +41,9 @@ import kotlin.collections.ArrayList
*/
class ImageFragment: CommonsDaggerSupportFragment(), RefreshUIListener, PassDataListener {

private var _binding: FragmentCustomSelectorBinding? = null
private val binding get() = _binding

/**
* Current bucketId.
*/
Expand All @@ -64,7 +65,7 @@ class ImageFragment: CommonsDaggerSupportFragment(), RefreshUIListener, PassData
private var selectorRV: RecyclerView? = null
private var loader: ProgressBar? = null
private var switch: Switch? = null
lateinit var filteredImages: ArrayList<Image>;
lateinit var filteredImages: ArrayList<Image>

/**
* Stores all images
Expand Down Expand Up @@ -171,33 +172,32 @@ class ImageFragment: CommonsDaggerSupportFragment(), RefreshUIListener, PassData
* SetUp recycler 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)
imageAdapter = ImageAdapter(requireActivity(), activity as ImageSelectListener, imageLoader!!)
gridLayoutManager = GridLayoutManager(context,getSpanCount())
with(root.selector_rv){
this.layoutManager = gridLayoutManager
setHasFixedSize(true)
this.adapter = imageAdapter
with(binding?.selectorRv){
this?.layoutManager = gridLayoutManager
this?.setHasFixedSize(true)
this?.adapter = imageAdapter
}

viewModel?.result?.observe(viewLifecycleOwner, Observer{
handleResult(it)
})

switch = root.switchWidget
switch = binding?.switchWidget
switch?.visibility = View.VISIBLE
switch?.setOnCheckedChangeListener { _, isChecked -> onChangeSwitchState(isChecked) }
selectorRV = root.selector_rv
loader = root.loader
progressLayout = root.progressLayout
selectorRV = binding?.selectorRv
loader = binding?.loader
progressLayout = binding?.progressLayout

val sharedPreferences: SharedPreferences =
requireContext().getSharedPreferences(CUSTOM_SELECTOR_PREFERENCE_KEY, MODE_PRIVATE)
showAlreadyActionedImages = sharedPreferences.getBoolean(SHOW_ALREADY_ACTIONED_IMAGES_PREFERENCE_KEY, true)
switch?.isChecked = showAlreadyActionedImages

return root
return binding?.root
}

private fun onChangeSwitchState(checked: Boolean) {
Expand Down Expand Up @@ -252,7 +252,7 @@ class ImageFragment: CommonsDaggerSupportFragment(), RefreshUIListener, PassData
}
}
else{
empty_text?.let {
binding?.emptyText?.let {
it.visibility = View.VISIBLE
}
selectorRV?.let{
Expand Down Expand Up @@ -311,6 +311,11 @@ class ImageFragment: CommonsDaggerSupportFragment(), RefreshUIListener, PassData
super.onDestroy()
}

override fun onDestroyView() {
_binding = null
super.onDestroyView()
}

override fun refresh() {
imageAdapter.refresh(filteredImages, allImages)
}
Expand Down