From cc333c3147aad0a5065189f3e4cf533dbc704f86 Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Mon, 12 Apr 2021 12:47:28 +0200 Subject: [PATCH] Mini refactoring DialogAskCliente --- .../picking_libero/PickingLiberoFragment.java | 17 +-- .../PickingLiberoViewModel.java | 2 + .../dialogs/ask_cliente/DialogAskCliente.java | 109 -------------- .../ask_cliente/DialogAskClienteAdapter.java | 8 +- .../ask_cliente/DialogAskClienteView.java | 142 ++++++++++++++++++ 5 files changed, 150 insertions(+), 128 deletions(-) delete mode 100644 app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/DialogAskCliente.java create mode 100644 app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/DialogAskClienteView.java 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 bad33b1e..ee558fd1 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 @@ -53,8 +53,7 @@ import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO; import it.integry.integrywmsnative.gest.spedizione.model.PickingObjectDTO; import it.integry.integrywmsnative.ui.ElevatedToolbar; import it.integry.integrywmsnative.view.bottom_sheet__mtb_colr_edit.BottomSheetMtbColrEditView; -import it.integry.integrywmsnative.view.dialogs.DialogConsts; -import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskCliente; +import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteView; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts; import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO; @@ -290,13 +289,8 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme @Override public void onLUClienteRequired(RunnableArgss onComplete, Runnable onAbort) { - DialogAskCliente.makeBase(getActivity(), (status, result, codJcom) -> { - if (status == DialogConsts.Results.YES) { - onComplete.run(result, codJcom); - } else { - onAbort.run(); - } - }).show(); + DialogAskClienteView.newInstance(onComplete, onAbort) + .show(getActivity().getSupportFragmentManager(), "tag"); } @Override @@ -305,7 +299,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme onAbort.run(); BarcodeManager.enable(); }) - .show(); + .show(); } @Override @@ -368,7 +362,6 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme } - @Override public void onMtbColrEdit(MtbColr mtbColr) { this.mViewModel.dispatchRowEdit(mtbColr); @@ -382,7 +375,7 @@ public class PickingLiberoFragment extends BaseFragment implements ITitledFragme @Override public void onPreDestroy(Runnable onComplete) { BarcodeManager.removeCallback(barcodeScannerIstanceID); - if(thereIsAnOpenedUL.get()) mViewModel.closeLU(onComplete); + if (thereIsAnOpenedUL.get()) mViewModel.closeLU(onComplete); else onComplete.run(); } 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 affe0be1..91cb7838 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 @@ -179,7 +179,9 @@ public class PickingLiberoViewModel { public void createNewLU(Integer customNumCollo, String customSerCollo, Runnable onComplete) { if (this.mFlagAskCliente) { + this.sendOnLoadingEnded(); this.sendLUClienteRequired((vtbDest, codJcom) -> { + this.sendOnLoadingStarted(); createNewLU_PostClienteAsk(customNumCollo, customSerCollo, vtbDest, codJcom, onComplete); }, onComplete); } else { diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/DialogAskCliente.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/DialogAskCliente.java deleted file mode 100644 index 90e693c3..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/DialogAskCliente.java +++ /dev/null @@ -1,109 +0,0 @@ -package it.integry.integrywmsnative.view.dialogs.ask_cliente; - -import android.app.Dialog; -import android.content.Context; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; -import android.view.LayoutInflater; -import android.view.WindowManager; - -import androidx.databinding.DataBindingUtil; - -import java.util.AbstractMap; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import it.integry.integrywmsnative.R; -import it.integry.integrywmsnative.core.expansion.RunnableArgsss; -import it.integry.integrywmsnative.core.model.VtbDest; -import it.integry.integrywmsnative.core.utility.UtilityDialog; -import it.integry.integrywmsnative.core.utility.UtilityString; -import it.integry.integrywmsnative.databinding.DialogAskClienteBinding; -import it.integry.integrywmsnative.view.dialogs.DialogConsts; -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; - -public class DialogAskCliente { - - private Context mContext; - - private Dialog mDialog; - - private DialogAskClienteBinding mBinding; - - - public static Dialog makeBase(final Context context, RunnableArgsss onComplete) { - return new DialogAskCliente(context, onComplete).mDialog; - } - - public DialogAskCliente(Context context, RunnableArgsss onComplete) { - mContext = context; - - - LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE ); - mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_ask_cliente, null, false); - - 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)); - - - - DialogAskClienteAdapter adapter = new DialogAskClienteAdapter(mContext, views); - mBinding.viewpager.setAdapter(adapter); - mBinding.viewpager.beginFakeDrag(); - mBinding.viewpager.addOnPageChangeListener(adapter); - - - - mDialog = new Dialog(mContext); - mDialog.setContentView(mBinding.getRoot()); - mDialog.setCanceledOnTouchOutside(false); -// mDialog.setCancelable(false); - UtilityDialog.setTo90PercentWidth(mContext, mDialog); - mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); - mDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); - - - mDialog.setOnShowListener(dialog -> { - - DialogAskCliente_Page1ViewModel viewModel1 = (DialogAskCliente_Page1ViewModel) adapter.getViewModel(R.layout.dialog_ask_cliente__page1); - DialogAskCliente_Page2ViewModel viewModel2 = (DialogAskCliente_Page2ViewModel) adapter.getViewModel(R.layout.dialog_ask_cliente__page2); - - viewModel1 - .setOnConfirmClickListener(() -> { - String codAnag = viewModel1.getCurrentCliente(); - - if(UtilityString.isNullOrEmpty(codAnag)) { - mDialog.dismiss(); - onComplete.run(DialogConsts.Results.YES, null, null); - } - - viewModel2.setCodAnag(codAnag); - - mBinding.viewpager.setCurrentItem(mBinding.viewpager.getCurrentItem() + 1, true); - }); - - viewModel1.setOnAbortClickListener(() -> { - mDialog.dismiss(); - onComplete.run(DialogConsts.Results.ABORT, null, null); - }); - - viewModel2.setOnConfirmClickListener(() -> { - DialogAskClienteDestinatarioDTO cliente = viewModel2.getCurrentDestinatario(); - - onComplete.run(DialogConsts.Results.YES, cliente != null ? cliente.toVtbDestModel() : null, viewModel1.getCurrentCommessa()); - mDialog.dismiss(); - }); - - viewModel2.setOnAbortClickListener(() -> { - mDialog.dismiss(); - onComplete.run(DialogConsts.Results.ABORT, null, null); - }); - - }); - - } -} 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 bc7c418d..05477fd1 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 @@ -1,7 +1,6 @@ package it.integry.integrywmsnative.view.dialogs.ask_cliente; import android.content.Context; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -15,13 +14,10 @@ import androidx.viewpager.widget.ViewPager; import java.util.AbstractMap; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; import it.integry.integrywmsnative.BR; -import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.ui.DeactivatableViewPager; import it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel.IDialogAskClienteViewModel; @@ -58,9 +54,7 @@ public class DialogAskClienteAdapter extends PagerAdapter implements ViewPager.O viewModel = (IDialogAskClienteViewModel) viewModelClass.newInstance(); viewModel.setBinding(mBinding); viewModel.setContext(mContext); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } catch (InstantiationException e) { + } catch (IllegalAccessException | InstantiationException e) { e.printStackTrace(); } 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 new file mode 100644 index 00000000..ccd1b16a --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/ask_cliente/DialogAskClienteView.java @@ -0,0 +1,142 @@ +package it.integry.integrywmsnative.view.dialogs.ask_cliente; + +import android.content.DialogInterface; +import android.graphics.Color; +import android.graphics.drawable.ColorDrawable; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.view.WindowManager; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.databinding.DataBindingUtil; +import androidx.fragment.app.FragmentActivity; + +import org.jetbrains.annotations.NotNull; + +import java.util.AbstractMap; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; +import it.integry.integrywmsnative.core.expansion.RunnableArgss; +import it.integry.integrywmsnative.core.model.VtbDest; +import it.integry.integrywmsnative.core.utility.UtilityDialog; +import it.integry.integrywmsnative.core.utility.UtilityString; +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; + +public class DialogAskClienteView extends BaseDialogFragment { + + private final RunnableArgss mOnComplete; + private final Runnable mOnAbort; + + private DialogAskClienteAdapter mAdapter; + + private FragmentActivity mContext; + private DialogAskClienteBinding mBindings; + + private boolean mIsClienteSelected = false; + + public static DialogAskClienteView newInstance(@NotNull RunnableArgss onComplete, @NotNull Runnable onAbort) { + return new DialogAskClienteView( onComplete, onAbort); + } + + private DialogAskClienteView(@NotNull RunnableArgss onComplete, @NotNull Runnable onAbort) { + super(); + + this.mOnComplete = onComplete; + this.mOnAbort = onAbort; + } + + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + this.mContext = getActivity(); + + mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_ask_cliente, container, false); + mBindings.setLifecycleOwner(this); + + getDialog().setCanceledOnTouchOutside(false); + getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + getDialog().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE); + + + 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)); + + mAdapter = new DialogAskClienteAdapter(mContext, views); + mBindings.viewpager.setAdapter(mAdapter); + mBindings.viewpager.beginFakeDrag(); + mBindings.viewpager.addOnPageChangeListener(mAdapter); + mBindings.viewpager.setCurrentItem(0, false); + + getDialog().setOnShowListener(d -> { + this.initView(); + }); + + return mBindings.getRoot(); + } + + @Override + public void onStart() { + super.onStart(); + UtilityDialog.setTo90PercentWidth(this.mContext, this); + } + + + @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); + + viewModel1 + .setOnConfirmClickListener(() -> { + String codAnag = viewModel1.getCurrentCliente(); + + if(UtilityString.isNullOrEmpty(codAnag)) { + this.mIsClienteSelected = true; + dismiss(); + mOnComplete.run(null, null); + } + + viewModel2.setCodAnag(codAnag); + + mBindings.viewpager.setCurrentItem(mBindings.viewpager.getCurrentItem() + 1, true); + }); + + viewModel2.setOnConfirmClickListener(() -> { + DialogAskClienteDestinatarioDTO cliente = viewModel2.getCurrentDestinatario(); + + this.mIsClienteSelected = true; + dismiss(); + mOnComplete.run(cliente != null ? cliente.toVtbDestModel() : null, viewModel1.getCurrentCommessa()); + }); + + + viewModel1.setOnAbortClickListener(this::dismiss); + viewModel2.setOnAbortClickListener(this::dismiss); + } + + + @Override + public void onDismiss(@NonNull DialogInterface dialog) { + if(!mIsClienteSelected) { + this.mOnAbort.run(); + } + super.onDismiss(dialog); + } + +}