diff --git a/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java b/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java index d1412345..e17ccd51 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/class_router/ClassRouter.java @@ -72,7 +72,7 @@ public class ClassRouter { return (T)clazz.newInstance(); } catch (InstantiationException | MethodPathNotRegisteredException | IllegalAccessException ex) { - UtilityExceptions.defaultException(context, ex, true); + UtilityExceptions.defaultException(null, ex, true); } return null; diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java index 1d10f38f..b2d41182 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/ColliMagazzinoRESTConsumer.java @@ -3,6 +3,8 @@ package it.integry.integrywmsnative.core.rest.consumers; import android.app.Dialog; import android.content.Context; +import androidx.databinding.ObservableArrayList; + import com.annimon.stream.Stream; import com.google.gson.Gson; import com.google.gson.JsonObject; @@ -50,15 +52,18 @@ public class ColliMagazzinoRESTConsumer extends _BaseRESTConsumer{ public static void saveCollo(MtbColt mtbColtToSave, RunnableArgs onComplete, RunnableArgs onFailed){ + MtbColt mtbColtToSaveClone = (MtbColt) mtbColtToSave.clone(); + mtbColtToSaveClone.setMtbColr(new ObservableArrayList<>()); for (int i = 0; i < mtbColtToSave.getMtbColr().size(); i++) { - mtbColtToSave.getMtbColr().get(i) - .setMtbAart(null) - .setRifPartitaMag(null); + mtbColtToSaveClone.getMtbColr().add( + ((MtbColr) mtbColtToSave.getMtbColr().get(i).clone()) + .setMtbAart(null) + .setRifPartitaMag(null)); } - EntityRESTConsumer.processEntity(mtbColtToSave, new ISimpleOperationCallback() { + EntityRESTConsumer.processEntity(mtbColtToSaveClone, new ISimpleOperationCallback() { @Override public void onSuccess(MtbColt value) { if(onComplete != null) onComplete.run(value); 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 ecafcc2c..4cb35c87 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 @@ -10,29 +10,31 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; -import androidx.appcompat.app.ActionBar; import androidx.databinding.DataBindingUtil; -import it.integry.integrywmsnative.BuildConfig; + import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO; import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.interfaces.IPoppableActivity; +import it.integry.integrywmsnative.core.interfaces.IScrollableFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment; import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding; -import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper; import it.integry.integrywmsnative.gest.picking_libero.viewmodel.PickingLiberoViewModel; +import it.integry.integrywmsnative.ui.ElevatedToolbar; /** * A simple {@link Fragment} subclass. */ -public class PickingLiberoFragment extends Fragment implements ITitledFragment { +public class PickingLiberoFragment extends Fragment implements ITitledFragment, IScrollableFragment { private FragmentPickingLiberoBinding mBindings; - private PickingLiberoHelper mHelper; private PickingLiberoViewModel mViewModel; - private AppCompatTextView mAppCompatActionBar; + + private Runnable mOnPreDestroy; + private ElevatedToolbar mToolbar; + private AppCompatTextView mToolbarTitleText; private int barcodeScannerIstanceID = -1; @@ -49,8 +51,8 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment { @Override public void onCreateActionBar(AppCompatTextView titleText, Context context) { - mAppCompatActionBar = titleText; - titleText.setText(context.getText(R.string.free_picking_title_fragment).toString()); + mToolbarTitleText = titleText; + mToolbarTitleText.setText(context.getText(R.string.free_picking_title_fragment).toString()); } @Override @@ -66,10 +68,9 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment { // Inflate the layout for this fragment mBindings = DataBindingUtil.inflate(inflater, R.layout.fragment_picking_libero, container, false); - mHelper = new PickingLiberoHelper(getActivity()); mViewModel = new PickingLiberoViewModel(); - mViewModel.init(getActivity(), mBindings, mHelper, mAppCompatActionBar, () -> { + mViewModel.init(getActivity(), mBindings, mToolbarTitleText, () -> { ((IPoppableActivity) getActivity()).pop(); }); @@ -80,7 +81,7 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment { .setOnScanFailed(ex -> UtilityExceptions.defaultException(getActivity(), ex, false))); - mBindings.elevatedToolbar.setNestedScrollView(mBindings.scrollView); + mToolbar.setRecyclerView(mBindings.pickingLiberoMainList); return mBindings.getRoot(); } @@ -89,7 +90,17 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment { public void onDestroyView() { mViewModel.closeLU(); BarcodeManager.removeCallback(barcodeScannerIstanceID); + if(mOnPreDestroy != null) mOnPreDestroy.run(); super.onDestroyView(); } + @Override + public void setScrollToolbar(ElevatedToolbar toolbar) { + mToolbar = toolbar; + } + + @Override + public void setOnPreDestroy(Runnable onPreDestroy) { + mOnPreDestroy = onPreDestroy; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/core/PickingLiberoHelper.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/core/PickingLiberoHelper.java deleted file mode 100644 index 1d0cc315..00000000 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/core/PickingLiberoHelper.java +++ /dev/null @@ -1,13 +0,0 @@ -package it.integry.integrywmsnative.gest.picking_libero.core; - -import android.content.Context; - -public class PickingLiberoHelper { - - private final Context mContext; - - public PickingLiberoHelper(Context context) { - mContext = context; - } - -} diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java index 3498a8d7..bb7b2bb0 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/picking_libero/viewmodel/PickingLiberoViewModel.java @@ -2,7 +2,6 @@ package it.integry.integrywmsnative.gest.picking_libero.viewmodel; import android.app.Activity; import android.app.Dialog; -import android.app.ProgressDialog; import android.text.SpannableString; import android.view.View; @@ -50,8 +49,8 @@ import it.integry.integrywmsnative.core.utility.UtilityNumber; import it.integry.integrywmsnative.core.utility.UtilityProgress; import it.integry.integrywmsnative.core.utility.UtilityString; import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding; -import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper; import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoListAdapter; +import it.integry.integrywmsnative.ui.ElevatedToolbar; import it.integry.integrywmsnative.view.dialogs.DialogConsts; import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskCliente; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper; @@ -73,17 +72,15 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { private Activity mContext; private FragmentPickingLiberoBinding mBinding; - private PickingLiberoHelper mHelper; - private AppCompatTextView mAppBarTitle; + private AppCompatTextView mToolbarTitleText; private PickingLiberoListAdapter mAdapter; - public void init(Activity context, FragmentPickingLiberoBinding binding, PickingLiberoHelper helper, AppCompatTextView titleText, Runnable onComplete) { + public void init(Activity context, FragmentPickingLiberoBinding binding, AppCompatTextView toolbarTitleText, Runnable onComplete) { mContext = context; mBinding = binding; - mHelper = helper; - mAppBarTitle = titleText; + mToolbarTitleText = toolbarTitleText; initObservable(); @@ -108,14 +105,14 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { if(mtbColt.get() != null) { initAdapter(); - if(mAppBarTitle != null) mAppBarTitle.setText(String.format(mContext.getText(R.string.lu_number_text).toString(), mtbColt.get().getNumCollo())); + if(mToolbarTitleText != null) mToolbarTitleText.setText(String.format(mContext.getText(R.string.lu_number_text).toString(), mtbColt.get().getNumCollo())); initObservableMtbColr(); } else { destroyAdapter(); - mAppBarTitle.setText(mContext.getText(R.string.free_picking).toString()); + mToolbarTitleText.setText(mContext.getText(R.string.free_picking).toString()); } thereIsAnOpenedUL.set(mtbColt.get() != null); @@ -555,6 +552,8 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked { private void saveLU(MtbColt mtbColtToSave) { mtbColtToSave.setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); + + for(int i = 0; i < mtbColtToSave.getMtbColr().size(); i++) { mtbColtToSave.getMtbColr().get(i).setOperation(CommonModelConsts.OPERATION.INSERT_OR_UPDATE); } diff --git a/app/src/main/res/layout/fragment_picking_libero.xml b/app/src/main/res/layout/fragment_picking_libero.xml index a010a489..2f28004e 100644 --- a/app/src/main/res/layout/fragment_picking_libero.xml +++ b/app/src/main/res/layout/fragment_picking_libero.xml @@ -20,73 +20,17 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:layout_height="wrap_content" + android:layout_marginTop="16dp" + android:layout_marginBottom="92dp" + android:paddingStart="2dp" + android:paddingEnd="2dp"> +