From 6e92dbb3c4b6aa99ee9a027aac5066e104c0c5be Mon Sep 17 00:00:00 2001 From: erik-everardo Date: Sun, 24 Dec 2023 01:42:55 -0600 Subject: [PATCH] =?UTF-8?q?cambio=20de=20dise=C3=B1o=20y=20correciones=20m?= =?UTF-8?q?enores=20en=20pantalla=20para=20subir=20imagen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/ImageMakerViewModel.kt | 2 +- .../image_maker/ui/ImageMakerActivity.kt | 35 ++++-- .../main/res/layout/activity_image_maker.xml | 101 ++++++++++-------- app/src/main/res/values/strings.xml | 2 + 4 files changed, 87 insertions(+), 53 deletions(-) diff --git a/app/src/main/java/com/isolaatti/images/image_maker/presentation/ImageMakerViewModel.kt b/app/src/main/java/com/isolaatti/images/image_maker/presentation/ImageMakerViewModel.kt index 557fbca..ed35efe 100644 --- a/app/src/main/java/com/isolaatti/images/image_maker/presentation/ImageMakerViewModel.kt +++ b/app/src/main/java/com/isolaatti/images/image_maker/presentation/ImageMakerViewModel.kt @@ -25,7 +25,7 @@ class ImageMakerViewModel @Inject constructor(private val imagesRepository: Imag return } viewModelScope.launch { - imagesRepository.uploadImage(name!!, imageUri!!, null).onEach { + imagesRepository.uploadImage(name!!.trim(), imageUri!!, null).onEach { image.postValue(it) }.flowOn(Dispatchers.IO).launchIn(this) } diff --git a/app/src/main/java/com/isolaatti/images/image_maker/ui/ImageMakerActivity.kt b/app/src/main/java/com/isolaatti/images/image_maker/ui/ImageMakerActivity.kt index dbf88cd..1edf802 100644 --- a/app/src/main/java/com/isolaatti/images/image_maker/ui/ImageMakerActivity.kt +++ b/app/src/main/java/com/isolaatti/images/image_maker/ui/ImageMakerActivity.kt @@ -4,9 +4,11 @@ import android.app.Activity import android.content.Intent import android.os.Bundle import android.view.View +import androidx.activity.OnBackPressedCallback import androidx.activity.viewModels import androidx.core.widget.doOnTextChanged import coil.load +import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.isolaatti.R import com.isolaatti.common.IsolaattiBaseActivity import com.isolaatti.databinding.ActivityImageMakerBinding @@ -25,24 +27,36 @@ class ImageMakerActivity : IsolaattiBaseActivity() { setContentView(binding.root) viewModel.imageUri = intent.data binding.imagePreview.load(intent.data) - + onBackPressedDispatcher.addCallback(onBackPressedCallback) setupListeners() setupObservers() } + private val onBackPressedCallback = object: OnBackPressedCallback(true) { + override fun handleOnBackPressed() { + showExitConfirmationDialog() + } + } + + private fun showExitConfirmationDialog() { + MaterialAlertDialogBuilder(this) + .setTitle(R.string.discard_image) + .setPositiveButton(R.string.yes_discard_image) {_, _ -> + finish() + }.setNegativeButton(R.string.no, null) + .show() + } + private fun setupListeners() { - binding.materialToolbar.setOnMenuItemClickListener { - when(it.itemId) { - R.id.upload_picture_item -> { - viewModel.uploadPicture() - true - } - else -> false - } + binding.uploadPhotoFab.setOnClickListener { + viewModel.uploadPicture() } binding.textImageName.editText?.doOnTextChanged { text, _, _, _ -> viewModel.name = text.toString() } + binding.toolbar.setNavigationOnClickListener { + showExitConfirmationDialog() + } } private fun setupObservers() { @@ -50,9 +64,12 @@ class ImageMakerActivity : IsolaattiBaseActivity() { when(it) { is Resource.Error -> { errorViewModel.error.value = it.errorType + binding.progressBarLoading.visibility = View.GONE + binding.textImageName.isEnabled = true } is Resource.Loading -> { binding.progressBarLoading.visibility = View.VISIBLE + binding.textImageName.isEnabled = false } is Resource.Success -> { binding.progressBarLoading.visibility = View.GONE diff --git a/app/src/main/res/layout/activity_image_maker.xml b/app/src/main/res/layout/activity_image_maker.xml index 54a8cd3..3216ffc 100644 --- a/app/src/main/res/layout/activity_image_maker.xml +++ b/app/src/main/res/layout/activity_image_maker.xml @@ -4,58 +4,73 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> - + app:navigationIcon="@drawable/baseline_close_24" + android:background="@color/translucent_purple" + app:title="@string/upload_photo" + android:translationZ="2dp"/> - + + - - - - - + android:background="@color/translucent_purple" + android:translationZ="2dp"> + + + + + + + + + + + - \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7355806..751fc93 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -122,4 +122,6 @@ Images selected: %d Picture name Audio options + Yes, discard image + Discard image? \ No newline at end of file