From 4eb6bedf04f52f63fc359812ed82a6f925aecf4c Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 20 Mar 2019 17:57:12 +0100 Subject: [PATCH] Implementata nuova UI (nuovo Material Design) per alcuni dialog in Rettifica Giacenze / Versamento Merce. Implementato dialog per la domanda semplice (Si / No). --- .idea/caches/build_file_checksums.ser | Bin 785 -> 785 bytes app/build.gradle | 2 +- .../viewmodel/RettificaGiacenzeViewModel.java | 30 +++-- .../core/VenditaOrdineInevasoHelper.java | 4 +- .../ui/DeactivatableViewPager.java | 32 +++++ .../dialogs/DialogAskLivelloPosizione.java | 23 ++-- .../view/dialogs/DialogConsts.java | 11 ++ .../DialogAskPositionOfLU.java | 5 + .../DialogAskPositionOfLUAdapter.java | 15 ++- .../view/dialogs/yes_no/DialogYesNo.java | 52 +++++++++ .../layout/dialog_ask_livello_of_position.xml | 60 +++++++--- .../res/layout/dialog_ask_position_of_lu.xml | 61 +++++++--- .../dialog_ask_position_of_lu__page1.xml | 2 +- .../dialog_ask_position_of_lu__page2.xml | 4 +- app/src/main/res/layout/dialog_exception.xml | 2 +- .../layout/dialog_input_quantity_articolo.xml | 2 + app/src/main/res/layout/dialog_yes_no.xml | 110 ++++++++++++++++++ app/src/main/res/values-it/strings.xml | 5 +- app/src/main/res/values/colors.xml | 6 + app/src/main/res/values/strings.xml | 4 + build.gradle | 5 +- 21 files changed, 374 insertions(+), 61 deletions(-) create mode 100644 app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogConsts.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/view/dialogs/yes_no/DialogYesNo.java create mode 100644 app/src/main/res/layout/dialog_yes_no.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index d6dcbe2d18cb9d0fe71ebf3edba5aecb22053ce2..7bd320c1db2f7565c7a6d6bdeadaa39ffbbd5e11 100644 GIT binary patch delta 56 zcmV-80LTB429XAkm;{<+)rpau>=0MgHZM{GZE_veCb8i4#nF?P0ge!()Pheh#G5E- OQtN-Ua>UY;HUit@`5P$! delta 56 zcmV-80LTB429XAkm;{znP==A5><~d?!Z4+E5n~Ati9Xx^u$YsW0gey~McEnx1(h-4 O%CxmAnq%mbHUis}0vHPb diff --git a/app/build.gradle b/app/build.gradle index 076ac7f3..68f96fed 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -113,7 +113,7 @@ dependencies { implementation 'androidx.lifecycle:lifecycle-runtime:2.0.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0' implementation 'androidx.lifecycle:lifecycle-common-java8:2.0.0' - kapt "androidx.lifecycle:lifecycle-compiler:2.0.0" + //kapt "androidx.lifecycle:lifecycle-compiler:2.0.0" implementation 'com.danielpuiu:ghostfish:2.0.0' annotationProcessor "com.danielpuiu:ghostfish-compiler:2.0.0" //MVVM diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java index d83e5ff4..dba3a1bd 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/rettifica_giacenze/viewmodel/RettificaGiacenzeViewModel.java @@ -62,6 +62,7 @@ import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.Dialo import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity; import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO; import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU; +import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNo; import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO; import it.integry.plugins.barcode_base_library.model.BarcodeType; @@ -568,16 +569,31 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked } private void posizionaCollo(Runnable onComplete, Runnable onAbort, RunnableArgs onFailed) { - DialogAskPositionOfLU.makeBase(mContext, mtbColt.get(), mtbDepoPosizione -> { - if(mtbDepoPosizione != null && mtbColt.get() != null) { - Objects.requireNonNull(mtbColt.get()).setPosizione(mtbDepoPosizione.getPosizione()); - onComplete.run(); - } else { - onAbort.run(); + + DialogYesNo.make(mContext, "Posiziona UL", "Vuoi cambiare la posizione della UL corrente?", result -> { + + switch (result){ + case YES: + DialogAskPositionOfLU.makeBase(mContext, mtbColt.get(), mtbDepoPosizione -> { + if(mtbDepoPosizione != null && mtbColt.get() != null) { + Objects.requireNonNull(mtbColt.get()).setPosizione(mtbDepoPosizione.getPosizione()); + onComplete.run(); + } else { + onAbort.run(); + } + + + }, onFailed).show(); + break; + + case NO: + onAbort.run(); + break; } + }).show(); + - }, onFailed).show(); } private void onItemEdit(MtbColr mtbColrToEdit, int index) { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java index ffece70f..c0b237a0 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/vendita_ordine_inevaso/core/VenditaOrdineInevasoHelper.java @@ -96,9 +96,11 @@ public class VenditaOrdineInevasoHelper { final PickingObjectDTO currentItem = currentGroup.get(k); final VenditaOrdineInevasoListViewModel.SubItem rowModel = new VenditaOrdineInevasoListViewModel.SubItem(); + String badge1 = ""; + badge1 += !UtilityString.isNullOrEmpty(currentItem.getCodAlis()) ? (currentItem.getCodAlis() + " - ") : ""; + badge1 += (!UtilityString.isNullOrEmpty(currentItem.getCodArtFor()) ? currentItem.getCodArtFor() : currentItem.getCodMart()); - String badge1 = currentItem.getCodAlis() + " - " + (!UtilityString.isNullOrEmpty(currentItem.getCodArtFor()) ? currentItem.getCodArtFor() : currentItem.getCodMart()); rowModel.setBadge1(badge1); rowModel.setBadge2(UtilityString.isNullOrEmpty(currentItem.getCodJcom()) ? null : currentItem.getCodJcom()); diff --git a/app/src/main/java/it/integry/integrywmsnative/ui/DeactivatableViewPager.java b/app/src/main/java/it/integry/integrywmsnative/ui/DeactivatableViewPager.java index 3f437bb9..3298829d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/ui/DeactivatableViewPager.java +++ b/app/src/main/java/it/integry/integrywmsnative/ui/DeactivatableViewPager.java @@ -4,9 +4,11 @@ import android.content.Context; import androidx.viewpager.widget.ViewPager; import android.util.AttributeSet; import android.view.MotionEvent; +import android.view.View; public class DeactivatableViewPager extends ViewPager { + private View mCurrentView; public DeactivatableViewPager(Context context) { super(context); @@ -25,4 +27,34 @@ public class DeactivatableViewPager extends ViewPager { public boolean onInterceptTouchEvent(MotionEvent event) { return isEnabled() && super.onInterceptTouchEvent(event); } + + + @Override + public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + if (mCurrentView == null) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + return; + } + int height = 0; + mCurrentView.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); + int h = mCurrentView.getMeasuredHeight(); + if (h > height) height = h; + heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY); + + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + } + + public void measureCurrentView(View currentView) { + mCurrentView = currentView; + requestLayout(); + } + + public int measureFragment(View view) { + if (view == null) + return 0; + + view.measure(0, 0); + return view.getMeasuredHeight(); + } + } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskLivelloPosizione.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskLivelloPosizione.java index ef2f27c7..c0cb755b 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskLivelloPosizione.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogAskLivelloPosizione.java @@ -3,7 +3,8 @@ package it.integry.integrywmsnative.view.dialogs; import android.app.Dialog; import android.content.Context; -import android.content.DialogInterface; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; import android.text.Editable; import android.text.TextWatcher; import android.view.LayoutInflater; @@ -24,7 +25,7 @@ public class DialogAskLivelloPosizione { private Context mContext; private MtbDepoPosizione mtbDepoPosizione; - private Dialog mAlert; + private Dialog mDialog; private RunnableArgs onComplete; private RunnableArgs onFailed; @@ -34,7 +35,7 @@ public class DialogAskLivelloPosizione { private boolean completedFLow = false; public static void make(Context context, MtbDepoPosizione mtbDepoPosizione, boolean canAbort, RunnableArgs onComplete, RunnableArgs onFailed) { - new DialogAskLivelloPosizione(context, mtbDepoPosizione, canAbort, onComplete, onFailed).mAlert.show(); + new DialogAskLivelloPosizione(context, mtbDepoPosizione, canAbort, onComplete, onFailed).mDialog.show(); } @@ -48,15 +49,17 @@ public class DialogAskLivelloPosizione { LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); View currentView = inflater.inflate(R.layout.dialog_ask_livello_of_position, null, false); - mAlert = new Dialog(mContext); - mAlert.setContentView(currentView); - mAlert.setCanceledOnTouchOutside(false); + mDialog = new Dialog(mContext); + mDialog.setContentView(currentView); + mDialog.setCanceledOnTouchOutside(false); + mDialog.setCancelable(false); + mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); - mAlert.setOnDismissListener(dialog -> { + mDialog.setOnDismissListener(dialog -> { if(!completedFLow) onComplete.run(null); }); - mAlert.setOnShowListener(dialog -> { + mDialog.setOnShowListener(dialog -> { if(!canAbort) currentView.findViewById(R.id.button_abort).setVisibility(View.GONE); @@ -111,7 +114,7 @@ public class DialogAskLivelloPosizione { completedFLow = true; onComplete.run(foundPosizione); - mAlert.dismiss(); + mDialog.dismiss(); } else { @@ -142,7 +145,7 @@ public class DialogAskLivelloPosizione { private void onLevelAbort() { completedFLow = true; onComplete.run(null); - mAlert.dismiss(); + mDialog.dismiss(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogConsts.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogConsts.java new file mode 100644 index 00000000..93604021 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogConsts.java @@ -0,0 +1,11 @@ +package it.integry.integrywmsnative.view.dialogs; + +public class DialogConsts { + + public enum Results { + YES, + NO, + ABORT + } + +} diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java index 23410bc0..836c6bcf 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLU.java @@ -6,6 +6,9 @@ import android.content.Context; import androidx.databinding.DataBindingUtil; import com.google.android.material.textfield.TextInputLayout; + +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; import android.text.Editable; import android.text.TextWatcher; import android.view.LayoutInflater; @@ -73,6 +76,8 @@ public class DialogAskPositionOfLU { mDialog = new Dialog(mContext); mDialog.setContentView(mBinding.getRoot()); mDialog.setCanceledOnTouchOutside(false); + mDialog.setCancelable(false); + mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); mDialog.setOnShowListener(dialog -> { adapter.getPage(1).findViewById(R.id.button_confirm).setOnClickListener(v -> { diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLUAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLUAdapter.java index 8e3dd457..0bcb48d4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLUAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_position_of_lu/DialogAskPositionOfLUAdapter.java @@ -3,6 +3,8 @@ package it.integry.integrywmsnative.view.dialogs.ask_position_of_lu; import android.content.Context; import androidx.annotation.NonNull; import androidx.viewpager.widget.PagerAdapter; +import it.integry.integrywmsnative.ui.DeactivatableViewPager; + import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -25,10 +27,6 @@ public class DialogAskPositionOfLUAdapter extends PagerAdapter { this.mDatasetViews = new ArrayList<>(); } - @Override - public int getCount() { - return mDatasetLayout.size(); - } @Override public View instantiateItem(ViewGroup container, int position) { @@ -38,6 +36,9 @@ public class DialogAskPositionOfLUAdapter extends PagerAdapter { container.addView(view); this.mDatasetViews.add(view); + DeactivatableViewPager pager = (DeactivatableViewPager) container; + pager.measureCurrentView(view); + return view; } @@ -56,4 +57,10 @@ public class DialogAskPositionOfLUAdapter extends PagerAdapter { return this.mDatasetViews.get(index); } + + @Override + public int getCount() { + return mDatasetLayout.size(); + } + } \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/yes_no/DialogYesNo.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/yes_no/DialogYesNo.java new file mode 100644 index 00000000..1692625b --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/yes_no/DialogYesNo.java @@ -0,0 +1,52 @@ +package it.integry.integrywmsnative.view.dialogs.yes_no; + +import android.app.Dialog; +import android.content.Context; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.view.LayoutInflater; + +import androidx.databinding.DataBindingUtil; +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.databinding.DialogYesNoBinding; +import it.integry.integrywmsnative.view.dialogs.DialogConsts; + +public class DialogYesNo { + + private Dialog currentDialog; + + public static Dialog make(final Context context, final String title, final String description, RunnableArgs onDialogDismiss) { + return new DialogYesNo(context, title, description, onDialogDismiss).currentDialog; + } + + private DialogYesNo(Context context, String title, String description, RunnableArgs onDialogDismiss) { + LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); + DialogYesNoBinding bindings = DataBindingUtil.inflate(inflater, R.layout.dialog_yes_no, null, false); + + currentDialog = new Dialog(context); + + currentDialog.setContentView(bindings.getRoot()); + + currentDialog.setCancelable(false); + currentDialog.setCanceledOnTouchOutside(false); + currentDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + + bindings.titleText.setText(title); + bindings.descriptionText.setText(description); + + bindings.buttonYes.setOnClickListener(v -> { + onDialogDismiss.run(DialogConsts.Results.YES); + currentDialog.dismiss(); + }); + + bindings.buttonNo.setOnClickListener(v -> { + onDialogDismiss.run(DialogConsts.Results.NO); + currentDialog.dismiss(); + }); + + + } + + +} diff --git a/app/src/main/res/layout/dialog_ask_livello_of_position.xml b/app/src/main/res/layout/dialog_ask_livello_of_position.xml index 4b7705d1..f77965dd 100644 --- a/app/src/main/res/layout/dialog_ask_livello_of_position.xml +++ b/app/src/main/res/layout/dialog_ask_livello_of_position.xml @@ -9,30 +9,60 @@ type="android.content.Context" /> - + + android:orientation="vertical"> - + + + + + - + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_ask_position_of_lu.xml b/app/src/main/res/layout/dialog_ask_position_of_lu.xml index ecc2bc56..4c30f378 100644 --- a/app/src/main/res/layout/dialog_ask_position_of_lu.xml +++ b/app/src/main/res/layout/dialog_ask_position_of_lu.xml @@ -9,32 +9,61 @@ type="android.content.Context" /> - + + + android:orientation="vertical"> - + android:background="@color/light_blue_300" + android:gravity="center_horizontal"> - + + + + + + + android:layout_height="wrap_content" + android:orientation="vertical" + android:paddingTop="24dp" + android:paddingLeft="24dp" + android:paddingRight="24dp"> - + + + + + + + + + diff --git a/app/src/main/res/layout/dialog_ask_position_of_lu__page1.xml b/app/src/main/res/layout/dialog_ask_position_of_lu__page1.xml index 71e8d0ef..1adb59e9 100644 --- a/app/src/main/res/layout/dialog_ask_position_of_lu__page1.xml +++ b/app/src/main/res/layout/dialog_ask_position_of_lu__page1.xml @@ -2,7 +2,7 @@ diff --git a/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml b/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml index e421bc3e..c7ef9e8e 100644 --- a/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml +++ b/app/src/main/res/layout/dialog_ask_position_of_lu__page2.xml @@ -3,7 +3,8 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="wrap_content" + android:layout_margin="16dp"> diff --git a/app/src/main/res/layout/dialog_exception.xml b/app/src/main/res/layout/dialog_exception.xml index edd4c9de..6cd10b60 100644 --- a/app/src/main/res/layout/dialog_exception.xml +++ b/app/src/main/res/layout/dialog_exception.xml @@ -46,7 +46,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" style="@style/TextViewMaterial" - android:text="L'errore è stato comunicato allo sviluppatore. Verrà analizzato e risolto al più presto" + android:text="L'errore è stato comunicato al team di supporto. Verrà analizzato e risolto al più presto" android:gravity="left" android:layout_marginTop="16dp" android:layout_marginBottom="16dp" /> 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 8567a50a..d4f772fb 100644 --- a/app/src/main/res/layout/dialog_input_quantity_articolo.xml +++ b/app/src/main/res/layout/dialog_input_quantity_articolo.xml @@ -230,6 +230,7 @@ android:layout_height="wrap_content" android:enabled="@{quantityViewModel.canPartitaMagBeChanged}" app:hintTextAppearance="@style/hint_text" + app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toStartOf="@id/guideline_partita_data" android:nextFocusRight="@+id/input_data_scad"> @@ -239,6 +240,7 @@ android:layout_height="wrap_content" android:inputType="textNoSuggestions" android:hint="@string/batch_lot" + android:textAllCaps="true" app:binding="@{quantityViewModel.batchLot}"/> diff --git a/app/src/main/res/layout/dialog_yes_no.xml b/app/src/main/res/layout/dialog_yes_no.xml new file mode 100644 index 00000000..230d60b8 --- /dev/null +++ b/app/src/main/res/layout/dialog_yes_no.xml @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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 19361543..0851f91a 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -185,8 +185,11 @@ Attendi qualche istante - Stampante Accettazione Stampante Vendita + Si + No + + Posizionamento \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index a5441545..212e02ae 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -31,6 +31,8 @@ #795548 + #81c784 + #66bb6a #884CAF50 #4CAF50 #43A047 @@ -48,6 +50,10 @@ #303F9F + + #4fc3f7 + + #88FB8C00 #FB8C00 #F57C00 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index aa7803ff..476062b2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -192,5 +192,9 @@ Check In printer Check Out printer + Yes + No + + Placement diff --git a/build.gradle b/build.gradle index 525955e1..66ddbd98 100644 --- a/build.gradle +++ b/build.gradle @@ -2,8 +2,7 @@ buildscript { ext{ - kotlin_version = '1.3.11' - gradle_version = '3.2.1' + kotlin_version = '1.3.21' } repositories { @@ -15,7 +14,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.3.1' + classpath 'com.android.tools.build:gradle:3.3.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.2.0' classpath 'com.google.firebase:firebase-plugins:1.1.5'