From 5476e9633e468bfdf0dd406cf8ed2cf64f05d99c Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Wed, 23 Feb 2022 12:42:30 +0100 Subject: [PATCH] Migliorato rendering di dialog ask cliente e fix su check delle posizioni da cache --- .../core/expansion/BaseFragment.java | 14 +- .../core/utility/UtilityPosizione.java | 7 +- .../picking_libero/PickingLiberoFragment.java | 9 +- .../PickingLiberoViewModel.java | 3 +- .../ask_cliente/DialogAskClienteAdapter.java | 41 +++--- .../ask_cliente/DialogAskClienteView.java | 18 +-- .../DialogAskCliente_Page1ViewModel.java | 34 +++-- .../DialogAskCliente_Page2ViewModel.java | 30 ++-- .../main/res/layout/dialog_ask_cliente.xml | 53 +------ .../res/layout/dialog_ask_cliente__page1.xml | 109 +++++++------- .../res/layout/dialog_ask_cliente__page2.xml | 134 ++++++++---------- 11 files changed, 205 insertions(+), 247 deletions(-) diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseFragment.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseFragment.java index 7c6281b1..a11f7412 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseFragment.java @@ -53,21 +53,17 @@ public abstract class BaseFragment extends Fragment { } public void onLoadingStarted() { - new Thread(() -> { - BarcodeManager.disable(); - this.openProgress(); - }).start(); + BarcodeManager.disable(); + this.openProgress(); } public void onLoadingEnded() { - new Thread(() -> { - this.closeProgress(); - BarcodeManager.enable(); - }).start(); + this.closeProgress(); + BarcodeManager.enable(); } public void onError(Exception ex) { - this.getActivity().runOnUiThread(() -> { + requireActivity().runOnUiThread(() -> { this.closeProgress(); UtilityExceptions.defaultException(getActivity(), ex, mCurrentProgress); BarcodeManager.enable(); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityPosizione.java b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityPosizione.java index 67974ed9..de3b328f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityPosizione.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/utility/UtilityPosizione.java @@ -31,10 +31,13 @@ public class UtilityPosizione { } public static MtbDepoPosizione getFromCache(String posizione) { - List tmpList = Stream.of(SettingsManager.iDB().getAvailablePosizioni()) + var availablePosizioni = SettingsManager.iDB().getAvailablePosizioni(); + if(availablePosizioni == null) return null; + + List tmpList = Stream.of(availablePosizioni) .filter(x -> x.getPosizione().equalsIgnoreCase(posizione)).toList(); - if(tmpList != null && tmpList.size() > 0) return tmpList.get(0); + if(tmpList.size() > 0) return tmpList.get(0); else return null; } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java index e262a91a..49931645 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoFragment.java @@ -155,6 +155,8 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() .setOnScanSuccessfull(onScanSuccessful) .setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false))); + + BarcodeManager.enable(); } private void initBottomSheet() { @@ -199,10 +201,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme }; public void createNewLU() { - this.onLoadingStarted(); - this.mViewModel.createNewLU(null, null, () -> { - this.onLoadingEnded(); }); } @@ -227,7 +226,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme @Override public void onLUOpened(MtbColt mtbColt) { - getActivity().runOnUiThread(() -> { + requireActivity().runOnUiThread(() -> { mToolbarTitleText.setText(String.format(getActivity().getText(R.string.lu_number_text).toString(), mtbColt.getNumCollo())); initAdapter(); @@ -248,7 +247,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme @Override public void onLUClosed() { - getActivity().runOnUiThread(() -> { + requireActivity().runOnUiThread(() -> { mToolbarTitleText.setText(getActivity().getText(R.string.free_picking_title_fragment).toString()); destroyAdapter(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java index ba319efc..9224d462 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/PickingLiberoViewModel.java @@ -229,7 +229,6 @@ public class PickingLiberoViewModel { public void createNewLU(Integer customNumCollo, String customSerCollo, Runnable onComplete) { if (this.mFlagAskCliente) { - this.sendOnLoadingEnded(); this.sendLUClienteRequired((vtbDest, codJcom) -> { createNewLU_PostClienteAsk(customNumCollo, customSerCollo, vtbDest, codJcom, onComplete); }, () -> { @@ -276,6 +275,8 @@ public class PickingLiberoViewModel { this.mCurrentMtbColt = mtbColt; + this.sendOnLoadingEnded(); + if (onComplete != null) onComplete.run(); this.sendLUOpened(mtbColt); }, this::sendError); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/DialogAskClienteAdapter.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/DialogAskClienteAdapter.java index 21db78f8..74fcf726 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/DialogAskClienteAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/DialogAskClienteAdapter.java @@ -23,17 +23,31 @@ import it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel.IDialogAsk public class DialogAskClienteAdapter extends PagerAdapter implements ViewPager.OnPageChangeListener { - private Context mContext; + private final Context mContext; - private List> mDatasetLayout; - private List> mDatasetViews; + private final List>> mDatasetLayout; + private final List> mDatasetViews; + private final List mDatasetViewModels; private DeactivatableViewPager viewPager; - public DialogAskClienteAdapter(Context context, List> datasetLayouts) { + public DialogAskClienteAdapter(Context context, List>> datasetLayouts) { this.mContext = context; this.mDatasetLayout = datasetLayouts; this.mDatasetViews = new ArrayList<>(); + this.mDatasetViewModels = new ArrayList<>(); + + + for (var viewModelEntry : mDatasetLayout) { + var viewModelClazz = viewModelEntry.getValue(); + + try { + IDialogAskClienteViewModel viewModel = viewModelClazz.newInstance(); + mDatasetViewModels.add(viewModel); + } catch (IllegalAccessException | InstantiationException e) { + e.printStackTrace(); + } + } } @@ -43,20 +57,13 @@ public class DialogAskClienteAdapter extends PagerAdapter implements ViewPager.O Integer viewId = mDatasetLayout.get(position).getKey(); - LayoutInflater inflater = (LayoutInflater) mContext.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); - ViewDataBinding mBinding = DataBindingUtil.inflate(inflater, viewId, null, false); + ViewDataBinding mBinding = DataBindingUtil.inflate(inflater, viewId, container, false); - Class viewModelClass = mDatasetLayout.get(position).getValue(); - IDialogAskClienteViewModel viewModel = null; - try { - viewModel = (IDialogAskClienteViewModel) viewModelClass.newInstance(); - viewModel.setBinding(mBinding); - viewModel.setContext(mContext); - } catch (IllegalAccessException | InstantiationException e) { - e.printStackTrace(); - } + var viewModel = this.mDatasetViewModels.get(position); + viewModel.setBinding(mBinding); + viewModel.setContext(mContext); mBinding.setVariable(BR.viewmodel, viewModel); @@ -82,10 +89,10 @@ public class DialogAskClienteAdapter extends PagerAdapter implements ViewPager.O return mDatasetLayout.size(); } - public IDialogAskClienteViewModel getViewModel(@NonNull int layoutID) { + public IDialogAskClienteViewModel getViewModel(int layoutID) { for(int i = 0; i < mDatasetLayout.size(); i++) { if(mDatasetLayout.get(i).getKey() == layoutID) { - return this.mDatasetViews.get(i).getValue(); + return this.mDatasetViewModels.get(i); } } return null; diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/DialogAskClienteView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/DialogAskClienteView.java index cbd5f1d8..7a24d2b2 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/DialogAskClienteView.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/DialogAskClienteView.java @@ -31,6 +31,7 @@ import it.integry.integrywmsnative.databinding.DialogAskClienteBinding; import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteDestinatarioDTO; import it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel.DialogAskCliente_Page1ViewModel; import it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel.DialogAskCliente_Page2ViewModel; +import it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel.IDialogAskClienteViewModel; public class DialogAskClienteView extends BaseDialogFragment { @@ -45,7 +46,7 @@ public class DialogAskClienteView extends BaseDialogFragment { private boolean mIsClienteSelected = false; public static DialogAskClienteView newInstance(@NotNull RunnableArgss onComplete, @NotNull Runnable onAbort) { - return new DialogAskClienteView( onComplete, onAbort); + return new DialogAskClienteView(onComplete, onAbort); } private DialogAskClienteView(@NotNull RunnableArgss onComplete, @NotNull Runnable onAbort) { @@ -69,7 +70,7 @@ public class DialogAskClienteView extends BaseDialogFragment { getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); - List> views = new ArrayList<>(); + List>> views = new ArrayList<>(); views.add(new AbstractMap.SimpleEntry<>(R.layout.dialog_ask_cliente__page1, DialogAskCliente_Page1ViewModel.class)); views.add(new AbstractMap.SimpleEntry<>(R.layout.dialog_ask_cliente__page2, DialogAskCliente_Page2ViewModel.class)); @@ -79,9 +80,7 @@ public class DialogAskClienteView extends BaseDialogFragment { mBindings.viewpager.addOnPageChangeListener(mAdapter); mBindings.viewpager.setCurrentItem(0, false); - getDialog().setOnShowListener(d -> { - this.initView(); - }); + this.initView(); return mBindings.getRoot(); } @@ -93,11 +92,6 @@ public class DialogAskClienteView extends BaseDialogFragment { } - @Override - public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { - super.onViewCreated(view, savedInstanceState); - } - private void initView() { DialogAskCliente_Page1ViewModel viewModel1 = (DialogAskCliente_Page1ViewModel) mAdapter.getViewModel(R.layout.dialog_ask_cliente__page1); DialogAskCliente_Page2ViewModel viewModel2 = (DialogAskCliente_Page2ViewModel) mAdapter.getViewModel(R.layout.dialog_ask_cliente__page2); @@ -106,7 +100,7 @@ public class DialogAskClienteView extends BaseDialogFragment { .setOnConfirmClickListener(() -> { String codAnag = viewModel1.getCurrentCliente(); - if(UtilityString.isNullOrEmpty(codAnag)) { + if (UtilityString.isNullOrEmpty(codAnag)) { this.mIsClienteSelected = true; dismiss(); mOnComplete.run(null, null); @@ -134,7 +128,7 @@ public class DialogAskClienteView extends BaseDialogFragment { @Override public void onDismiss(@NonNull DialogInterface dialog) { mAdapter.onDismiss(); - if(!mIsClienteSelected) { + if (!mIsClienteSelected) { this.mOnAbort.run(); } super.onDismiss(dialog); diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1ViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1ViewModel.java index 608c2269..ba437361 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1ViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page1ViewModel.java @@ -40,7 +40,10 @@ public class DialogAskCliente_Page1ViewModel implements IDialogAskClienteViewMod private int mBarcodeScannerInstanceID; private ArrayList availableClienti; - private ObservableArrayList codJcoms = new ObservableArrayList<>(); + private final ObservableArrayList codJcoms = new ObservableArrayList<>(); + + private Runnable onConfirmClickListener; + private Runnable onAbortClickListener; public DialogAskCliente_Page1ViewModel() { @@ -104,6 +107,20 @@ public class DialogAskCliente_Page1ViewModel implements IDialogAskClienteViewMod } }); + this.mBinding.buttonYes.setOnClickListener(v -> { + if (validateCliente()) { + this.resetClienteError(); + BarcodeManager.removeCallback(mBarcodeScannerInstanceID); + if (onConfirmClickListener != null) onConfirmClickListener.run(); + } else { + this.setClienteError(mContext.getResources().getText(R.string.not_valid_customer_error).toString()); + } + }); + + this.mBinding.buttonNo.setOnClickListener(v -> { + if (onAbortClickListener != null) onAbortClickListener.run(); + }); + } @Override @@ -113,16 +130,7 @@ public class DialogAskCliente_Page1ViewModel implements IDialogAskClienteViewMod @Override public void setOnConfirmClickListener(Runnable onConfirm) { - this.mBinding.buttonYes.setOnClickListener(v -> { - if (validateCliente()) { - this.resetClienteError(); - BarcodeManager.removeCallback(mBarcodeScannerInstanceID); - if (onConfirm != null) onConfirm.run(); - } else { - this.setClienteError(mContext.getResources().getText(R.string.not_valid_customer_error).toString()); - } - - }); + this.onConfirmClickListener = onConfirm; } @@ -174,9 +182,7 @@ public class DialogAskCliente_Page1ViewModel implements IDialogAskClienteViewMod @Override public void setOnAbortClickListener(Runnable onAbort) { - this.mBinding.buttonNo.setOnClickListener(v -> { - if (onAbort != null) onAbort.run(); - }); + this.onAbortClickListener = onAbort; } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page2ViewModel.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page2ViewModel.java index 2d4afc7b..d38aefef 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page2ViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/viewmodel/DialogAskCliente_Page2ViewModel.java @@ -25,6 +25,7 @@ public class DialogAskCliente_Page2ViewModel implements IDialogAskClienteViewMod private Context mContext; private Runnable mOnConfirm; + private Runnable mOnAbort; private List availableDestinatari; @@ -69,6 +70,21 @@ public class DialogAskCliente_Page2ViewModel implements IDialogAskClienteViewMod } }); + + + this.mBinding.buttonYes.setOnClickListener(v -> { + if (validateDestinatario()) { + this.resetClienteError(); + if (mOnConfirm != null) mOnConfirm.run(); + } else { + this.setClienteError(mContext.getResources().getText(R.string.not_valid_recipient_error).toString()); + } + }); + + + this.mBinding.buttonNo.setOnClickListener(v -> { + if (mOnAbort != null) mOnAbort.run(); + }); } @Override @@ -78,22 +94,11 @@ public class DialogAskCliente_Page2ViewModel implements IDialogAskClienteViewMod @Override public void setOnConfirmClickListener(Runnable onConfirm) { this.mOnConfirm = onConfirm; - this.mBinding.buttonYes.setOnClickListener(v -> { - if (validateDestinatario()) { - this.resetClienteError(); - if (onConfirm != null) onConfirm.run(); - } else { - this.setClienteError(mContext.getResources().getText(R.string.not_valid_recipient_error).toString()); - } - - }); } @Override public void setOnAbortClickListener(Runnable onAbort) { - this.mBinding.buttonNo.setOnClickListener(v -> { - if (onAbort != null) onAbort.run(); - }); + this.mOnAbort = onAbort; } public void setCodAnag(String codAnag) { @@ -102,7 +107,6 @@ public class DialogAskCliente_Page2ViewModel implements IDialogAskClienteViewMod private void initializeAdapter(ArrayList items) { - DialogAskCliente_Page2_ArrayAdapter adapter = new DialogAskCliente_Page2_ArrayAdapter(mContext, items); diff --git a/app/src/main/res/layout/dialog_ask_cliente.xml b/app/src/main/res/layout/dialog_ask_cliente.xml index a98e4009..746c356d 100644 --- a/app/src/main/res/layout/dialog_ask_cliente.xml +++ b/app/src/main/res/layout/dialog_ask_cliente.xml @@ -1,63 +1,24 @@ - - - - - - - - - - - - - - - - - - - - + android:layout_height="0dp" + android:layout_margin="24dp" /> - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_ask_cliente__page1.xml b/app/src/main/res/layout/dialog_ask_cliente__page1.xml index 34c2065a..b89e8b23 100644 --- a/app/src/main/res/layout/dialog_ask_cliente__page1.xml +++ b/app/src/main/res/layout/dialog_ask_cliente__page1.xml @@ -3,55 +3,59 @@ + - - - - - - - - + + + + + + + android:hint="@string/customer" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/description_text"> + android:ellipsize="end" + android:singleLine="true" /> @@ -60,64 +64,55 @@ style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense.ExposedDropdownMenu" android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="@string/job"> + android:hint="@string/job" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/input_cliente"> + android:ellipsize="end" + android:singleLine="true" /> - - - - - + app:layout_constraintGuide_percent="0.5" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/input_commessa" + app:strokeColor="@color/colorPrimary" /> + app:layout_constraintStart_toStartOf="@id/center_buttons_guideline" + app:layout_constraintTop_toBottomOf="@id/input_commessa" /> - \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_ask_cliente__page2.xml b/app/src/main/res/layout/dialog_ask_cliente__page2.xml index 4500a471..a110ea93 100644 --- a/app/src/main/res/layout/dialog_ask_cliente__page2.xml +++ b/app/src/main/res/layout/dialog_ask_cliente__page2.xml @@ -3,104 +3,96 @@ + - + android:orientation="vertical"> - - - + + - - + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:layout_marginBottom="8dp" + android:gravity="start" + android:text="@string/select_a_recipient_message" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/title_text" /> - + + + android:ellipsize="end" + android:singleLine="true" /> - - - - + - - - - - + android:orientation="vertical" + app:layout_constraintGuide_percent="0.5" /> - + - + - - - + \ No newline at end of file