bugfix ConcurrentModificationException in aggiunta articoli atumatica in nuovo ordine acquisto

This commit is contained in:
Valerio Castellana 2022-10-19 18:39:12 +02:00
parent 2c521c5f96
commit 5e88833039
3 changed files with 23 additions and 9 deletions

View File

@ -10,7 +10,6 @@ import android.widget.Toast;
import androidx.core.content.ContextCompat;
import androidx.databinding.DataBindingUtil;
import androidx.databinding.ObservableArrayList;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.ravikoradiya.liveadapter.LiveAdapter;
@ -34,7 +33,6 @@ import it.integry.integrywmsnative.core.utility.UtilityDate;
import it.integry.integrywmsnative.databinding.ActivityPvOrdineAcquistoEditBinding;
import it.integry.integrywmsnative.databinding.FragmentPvArticoliOrdineAcquistoListSingleItemBinding;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.dialog.DialogEditArticoloView;
import it.integry.integrywmsnative.gest.pv_ordine_acquisto_edit.ui.OrdineAcquistoArtListModel;
import it.integry.integrywmsnative.ui.FabMenuCustomAnimations;
import it.integry.integrywmsnative.ui.SimpleDividerItemDecoration;
import it.integry.integrywmsnative.view.dialogs.DialogAskAction;
@ -53,8 +51,6 @@ public class PVOrdineAcquistoEditActivity extends BaseActivity implements PVOrdi
@Inject
PVOrdineAcquistoEditViewModel mViewModel;
private final ObservableArrayList<OrdineAcquistoArtListModel> mArticoliMutableData = new ObservableArrayList<>();
public static Intent newInstance(Context context, Ordine ordine) {
Intent myIntent = new Intent(context, PVOrdineAcquistoEditActivity.class);

View File

@ -117,6 +117,27 @@ public class PVOrdineAcquistoEditViewModel {
this.mArticoli.postValue(newList);
}
public void saveArticoli(List<ArticoloOrdine> articoli) {
var newList = this.mArticoli.getValue();
if (newList == null) {
newList = new ArrayList<>();
}
for (ArticoloOrdine articolo : articoli) {
setBgTint(articolo);
var alreadySavedItem = Stream.of(newList)
.filter(x -> Objects.equals(x.getCodMart(), articolo.getCodMart()))
.findFirst();
if (alreadySavedItem.isPresent()) newList.remove(alreadySavedItem.get());
newList.add(articolo);
}
this.mArticoli.postValue(newList);
}
public void processBarcodeDTO(BarcodeScanDTO barcodeScanDTO, Runnable onComplete) {
this.checkArticolo(
@ -225,8 +246,7 @@ public class PVOrdineAcquistoEditViewModel {
});
if (!articoliToSave.isEmpty()) {
mArticoliOrdineRepository.saveArticoliToOrdine(articoliToSave, () -> {
Stream.of(articoliToSave).forEach(this::saveArticolo);
this.saveArticoli(articoliToSave);
this.sendOnLoadingEnded();
}, this::sendError);

View File

@ -53,9 +53,7 @@ public class OrdineAcquistoPvHelper {
mGrigliaRepository.saveGriglia(griglia, id -> {
saveLisAToGriglia(dto.getGrigliaAcquistiChild(), griglia, grigliaResult -> {
onSaved.run(grigliaResult);
}, onFail);
saveLisAToGriglia(dto.getGrigliaAcquistiChild(), griglia, onSaved, onFail);
}, onFail);
});
}, onFail);