mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 04:43:54 +01:00
4664: Moved CustomSelectorActivity to ViewBinding (#5065)
This commit is contained in:
parent
10b025c237
commit
64d4ffc5f1
2 changed files with 64 additions and 52 deletions
|
|
@ -20,12 +20,14 @@ import fr.free.nrw.commons.customselector.helper.CustomSelectorConstants.SHOULD_
|
||||||
import fr.free.nrw.commons.customselector.listeners.FolderClickListener
|
import fr.free.nrw.commons.customselector.listeners.FolderClickListener
|
||||||
import fr.free.nrw.commons.customselector.listeners.ImageSelectListener
|
import fr.free.nrw.commons.customselector.listeners.ImageSelectListener
|
||||||
import fr.free.nrw.commons.customselector.model.Image
|
import fr.free.nrw.commons.customselector.model.Image
|
||||||
|
import fr.free.nrw.commons.databinding.ActivityCustomSelectorBinding
|
||||||
|
import fr.free.nrw.commons.databinding.CustomSelectorBottomLayoutBinding
|
||||||
|
import fr.free.nrw.commons.databinding.CustomSelectorToolbarBinding
|
||||||
import fr.free.nrw.commons.filepicker.Constants
|
import fr.free.nrw.commons.filepicker.Constants
|
||||||
import fr.free.nrw.commons.media.ZoomableActivity
|
import fr.free.nrw.commons.media.ZoomableActivity
|
||||||
import fr.free.nrw.commons.theme.BaseActivity
|
import fr.free.nrw.commons.theme.BaseActivity
|
||||||
import fr.free.nrw.commons.upload.FileUtilsWrapper
|
import fr.free.nrw.commons.upload.FileUtilsWrapper
|
||||||
import fr.free.nrw.commons.utils.CustomSelectorUtils
|
import fr.free.nrw.commons.utils.CustomSelectorUtils
|
||||||
import kotlinx.android.synthetic.main.custom_selector_bottom_layout.*
|
|
||||||
import kotlinx.coroutines.*
|
import kotlinx.coroutines.*
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
@ -36,6 +38,13 @@ import javax.inject.Inject
|
||||||
*/
|
*/
|
||||||
class CustomSelectorActivity : BaseActivity(), FolderClickListener, ImageSelectListener {
|
class CustomSelectorActivity : BaseActivity(), FolderClickListener, ImageSelectListener {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ViewBindings
|
||||||
|
*/
|
||||||
|
private lateinit var binding: ActivityCustomSelectorBinding
|
||||||
|
private lateinit var toolbarBinding: CustomSelectorToolbarBinding
|
||||||
|
private lateinit var bottomSheetBinding: CustomSelectorBottomLayoutBinding
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* View model.
|
* View model.
|
||||||
*/
|
*/
|
||||||
|
|
@ -60,7 +69,8 @@ class CustomSelectorActivity: BaseActivity(), FolderClickListener, ImageSelectLi
|
||||||
/**
|
/**
|
||||||
* View Model Factory.
|
* View Model Factory.
|
||||||
*/
|
*/
|
||||||
@Inject lateinit var customSelectorViewModelFactory: CustomSelectorViewModelFactory
|
@Inject
|
||||||
|
lateinit var customSelectorViewModelFactory: CustomSelectorViewModelFactory
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NotForUploadStatus Dao class for database operations
|
* NotForUploadStatus Dao class for database operations
|
||||||
|
|
@ -90,7 +100,11 @@ class CustomSelectorActivity: BaseActivity(), FolderClickListener, ImageSelectLi
|
||||||
*/
|
*/
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setContentView(R.layout.activity_custom_selector)
|
binding = ActivityCustomSelectorBinding.inflate(layoutInflater)
|
||||||
|
toolbarBinding = CustomSelectorToolbarBinding.bind(binding.root)
|
||||||
|
bottomSheetBinding = CustomSelectorBottomLayoutBinding.bind(binding.root)
|
||||||
|
val view = binding.root
|
||||||
|
setContentView(view)
|
||||||
|
|
||||||
prefs = applicationContext.getSharedPreferences("CustomSelector", MODE_PRIVATE)
|
prefs = applicationContext.getSharedPreferences("CustomSelector", MODE_PRIVATE)
|
||||||
viewModel = ViewModelProvider(this, customSelectorViewModelFactory).get(
|
viewModel = ViewModelProvider(this, customSelectorViewModelFactory).get(
|
||||||
|
|
@ -120,7 +134,8 @@ class CustomSelectorActivity: BaseActivity(), FolderClickListener, ImageSelectLi
|
||||||
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||||
super.onActivityResult(requestCode, resultCode, data)
|
super.onActivityResult(requestCode, resultCode, data)
|
||||||
if (requestCode == Constants.RequestCodes.RECEIVE_DATA_FROM_FULL_SCREEN_MODE &&
|
if (requestCode == Constants.RequestCodes.RECEIVE_DATA_FROM_FULL_SCREEN_MODE &&
|
||||||
resultCode == Activity.RESULT_OK) {
|
resultCode == Activity.RESULT_OK
|
||||||
|
) {
|
||||||
val selectedImages: ArrayList<Image> =
|
val selectedImages: ArrayList<Image> =
|
||||||
data!!
|
data!!
|
||||||
.getParcelableArrayListExtra(CustomSelectorConstants.NEW_SELECTED_IMAGES)!!
|
.getParcelableArrayListExtra(CustomSelectorConstants.NEW_SELECTED_IMAGES)!!
|
||||||
|
|
@ -303,19 +318,22 @@ class CustomSelectorActivity: BaseActivity(), FolderClickListener, ImageSelectLi
|
||||||
/**
|
/**
|
||||||
* override Selected Images Change, update view model selected images and change UI.
|
* override Selected Images Change, update view model selected images and change UI.
|
||||||
*/
|
*/
|
||||||
override fun onSelectedImagesChanged(selectedImages: ArrayList<Image>,
|
override fun onSelectedImagesChanged(
|
||||||
selectedNotForUploadImages: Int) {
|
selectedImages: ArrayList<Image>,
|
||||||
|
selectedNotForUploadImages: Int
|
||||||
|
) {
|
||||||
viewModel.selectedImages.value = selectedImages
|
viewModel.selectedImages.value = selectedImages
|
||||||
|
|
||||||
if (selectedNotForUploadImages > 0) {
|
if (selectedNotForUploadImages > 0) {
|
||||||
upload.isEnabled = false
|
bottomSheetBinding.upload.isEnabled = false
|
||||||
upload.alpha = 0.5f
|
bottomSheetBinding.upload.alpha = 0.5f
|
||||||
} else {
|
} else {
|
||||||
upload.isEnabled = true
|
bottomSheetBinding.upload.isEnabled = true
|
||||||
upload.alpha = 1f
|
bottomSheetBinding.upload.alpha = 1f
|
||||||
}
|
}
|
||||||
|
|
||||||
not_for_upload.text = when (selectedImages.size == selectedNotForUploadImages) {
|
bottomSheetBinding.notForUpload.text =
|
||||||
|
when (selectedImages.size == selectedNotForUploadImages) {
|
||||||
true -> getString(R.string.unmark_as_not_for_upload)
|
true -> getString(R.string.unmark_as_not_for_upload)
|
||||||
else -> getString(R.string.mark_as_not_for_upload)
|
else -> getString(R.string.mark_as_not_for_upload)
|
||||||
}
|
}
|
||||||
|
|
@ -334,7 +352,7 @@ class CustomSelectorActivity: BaseActivity(), FolderClickListener, ImageSelectLi
|
||||||
selectedImages: ArrayList<Image>
|
selectedImages: ArrayList<Image>
|
||||||
) {
|
) {
|
||||||
val intent = Intent(this, ZoomableActivity::class.java)
|
val intent = Intent(this, ZoomableActivity::class.java)
|
||||||
intent.putExtra(CustomSelectorConstants.PRESENT_POSITION, position);
|
intent.putExtra(CustomSelectorConstants.PRESENT_POSITION, position)
|
||||||
intent.putParcelableArrayListExtra(
|
intent.putParcelableArrayListExtra(
|
||||||
CustomSelectorConstants.TOTAL_SELECTED_IMAGES,
|
CustomSelectorConstants.TOTAL_SELECTED_IMAGES,
|
||||||
selectedImages
|
selectedImages
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,10 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent">
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
|
||||||
|
|
||||||
<include
|
<include layout="@layout/custom_selector_toolbar" />
|
||||||
layout="@layout/custom_selector_toolbar"
|
|
||||||
android:id="@+id/toolbar"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<androidx.fragment.app.FragmentContainerView
|
<androidx.fragment.app.FragmentContainerView
|
||||||
android:id="@+id/fragment_container"
|
android:id="@+id/fragment_container"
|
||||||
|
|
@ -16,9 +13,6 @@
|
||||||
app:layout_constraintBottom_toTopOf="@id/bottom_layout"
|
app:layout_constraintBottom_toTopOf="@id/bottom_layout"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/toolbar_layout" />
|
app:layout_constraintTop_toBottomOf="@+id/toolbar_layout" />
|
||||||
|
|
||||||
<include
|
<include layout="@layout/custom_selector_bottom_layout" />
|
||||||
layout="@layout/custom_selector_bottom_layout"
|
|
||||||
android:id="@+id/bottom_sheet"
|
|
||||||
/>
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
Loading…
Add table
Add a link
Reference in a new issue