diff --git a/app/build.gradle b/app/build.gradle index b271e58a..713b015d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 518 - def appVersionName = '1.47.05' + def appVersionCode = 519 + def appVersionName = '1.47.06' signingConfigs { release { diff --git a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java index f32d4496..8f7bcf4a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java +++ b/app/src/main/java/it/integry/integrywmsnative/MainApplicationComponent.java @@ -106,6 +106,8 @@ import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbiso import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.prod_fabbisogno_linee_prod.DialogRowInfoProdFabbisognoLineeProdModule; import it.integry.integrywmsnative.gest.trasferimento_pedane.TrasferimentoPedaneComponent; import it.integry.integrywmsnative.gest.trasferimento_pedane.TrasferimentoPedaneModule; +import it.integry.integrywmsnative.gest.trasferimento_pedane.dialog.confirm_export.DialogTrasferimentoPedaneConfirmExportComponent; +import it.integry.integrywmsnative.gest.trasferimento_pedane.dialog.confirm_export.DialogTrasferimentoPedaneConfirmExportModule; import it.integry.integrywmsnative.gest.trasferimento_pedane.edit.TrasferimentoPedaneEditComponent; import it.integry.integrywmsnative.gest.trasferimento_pedane.edit.TrasferimentoPedaneEditModule; import it.integry.integrywmsnative.gest.ultime_consegne_cliente.UltimeConsegneClienteComponent; @@ -270,7 +272,8 @@ import it.integry.integrywmsnative.view.dialogs.update_available.DialogUpdateAva DialogSelectPositionOfLuModule.class, TrasferimentoPedaneModule.class, DialogAskInfoTrasferimentoModule.class, - TrasferimentoPedaneEditModule.class + TrasferimentoPedaneEditModule.class, + DialogTrasferimentoPedaneConfirmExportModule.class }) public interface MainApplicationComponent { @@ -455,6 +458,8 @@ public interface MainApplicationComponent { TrasferimentoPedaneEditComponent.Factory traferimentoPedaneEditComponent(); + DialogTrasferimentoPedaneConfirmExportComponent.Factory dialogTrasferimentoPedaneConfirmExportComponent(); + void inject(MainApplication mainApplication); void inject(AppContext mainApplication); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/TrasferimentoPedaneRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/TrasferimentoPedaneRESTConsumer.java index 520c2133..4e8b44ea 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/TrasferimentoPedaneRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/TrasferimentoPedaneRESTConsumer.java @@ -26,10 +26,11 @@ public class TrasferimentoPedaneRESTConsumer extends _BaseRESTConsumer { this.executorService = executorService; } - public MtbColt makeSynchronousSaveRequest(String codMdepDest, List barcodeUlList) throws Exception { + public MtbColt makeSynchronousSaveRequest(String codMdepDest, String annotazioni, List barcodeUlList) throws Exception { var service = restBuilder.getService(TrasferimentoPedaneRESTConsumerService.class); Response> response = service.save(new SaveTrasferimentoPedaneRequestDTO() {{ setCodMdepDest(codMdepDest); + setAnnotazioni(annotazioni); setBarcodeUlList(barcodeUlList); }}) .execute(); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/trasferimento_pedane/SaveTrasferimentoPedaneRequestDTO.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/trasferimento_pedane/SaveTrasferimentoPedaneRequestDTO.java index e1ba05fc..b865e7eb 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/model/trasferimento_pedane/SaveTrasferimentoPedaneRequestDTO.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/model/trasferimento_pedane/SaveTrasferimentoPedaneRequestDTO.java @@ -8,6 +8,9 @@ public class SaveTrasferimentoPedaneRequestDTO { @SerializedName("codMdepDest") private String codMdepDest; + @SerializedName("annotazioni") + private String annotazioni; + @SerializedName("barcodeUlList") private List barcodeUlList; @@ -21,6 +24,14 @@ public class SaveTrasferimentoPedaneRequestDTO { return this; } + public String getAnnotazioni() { + return annotazioni; + } + + public void setAnnotazioni(String annotazioni) { + this.annotazioni = annotazioni; + } + public List getBarcodeUlList() { return barcodeUlList; } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/ProdRientroMerceFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/ProdRientroMerceFragment.java index 82036404..40cb203a 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/ProdRientroMerceFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/ProdRientroMerceFragment.java @@ -82,7 +82,7 @@ public class ProdRientroMerceFragment extends BaseFragment implements getChildFragmentManager() .beginTransaction() .show(mProdRientroMerceOrderDetailFragment) - .addToBackStack(ProdRientroMerceOrderDetailFragment.class.getName()) + .addToBackStack(null) .commit(); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailFragment.java index d5859a5a..4f611e60 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_detail/ProdRientroMerceOrderDetailFragment.java @@ -9,6 +9,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Toast; +import androidx.activity.OnBackPressedCallback; import androidx.core.content.ContextCompat; import androidx.databinding.ObservableArrayList; import androidx.databinding.ObservableField; @@ -28,6 +29,7 @@ import java.util.List; import javax.inject.Inject; import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.CompositeDisposable; import io.reactivex.schedulers.Schedulers; import it.integry.integrywmsnative.MainApplication; import it.integry.integrywmsnative.R; @@ -84,6 +86,9 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements public ObservableField progress = new ObservableField<>(0); public ObservableField isOrderColli = new ObservableField<>(false); + private boolean isLargeLayout = false; + private final CompositeDisposable mDisposables = new CompositeDisposable(); + public ProdRientroMerceOrderDetailFragment() { // Required empty public constructor } @@ -92,15 +97,21 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements return new ProdRientroMerceOrderDetailFragment(); } - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setRetainInstance(true); - } +// @Override +// public void onCreate(Bundle savedInstanceState) { +// super.onCreate(savedInstanceState); +// setRetainInstance(true); +// } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + + isLargeLayout = getResources().getBoolean(R.bool.large_layout); + if (!isLargeLayout) { + requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(), backPressedCallback); + } + // Inflate the layout for this fragment mBindings = FragmentProdRientroMerceOrderDetailBinding.inflate(LayoutInflater.from(getActivity()), container, false); mBindings.setLifecycleOwner(getViewLifecycleOwner()); @@ -171,6 +182,7 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements .observeOn(AndroidSchedulers.mainThread()) .subscribe(this::onConnected, x -> this.onError(new BluetoothConnectionException(btName, btMacAddress, x))); + mDisposables.add(disposableBluetooth); } public MutableLiveData getCurrentOrder() { @@ -182,15 +194,25 @@ public class ProdRientroMerceOrderDetailFragment extends BaseFragment implements mConnectedBluetoothDevice = connectedDevice; } - @Override - public void onDetach() { - mLatestCodTcol = null; - if (mConnectedBluetoothDevice != null) - bluetoothManager.close(); + private final OnBackPressedCallback backPressedCallback = new OnBackPressedCallback(true) { + @Override + public void handleOnBackPressed() { + // Rimuove il fragment corrente dal back stack + getParentFragmentManager().popBackStack(); + } + }; - super.onDetach(); + @Override + public void onDestroyView() { + mLatestCodTcol = null; +// if (mConnectedBluetoothDevice != null) +// bluetoothManager.close(); + mDisposables.clear(); + + super.onDestroyView(); } + public void setOrder(OrdineLavorazioneDTO order) { currentOrder.setValue(order); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListFilterViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListFilterViewModel.java index 9603adbd..312e6778 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListFilterViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListFilterViewModel.java @@ -72,13 +72,14 @@ public class ProdRientroMerceOrderListFilterViewModel { List codJcom = initialOrderList.stream() .map(OrdineLavorazioneDTO::getCodJcom) .distinct() - .collect(Collectors.toUnmodifiableList()); + .filter(Objects::nonNull) + .collect(Collectors.toList()); return Objects.requireNonNull(commesseFullList).stream() .filter(x -> x != null && codJcom.contains(x.getCodJcom())) .distinct() .sorted(Comparator.comparing(JtbComt::getCodJcom)) - .collect(Collectors.toUnmodifiableList()); + .collect(Collectors.toList()); } public List getAvailableCommesse(List commesseFullList) { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListFragment.java index 7d1bddee..1095cdf6 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_rientro_merce/order_list/ProdRientroMerceOrderListFragment.java @@ -62,7 +62,7 @@ public class ProdRientroMerceOrderListFragment extends Fragment { private OnRefreshListener onRefreshListener; private final ProdRientroMerceOrderListFilterViewModel mAppliedFilterViewModel = new ProdRientroMerceOrderListFilterViewModel(); - private List internalOrderList = new ArrayList<>(); + private List internalOrderList; private List jtbComtCache; @@ -187,6 +187,9 @@ public class ProdRientroMerceOrderListFragment extends Fragment { private void initBottomSheetDialogFilter(FilterChipDTO filterChipDTO) { + if(internalOrderList == null) + return; + filterChipDTO .getFilterLayoutView() .setFilterName(filterChipDTO.getFilterChipText()) diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java index 7a2fa534..b4b984bd 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/settings/MainSettingsFragment.java @@ -19,6 +19,8 @@ import androidx.preference.PreferenceFragmentCompat; import androidx.sqlite.db.SimpleSQLiteQuery; import com.google.android.material.snackbar.Snackbar; +import com.google.firebase.crashlytics.CustomKeysAndValues; +import com.google.firebase.crashlytics.FirebaseCrashlytics; import com.harrysoft.androidbluetoothserial.BluetoothManager; import java.io.BufferedReader; @@ -387,6 +389,9 @@ public class MainSettingsFragment extends PreferenceFragmentCompat implements IT this.closeProgress(); } catch (Exception ex) { handler.post(() -> { + FirebaseCrashlytics.getInstance().recordException(ex, new CustomKeysAndValues.Builder() {{ + putString("ExportLog", "Error while exporting log"); + }}.build()); this.closeProgress(); UtilityExceptions.defaultException(requireContext(), ex); }); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/TrasferimentoPedaneFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/TrasferimentoPedaneFragment.java index 2f493968..9eeb1a19 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/TrasferimentoPedaneFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/TrasferimentoPedaneFragment.java @@ -149,7 +149,7 @@ public class TrasferimentoPedaneFragment extends BaseFragment implements ITitled CountDownLatch countDownLatch = new CountDownLatch(1); handler.post(() -> { - String text = getResources().getString(R.string.alert_delete_mtb_colr); + String text = getResources().getString(R.string.alert_delete_trasf); DialogSimpleMessageView.makeWarningDialog(requireContext(), new SpannableString(text), null, diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/dialog/confirm_export/DialogTrasferimentoPedaneConfirmExportComponent.java b/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/dialog/confirm_export/DialogTrasferimentoPedaneConfirmExportComponent.java new file mode 100644 index 00000000..72ab49bf --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/dialog/confirm_export/DialogTrasferimentoPedaneConfirmExportComponent.java @@ -0,0 +1,14 @@ +package it.integry.integrywmsnative.gest.trasferimento_pedane.dialog.confirm_export; + +import dagger.Subcomponent; + +@Subcomponent +public interface DialogTrasferimentoPedaneConfirmExportComponent { + + @Subcomponent.Factory + interface Factory { + DialogTrasferimentoPedaneConfirmExportComponent create(); + } + + void inject(DialogTrasferimentoPedaneConfirmExportView dialogTrasferimentoPedaneConfirmExportView); +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/dialog/confirm_export/DialogTrasferimentoPedaneConfirmExportModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/dialog/confirm_export/DialogTrasferimentoPedaneConfirmExportModule.java new file mode 100644 index 00000000..1e8fd5c4 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/dialog/confirm_export/DialogTrasferimentoPedaneConfirmExportModule.java @@ -0,0 +1,14 @@ +package it.integry.integrywmsnative.gest.trasferimento_pedane.dialog.confirm_export; + +import dagger.Module; +import dagger.Provides; + +@Module(subcomponents = DialogTrasferimentoPedaneConfirmExportComponent.class) +public class DialogTrasferimentoPedaneConfirmExportModule { + + @Provides + DialogTrasferimentoPedaneConfirmExportViewModel providesDialogTrasferimentoPedaneConfirmExportViewModel() { + return new DialogTrasferimentoPedaneConfirmExportViewModel(); + } + +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/dialog/confirm_export/DialogTrasferimentoPedaneConfirmExportView.java b/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/dialog/confirm_export/DialogTrasferimentoPedaneConfirmExportView.java new file mode 100644 index 00000000..49dfa7bd --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/dialog/confirm_export/DialogTrasferimentoPedaneConfirmExportView.java @@ -0,0 +1,126 @@ +package it.integry.integrywmsnative.gest.trasferimento_pedane.dialog.confirm_export; + +import android.content.Context; +import android.content.DialogInterface; +import android.view.LayoutInflater; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputMethodManager; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AlertDialog; +import androidx.lifecycle.LifecycleOwner; + +import javax.inject.Inject; + +import it.integry.integrywmsnative.MainApplication; +import it.integry.integrywmsnative.R; +import it.integry.integrywmsnative.core.expansion.BaseMaterialAlertDialogBuilder; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.databinding.DialogTrasferimentoPedaneConfirmExportBinding; + +public class DialogTrasferimentoPedaneConfirmExportView extends BaseMaterialAlertDialogBuilder implements DialogInterface.OnShowListener, DialogInterface.OnDismissListener { + + @Inject + DialogTrasferimentoPedaneConfirmExportViewModel mViewModel; + + private DialogTrasferimentoPedaneConfirmExportBinding mBindings; + private Context mContext; + + private final RunnableArgs onComplete; + + //Pass here all external parameters + public static DialogTrasferimentoPedaneConfirmExportView newInstance(@NonNull Context context, long numeroUl, RunnableArgs onComplete) { + return new DialogTrasferimentoPedaneConfirmExportView(context, numeroUl, onComplete); + } + + private DialogTrasferimentoPedaneConfirmExportView(@NonNull Context context, long numeroUl, RunnableArgs onComplete) { + super(context); + this.mContext = context; + this.onComplete = onComplete; + + MainApplication.appComponent + .dialogTrasferimentoPedaneConfirmExportComponent() + .create() + .inject(this); + + mBindings = DialogTrasferimentoPedaneConfirmExportBinding.inflate(LayoutInflater.from(this.mContext), null, false); + mBindings.setViewModel(mViewModel); + + if (context instanceof LifecycleOwner) { + mBindings.setLifecycleOwner((LifecycleOwner) context); + } + + mViewModel.setNumeroUl((int) numeroUl); + + + mBindings.annotationsInput.setOnEditorActionListener((v, actionId, event) -> { + if (actionId == EditorInfo.IME_ACTION_DONE) { + mViewModel.onSaveKeyboardAction(); + InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(v.getWindowToken(), 0); + return true; + } + return false; + }); + + setCancelable(true); + + setView(mBindings.getRoot()); + + setPositiveButton(R.string.confirm, (dialog, which) -> { + mViewModel.onSaveAnnotationsClicked(); + onComplete.run(Result.completed(mViewModel.annotazioni.getValue())); + }); + + setNegativeButton(R.string.abort, (dialog, which) -> { + onComplete.run(Result.aborted()); + }); + } + + @NonNull + @Override + public AlertDialog create() { + AlertDialog alertDialog = super.create(); + alertDialog.setCanceledOnTouchOutside(false); + alertDialog.setOnShowListener(this); + alertDialog.setOnDismissListener(this); + return alertDialog; + } + + + @Override + public void onShow(DialogInterface dialogInterface) { + } + + @Override + public void onDismiss(DialogInterface dialog) { + } + + + public static class Result { + private final String annotazioni; + private final boolean isAborted; + + private Result(String annotazioni, boolean isAborted) { + this.annotazioni = annotazioni; + this.isAborted = isAborted; + } + + public static Result completed(String annotazioni) { + return new Result(annotazioni, false); + } + + public static Result aborted() { + return new Result(null, true); + } + + public boolean isAborted() { + return isAborted; + } + + public String getAnnotazioni() { + return annotazioni; + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/dialog/confirm_export/DialogTrasferimentoPedaneConfirmExportViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/dialog/confirm_export/DialogTrasferimentoPedaneConfirmExportViewModel.java new file mode 100644 index 00000000..0d57ab82 --- /dev/null +++ b/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/dialog/confirm_export/DialogTrasferimentoPedaneConfirmExportViewModel.java @@ -0,0 +1,52 @@ +package it.integry.integrywmsnative.gest.trasferimento_pedane.dialog.confirm_export; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; + +public class DialogTrasferimentoPedaneConfirmExportViewModel { + + + public MutableLiveData numeroUl = new MutableLiveData<>(); + public MutableLiveData annotazioni = new MutableLiveData<>(); + public MutableLiveData isEditingAnnotations = new MutableLiveData<>(false); + public MutableLiveData hasAnnotations = new MutableLiveData<>(false); + + public void setNumeroUl(Integer numeroUl) { + this.numeroUl.setValue(numeroUl); + } + + public void setAnnotazioni(String annotazioni) { + this.annotazioni.setValue(annotazioni); + updateAnnotationsState(); + } + + public LiveData getNumeroUlProperty() { + return numeroUl; + } + + public LiveData getAnnotazioniProperty() { + return annotazioni; + } + + public void onAddAnnotationsClicked() { + isEditingAnnotations.setValue(true); + } + + public void onEditAnnotationsClicked() { + isEditingAnnotations.setValue(true); + } + + public void onSaveKeyboardAction() { + onSaveAnnotationsClicked(); + } + + public void onSaveAnnotationsClicked() { + isEditingAnnotations.setValue(false); + updateAnnotationsState(); + } + + private void updateAnnotationsState() { + String currentAnnotations = annotazioni.getValue(); + hasAnnotations.setValue(currentAnnotations != null && !currentAnnotations.trim().isEmpty()); + } +} \ No newline at end of file diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/edit/TrasferimentoPedaneEditActivity.java b/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/edit/TrasferimentoPedaneEditActivity.java index a7a46e0f..e5e825f5 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/edit/TrasferimentoPedaneEditActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/edit/TrasferimentoPedaneEditActivity.java @@ -4,7 +4,6 @@ import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; -import android.text.Html; import android.text.SpannableString; import android.view.View; import android.widget.PopupMenu; @@ -19,7 +18,6 @@ import com.ravikoradiya.liveadapter.BR; import com.ravikoradiya.liveadapter.LiveAdapter; import com.ravikoradiya.liveadapter.Type; -import java.util.HashMap; import java.util.List; import java.util.Objects; import java.util.concurrent.CountDownLatch; @@ -43,6 +41,7 @@ import it.integry.integrywmsnative.core.utility.UtilityExceptions; import it.integry.integrywmsnative.databinding.ActivityTraferimentoPedaneEditBinding; import it.integry.integrywmsnative.databinding.ActivityTrasferimentoPedaneRowListItemBinding; import it.integry.integrywmsnative.gest.settings.MainSettingsFragment; +import it.integry.integrywmsnative.gest.trasferimento_pedane.dialog.confirm_export.DialogTrasferimentoPedaneConfirmExportView; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; import kotlin.Unit; @@ -179,18 +178,20 @@ public class TrasferimentoPedaneEditActivity extends BaseActivity implements Tra private final RunnableArgs onScanSuccessful = data -> { - this.onLoadingStarted(); + if (mViewModel.canBeModifiedLiveData().getValue()) { + this.onLoadingStarted(); - executorService.execute(() -> { - try { - this.mViewModel.processBarcodeDTO(data); - soundAlertService.success(); - this.onLoadingEnded(); - } catch (Exception e) { - soundAlertService.warning(); - this.onError(e); - } - }); + executorService.execute(() -> { + try { + this.mViewModel.processBarcodeDTO(data); + soundAlertService.success(); + this.onLoadingEnded(); + } catch (Exception e) { + soundAlertService.warning(); + this.onError(e); + } + }); + } }; @@ -209,29 +210,24 @@ public class TrasferimentoPedaneEditActivity extends BaseActivity implements Tra return; } - DialogSimpleMessageView.makeInfoDialog(this, - "Conferma", - Html.fromHtml("Stai confermando il trasferimento delle pedane. Una volta confermato, non sarà più possibile modificarne il contenuto. Vuoi procedere?"), - new HashMap<>() {{ - put("Numero pedane", String.valueOf(ulCount)); - }}, - () -> { - this.onLoadingStarted(); - executorService.execute(() -> { - try { - if (documentsPrinterName == null) { - requestDocumentsPrinter(); - } + DialogTrasferimentoPedaneConfirmExportView.newInstance(this, ulCount, result -> { + if (result == null || result.isAborted()) + return; - this.mViewModel.closeAndExport(documentsPrinterName); - this.onLoadingEnded(); - } catch (Exception e) { - this.onError(e); - } - }); - }, () -> { + this.onLoadingStarted(); + executorService.execute(() -> { + try { + if (documentsPrinterName == null) { + requestDocumentsPrinter(); + } - }) + this.mViewModel.closeAndExport(result.getAnnotazioni(), documentsPrinterName); + this.onLoadingEnded(); + } catch (Exception e) { + this.onError(e); + } + }); + }) .show(); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/edit/TrasferimentoPedaneEditViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/edit/TrasferimentoPedaneEditViewModel.java index a5b5e0ba..36a3f4a3 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/edit/TrasferimentoPedaneEditViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/trasferimento_pedane/edit/TrasferimentoPedaneEditViewModel.java @@ -241,12 +241,14 @@ public class TrasferimentoPedaneEditViewModel { trasferimentoPedaneRepository.deleteSynchronized(currentTrasferimentoPedane.getValue()); } - public void closeAndExport(String printerName) throws Exception { + public void closeAndExport(String annotazioni, String printerName) throws Exception { var barcodes = rowsLiveData.getValue().stream() .map(TrasferimentoPedaneRowEntity::getBarcodeUl) .collect(Collectors.toUnmodifiableList()); - var generatedMovement = trasferimentoPedaneRESTConsumer.makeSynchronousSaveRequest(currentTrasferimentoPedane.getValue().getCodMdepDest(), barcodes); + var generatedMovement = trasferimentoPedaneRESTConsumer.makeSynchronousSaveRequest(currentTrasferimentoPedane.getValue().getCodMdepDest(), + annotazioni, + barcodes); var documentKey = generatedMovement.getDocumentKey(); diff --git a/app/src/main/res/drawable/badge1_round_corner.xml b/app/src/main/res/drawable/badge1_round_corner.xml index 192ad066..757bc1dd 100644 --- a/app/src/main/res/drawable/badge1_round_corner.xml +++ b/app/src/main/res/drawable/badge1_round_corner.xml @@ -1,7 +1,7 @@ - + - + diff --git a/app/src/main/res/drawable/ic_add_24dp.xml b/app/src/main/res/drawable/ic_add_24dp.xml index d643974f..61f2fe11 100644 --- a/app/src/main/res/drawable/ic_add_24dp.xml +++ b/app/src/main/res/drawable/ic_add_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_box.xml b/app/src/main/res/drawable/ic_box.xml index 457c72f7..df86ad06 100644 --- a/app/src/main/res/drawable/ic_box.xml +++ b/app/src/main/res/drawable/ic_box.xml @@ -1,5 +1,5 @@ - + diff --git a/app/src/main/res/drawable/ic_clear_24dp.xml b/app/src/main/res/drawable/ic_clear_24dp.xml index 594883a8..5748f566 100644 --- a/app/src/main/res/drawable/ic_clear_24dp.xml +++ b/app/src/main/res/drawable/ic_clear_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_print_24dp.xml b/app/src/main/res/drawable/ic_print_24dp.xml index 3d09fcaa..5049029c 100644 --- a/app/src/main/res/drawable/ic_print_24dp.xml +++ b/app/src/main/res/drawable/ic_print_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_recover_ul_24dp.xml b/app/src/main/res/drawable/ic_recover_ul_24dp.xml index cfccccae..81031d3b 100644 --- a/app/src/main/res/drawable/ic_recover_ul_24dp.xml +++ b/app/src/main/res/drawable/ic_recover_ul_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_save_24.xml b/app/src/main/res/drawable/ic_save_24.xml deleted file mode 100644 index a561d632..00000000 --- a/app/src/main/res/drawable/ic_save_24.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_save_24dp.xml b/app/src/main/res/drawable/ic_save_24dp.xml index 92ff10cb..a711bc47 100644 --- a/app/src/main/res/drawable/ic_save_24dp.xml +++ b/app/src/main/res/drawable/ic_save_24dp.xml @@ -4,6 +4,6 @@ android:viewportWidth="24.0" android:viewportHeight="24.0"> diff --git a/app/src/main/res/drawable/ic_save_black_24dp.xml b/app/src/main/res/drawable/ic_save_black_24dp.xml deleted file mode 100644 index a561d632..00000000 --- a/app/src/main/res/drawable/ic_save_black_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_save_white_24dp.xml b/app/src/main/res/drawable/ic_save_white_24dp.xml deleted file mode 100644 index 7242923e..00000000 --- a/app/src/main/res/drawable/ic_save_white_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/splash_background.xml b/app/src/main/res/drawable/splash_background.xml index 5af4b132..d2706825 100644 --- a/app/src/main/res/drawable/splash_background.xml +++ b/app/src/main/res/drawable/splash_background.xml @@ -1,7 +1,7 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout-land-hdpi/dialog_input_lu_prod.xml b/app/src/main/res/layout-land-hdpi/dialog_input_lu_prod.xml index d897ba85..819ebb33 100644 --- a/app/src/main/res/layout-land-hdpi/dialog_input_lu_prod.xml +++ b/app/src/main/res/layout-land-hdpi/dialog_input_lu_prod.xml @@ -365,7 +365,7 @@ android:onClick="@{() -> view.save()}" android:paddingEnd="3dp" android:text="@string/confirm" - app:icon="@drawable/ic_save_24" + app:icon="@drawable/ic_save_24dp" app:iconGravity="textStart" app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/layout-land-hdpi/dialog_input_quantity_v2.xml b/app/src/main/res/layout-land-hdpi/dialog_input_quantity_v2.xml index 0773289b..3e5c1b7c 100644 --- a/app/src/main/res/layout-land-hdpi/dialog_input_quantity_v2.xml +++ b/app/src/main/res/layout-land-hdpi/dialog_input_quantity_v2.xml @@ -996,7 +996,7 @@ android:layout_marginEnd="0dp" android:layout_weight="1" android:onClick="@{() -> view.save()}" - app:icon="@drawable/ic_save_24" + app:icon="@drawable/ic_save_24dp" app:iconGravity="textStart" app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/layout/dialog_input_lu_prod.xml b/app/src/main/res/layout/dialog_input_lu_prod.xml index 0fedea0f..f1f5e44d 100644 --- a/app/src/main/res/layout/dialog_input_lu_prod.xml +++ b/app/src/main/res/layout/dialog_input_lu_prod.xml @@ -347,7 +347,7 @@ android:layout_weight="0.5" android:onClick="@{() -> view.save()}" android:text="@string/confirm" - app:icon="@drawable/ic_save_24" + app:icon="@drawable/ic_save_24dp" app:iconGravity="textStart" app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/layout/dialog_pv_edit_articolo.xml b/app/src/main/res/layout/dialog_pv_edit_articolo.xml index 41d490d8..6174d268 100644 --- a/app/src/main/res/layout/dialog_pv_edit_articolo.xml +++ b/app/src/main/res/layout/dialog_pv_edit_articolo.xml @@ -726,7 +726,7 @@ android:layout_marginEnd="0dp" android:layout_weight="1" android:onClick="@{() -> view.saveAndExit()}" - app:icon="@drawable/ic_save_24" + app:icon="@drawable/ic_save_24dp" app:iconGravity="textStart" app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/layout/dialog_trasferimento_pedane_confirm_export.xml b/app/src/main/res/layout/dialog_trasferimento_pedane_confirm_export.xml new file mode 100644 index 00000000..819c2671 --- /dev/null +++ b/app/src/main/res/layout/dialog_trasferimento_pedane_confirm_export.xml @@ -0,0 +1,177 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_prod_rientro_merce_order_list__list_group_model.xml b/app/src/main/res/layout/fragment_prod_rientro_merce_order_list__list_group_model.xml index e2de01df..5aa71253 100644 --- a/app/src/main/res/layout/fragment_prod_rientro_merce_order_list__list_group_model.xml +++ b/app/src/main/res/layout/fragment_prod_rientro_merce_order_list__list_group_model.xml @@ -1,5 +1,5 @@ - + @@ -103,7 +103,8 @@ android:indeterminate="false" android:layout_marginTop="4dp" android:max="100" - android:progress="0" /> + android:progress="0" + app:trackStopIndicatorSize="0dp" /> diff --git a/app/src/main/res/layout/layout_filter_commessa__list_item.xml b/app/src/main/res/layout/layout_filter_commessa__list_item.xml index a1773041..6dd1a364 100644 --- a/app/src/main/res/layout/layout_filter_commessa__list_item.xml +++ b/app/src/main/res/layout/layout_filter_commessa__list_item.xml @@ -5,7 +5,9 @@ xmlns:tools="http://schemas.android.com/tools"> + + - + android:onClick="@{() -> item.selected.toggle()}" + android:orientation="horizontal" + android:paddingHorizontal="8dp" + android:paddingVertical="4dp"> + android:minHeight="0dp" + android:minWidth="0dp" + android:paddingEnd="4dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - + android:text="@{item.originalModel.codJcom}" + app:layout_constraintStart_toEndOf="@id/checkbox" + app:layout_constraintTop_toTopOf="parent" + tools:text="01" /> + + - - - - - - - - - - + \ 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 d2ea5f09..157c4d97 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -227,6 +227,7 @@ Stai per eliminare una UL. Confermi? Stai per eliminare una riga. Confermi? + Stai per eliminare un trasferimento. Confermi? Lista UL Contenuto UL @@ -525,4 +526,7 @@ %d occupati %d / %d occupati Ultimo pos: %s + + Conferma esportazione + non sarà più possibile modificarne il contenuto. Vuoi procedere?]]> \ No newline at end of file diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 7674483a..1fc9d4d1 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -21,6 +21,10 @@ @color/md_theme_light_successContainer @color/md_theme_light_onSuccess @color/md_theme_light_onSuccessContainer + @color/md_theme_light_warning + @color/md_theme_light_warningContainer + @color/md_theme_light_onWarning + @color/md_theme_light_onWarningContainer @color/md_theme_dark_background @color/md_theme_dark_onBackground @color/md_theme_dark_surface diff --git a/app/src/main/res/values/attr.xml b/app/src/main/res/values/attr.xml index d040e205..ee7326d9 100644 --- a/app/src/main/res/values/attr.xml +++ b/app/src/main/res/values/attr.xml @@ -32,4 +32,9 @@ + + + + + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index f7d95d6a..d319c752 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -21,6 +21,10 @@ #D1FADF #FFFFFF #00210A + #FFB300 + #FFF8E1 + #212121 + #664400 #F6FEFF #001F24 #F6FEFF @@ -54,6 +58,10 @@ #00531A #003915 #85FFB8 + #FFD54F + #534300 + #332200 + #FFF8E1 #001F24 #97F0FF #001F24 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c832793a..d0075de5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -226,6 +226,7 @@ Are you sure you want to delete this UL? Please confirm Are you sure to delete? Please confirm + Are you sure to delete? Please confirm Warehouse @@ -532,4 +533,7 @@ Occupied %s Occupied %d / $d Last pos: %s + + Confirm export + it will no longer be possible to modify their contents. Do you want to proceed?]]> diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 9dacb3f8..f73dc6b3 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -21,6 +21,10 @@ @color/md_theme_light_successContainer @color/md_theme_light_onSuccess @color/md_theme_light_onSuccessContainer + @color/md_theme_light_warning + @color/md_theme_light_warningContainer + @color/md_theme_light_onWarning + @color/md_theme_light_onWarningContainer @color/md_theme_light_background @color/md_theme_light_onBackground @color/md_theme_light_surface