workaround problema con tempistiche thread in salvataggio articolo ordine acquisto

This commit is contained in:
Valerio Castellana 2022-02-25 17:36:07 +01:00
parent 0738993d4c
commit 34ff300515

View File

@ -70,11 +70,11 @@ public class EditArticoloDialog extends BaseDialogFragment {
@Override @Override
public void onDismiss(@NonNull DialogInterface dialog) { public void onDismiss(@NonNull DialogInterface dialog) {
super.onDismiss(dialog); super.onDismiss(dialog);
ArticoloOrdine articolo = mArticolo.getValue(); /*ArticoloOrdine articolo = mArticolo.getValue();
if (articolo != null && articolo.getQtaOrd() <= 0f) { if (articolo != null && articolo.getQtaOrd() <= 0f) {
articolo = null; articolo = null;
} }
onDialogDismiss.run(articolo); onDialogDismiss.run(articolo);*/
} }
@Nullable @Nullable
@ -155,17 +155,23 @@ public class EditArticoloDialog extends BaseDialogFragment {
} }
articolo.setQtaOrd(qtaOrd.get().floatValue()); articolo.setQtaOrd(qtaOrd.get().floatValue());
mArticolo.postValue(articolo); mArticolo.setValue(articolo);
mHelper.saveArticoloToOrdine(mArticolo.getValue(), () -> {
this.onLoadingEnded();
requireActivity().runOnUiThread(() -> {
onDialogDismiss.run(articolo);
});
this.dismiss();
}, e -> {
mContext.runOnUiThread(() -> UtilityExceptions.defaultException(mContext, e));
this.onLoadingEnded();
});
} catch (Exception e) { } catch (Exception e) {
mContext.runOnUiThread(() -> UtilityExceptions.defaultException(mContext, e)); mContext.runOnUiThread(() -> UtilityExceptions.defaultException(mContext, e));
this.onLoadingEnded(); this.onLoadingEnded();
return; return;
} }
mHelper.saveArticoloToOrdine(mArticolo.getValue(), () -> { ;
this.onLoadingEnded();
this.dismiss();
}, e -> mContext.runOnUiThread(() -> UtilityExceptions.defaultException(mContext, e)));
} }
public ArticoloOrdine getArticolo() { public ArticoloOrdine getArticolo() {
@ -174,6 +180,9 @@ public class EditArticoloDialog extends BaseDialogFragment {
public void cancel() { public void cancel() {
mArticolo.postValue(null); mArticolo.postValue(null);
requireActivity().runOnUiThread(() -> {
onDialogDismiss.run(null);
});
this.dismiss(); this.dismiss();
} }
} }