From 368306237040210794ec32e039b47143cfa6d9ec Mon Sep 17 00:00:00 2001 From: Giuseppe Scorrano Date: Tue, 24 Jul 2018 16:02:38 +0200 Subject: [PATCH] Modifiche su dialogInputQuantity --- .../core/di/BindableFloat.java | 2 +- .../AccettazioneOnOrdineInevasoViewModel.java | 7 +- .../input_quantity/DialogInputQuantity.java | 67 +++++++++++++++---- .../layout/dialog_input_quantity_articolo.xml | 3 +- ...li_in_collo_bottom_sheet__mtbcolr_item.xml | 5 +- app/src/main/res/values-it/strings.xml | 2 + app/src/main/res/values/strings.xml | 2 + 7 files changed, 67 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/di/BindableFloat.java b/app/src/main/java/it/integry/integrywmsnative/core/di/BindableFloat.java index a3ce56e4..c33301c9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/di/BindableFloat.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/di/BindableFloat.java @@ -9,7 +9,7 @@ public class BindableFloat extends BaseObservable { Float value; public Float get() { - return value == null ? 0 : value; + return get(true); } public Float get(boolean defaultIfNull) { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineInevasoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineInevasoViewModel.java index 2f487697..2c34ba51 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineInevasoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_ordine_inevaso/viewmodel/AccettazioneOnOrdineInevasoViewModel.java @@ -323,11 +323,8 @@ public class AccettazioneOnOrdineInevasoViewModel implements IOnColloClosedCallb DialogSimpleMessageHelper.makeErrorDialog(mActivity, new SpannableString(errorMessage), null, null).show(); } }); - - - - - } + + } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java index 9f9faef6..a68efd19 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/input_quantity/DialogInputQuantity.java @@ -8,10 +8,17 @@ import android.databinding.DataBindingUtil; import android.databinding.Observable; import android.databinding.ViewDataBinding; import android.graphics.Color; +import android.os.SystemClock; import android.support.design.widget.TextInputLayout; import android.support.v4.content.ContextCompat; +import android.text.SpannableString; import android.util.Log; import android.view.LayoutInflater; +import android.view.MotionEvent; +import android.view.View; +import android.view.WindowManager; +import android.view.inputmethod.InputMethodManager; +import android.widget.Button; import it.integry.integrywmsnative.BR; import it.integry.integrywmsnative.MainApplication; @@ -19,26 +26,28 @@ import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback; import it.integry.integrywmsnative.core.REST.consumers.ISingleValueOperationCallback; import it.integry.integrywmsnative.gest.accettazione.dto.OrdineAccettazioneDTO; +import it.integry.integrywmsnative.view.dialogs.DialogSimpleMessageHelper; import it.integry.integrywmsnative.view.dialogs.IButtonDialogAction; public class DialogInputQuantity { private static ColorStateList originalColorStateList = null; - public static AlertDialog makeBase(Context context, OrdineAccettazioneDTO.Riga articoloItem, final float qtaEvasa, final ISingleValueOperationCallback dialogCallback) { + public static AlertDialog makeBase(final Context context, OrdineAccettazioneDTO.Riga articoloItem, final float qtaEvasa, final ISingleValueOperationCallback dialogCallback) { LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); ViewDataBinding contentView = DataBindingUtil.inflate(inflater, R.layout.dialog_input_quantity_articolo, null, false); - TextInputLayout txlInputNumDiCnf = contentView.getRoot().findViewById(R.id.input_num_cnf); - TextInputLayout txlInputQtaPerCnf = contentView.getRoot().findViewById(R.id.input_qta_cnf); - TextInputLayout txlInputQtaTot = contentView.getRoot().findViewById(R.id.input_qta_tot); + final TextInputLayout txlInputNumDiCnf = contentView.getRoot().findViewById(R.id.input_num_cnf); + final TextInputLayout txlInputQtaPerCnf = contentView.getRoot().findViewById(R.id.input_qta_cnf); + final TextInputLayout txlInputQtaTot = contentView.getRoot().findViewById(R.id.input_qta_tot); txlInputNumDiCnf.getEditText().setSelectAllOnFocus(true); txlInputQtaPerCnf.getEditText().setSelectAllOnFocus(true); txlInputQtaTot.getEditText().setSelectAllOnFocus(true); + originalColorStateList = txlInputNumDiCnf.getEditText().getTextColors(); final QuantityDTO quantityDTO = new QuantityDTO(); @@ -50,19 +59,43 @@ public class DialogInputQuantity { contentView.setVariable(BR.viewmodel, articoloItem); contentView.setVariable(BR.quantityViewModel, quantityDTO); - AlertDialog.Builder alertDialog = new AlertDialog.Builder(context) + final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context) .setView(contentView.getRoot()) - .setPositiveButton(context.getText(R.string.confirm), new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialogInterface, int i) { - dialogCallback.onResult(quantityDTO); - } - }) + .setPositiveButton(context.getText(R.string.confirm), null) .setNegativeButton(context.getText(R.string.abort), null); - AlertDialog alert = alertDialog.create(); + final AlertDialog alert = alertDialog.create(); alert.setCanceledOnTouchOutside(false); + alert.setOnShowListener(new DialogInterface.OnShowListener() { + @Override + public void onShow(DialogInterface dialogInterface) { + + txlInputNumDiCnf.getEditText().requestFocus(); + //txlInputNumDiCnf.getEditText().dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_DOWN , 0, 0, 0)); + //txlInputNumDiCnf.getEditText().dispatchTouchEvent(MotionEvent.obtain(SystemClock.uptimeMillis(), SystemClock.uptimeMillis(), MotionEvent.ACTION_UP , 0, 0, 0)); + + InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); + imm.showSoftInput(txlInputNumDiCnf.getEditText(), InputMethodManager.SHOW_IMPLICIT); + + Button positiveButton = alert.getButton(AlertDialog.BUTTON_POSITIVE); + + positiveButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if(quantityDTO.qtaCnf.get() <= 0 || quantityDTO.numCnf.get() <= 0 || quantityDTO.qtaTot.get() <= 0) { + showQuantityErrorDialog(context); + } else { + dialogCallback.onResult(quantityDTO); + alert.dismiss(); + } + } + }); + } + }); + + + return alert; } @@ -215,4 +248,14 @@ public class DialogInputQuantity { } + + + private static void showQuantityErrorDialog(Context mContext){ + + String errorMessage = mContext.getText(R.string.wrong_quantity_input).toString(); + + DialogSimpleMessageHelper.makeErrorDialog(mContext, new SpannableString(errorMessage), null, null).show(); + + } + } diff --git a/app/src/main/res/layout/dialog_input_quantity_articolo.xml b/app/src/main/res/layout/dialog_input_quantity_articolo.xml index 68d22e75..c034239d 100644 --- a/app/src/main/res/layout/dialog_input_quantity_articolo.xml +++ b/app/src/main/res/layout/dialog_input_quantity_articolo.xml @@ -192,7 +192,8 @@ android:inputType="numberDecimal" android:hint="@string/num_pcks" android:gravity="end" - app:binding="@{quantityViewModel.numCnf}" /> + app:binding="@{quantityViewModel.numCnf}" > + + @@ -65,11 +66,11 @@ + android:visibility="@{UtilityString.isNullOrEmpty(mtbColr.partitaMag) ? View.GONE : View.VISIBLE}"/> \ No newline at end of file diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 7d457d32..fa5ab1e6 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -82,4 +82,6 @@ Salvataggio Salvataggio completato + + \ 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 f267035b..f0c43349 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -90,4 +90,6 @@ Saving Data saved + The quantity entered is not valid, please check it +