Refactoring DialogChooseArtsFromMtbColr
This commit is contained in:
@@ -60,8 +60,4 @@ public class CheckableMtbColr {
|
||||
this.hidden = hidden;
|
||||
return this;
|
||||
}
|
||||
|
||||
public void toggleCheck() {
|
||||
this.checked.set(!this.checked.get());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,28 +1,27 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.SearchView;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||
import com.ravikoradiya.liveadapter.LiveAdapter;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
|
||||
import it.integry.integrywmsnative.BR;
|
||||
import it.integry.integrywmsnative.MainApplication;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||
@@ -35,33 +34,34 @@ import it.integry.integrywmsnative.core.rest.consumers.ArticoloRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.consumers.BarcodeRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.rest.model.Ean128Model;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDialog;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.DialogChooseArtsFromMtbColrListLayoutBinding;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
|
||||
import kotlin.Unit;
|
||||
|
||||
public class DialogChooseArtsFromMtbColrList extends BaseDialogFragment {
|
||||
public class DialogChooseArtsFromMtbColrList extends BaseDialogFragment implements DialogInterface.OnShowListener {
|
||||
|
||||
@Inject
|
||||
DialogChooseArtsFromMtbColrListViewModel mViewModel;
|
||||
@Inject
|
||||
BarcodeRESTConsumer barcodeRESTConsumer;
|
||||
|
||||
@Inject
|
||||
ArticoloRESTConsumer articoloRESTConsumer;
|
||||
|
||||
private Context context;
|
||||
|
||||
private int mBarcodeScannerIstanceID;
|
||||
private final List<MtbColr> inputMtbColrList;
|
||||
private MtbAart selectedArt;
|
||||
private final RunnableArgs<List<MtbColr>> onConfirmed;
|
||||
private final Runnable onAbort;
|
||||
|
||||
|
||||
private DialogChooseArtsFromMtbColrListLayoutBinding mBindings;
|
||||
|
||||
private DialogChooseArtsFromMtbColrListAdapter currentAdapter;
|
||||
|
||||
private final RunnableArgs<List<MtbColr>> mOnItemsChoosed;
|
||||
private final Runnable mOnAbort;
|
||||
|
||||
private final List<DialogChooseArtsFromMtbColrListItemModel> mDataset;
|
||||
|
||||
private int mBarcodeScannerIstanceID;
|
||||
private MtbAart selectedArt;
|
||||
private List<DialogChooseArtsFromMtbColrListItemModel> mtbColrItemModels;
|
||||
private final MutableLiveData<List<DialogChooseArtsFromMtbColrListItemModel>> hiddenMtbColrItemModels = new MutableLiveData<>();
|
||||
private Context mContext;
|
||||
|
||||
public static DialogChooseArtsFromMtbColrList newInstance(List<MtbColr> listaMtbColr, RunnableArgs<List<MtbColr>> onItemsChoosed, Runnable onAbort) {
|
||||
return new DialogChooseArtsFromMtbColrList(listaMtbColr, onItemsChoosed, onAbort);
|
||||
@@ -77,80 +77,99 @@ public class DialogChooseArtsFromMtbColrList extends BaseDialogFragment {
|
||||
this.selectedArt = mtbAart;
|
||||
}
|
||||
|
||||
private DialogChooseArtsFromMtbColrList(List<MtbColr> listaMtbColr, RunnableArgs<List<MtbColr>> onItemsChoosed, Runnable onAbort) {
|
||||
private DialogChooseArtsFromMtbColrList(List<MtbColr> listaMtbColr, RunnableArgs<List<MtbColr>> onConfirmed, Runnable onAbort) {
|
||||
super();
|
||||
|
||||
mOnItemsChoosed = onItemsChoosed;
|
||||
mOnAbort = onAbort;
|
||||
this.inputMtbColrList = listaMtbColr;
|
||||
|
||||
mDataset = new ArrayList<>();
|
||||
this.onConfirmed = onConfirmed;
|
||||
this.onAbort = onAbort;
|
||||
|
||||
if (listaMtbColr != null) {
|
||||
for (MtbColr mtbColr : listaMtbColr) {
|
||||
if (UtilityString.isNullOrEmpty(mtbColr.getUntMis()) && mtbColr.getMtbAart() != null) {
|
||||
mtbColr.setUntMis(mtbColr.getMtbAart().getUntMis());
|
||||
}
|
||||
// mDataset = new ArrayList<>();
|
||||
|
||||
mDataset.add(new DialogChooseArtsFromMtbColrListItemModel().setMtbColr(mtbColr));
|
||||
}
|
||||
}
|
||||
// if (listaMtbColr != null) {
|
||||
// for (MtbColr mtbColr : listaMtbColr) {
|
||||
// if (UtilityString.isNullOrEmpty(mtbColr.getUntMis()) && mtbColr.getMtbAart() != null) {
|
||||
// mtbColr.setUntMis(mtbColr.getMtbAart().getUntMis());
|
||||
// }
|
||||
//
|
||||
// mDataset.add(new DialogChooseArtsFromMtbColrListItemModel().setMtbColr(mtbColr));
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@NonNull
|
||||
@Override
|
||||
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
|
||||
super.onCreateView(inflater, container, savedInstanceState);
|
||||
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
|
||||
this.mContext = requireContext();
|
||||
|
||||
this.context = getActivity();
|
||||
mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_choose_arts_from_mtb_colr_list_layout, null, false);
|
||||
mBindings.setLifecycleOwner(getViewLifecycleOwner());
|
||||
mBindings = DialogChooseArtsFromMtbColrListLayoutBinding.inflate(LayoutInflater.from(this.mContext), null, false);
|
||||
mBindings.setLifecycleOwner(this);
|
||||
|
||||
MainApplication.appComponent
|
||||
.dialogChooseArtsFromListaArtsComponent()
|
||||
.create()
|
||||
.inject(this);
|
||||
|
||||
UtilityDialog.setTo90PercentWidth(context, this);
|
||||
var cancelable = false;
|
||||
|
||||
mBindings.emptyView.setVisibility(mDataset != null && mDataset.size() > 0 ? View.GONE : View.VISIBLE);
|
||||
var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
|
||||
.setView(mBindings.getRoot())
|
||||
.setCancelable(cancelable)
|
||||
.setPositiveButton(R.string.ok, (dialog, which) -> {
|
||||
var selectedArts = Stream.of(this.mtbColrItemModels)
|
||||
.filter(x -> x.getChecked().get())
|
||||
.map(DialogChooseArtsFromMtbColrListItemModel::getMtbColr)
|
||||
.toList();
|
||||
|
||||
if (selectedArts.isEmpty()) {
|
||||
if (this.onAbort != null) this.onAbort.run();
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.onConfirmed != null)
|
||||
this.onConfirmed.run(selectedArts);
|
||||
})
|
||||
.setNegativeButton(R.string.abort, (dialog, which) -> {
|
||||
if (this.onAbort != null) this.onAbort.run();
|
||||
})
|
||||
.create();
|
||||
|
||||
|
||||
initRecyclerView();
|
||||
initFilter();
|
||||
setupBarcode();
|
||||
|
||||
mBindings.positiveButton.setOnClickListener(v -> {
|
||||
dismiss();
|
||||
onPositiveClick();
|
||||
});
|
||||
|
||||
mBindings.negativeButton.setOnClickListener(v -> {
|
||||
dismiss();
|
||||
onNegativeClick();
|
||||
});
|
||||
|
||||
getDialog().setCanceledOnTouchOutside(false);
|
||||
getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
|
||||
return mBindings.getRoot();
|
||||
alertDialog.setOnShowListener(this);
|
||||
alertDialog.setCanceledOnTouchOutside(cancelable);
|
||||
return alertDialog;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onStart() {
|
||||
super.onStart();
|
||||
public void onShow(DialogInterface dialogInterface) {
|
||||
this.initList();
|
||||
this.initFilter();
|
||||
this.setupBarcode();
|
||||
|
||||
if (selectedArt != null) {
|
||||
this.loadArticolo(selectedArt.getBarCode(), null);
|
||||
}
|
||||
}
|
||||
|
||||
private void initRecyclerView() {
|
||||
mBindings.listaArts.setNestedScrollingEnabled(false);
|
||||
private void initList() {
|
||||
mBindings.listaArts.setHasFixedSize(true);
|
||||
mBindings.listaArts.setLayoutManager(new LinearLayoutManager(context));
|
||||
|
||||
currentAdapter = new DialogChooseArtsFromMtbColrListAdapter(context, mDataset);
|
||||
mBindings.listaArts.setAdapter(currentAdapter);
|
||||
this.mtbColrItemModels = Stream.of(this.inputMtbColrList)
|
||||
.map(x -> new DialogChooseArtsFromMtbColrListItemModel()
|
||||
.setMtbColr(x))
|
||||
.toList();
|
||||
|
||||
this.hiddenMtbColrItemModels.setValue(this.mtbColrItemModels);
|
||||
|
||||
new LiveAdapter(this.hiddenMtbColrItemModels, this, BR.item)
|
||||
.map(DialogChooseArtsFromMtbColrListItemModel.class, R.layout.dialog_choose_arts_from_mtb_colr_list__item_model)
|
||||
.onNoData(noData -> {
|
||||
mBindings.emptyView.setVisibility(noData ? View.VISIBLE : View.GONE);
|
||||
return Unit.INSTANCE;
|
||||
})
|
||||
.into(this.mBindings.listaArts);
|
||||
}
|
||||
|
||||
|
||||
@@ -163,97 +182,63 @@ public class DialogChooseArtsFromMtbColrList extends BaseDialogFragment {
|
||||
mBindings.mainSearch.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
|
||||
@Override
|
||||
public boolean onQueryTextSubmit(String query) {
|
||||
// removeListFilter();
|
||||
//
|
||||
// if (!UtilityString.isNullOrEmpty(query) && query.trim().length() > 3) {
|
||||
// List<DialogChooseArtsFromListaArtsItemModel> foundRowsList = Stream.of(mDataset)
|
||||
// .filter(x -> {
|
||||
// String codMart = x.getMtbColr().getMtbAart().getCodMart();
|
||||
// String descrizioneArt = x.getMtbColr().getMtbAart().getDescrizioneEstesa();
|
||||
// String diacod = x.getMtbColr().getMtbAart().getDiacod();
|
||||
//
|
||||
// return ((codMart.startsWith(query) ||
|
||||
// codMart.endsWith(query) ||
|
||||
// codMart.contains(query) ||
|
||||
// codMart.equalsIgnoreCase(query)) ||
|
||||
// (descrizioneArt.startsWith(query) ||
|
||||
// descrizioneArt.endsWith(query) ||
|
||||
// descrizioneArt.contains(query) ||
|
||||
// descrizioneArt.equalsIgnoreCase(query)) ||
|
||||
// (diacod.startsWith(query) ||
|
||||
// diacod.endsWith(query) ||
|
||||
// diacod.contains(query) ||
|
||||
// diacod.equalsIgnoreCase(query))) &&
|
||||
// !x.isHidden();
|
||||
// })
|
||||
// .toList();
|
||||
//
|
||||
// for (int i = 0; i < mDataset.size(); i++) {
|
||||
// mDataset.get(i).setHidden(!foundRowsList.contains(mDataset.get(i)));
|
||||
// }
|
||||
// }
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
removeListFilter();
|
||||
|
||||
newText = newText.toLowerCase();
|
||||
|
||||
if (!UtilityString.isNullOrEmpty(newText) && newText.trim().length() > 2) {
|
||||
String finalNewText = newText;
|
||||
List<DialogChooseArtsFromMtbColrListItemModel> foundRowsList = Stream.of(mDataset)
|
||||
.filter(x -> {
|
||||
String codMart = x.getMtbColr().getMtbAart().getCodMart().toLowerCase();
|
||||
String descrizioneArt = x.getMtbColr().getMtbAart().getDescrizioneEstesa().toLowerCase();
|
||||
String diacod = x.getMtbColr().getMtbAart().getDiacod();
|
||||
if (!UtilityString.isNullOrEmpty(diacod)) {
|
||||
diacod = diacod.toLowerCase();
|
||||
}
|
||||
String finalNewText = newText;
|
||||
final List<DialogChooseArtsFromMtbColrListItemModel> filtered = Stream.of(mtbColrItemModels)
|
||||
.filter(x -> {
|
||||
String codMart = x.getMtbColr().getMtbAart().getCodMart().toLowerCase();
|
||||
String descrizioneArt = x.getMtbColr().getMtbAart().getDescrizioneEstesa().toLowerCase();
|
||||
String diacod = x.getMtbColr().getMtbAart().getDiacod();
|
||||
if (!UtilityString.isNullOrEmpty(diacod)) {
|
||||
diacod = diacod.toLowerCase();
|
||||
}
|
||||
|
||||
return ((codMart.startsWith(finalNewText) ||
|
||||
codMart.endsWith(finalNewText) ||
|
||||
codMart.contains(finalNewText) ||
|
||||
codMart.equalsIgnoreCase(finalNewText)) ||
|
||||
(descrizioneArt.startsWith(finalNewText) ||
|
||||
descrizioneArt.endsWith(finalNewText) ||
|
||||
descrizioneArt.contains(finalNewText) ||
|
||||
descrizioneArt.equalsIgnoreCase(finalNewText)) ||
|
||||
(!UtilityString.isNullOrEmpty(diacod) && (diacod.startsWith(finalNewText) ||
|
||||
diacod.endsWith(finalNewText) ||
|
||||
diacod.contains(finalNewText) ||
|
||||
diacod.equalsIgnoreCase(finalNewText)))) &&
|
||||
!x.isHidden();
|
||||
})
|
||||
.toList();
|
||||
|
||||
for (int i = 0; i < mDataset.size(); i++) {
|
||||
mDataset.get(i).setHidden(!foundRowsList.contains(mDataset.get(i)));
|
||||
}
|
||||
}
|
||||
return ((codMart.startsWith(finalNewText) ||
|
||||
codMart.endsWith(finalNewText) ||
|
||||
codMart.contains(finalNewText) ||
|
||||
codMart.equalsIgnoreCase(finalNewText)) ||
|
||||
(descrizioneArt.startsWith(finalNewText) ||
|
||||
descrizioneArt.endsWith(finalNewText) ||
|
||||
descrizioneArt.contains(finalNewText) ||
|
||||
descrizioneArt.equalsIgnoreCase(finalNewText)) ||
|
||||
(!UtilityString.isNullOrEmpty(diacod) && (diacod.startsWith(finalNewText) ||
|
||||
diacod.endsWith(finalNewText) ||
|
||||
diacod.contains(finalNewText) ||
|
||||
diacod.equalsIgnoreCase(finalNewText))));
|
||||
})
|
||||
.toList();
|
||||
|
||||
hiddenMtbColrItemModels.postValue(filtered);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void removeListFilter() {
|
||||
for (DialogChooseArtsFromMtbColrListItemModel itemModel : mtbColrItemModels) {
|
||||
itemModel.setHidden(false);
|
||||
}
|
||||
}
|
||||
|
||||
private void setupBarcode() {
|
||||
BarcodeManager.enable();
|
||||
|
||||
mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
|
||||
.setOnScanSuccessful(onScanSuccessfull)
|
||||
.setOnScanFailed(ex -> UtilityExceptions.defaultException(context, ex, false)));
|
||||
|
||||
|
||||
.setOnScanFailed(ex -> UtilityExceptions.defaultException(mContext, ex, false)));
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onDismiss(@NonNull DialogInterface dialog) {
|
||||
BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
|
||||
this.mOnAbort.run();
|
||||
this.onAbort.run();
|
||||
super.onDismiss(dialog);
|
||||
}
|
||||
|
||||
@@ -290,18 +275,14 @@ public class DialogChooseArtsFromMtbColrList extends BaseDialogFragment {
|
||||
if (!UtilityString.isNullOrEmpty(ean128Model.Gtin) || !UtilityString.isNullOrEmpty(ean128Model.Content)) {
|
||||
this.loadArticolo(barcodeProd, ean128Model);
|
||||
} else {
|
||||
DialogCommon.showNoArtFoundDialog(context, () -> {
|
||||
onLoadingEnded();
|
||||
});
|
||||
DialogCommon.showNoArtFoundDialog(mContext, this::onLoadingEnded);
|
||||
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
//EAN 128 non completo o comunque mancano i riferimenti al prodotto
|
||||
DialogCommon.showNoArtFoundDialog(context, () -> {
|
||||
onLoadingEnded();
|
||||
});
|
||||
DialogCommon.showNoArtFoundDialog(mContext, this::onLoadingEnded);
|
||||
|
||||
}
|
||||
}, this::onError);
|
||||
@@ -320,9 +301,7 @@ public class DialogChooseArtsFromMtbColrList extends BaseDialogFragment {
|
||||
|
||||
} else {
|
||||
|
||||
DialogCommon.showNoArtFoundDialog(context, () -> {
|
||||
onLoadingEnded();
|
||||
});
|
||||
DialogCommon.showNoArtFoundDialog(mContext, this::onLoadingEnded);
|
||||
}
|
||||
|
||||
}, this::onError);
|
||||
@@ -332,38 +311,20 @@ public class DialogChooseArtsFromMtbColrList extends BaseDialogFragment {
|
||||
private void searchArtInList(MtbAart mtbAart, Ean128Model ean128Model) {
|
||||
removeListFilter();
|
||||
|
||||
List<DialogChooseArtsFromMtbColrListItemModel> foundRowsList = Stream.of(mDataset)
|
||||
List<DialogChooseArtsFromMtbColrListItemModel> foundRowsList = Stream.of(mtbColrItemModels)
|
||||
.filter(x -> x.getMtbColr().getMtbAart().getCodMart().equalsIgnoreCase(mtbAart.getCodMart()) &&
|
||||
!x.isHidden())
|
||||
.toList();
|
||||
|
||||
if (foundRowsList.size() == 0) {
|
||||
DialogCommon.showNoArtFoundDialog(context, null);
|
||||
DialogCommon.showNoArtFoundDialog(mContext, null);
|
||||
} else {
|
||||
|
||||
for (int i = 0; i < mDataset.size(); i++) {
|
||||
mDataset.get(i).setHidden(!foundRowsList.contains(mDataset.get(i)));
|
||||
for (int i = 0; i < mtbColrItemModels.size(); i++) {
|
||||
mtbColrItemModels.get(i).setHidden(!foundRowsList.contains(mtbColrItemModels.get(i)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void removeListFilter() {
|
||||
for (DialogChooseArtsFromMtbColrListItemModel itemModel : mDataset) {
|
||||
itemModel.setHidden(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void onPositiveClick() {
|
||||
if (mOnItemsChoosed != null) {
|
||||
mOnItemsChoosed.run(currentAdapter.getSelectedItems());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void onNegativeClick() {
|
||||
this.dismiss();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,131 +0,0 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.databinding.Observable;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.model.CheckableMtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityResources;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.DialogChooseArtsFromMtbColrListItemModelBinding;
|
||||
|
||||
public class DialogChooseArtsFromMtbColrListAdapter extends RecyclerView.Adapter<DialogChooseArtsFromMtbColrListAdapter.ViewHolder> {
|
||||
|
||||
protected Context mContext;
|
||||
|
||||
private List<CheckableMtbColr> mDataset;
|
||||
private HashMap<CheckableMtbColr, Integer> mDatasetPositions = new HashMap<>();
|
||||
|
||||
|
||||
public DialogChooseArtsFromMtbColrListAdapter(Context context, List<DialogChooseArtsFromMtbColrListItemModel> myDataset) {
|
||||
mContext = context;
|
||||
|
||||
if(myDataset != null) {
|
||||
mDataset = Stream.of(myDataset)
|
||||
.withoutNulls()
|
||||
.map(CheckableMtbColr::new).toList();
|
||||
|
||||
for(int i = 0; i < mDataset.size(); i++) {
|
||||
final CheckableMtbColr itemModel = mDataset.get(i);
|
||||
|
||||
mDatasetPositions.put(itemModel, i);
|
||||
|
||||
itemModel.getHidden().addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() {
|
||||
@Override
|
||||
public void onPropertyChanged(Observable sender, int propertyId) {
|
||||
onItemHidden(itemModel);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void onItemHidden(CheckableMtbColr itemModel) {
|
||||
if(itemModel.isHidden()) {
|
||||
mDataset.remove(itemModel);
|
||||
} else {
|
||||
mDataset.add(mDatasetPositions.get(itemModel) , itemModel);
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
|
||||
public class ViewHolder extends RecyclerView.ViewHolder {
|
||||
private DialogChooseArtsFromMtbColrListItemModelBinding mViewDataBinding;
|
||||
|
||||
|
||||
public ViewHolder(DialogChooseArtsFromMtbColrListItemModelBinding v) {
|
||||
super(v.getRoot());
|
||||
mViewDataBinding = v;
|
||||
}
|
||||
|
||||
public void bind(CheckableMtbColr checkableMtbColr) {
|
||||
mViewDataBinding.setCheckableMtbColr(checkableMtbColr);
|
||||
|
||||
MtbColr mtbColr = checkableMtbColr.getItem().getMtbColr();
|
||||
|
||||
//Setting qty with unt_mis
|
||||
if(!SettingsManager.iDB().isFlagForceAllToColli() && (mtbColr.getMtbAart() == null || mtbColr.getMtbAart().isFlagQtaCnfFissaBoolean())){
|
||||
String text = UtilityNumber.decimalToString(mtbColr.getQtaCol());
|
||||
|
||||
|
||||
if(mtbColr.getMtbAart() != null) {
|
||||
text += !UtilityString.isNullOrEmpty(mtbColr.getMtbAart().getUntMis()) ? "\n" + mtbColr.getMtbAart().getUntMis() : "";
|
||||
}
|
||||
|
||||
mViewDataBinding.qtaTextview.setText(text);
|
||||
|
||||
|
||||
} else {
|
||||
mViewDataBinding.qtaTextview.setText(UtilityNumber.decimalToString(mtbColr.getNumCnf()) + "\n" + UtilityResources.getString(R.string.unt_mis_col));
|
||||
}
|
||||
|
||||
mViewDataBinding.executePendingBindings();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public DialogChooseArtsFromMtbColrListAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
// create a new view
|
||||
DialogChooseArtsFromMtbColrListItemModelBinding viewDataBinding = DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.dialog_choose_arts_from_mtb_colr_list__item_model, parent, false);
|
||||
|
||||
return new ViewHolder(viewDataBinding);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(DialogChooseArtsFromMtbColrListAdapter.ViewHolder holder, int position) {
|
||||
CheckableMtbColr item = mDataset.get(position);
|
||||
holder.bind(item);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onViewRecycled(DialogChooseArtsFromMtbColrListAdapter.ViewHolder holder) {
|
||||
super.onViewRecycled(holder);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
return mDataset.size();
|
||||
}
|
||||
|
||||
public List<MtbColr> getSelectedItems() {
|
||||
return Stream.of(mDataset)
|
||||
.filter(y -> y.getChecked().get())
|
||||
.map(x -> x.getItem().getMtbColr()).toList();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,7 +6,8 @@ import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
public class DialogChooseArtsFromMtbColrListItemModel {
|
||||
|
||||
private MtbColr mtbColr;
|
||||
private BindableBoolean hidden = new BindableBoolean(false);
|
||||
private final BindableBoolean checked = new BindableBoolean(false);
|
||||
private final BindableBoolean hidden = new BindableBoolean(false);
|
||||
|
||||
public MtbColr getMtbColr() {
|
||||
return mtbColr;
|
||||
@@ -17,6 +18,10 @@ public class DialogChooseArtsFromMtbColrListItemModel {
|
||||
return this;
|
||||
}
|
||||
|
||||
public BindableBoolean getChecked() {
|
||||
return checked;
|
||||
}
|
||||
|
||||
public boolean isHidden() {
|
||||
return hidden.get();
|
||||
}
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list;
|
||||
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
|
||||
@Module(subcomponents = DialogChooseArtsFromMtbColrListComponent.class)
|
||||
public class DialogChooseArtsFromMtbColrListModule {
|
||||
@Provides
|
||||
DialogChooseArtsFromMtbColrListViewModel providesDialogChooseArtsFromMtbColrListViewModel() {
|
||||
return new DialogChooseArtsFromMtbColrListViewModel();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list;
|
||||
|
||||
public class DialogChooseArtsFromMtbColrListViewModel {
|
||||
}
|
||||
Reference in New Issue
Block a user