This commit is contained in:
2025-03-18 12:23:03 +01:00
parent 1802ab5a2e
commit 40d35bb4df
2 changed files with 918 additions and 704 deletions

View File

@@ -14,6 +14,7 @@ import android.widget.Toast;
import androidx.appcompat.widget.PopupMenu; import androidx.appcompat.widget.PopupMenu;
import androidx.databinding.DataBindingUtil; import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList; import androidx.databinding.ObservableArrayList;
import androidx.lifecycle.MutableLiveData;
import androidx.preference.PreferenceManager; import androidx.preference.PreferenceManager;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
@@ -25,6 +26,8 @@ import java.time.LocalDate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicReference;
import javax.inject.Inject; import javax.inject.Inject;
@@ -104,17 +107,16 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
private final ObservableArrayList<SpedizioneListModel> mSpedizioneMutableData = new ObservableArrayList<>(); private final ObservableArrayList<SpedizioneListModel> mSpedizioneMutableData = new ObservableArrayList<>();
public BindableBoolean addExtraItemsEnabled = new BindableBoolean(false); public BindableBoolean addExtraItemsEnabled = new BindableBoolean(false);
public BindableBoolean noItemsToPick = new BindableBoolean(false); public BindableBoolean noItemsToPick = new BindableBoolean(false);
public BindableBoolean noLUPresent = new BindableBoolean(true); public MutableLiveData<Boolean> noLUPresent = new MutableLiveData<>(true);
public BindableBoolean bottomSheetEnabled = new BindableBoolean(false); public BindableBoolean bottomSheetEnabled = new BindableBoolean(false);
private boolean mEnableFakeGiacenza; private boolean mEnableFakeGiacenza;
private boolean mFlagShowCodForn; private boolean mFlagShowCodForn;
private boolean mDivideByGrpMerc; private boolean mDivideByGrpMerc;
private boolean mEnableQuantityReset; private boolean mEnableQuantityReset;
private int barcodeScannerIstanceID = -1; private int mBarcodeScannerInstanceID = -1;
private ArrayList<SitArtOrdDTO> mSitArtOrd; private ArrayList<SitArtOrdDTO> mSitArtOrd;
private ArrayList<OrdineUscitaInevasoDTO> mTestateOrdini; private ArrayList<OrdineUscitaInevasoDTO> mTestateOrdini;
@@ -243,31 +245,38 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
@Override @Override
public void onBackPressed() { public void onBackPressed() {
if (this.mBindings.bottomSheetLuContent.isExpanded()) { if (this.mBindings.bottomSheetLuContent.isExpanded()) {
this.mBindings.bottomSheetLuContent.collapse(); this.mBindings.bottomSheetLuContent.collapse();
} else if (!noLUPresent.get()) { } else if (!noLUPresent.getValue()) {
this.mShouldCloseActivity = true; this.mShouldCloseActivity = true;
BarcodeManager.removeCallback(barcodeScannerIstanceID); BarcodeManager.removeCallback(mBarcodeScannerInstanceID);
this.mViewmodel.requestCloseLU(true); executorService.execute(() -> {
try {
this.mViewmodel.requestCloseLU(true);
} catch (Exception e) {
onError(e);
}
});
} else { } else {
BarcodeManager.removeCallback(barcodeScannerIstanceID); BarcodeManager.removeCallback(mBarcodeScannerInstanceID);
super.onBackPressed(); handler.post(() -> {
super.onBackPressed();
});
} }
} }
private void initVars() { private void initVars() {
this.noLUPresent.addOnPropertyChangedCallback(() -> { this.noLUPresent.observeForever(newValue -> {
this.bottomSheetEnabled.set(!this.noLUPresent.get()); this.bottomSheetEnabled.set(!newValue);
}); });
} }
private void initBarcodeReader() { private void initBarcodeReader() {
barcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() mBarcodeScannerInstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
.setOnScanSuccessful(onScanSuccessful) .setOnScanSuccessful(onScanSuccessful)
.setOnScanFailed(this::onError)); .setOnScanFailed(this::onError));
BarcodeManager.enable(); BarcodeManager.enable(mBarcodeScannerInstanceID);
} }
@@ -324,13 +333,19 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
this.mBindings.spedizionePickingList.setLayoutManager(new LinearLayoutManager(this)); this.mBindings.spedizionePickingList.setLayoutManager(new LinearLayoutManager(this));
RunnableArgssss<PickingObjectDTO, MtbColt, MtbColr, Boolean> onItemClicked = (clickedItem, refMtbColt, refMtbColr, executeImmediately) -> { RunnableArgssss<PickingObjectDTO, MtbColt, MtbColr, Boolean> onItemClicked = (clickedItem, refMtbColt, refMtbColr, executeImmediately) -> {
if (!noLUPresent.get() && executorService.execute(() -> {
((SettingsManager.iDB().isFlagSpedizioneEnableManualPick() && if (!noLUPresent.getValue() &&
clickedItem.getSitArtOrdDTO().isFlagEnablePickManuale()) || ((SettingsManager.iDB().isFlagSpedizioneEnableManualPick() &&
clickedItem.getTempPickData() != null)) { clickedItem.getSitArtOrdDTO().isFlagEnablePickManuale()) ||
this.mViewmodel.dispatchOrdineRow(clickedItem, refMtbColt, refMtbColr, clickedItem.getTempPickData() != null)) {
SettingsManager.iDB().isFlagSpedizioneEnableManualPick() && clickedItem.getSitArtOrdDTO().isFlagEnablePickManuale(), executeImmediately); try {
} this.mViewmodel.dispatchOrdineRow(clickedItem, refMtbColt, refMtbColr,
SettingsManager.iDB().isFlagSpedizioneEnableManualPick() && clickedItem.getSitArtOrdDTO().isFlagEnablePickManuale(), executeImmediately);
} catch (Exception e) {
onError(e);
}
}
});
}; };
spedizioneListAdapter.setOnItemClicked(onItemClicked); spedizioneListAdapter.setOnItemClicked(onItemClicked);
@@ -713,9 +728,15 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> { private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
this.onLoadingStarted(); this.onLoadingStarted();
this.mViewmodel.processBarcodeDTO(data, () -> { executorService.execute(() -> {
this.onLoadingEnded(); try {
this.mViewmodel.processBarcodeDTO(data);
} catch (Exception e) {
onError(e);
}
}); });
this.onLoadingEnded();
}; };
public void addExtraItem() { public void addExtraItem() {
@@ -723,11 +744,27 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
DialogScanArtView DialogScanArtView
.newInstance(!mEnableFakeGiacenza, (status, mtbAart, ean128Model, mtbColr) -> { .newInstance(!mEnableFakeGiacenza, (status, mtbAart, ean128Model, mtbColr) -> {
if (status == DialogConsts.Results.YES) { if (status == DialogConsts.Results.YES) {
this.mViewmodel.dispatchExtraItem(mtbAart, ean128Model, mtbColr);
executorService.execute(() -> {
try {
this.mViewmodel.dispatchExtraItem(mtbAart, ean128Model, mtbColr);
} catch (Exception e) {
onError(e);
}
});
} }
}, pickMagazzinoAutomaticoPosizione -> { }, pickMagazzinoAutomaticoPosizione -> {
this.onLoadingStarted(); this.onLoadingStarted();
this.mViewmodel.executeEmptyMagazzinoAutomaticoRequest(pickMagazzinoAutomaticoPosizione, this::onLoadingEnded);
executorService.execute(() -> {
try {
this.mViewmodel.executeEmptyMagazzinoAutomaticoRequest(pickMagazzinoAutomaticoPosizione);
} catch (Exception e) {
onError(e);
}
this.onLoadingEnded();
});
}) })
.show(getSupportFragmentManager(), "tag"); .show(getSupportFragmentManager(), "tag");
}); });
@@ -735,13 +772,13 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
public void startManualSearch() { public void startManualSearch() {
handler.post(() -> { handler.post(() -> {
BarcodeManager.disable(); BarcodeManager.disable(mBarcodeScannerInstanceID);
DialogSimpleInputHelper.makeInputDialog(this, "Inserisci il codice a barre", codice -> { DialogSimpleInputHelper.makeInputDialog(this, "Inserisci il codice a barre", codice -> {
this.onScanSuccessful.run(new BarcodeScanDTO().setStringValue(codice).setType(BarcodeType.CODE128)); this.onScanSuccessful.run(new BarcodeScanDTO().setStringValue(codice).setType(BarcodeType.CODE128));
BarcodeManager.enable(); BarcodeManager.enable(mBarcodeScannerInstanceID);
}, BarcodeManager::enable).show(); }, () -> BarcodeManager.enable(mBarcodeScannerInstanceID)).show();
}); });
} }
@@ -757,8 +794,13 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
this.onLoadingStarted(); this.onLoadingStarted();
this.mViewmodel.createNewLU(null, null, () -> { executorService.execute(() -> {
this.onLoadingEnded(); try {
this.mViewmodel.createNewLU(null, null);
this.onLoadingEnded();
} catch (Exception e) {
onError(e);
}
}); });
} }
@@ -793,15 +835,23 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
public void closeOrder() { public void closeOrder() {
this.fabPopupMenu.dismiss(); this.fabPopupMenu.dismiss();
this.onLoadingStarted();
this.mViewmodel.closeOrder(); executorService.execute(() -> {
try {
this.mViewmodel.closeOrder();
this.onLoadingEnded();
} catch (Exception e) {
onError(e);
}
});
} }
@Override @Override
public void onLUOpened(MtbColt mtbColt) { public void onLUOpened(MtbColt mtbColt) {
handler.post(() -> { handler.post(() -> {
this.addExtraItemsEnabled.set(SettingsManager.iDB().isFlagCanAddExtraItemSpedizione()); this.addExtraItemsEnabled.set(SettingsManager.iDB().isFlagCanAddExtraItemSpedizione());
noLUPresent.set(false); noLUPresent.postValue(false);
Snackbar.make(mBindings.getRoot(), R.string.data_saved, Snackbar.LENGTH_SHORT) Snackbar.make(mBindings.getRoot(), R.string.data_saved, Snackbar.LENGTH_SHORT)
.setBackgroundTint(getResources().getColor(R.color.green_500)) .setBackgroundTint(getResources().getColor(R.color.green_500))
@@ -815,7 +865,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
public void onLUClosed() { public void onLUClosed() {
handler.post(() -> { handler.post(() -> {
this.addExtraItemsEnabled.set(false); this.addExtraItemsEnabled.set(false);
noLUPresent.set(true); noLUPresent.postValue(true);
this.mBottomSheetFragmentLUContentViewModel.setMtbColt(null); this.mBottomSheetFragmentLUContentViewModel.setMtbColt(null);
if (this.mShouldCloseActivity) super.onBackPressed(); if (this.mShouldCloseActivity) super.onBackPressed();
@@ -825,9 +875,7 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
@Override @Override
public void onLUPesoRequired(String codTcol, BigDecimal netWeightKG, BigDecimal grossWeightKG, RunnableArgsss<String, BigDecimal, BigDecimal> onComplete) { public void onLUPesoRequired(String codTcol, BigDecimal netWeightKG, BigDecimal grossWeightKG, RunnableArgsss<String, BigDecimal, BigDecimal> onComplete) {
handler.post(() -> { handler.post(() -> {
DialogInputPesoLUView.newInstance(null, new BigDecimal(50), new BigDecimal(55), (newCodTcol, newNetWeight, newGrossWeight) -> { DialogInputPesoLUView.newInstance(codTcol, netWeightKG, grossWeightKG, onComplete)
onComplete.run(newCodTcol, netWeightKG, grossWeightKG);
})
.show(getSupportFragmentManager(), "tag"); .show(getSupportFragmentManager(), "tag");
}); });
} }
@@ -898,7 +946,9 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
@Override @Override
public void onError(Exception ex, boolean useSnackbar) { public void onError(Exception ex, boolean useSnackbar) {
handler.post(() -> { handler.post(() -> {
this.onLoadingEnded(); this.onLoadingEnded();
if (ex instanceof InvalidPesoKGException) { if (ex instanceof InvalidPesoKGException) {
@@ -910,7 +960,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
UtilityExceptions.defaultException(this, ex); UtilityExceptions.defaultException(this, ex);
} }
BarcodeManager.enable(); BarcodeManager.enable(mBarcodeScannerInstanceID);
}); });
} }
@@ -933,7 +984,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
LocalDate dataScad, LocalDate dataScad,
boolean canOverflowOrderQuantity, boolean canOverflowOrderQuantity,
boolean canPartitaMagBeChanged, boolean canPartitaMagBeChanged,
RunnableArgss<PickedQuantityDTO, Boolean> onComplete) { RunnableArgs<PickedQuantityDTO> onComplete,
Runnable onAbort) {
if (dataScad == null && pickingObjectDTO.getMtbAart().getGgScadPartita() != null && pickingObjectDTO.getMtbAart().getGgScadPartita() > 0) { if (dataScad == null && pickingObjectDTO.getMtbAart().getGgScadPartita() != null && pickingObjectDTO.getMtbAart().getGgScadPartita() > 0) {
dataScad = UtilityDate.getNow(); dataScad = UtilityDate.getNow();
@@ -962,25 +1014,29 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
.setCanPartitaMagBeChanged(canPartitaMagBeChanged) .setCanPartitaMagBeChanged(canPartitaMagBeChanged)
.setStatoPartitaMag(pickingObjectDTO != null ? pickingObjectDTO.getStatoArticoloDTO() : null) .setStatoPartitaMag(pickingObjectDTO != null ? pickingObjectDTO.getStatoArticoloDTO() : null)
.setNotifyProductLotStatus(SettingsManager.iDB().isNotifyLotStatus()) .setNotifyProductLotStatus(SettingsManager.iDB().isNotifyLotStatus())
.setMtbPartitaMagList(mViewmodel.getmPartitaMagList()); .setMtbPartitaMagList(mViewmodel.getmPartitaMagList())
.setEnableSSCCRead(SettingsManager.iDB().isFlagSpedizioneEnableFastPicking());
if (!mDialogInputQuantityV2View.isVisible()) if (!mDialogInputQuantityV2View.isVisible())
mDialogInputQuantityV2View mDialogInputQuantityV2View
.setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO) .setDialogInputQuantityV2DTO(dialogInputQuantityV2DTO)
.setOnComplete((resultDTO, shouldCloseLU) -> { .setOnComplete(resultDTO -> {
if (resultDTO == null || resultDTO.isAborted()) {
onAbort.run();
return;
}
PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO() PickedQuantityDTO pickedQuantityDTO = new PickedQuantityDTO()
.setNumCnf(resultDTO.getNumCnf()) .setNumCnf(resultDTO.getNumCnf())
.setQtaCnf(resultDTO.getQtaCnf()) .setQtaCnf(resultDTO.getQtaCnf())
.setQtaTot(resultDTO.getQtaTot()) .setQtaTot(resultDTO.getQtaTot())
.setPartitaMag(resultDTO.getPartitaMag()) .setPartitaMag(resultDTO.getPartitaMag())
.setDataScad(resultDTO.getDataScad()); .setDataScad(resultDTO.getDataScad())
.setShouldCloseLu(resultDTO.isShouldCloseLu())
this.onLoadingStarted(); .setNextUlBarcode(resultDTO.getNextUlBarcode());
onComplete.run(pickedQuantityDTO, shouldCloseLU); onComplete.run(pickedQuantityDTO);
})
.setOnAbort(() -> {
this.mViewmodel.resetMatchedRows();
}) })
.setOnAbort(onAbort)
.show(getSupportFragmentManager(), "tag"); .show(getSupportFragmentManager(), "tag");
else Toast.makeText(this, "Dialog già a video", Toast.LENGTH_LONG).show(); else Toast.makeText(this, "Dialog già a video", Toast.LENGTH_LONG).show();
} }
@@ -1006,66 +1062,113 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
}).show(getSupportFragmentManager(), "tag"); }).show(getSupportFragmentManager(), "tag");
} }
public void askShouldPrintPackingList(PrintOrderCloseDTO printOrderCloseDTO, RunnableArgs<PrintOrderCloseDTO> onComplete) { public boolean askShouldPrintPackingList() {
DialogSimpleMessageView.makeInfoDialog( AtomicReference<Boolean> resultPrintPackingList = new AtomicReference<>();
getResources().getString(R.string.action_close_order), CountDownLatch countDownLatch = new CountDownLatch(1);
new SpannableString(getResources().getString(R.string.message_print_packing_list_on_close_order)),
null, handler.post(() -> {
() -> { DialogSimpleMessageView.makeInfoDialog(
printOrderCloseDTO.setFlagPrintPackingList(true); getResources().getString(R.string.action_close_order),
if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose()) { new SpannableString(getResources().getString(R.string.message_print_packing_list_on_close_order)),
this.askShouldPrintSSCC(printOrderCloseDTO, onComplete); null,
} else { () -> {
onComplete.run(printOrderCloseDTO); resultPrintPackingList.set(true);
countDownLatch.countDown();
},
() -> {
resultPrintPackingList.set(false);
countDownLatch.countDown();
} }
}, )
() -> { .show(getSupportFragmentManager(), "tag");
printOrderCloseDTO.setFlagPrintPackingList(false); });
if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose()) {
this.askShouldPrintSSCC(printOrderCloseDTO, onComplete);
} else { try {
onComplete.run(printOrderCloseDTO); countDownLatch.await();
} } catch (InterruptedException e) {
} this.onError(e);
) }
.show(getSupportFragmentManager(), "tag");
return resultPrintPackingList.get();
//
// boolean printPackingList = resultPrintPackingList.get();
// printOrderCloseDTO.setFlagPrintPackingList(printPackingList);
//
// if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose()) {
// var shouldPrintSSCCResult = this.askShouldPrintSSCC(printOrderCloseDTO);
//
// printOrderCloseDTO.setFlagPrintSSCC(shouldPrintSSCCResult.isFlagPrintSSCC());
// printOrderCloseDTO.setFlagSkipPrintedSSCC(shouldPrintSSCCResult.isFlagSkipPrintedSSCC());
// }
//
// return printOrderCloseDTO;
} }
public void askShouldPrintSSCC(PrintOrderCloseDTO printOrderCloseDTO, RunnableArgs<PrintOrderCloseDTO> onComplete) { public DialogPrintOrderSSCCListView.Result askShouldPrintSSCC(PrintOrderCloseDTO printOrderCloseDTO) {
DialogPrintOrderSSCCListView.newInstance(printOrderCloseDTO, onComplete).show(this.getSupportFragmentManager(), "dialogPrintOrderSSCCListView"); AtomicReference<DialogPrintOrderSSCCListView.Result> result = new AtomicReference<>();
CountDownLatch countDownLatch = new CountDownLatch(1);
handler.post(() -> {
DialogPrintOrderSSCCListView.newInstance(printOrderCloseDTO, data -> {
result.set(data);
countDownLatch.countDown();
})
.show(this.getSupportFragmentManager(), "dialogPrintOrderSSCCListView");
});
try {
countDownLatch.await();
} catch (InterruptedException e) {
this.onError(e);
}
return result.get();
} }
@Override @Override
public void onBatchLotSelectionRequest(List<MtbPartitaMag> availableBatchLots, RunnableArgs<MtbPartitaMag> onComplete) { public void onBatchLotSelectionRequest(List<MtbPartitaMag> availableBatchLots, RunnableArgs<MtbPartitaMag> onComplete) {
DialogChooseBatchLotView.newInstance(availableBatchLots, onComplete) handler.post(() -> {
.show(getSupportFragmentManager(), "tag"); DialogChooseBatchLotView.newInstance(availableBatchLots, onComplete)
.show(getSupportFragmentManager(), "tag");
});
} }
@Override @Override
public void onCloseOrderPrintRequest(RunnableArgs<PrintOrderCloseDTO> onComplete) { public PrintOrderCloseDTO onCloseOrderPrintRequest() {
PrintOrderCloseDTO printOrderCloseDTO = new PrintOrderCloseDTO(); PrintOrderCloseDTO printOrderCloseDTO = new PrintOrderCloseDTO();
if (SettingsManager.iDB().isFlagPrintPackingListOnOrderClose()) { if (SettingsManager.iDB().isFlagPrintPackingListOnOrderClose()) {
this.askShouldPrintPackingList(printOrderCloseDTO, onComplete); var result = this.askShouldPrintPackingList();
} else if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose()) { printOrderCloseDTO.setFlagPrintPackingList(result);
this.askShouldPrintSSCC(printOrderCloseDTO, onComplete);
} }
if (SettingsManager.iDB().isFlagPrintEtichetteOnOrderClose()) {
var shouldPrintSSCC = this.askShouldPrintSSCC(printOrderCloseDTO);
printOrderCloseDTO.setFlagPrintSSCC(shouldPrintSSCC.isFlagPrintSSCC());
printOrderCloseDTO.setFlagSkipPrintedSSCC(shouldPrintSSCC.isFlagSkipPrintedSSCC());
}
return printOrderCloseDTO;
} }
@Override @Override
public void onCreateDocsRequest() { public void onCreateDocsRequest() {
DialogYesNoView.newInstance("Chiusura ordine", "Vuoi creare i documenti per gli ordini selezionati?", result -> { handler.post(() -> {
DialogYesNoView.newInstance("Chiusura ordine", "Vuoi creare i documenti per gli ordini selezionati?", result -> {
switch (result) { switch (result) {
case YES: case YES:
this.mViewmodel.createDocs(); this.mViewmodel.createDocs();
break; break;
case NO: case NO:
this.onOrderClosed(); this.onOrderClosed();
break; break;
} }
}).show(this.getSupportFragmentManager(), "tag"); }).show(this.getSupportFragmentManager(), "tag");
});
} }
@Override @Override
@@ -1075,8 +1178,8 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
} }
@Override @Override
public void onChooseArtsRequest(List<MtbAart> artsList, RunnableArgs<List<MtbAart>> onComplete) { public void onChooseArtsRequest(List<MtbAart> artsList, RunnableArgs<List<MtbAart>> onComplete, Runnable onAbort) {
DialogChooseArtsFromMtbAartListView.newInstance(artsList, onComplete, this::onLoadingEnded) DialogChooseArtsFromMtbAartListView.newInstance(artsList, onComplete, onAbort)
.show(getSupportFragmentManager(), "tag"); .show(getSupportFragmentManager(), "tag");
} }
@@ -1105,17 +1208,37 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
@Override @Override
public void onBottomSheetLUClose() { public void onBottomSheetLUClose() {
this.mViewmodel.requestCloseLU(true); executorService.execute(() -> {
try {
this.mViewmodel.requestCloseLU(true);
} catch (Exception e) {
onError(e);
}
});
} }
@Override @Override
public void onMtbColrEdit(MtbColr mtbColr) { public void onMtbColrEdit(MtbColr mtbColr) {
this.mViewmodel.dispatchRowEdit(mtbColr); executorService.execute(() -> {
this.onLoadingStarted();
try {
this.mViewmodel.dispatchRowEdit(mtbColr);
} catch (Exception e) {
onError(e);
}
this.onLoadingEnded();
});
} }
@Override @Override
public void onMtbColrDelete(MtbColr mtbColr) { public void onMtbColrDelete(MtbColr mtbColr) {
this.mViewmodel.requestDeleteRow(mtbColr); executorService.execute(() -> {
try {
this.mViewmodel.requestDeleteRow(mtbColr);
} catch (Exception e) {
onError(e);
}
});
} }