From 8216c19338ed0b6ea62574f332026bf9f24e7736 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Mon, 24 Oct 2022 17:54:58 +0200 Subject: [PATCH] Fix su calendar view in data_scad --- .../integrywmsnative/core/di/Converters.java | 54 +++++++++++-------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/di/Converters.java b/app/src/main/java/it/integry/integrywmsnative/core/di/Converters.java index d882780d..fb1238cf 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/di/Converters.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/di/Converters.java @@ -1,6 +1,5 @@ package it.integry.integrywmsnative.core.di; -import android.app.DatePickerDialog; import android.content.res.ColorStateList; import android.text.Html; import android.text.SpannableString; @@ -26,6 +25,7 @@ import androidx.databinding.BindingConversion; import androidx.databinding.Observable; import androidx.databinding.ObservableField; +import com.google.android.material.datepicker.MaterialDatePicker; import com.google.android.material.textfield.TextInputEditText; import com.google.android.material.textfield.TextInputLayout; @@ -34,7 +34,6 @@ import java.text.DecimalFormat; import java.text.DecimalFormatSymbols; import java.util.Calendar; import java.util.Date; -import java.util.GregorianCalendar; import java.util.Locale; import it.integry.integrywmsnative.MainApplication; @@ -328,29 +327,40 @@ public class Converters { c.setTime(observableDate.get()); } - int mYear = c.get(Calendar.YEAR); - int mMonth = c.get(Calendar.MONTH); - int mDay = c.get(Calendar.DAY_OF_MONTH); - DatePickerDialog datePickerDialog = new DatePickerDialog(view.getContext(), - (cView, year, month, day) -> { - Date resultDate = new GregorianCalendar(year, month, day).getTime(); + var datePicker = + MaterialDatePicker.Builder.datePicker() + .setSelection(c.getTimeInMillis()) + .build(); - if (parentFragment != null && warningOnOldDates && resultDate.before(new Date())) { - DialogSimpleMessageView - .makeWarningDialog(new SpannableString("Hai scelto una data precedente a quella odierna. Continuare?"), null, () -> { - view.setText(UtilityDate.formatDate(resultDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); - observableDate.set(resultDate); - }, () -> { + datePicker.addOnDismissListener(dialog -> { + if(datePicker.getSelection() != null) { + var timeInMillis = datePicker.getSelection(); - }) - .show(parentFragment.requireActivity().getSupportFragmentManager(), "tag"); - } else { - view.setText(UtilityDate.formatDate(resultDate, UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); - observableDate.set(resultDate); - } - }, mYear, mMonth, mDay); - datePickerDialog.show(); + var calendar = UtilityDate.getCalendarInstance(); + calendar.setTimeInMillis(timeInMillis); + + if (parentFragment != null && warningOnOldDates && calendar.before(UtilityDate.getCalendarInstance())) { + DialogSimpleMessageView + .makeWarningDialog(new SpannableString("Hai scelto una data precedente a quella odierna. Continuare?"), null, () -> { + view.setText(UtilityDate.formatDate(calendar.getTime(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); + observableDate.set(calendar.getTime()); + }, () -> { + + }) + .show(parentFragment.requireActivity().getSupportFragmentManager(), "tag"); + } else { + view.setText(UtilityDate.formatDate(calendar.getTime(), UtilityDate.COMMONS_DATE_FORMATS.DMY_HUMAN)); + observableDate.set(calendar.getTime()); + } + } + else { + view.setText(""); + observableDate.set(null); + } + }); + + datePicker.show(parentFragment.requireActivity().getSupportFragmentManager(), "tag"); }; //Adding click-listener