diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java index bf8f8a83..3b81d9c4 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/accettazione_bolla_picking/ui/AccettazioneBollaPickingListAdapter.java @@ -2,10 +2,12 @@ package it.integry.integrywmsnative.gest.accettazione_bolla_picking.ui; import android.content.Context; import android.graphics.Color; +import android.os.Build; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; import androidx.core.content.res.ResourcesCompat; import androidx.databinding.ObservableArrayList; @@ -15,7 +17,11 @@ import androidx.recyclerview.widget.RecyclerView; import com.zhukic.sectionedrecyclerview.SectionedRecyclerViewAdapter; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; import it.integry.integrywmsnative.R; import it.integry.integrywmsnative.core.expansion.OnListGeneralChangedCallback; @@ -62,10 +68,29 @@ public class AccettazioneBollaPickingListAdapter extends SectionedRecyclerViewAd this.mShowSecondaryUntMis = showSecondaryUntMis; mutableDataSet.addOnListChangedCallback(new OnListGeneralChangedCallback() { + @RequiresApi(api = Build.VERSION_CODES.UPSIDE_DOWN_CAKE) @Override public void onChanged(ObservableList sender) { + List listaOrdinata = new ArrayList<>(); + if (!sender.isEmpty()) { + listaOrdinata = new ArrayList<>(sender); + + Collections.sort(listaOrdinata, (a, b) -> { + + boolean condA = a.getQtaEvasa().subtract(a.getQtaTot()).floatValue() == 0; + boolean condB = b.getQtaEvasa().subtract(b.getQtaTot()).floatValue() == 0; + + if (condA && !condB) { + return -1; + } else if (!condA && condB) { + return 1; + } + return 0; + }); + } + mDataset.clear(); - mDataset.addAll(sender); + mDataset.addAll(listaOrdinata); notifyDataSetChanged(); notifyDataChanged(); }