Implementata richiesta del cliente in PickingLibero
This commit is contained in:
@@ -0,0 +1,141 @@
|
||||
package it.integry.integrywmsnative.core.model;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
public class VtbDest extends EntityBase implements Parcelable {
|
||||
|
||||
|
||||
public VtbDest() {
|
||||
type = "vtb_dest";
|
||||
}
|
||||
|
||||
private String codAnag;
|
||||
|
||||
private String codVdes;
|
||||
|
||||
private String destinatario;
|
||||
|
||||
private String indirizzo;
|
||||
|
||||
private String cap;
|
||||
|
||||
private String citta;
|
||||
|
||||
private String prov;
|
||||
|
||||
private String nazione;
|
||||
|
||||
|
||||
protected VtbDest(Parcel in) {
|
||||
codAnag = in.readString();
|
||||
codVdes = in.readString();
|
||||
destinatario = in.readString();
|
||||
indirizzo = in.readString();
|
||||
cap = in.readString();
|
||||
citta = in.readString();
|
||||
prov = in.readString();
|
||||
nazione = in.readString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(Parcel dest, int flags) {
|
||||
dest.writeString(codAnag);
|
||||
dest.writeString(codVdes);
|
||||
dest.writeString(destinatario);
|
||||
dest.writeString(indirizzo);
|
||||
dest.writeString(cap);
|
||||
dest.writeString(citta);
|
||||
dest.writeString(prov);
|
||||
dest.writeString(nazione);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
public static final Creator<VtbDest> CREATOR = new Creator<VtbDest>() {
|
||||
@Override
|
||||
public VtbDest createFromParcel(Parcel in) {
|
||||
return new VtbDest(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public VtbDest[] newArray(int size) {
|
||||
return new VtbDest[size];
|
||||
}
|
||||
};
|
||||
|
||||
public String getCodAnag() {
|
||||
return codAnag;
|
||||
}
|
||||
|
||||
public VtbDest setCodAnag(String codAnag) {
|
||||
this.codAnag = codAnag;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodVdes() {
|
||||
return codVdes;
|
||||
}
|
||||
|
||||
public VtbDest setCodVdes(String codVdes) {
|
||||
this.codVdes = codVdes;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDestinatario() {
|
||||
return destinatario;
|
||||
}
|
||||
|
||||
public VtbDest setDestinatario(String destinatario) {
|
||||
this.destinatario = destinatario;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getIndirizzo() {
|
||||
return indirizzo;
|
||||
}
|
||||
|
||||
public VtbDest setIndirizzo(String indirizzo) {
|
||||
this.indirizzo = indirizzo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCap() {
|
||||
return cap;
|
||||
}
|
||||
|
||||
public VtbDest setCap(String cap) {
|
||||
this.cap = cap;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCitta() {
|
||||
return citta;
|
||||
}
|
||||
|
||||
public VtbDest setCitta(String citta) {
|
||||
this.citta = citta;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getProv() {
|
||||
return prov;
|
||||
}
|
||||
|
||||
public VtbDest setProv(String prov) {
|
||||
this.prov = prov;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getNazione() {
|
||||
return nazione;
|
||||
}
|
||||
|
||||
public VtbDest setNazione(String nazione) {
|
||||
this.nazione = nazione;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -21,6 +21,7 @@ public class DBSettingsModel {
|
||||
private String defaultCodAnag;
|
||||
private String defaultCausaleRettificaGiacenze;
|
||||
private DistribuzioneColloDTO.CriterioDistribuzione defaultCriterioDistribuzione;
|
||||
private boolean flagAskClienteInPickingLibero;
|
||||
|
||||
public List<String> getAvailableProfiles() {
|
||||
return availableProfiles;
|
||||
@@ -99,4 +100,13 @@ public class DBSettingsModel {
|
||||
this.defaultCriterioDistribuzione = DistribuzioneColloDTO.CriterioDistribuzione.fromString(defaultCriterioDistribuzione);
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isFlagAskClienteInPickingLibero() {
|
||||
return flagAskClienteInPickingLibero;
|
||||
}
|
||||
|
||||
public DBSettingsModel setFlagAskClienteInPickingLibero(boolean flagAskClienteInPickingLibero) {
|
||||
this.flagAskClienteInPickingLibero = flagAskClienteInPickingLibero;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -189,7 +189,14 @@ public class SettingsManager {
|
||||
GestSetupRESTConsumer.getValue("PICKING", "SETUP", "DEFAULT_CRITERIO_DISTRIBUZIONE", valueDefaultCriterioDistribuzione -> {
|
||||
dbSettingsModelIstance.setDefaultCriterioDistribuzione(valueDefaultCriterioDistribuzione.value);
|
||||
|
||||
if(onComplete != null) onComplete.run();
|
||||
GestSetupRESTConsumer.getBooleanValue("PICKING", "PICKING_LIBERO", "FLAG_ASK_CLIENTE", valueAskClientePickingLibero -> {
|
||||
dbSettingsModelIstance.setFlagAskClienteInPickingLibero(valueAskClientePickingLibero);
|
||||
|
||||
if(onComplete != null) onComplete.run();
|
||||
|
||||
}, ex -> {
|
||||
if(onFailed != null) onFailed.run(ex);
|
||||
});
|
||||
|
||||
}, ex -> {
|
||||
if(onFailed != null) onFailed.run(ex);
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
package it.integry.integrywmsnative.core.utility;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
public class UtilityDialog {
|
||||
|
||||
public static void setTo90PercentSize(Context context, Dialog dialog) {
|
||||
int width = (int)(context.getResources().getDisplayMetrics().widthPixels*0.90);
|
||||
//int height = (int)(context.getResources().getDisplayMetrics().heightPixels*0.90);
|
||||
|
||||
dialog.getWindow().setLayout(width, LinearLayout.LayoutParams.WRAP_CONTENT);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,5 +1,8 @@
|
||||
package it.integry.integrywmsnative.core.utility;
|
||||
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* Created by GiuseppeS on 07/03/2018.
|
||||
*/
|
||||
@@ -14,4 +17,13 @@ public class UtilityString {
|
||||
return (stringToCheck != null && stringToCheck.trim().length() == 0 || stringToCheck == null) ? null : stringToCheck.trim();
|
||||
}
|
||||
|
||||
public static String capitalizeWords(String capString){
|
||||
StringBuffer capBuffer = new StringBuffer();
|
||||
Matcher capMatcher = Pattern.compile("([a-z])([a-z]*)", Pattern.CASE_INSENSITIVE).matcher(capString);
|
||||
while (capMatcher.find()){
|
||||
capMatcher.appendReplacement(capBuffer, capMatcher.group(1).toUpperCase() + capMatcher.group(2).toLowerCase());
|
||||
}
|
||||
|
||||
return capMatcher.appendTail(capBuffer).toString();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,8 +130,13 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
|
||||
helper.loadOrdini(new ILoadOrdiniCallback() {
|
||||
@Override
|
||||
public void onLoadSuccess(List<OrdineAccettazioneInevasoDTO> ordini) {
|
||||
Toast.makeText(getActivity(), "Caricati " + ordini.size() + " ordini", Toast.LENGTH_LONG).show();
|
||||
groupOrdiniAndMakeRecycler(ordini);
|
||||
if(ordini != null) {
|
||||
Toast.makeText(getActivity(), "Caricati " + ordini.size() + " ordini", Toast.LENGTH_LONG).show();
|
||||
groupOrdiniAndMakeRecycler(ordini);
|
||||
}
|
||||
|
||||
mBinding.ordiniAccettazioneEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.VISIBLE : View.GONE);
|
||||
|
||||
progress.dismiss();
|
||||
}
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ import it.integry.integrywmsnative.BuildConfig;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
|
||||
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
|
||||
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
|
||||
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding;
|
||||
@@ -68,7 +69,9 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment {
|
||||
mHelper = new PickingLiberoHelper(getActivity());
|
||||
|
||||
mViewModel = new PickingLiberoViewModel();
|
||||
mViewModel.init(getActivity(), mBindings, mHelper, mAppCompatActionBar);
|
||||
mViewModel.init(getActivity(), mBindings, mHelper, mAppCompatActionBar, () -> {
|
||||
((IPoppableActivity) getActivity()).pop();
|
||||
});
|
||||
|
||||
mBindings.setViewmodel(mViewModel);
|
||||
|
||||
|
||||
@@ -35,7 +35,9 @@ import it.integry.integrywmsnative.core.interfaces.IRecyclerItemClicked;
|
||||
import it.integry.integrywmsnative.core.model.CommonModelConsts;
|
||||
import it.integry.integrywmsnative.core.model.MtbColr;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.VtbDest;
|
||||
import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
|
||||
import it.integry.integrywmsnative.core.settings.SettingsManager;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityBarcode;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityNumber;
|
||||
@@ -44,6 +46,8 @@ import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.FragmentPickingLiberoBinding;
|
||||
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoHelper;
|
||||
import it.integry.integrywmsnative.gest.picking_libero.core.PickingLiberoListAdapter;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskCliente;
|
||||
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
|
||||
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_lista_arts.DialogChooseArtsFromListaArts;
|
||||
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
|
||||
@@ -68,7 +72,7 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
|
||||
|
||||
private PickingLiberoListAdapter mAdapter;
|
||||
|
||||
public void init(Activity context, FragmentPickingLiberoBinding binding, PickingLiberoHelper helper, AppCompatTextView titleText) {
|
||||
public void init(Activity context, FragmentPickingLiberoBinding binding, PickingLiberoHelper helper, AppCompatTextView titleText, Runnable onComplete) {
|
||||
mContext = context;
|
||||
mBinding = binding;
|
||||
mHelper = helper;
|
||||
@@ -460,6 +464,22 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
|
||||
|
||||
private void createNewLU(Integer customNumCollo, String customSerCollo, ProgressDialog progressDialog, Runnable onComplete, Runnable onFailed) {
|
||||
|
||||
if(SettingsManager.iDB().isFlagAskClienteInPickingLibero()){
|
||||
|
||||
DialogAskCliente.makeBase(mContext, (status, result) -> {
|
||||
if(status == DialogConsts.Results.YES) {
|
||||
createNewLUInternal(customNumCollo, customSerCollo, result, progressDialog, onComplete, onFailed);
|
||||
}
|
||||
}).show();
|
||||
} else {
|
||||
createNewLUInternal(customNumCollo, customSerCollo, null, progressDialog, onComplete, onFailed);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void createNewLUInternal(Integer customNumCollo, String customSerCollo, VtbDest vtbDest, ProgressDialog progressDialog, Runnable onComplete, Runnable onFailed) {
|
||||
|
||||
boolean shouldCloseProgress = progressDialog == null;
|
||||
final ProgressDialog progressDialogFinal = progressDialog == null ? UtilityProgress.createDefaultProgressDialog(mContext) : progressDialog;
|
||||
|
||||
@@ -476,6 +496,11 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
|
||||
mtbColt.setSerCollo(customSerCollo);
|
||||
}
|
||||
|
||||
if(vtbDest != null) {
|
||||
mtbColt.setCodAnag(vtbDest.getCodAnag());
|
||||
mtbColt.setCodVdes(vtbDest.getCodVdes());
|
||||
}
|
||||
|
||||
ColliMagazzinoRESTConsumer.saveCollo(mtbColt, savedMtbColt -> {
|
||||
savedMtbColt.setMtbColr(new ObservableArrayList<>());
|
||||
setULToCurrentContext(savedMtbColt);
|
||||
@@ -484,15 +509,6 @@ public class PickingLiberoViewModel implements IRecyclerItemClicked<MtbColr> {
|
||||
|
||||
FBToast.successToast(mContext, mContext.getResources().getString(R.string.data_saved) ,FBToast.LENGTH_SHORT);
|
||||
|
||||
|
||||
// new StatusBarAlert.Builder(mContext)
|
||||
// .autoHide(true)
|
||||
// .withDuration(2500)
|
||||
// .showProgress(false)
|
||||
// .withText(R.string.data_saved)
|
||||
// .withAlertColor(R.color.mainGreen)
|
||||
// .build();
|
||||
|
||||
if(onComplete != null) onComplete.run();
|
||||
|
||||
}, ex -> {
|
||||
|
||||
@@ -156,9 +156,14 @@ public class MainVenditaFragment extends Fragment implements ITitledFragment, IS
|
||||
mHelper.loadOrdini(new VenditaHelper.ILoadOrdiniCallback() {
|
||||
@Override
|
||||
public void onLoadSuccess(List<OrdineVenditaInevasoDTO> ordini) {
|
||||
UtilityToast.showToast("Caricati " + ordini.size() + " ordini");
|
||||
mOriginalOrderList = ordini;
|
||||
mViewModel.setListOrder(ordini);
|
||||
if(ordini != null) {
|
||||
UtilityToast.showToast("Caricati " + ordini.size() + " ordini");
|
||||
mOriginalOrderList = ordini;
|
||||
mViewModel.setListOrder(ordini);
|
||||
}
|
||||
|
||||
|
||||
mBinding.ordiniVenditaEmptyView.setVisibility(ordini != null && ordini.size() > 0 ? View.VISIBLE : View.GONE);
|
||||
|
||||
groupOrdini(ordini);
|
||||
initRecyclerView();
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.ask_cliente;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.graphics.Color;
|
||||
import android.graphics.drawable.ColorDrawable;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.AutoCompleteTextView;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import java.util.AbstractMap;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
||||
import it.integry.integrywmsnative.core.model.MtbColt;
|
||||
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
|
||||
import it.integry.integrywmsnative.core.model.VtbDest;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDialog;
|
||||
import it.integry.integrywmsnative.databinding.DialogAskClienteBinding;
|
||||
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
|
||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel.DialogAskCliente_Page1ViewModel;
|
||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel.DialogAskCliente_Page2ViewModel;
|
||||
|
||||
public class DialogAskCliente {
|
||||
|
||||
private Context mContext;
|
||||
|
||||
private Dialog mDialog;
|
||||
|
||||
private DialogAskClienteBinding mBinding;
|
||||
|
||||
|
||||
public static Dialog makeBase(final Context context, RunnableArgss<DialogConsts.Results, VtbDest> onComplete) {
|
||||
return new DialogAskCliente(context, onComplete).mDialog;
|
||||
}
|
||||
|
||||
public DialogAskCliente(Context context, RunnableArgss<DialogConsts.Results, VtbDest> onComplete) {
|
||||
mContext = context;
|
||||
|
||||
|
||||
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
|
||||
mBinding = DataBindingUtil.inflate(inflater, R.layout.dialog_ask_cliente, null, false);
|
||||
|
||||
List<Map.Entry<Integer, Class>> views = new ArrayList<>();
|
||||
views.add(new AbstractMap.SimpleEntry<>(R.layout.dialog_ask_cliente__page1, DialogAskCliente_Page1ViewModel.class));
|
||||
views.add(new AbstractMap.SimpleEntry<>(R.layout.dialog_ask_cliente__page2, DialogAskCliente_Page2ViewModel.class));
|
||||
|
||||
|
||||
|
||||
DialogAskClienteAdapter adapter = new DialogAskClienteAdapter(mContext, views);
|
||||
mBinding.viewpager.setAdapter(adapter);
|
||||
mBinding.viewpager.beginFakeDrag();
|
||||
mBinding.viewpager.addOnPageChangeListener(adapter);
|
||||
|
||||
|
||||
|
||||
mDialog = new Dialog(mContext);
|
||||
mDialog.setContentView(mBinding.getRoot());
|
||||
mDialog.setCanceledOnTouchOutside(false);
|
||||
// mDialog.setCancelable(false);
|
||||
UtilityDialog.setTo90PercentSize(mContext, mDialog);
|
||||
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
|
||||
mDialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
|
||||
|
||||
|
||||
mDialog.setOnShowListener(dialog -> {
|
||||
|
||||
DialogAskCliente_Page1ViewModel viewModel1 = (DialogAskCliente_Page1ViewModel) adapter.getViewModel(R.layout.dialog_ask_cliente__page1);
|
||||
DialogAskCliente_Page2ViewModel viewModel2 = (DialogAskCliente_Page2ViewModel) adapter.getViewModel(R.layout.dialog_ask_cliente__page2);
|
||||
|
||||
viewModel1
|
||||
.setOnConfirmClickListener(() -> {
|
||||
|
||||
viewModel2.setCodAnag(viewModel1.getCurrentCliente().getCodAnag());
|
||||
|
||||
mBinding.viewpager.setCurrentItem(mBinding.viewpager.getCurrentItem() + 1, true);
|
||||
});
|
||||
|
||||
viewModel1.setOnAbortClickListener(() -> {
|
||||
mDialog.dismiss();
|
||||
onComplete.run(DialogConsts.Results.ABORT, null);
|
||||
});
|
||||
|
||||
viewModel2.setOnConfirmClickListener(() -> {
|
||||
onComplete.run(DialogConsts.Results.YES, viewModel2.getCurrentDestinatario().toVtbDestModel());
|
||||
mDialog.dismiss();
|
||||
});
|
||||
|
||||
viewModel2.setOnAbortClickListener(() -> {
|
||||
mDialog.dismiss();
|
||||
onComplete.run(DialogConsts.Results.ABORT, null);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.ask_cliente;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
import androidx.databinding.ViewDataBinding;
|
||||
import androidx.viewpager.widget.PagerAdapter;
|
||||
import androidx.viewpager.widget.ViewPager;
|
||||
|
||||
import java.util.AbstractMap;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import it.integry.integrywmsnative.BR;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.ui.DeactivatableViewPager;
|
||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel.IDialogAskClienteViewModel;
|
||||
|
||||
public class DialogAskClienteAdapter extends PagerAdapter implements ViewPager.OnPageChangeListener {
|
||||
|
||||
private Context mContext;
|
||||
|
||||
private List<Map.Entry<Integer, Class>> mDatasetLayout;
|
||||
private List<Map.Entry<ViewDataBinding, IDialogAskClienteViewModel>> mDatasetViews;
|
||||
|
||||
private DeactivatableViewPager viewPager;
|
||||
|
||||
public DialogAskClienteAdapter(Context context, List<Map.Entry<Integer, Class>> datasetLayouts) {
|
||||
this.mContext = context;
|
||||
this.mDatasetLayout = datasetLayouts;
|
||||
this.mDatasetViews = new ArrayList<>();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public View instantiateItem(ViewGroup container, int position) {
|
||||
viewPager = (DeactivatableViewPager) container;
|
||||
|
||||
Integer viewId = mDatasetLayout.get(position).getKey();
|
||||
|
||||
|
||||
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
|
||||
ViewDataBinding mBinding = DataBindingUtil.inflate(inflater, viewId, null, false);
|
||||
|
||||
Class viewModelClass = mDatasetLayout.get(position).getValue();
|
||||
IDialogAskClienteViewModel viewModel = null;
|
||||
|
||||
try {
|
||||
viewModel = (IDialogAskClienteViewModel) viewModelClass.newInstance();
|
||||
viewModel.setBinding(mBinding);
|
||||
viewModel.setContext(mContext);
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
} catch (InstantiationException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
mBinding.setVariable(BR.viewmodel, viewModel);
|
||||
|
||||
container.addView(mBinding.getRoot());
|
||||
this.mDatasetViews.add(new AbstractMap.SimpleEntry<>(mBinding, viewModel));
|
||||
|
||||
return mBinding.getRoot();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroyItem(ViewGroup container, int position, Object object) {
|
||||
container.removeView((LinearLayout)object);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isViewFromObject(@NonNull View view, @NonNull Object o) {
|
||||
return view == o;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return mDatasetLayout.size();
|
||||
}
|
||||
|
||||
public IDialogAskClienteViewModel getViewModel(@NonNull int layoutID) {
|
||||
for(int i = 0; i < mDatasetLayout.size(); i++) {
|
||||
if(mDatasetLayout.get(i).getKey() == layoutID) {
|
||||
return this.mDatasetViews.get(i).getValue();
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private int lastPage = -1;
|
||||
|
||||
@Override
|
||||
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||
if(position != lastPage) {
|
||||
viewPager.measureCurrentView(mDatasetViews.get(position).getKey().getRoot());
|
||||
mDatasetViews.get(position).getValue().onShow();
|
||||
lastPage = position;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
// mDatasetViews.get(position).getValue().onShow();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPageScrollStateChanged(int state) {
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.ask_cliente.dto;
|
||||
|
||||
public class DialogAskClienteClienteDTO {
|
||||
|
||||
private String codAnag;
|
||||
|
||||
private String ragSoc;
|
||||
|
||||
public String getCodAnag() {
|
||||
return codAnag;
|
||||
}
|
||||
|
||||
public DialogAskClienteClienteDTO setCodAnag(String codAnag) {
|
||||
this.codAnag = codAnag;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getRagSoc() {
|
||||
return ragSoc;
|
||||
}
|
||||
|
||||
public DialogAskClienteClienteDTO setRagSoc(String ragSoc) {
|
||||
this.ragSoc = ragSoc;
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return getRagSoc();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,111 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.ask_cliente.dto;
|
||||
|
||||
import it.integry.integrywmsnative.core.model.VtbDest;
|
||||
|
||||
public class DialogAskClienteDestinatarioDTO {
|
||||
|
||||
private String codAnag;
|
||||
|
||||
private String codVdes;
|
||||
|
||||
private String destinatario;
|
||||
|
||||
private String indirizzo;
|
||||
|
||||
private String cap;
|
||||
|
||||
private String citta;
|
||||
|
||||
private String prov;
|
||||
|
||||
private String nazione;
|
||||
|
||||
public String getCodAnag() {
|
||||
return codAnag;
|
||||
}
|
||||
|
||||
public DialogAskClienteDestinatarioDTO setCodAnag(String codAnag) {
|
||||
this.codAnag = codAnag;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCodVdes() {
|
||||
return codVdes;
|
||||
}
|
||||
|
||||
public DialogAskClienteDestinatarioDTO setCodVdes(String codVdes) {
|
||||
this.codVdes = codVdes;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getDestinatario() {
|
||||
return destinatario;
|
||||
}
|
||||
|
||||
public DialogAskClienteDestinatarioDTO setDestinatario(String destinatario) {
|
||||
this.destinatario = destinatario;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getIndirizzo() {
|
||||
return indirizzo;
|
||||
}
|
||||
|
||||
public DialogAskClienteDestinatarioDTO setIndirizzo(String indirizzo) {
|
||||
this.indirizzo = indirizzo;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCap() {
|
||||
return cap;
|
||||
}
|
||||
|
||||
public DialogAskClienteDestinatarioDTO setCap(String cap) {
|
||||
this.cap = cap;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getCitta() {
|
||||
return citta;
|
||||
}
|
||||
|
||||
public DialogAskClienteDestinatarioDTO setCitta(String citta) {
|
||||
this.citta = citta;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getProv() {
|
||||
return prov;
|
||||
}
|
||||
|
||||
public DialogAskClienteDestinatarioDTO setProv(String prov) {
|
||||
this.prov = prov;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getNazione() {
|
||||
return nazione;
|
||||
}
|
||||
|
||||
public DialogAskClienteDestinatarioDTO setNazione(String nazione) {
|
||||
this.nazione = nazione;
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return String.format("%s (%s)", getDestinatario(), getCodVdes());
|
||||
}
|
||||
|
||||
public VtbDest toVtbDestModel() {
|
||||
return new VtbDest()
|
||||
.setCap(getCap())
|
||||
.setCitta(getCitta())
|
||||
.setCodAnag(getCodAnag())
|
||||
.setCodVdes(getCodVdes())
|
||||
.setDestinatario(getDestinatario())
|
||||
.setProv(getProv())
|
||||
.setIndirizzo(getIndirizzo())
|
||||
.setNazione(getNazione());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel;
|
||||
|
||||
import android.content.Context;
|
||||
import android.widget.AutoCompleteTextView;
|
||||
|
||||
import androidx.databinding.ViewDataBinding;
|
||||
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
|
||||
import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer;
|
||||
import it.integry.integrywmsnative.databinding.DialogAskClientePage1Binding;
|
||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteClienteDTO;
|
||||
|
||||
public class DialogAskCliente_Page1ViewModel implements IDialogAskClienteViewModel {
|
||||
|
||||
private Context mContext;
|
||||
private DialogAskClientePage1Binding mBinding;
|
||||
|
||||
private List<DialogAskClienteClienteDTO> availableClienti;
|
||||
|
||||
public DialogAskCliente_Page1ViewModel() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setContext(Context context) {
|
||||
this.mContext = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBinding(ViewDataBinding binding) {
|
||||
this.mBinding = (DialogAskClientePage1Binding) binding;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onShow() {
|
||||
|
||||
String sql = "SELECT gtb_anag.cod_anag, rag_soc " +
|
||||
"FROM gtb_anag " +
|
||||
"INNER JOIN vtb_clie ON gtb_anag.cod_anag = vtb_clie.cod_anag " +
|
||||
"WHERE vtb_clie.flag_stato = 'A' " +
|
||||
"ORDER BY rag_soc";
|
||||
|
||||
Type typeOfObjectsList = new TypeToken<ArrayList<DialogAskClienteClienteDTO>>() {}.getType();
|
||||
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<DialogAskClienteClienteDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(ArrayList<DialogAskClienteClienteDTO> value) {
|
||||
availableClienti = value;
|
||||
initializeAdapter(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Exception ex) {
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnConfirmClickListener(Runnable onConfirm) {
|
||||
this.mBinding.buttonYes.setOnClickListener(v -> {
|
||||
if(validateCliente()) {
|
||||
this.resetClienteError();
|
||||
if(onConfirm != null) onConfirm.run();
|
||||
} else {
|
||||
this.setClienteError(mContext.getResources().getText(R.string.not_valid_customer_error).toString());
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnAbortClickListener(Runnable onAbort) {
|
||||
this.mBinding.buttonNo.setOnClickListener(v -> {
|
||||
if(onAbort != null) onAbort.run();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private void initializeAdapter(ArrayList<DialogAskClienteClienteDTO> items) {
|
||||
|
||||
DialogAskCliente_Page1_ArrayAdapter adapter = new DialogAskCliente_Page1_ArrayAdapter(mContext, items);
|
||||
|
||||
|
||||
AutoCompleteTextView editTextFilledExposedDropdown = mBinding.filledExposedDropdown;
|
||||
editTextFilledExposedDropdown.setThreshold(0);
|
||||
editTextFilledExposedDropdown.setAdapter(adapter);
|
||||
}
|
||||
|
||||
|
||||
private boolean validateCliente() {
|
||||
return getCurrentCliente() != null;
|
||||
}
|
||||
|
||||
public DialogAskClienteClienteDTO getCurrentCliente() {
|
||||
for (DialogAskClienteClienteDTO cliente : availableClienti) {
|
||||
if(cliente.getRagSoc().equalsIgnoreCase(mBinding.inputCliente.getEditText().getText().toString())) {
|
||||
return cliente;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
private void setClienteError(String message){
|
||||
mBinding.inputCliente.setErrorEnabled(true);
|
||||
mBinding.inputCliente.setError(message);
|
||||
}
|
||||
private void resetClienteError() {
|
||||
mBinding.inputCliente.setError(null);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Movie;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Filter;
|
||||
import android.widget.Filterable;
|
||||
|
||||
import androidx.annotation.LayoutRes;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.AppCompatTextView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteClienteDTO;
|
||||
|
||||
public class DialogAskCliente_Page1_ArrayAdapter extends ArrayAdapter<DialogAskClienteClienteDTO> implements Filterable {
|
||||
|
||||
private Context mContext;
|
||||
private List<DialogAskClienteClienteDTO> mDataset;
|
||||
private List<DialogAskClienteClienteDTO> mDatasetAllItems;
|
||||
|
||||
private ListFilter listFilter = new ListFilter();
|
||||
|
||||
public DialogAskCliente_Page1_ArrayAdapter(@NonNull Context context, @NonNull ArrayList<DialogAskClienteClienteDTO> list) {
|
||||
super(context, 0 , list);
|
||||
mContext = context;
|
||||
mDataset = list;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
|
||||
View listItem = convertView;
|
||||
if(listItem == null) {
|
||||
listItem = LayoutInflater.from(mContext).inflate(R.layout.dialog_ask_cliente__dropdown_item, parent, false);
|
||||
}
|
||||
|
||||
if(position < mDataset.size()) {
|
||||
|
||||
AppCompatTextView textView = listItem.findViewById(R.id.text);
|
||||
|
||||
textView.setText(mDataset.get(position).getRagSoc());
|
||||
|
||||
return listItem;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Filter getFilter() {
|
||||
return listFilter;
|
||||
}
|
||||
|
||||
public class ListFilter extends Filter {
|
||||
private Object lock = new Object();
|
||||
|
||||
@Override
|
||||
protected FilterResults performFiltering(CharSequence prefix) {
|
||||
FilterResults results = new FilterResults();
|
||||
if (mDatasetAllItems == null) {
|
||||
synchronized (lock) {
|
||||
mDatasetAllItems = new ArrayList<>(mDataset);
|
||||
}
|
||||
}
|
||||
|
||||
if (prefix == null || prefix.length() == 0) {
|
||||
synchronized (lock) {
|
||||
results.values = mDatasetAllItems;
|
||||
results.count = mDatasetAllItems.size();
|
||||
}
|
||||
} else {
|
||||
final String searchStrLowerCase = prefix.toString().toLowerCase();
|
||||
|
||||
ArrayList<DialogAskClienteClienteDTO> matchValues = new ArrayList<>();
|
||||
|
||||
for (DialogAskClienteClienteDTO dataItem : mDatasetAllItems) {
|
||||
if (dataItem.getRagSoc().toLowerCase().startsWith(searchStrLowerCase)) {
|
||||
matchValues.add(dataItem);
|
||||
}
|
||||
}
|
||||
|
||||
results.values = matchValues;
|
||||
results.count = matchValues.size();
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void publishResults(CharSequence constraint, FilterResults results) {
|
||||
if (results.values != null) {
|
||||
mDataset.clear();
|
||||
mDataset.addAll((ArrayList<DialogAskClienteClienteDTO>) results.values);
|
||||
} else {
|
||||
mDataset.clear();
|
||||
}
|
||||
if (results.count > 0) {
|
||||
notifyDataSetChanged();
|
||||
} else {
|
||||
notifyDataSetInvalidated();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel;
|
||||
|
||||
import android.content.Context;
|
||||
import android.widget.AutoCompleteTextView;
|
||||
|
||||
import androidx.databinding.ViewDataBinding;
|
||||
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.REST.consumers.ISimpleOperationCallback;
|
||||
import it.integry.integrywmsnative.core.REST.consumers.SystemRESTConsumer;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDB;
|
||||
import it.integry.integrywmsnative.databinding.DialogAskClientePage2Binding;
|
||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteClienteDTO;
|
||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteDestinatarioDTO;
|
||||
|
||||
public class DialogAskCliente_Page2ViewModel implements IDialogAskClienteViewModel {
|
||||
|
||||
|
||||
private DialogAskClientePage2Binding mBinding;
|
||||
private Context mContext;
|
||||
|
||||
private List<DialogAskClienteDestinatarioDTO> availableDestinatari;
|
||||
|
||||
private String mCodAnag;
|
||||
|
||||
public DialogAskCliente_Page2ViewModel() {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBinding(ViewDataBinding binding) {
|
||||
this.mBinding = (DialogAskClientePage2Binding) binding;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setContext(Context context) {
|
||||
this.mContext = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onShow() {
|
||||
|
||||
String sql = "SELECT cod_anag, cod_vdes, destinatario, indirizzo, cap, citta, prov, nazione " +
|
||||
"FROM vtb_dest " +
|
||||
"WHERE cod_anag = " + UtilityDB.valueToString(mCodAnag);
|
||||
|
||||
Type typeOfObjectsList = new TypeToken<ArrayList<DialogAskClienteDestinatarioDTO>>() {}.getType();
|
||||
SystemRESTConsumer.processSql(sql, typeOfObjectsList, new ISimpleOperationCallback<ArrayList<DialogAskClienteDestinatarioDTO>>() {
|
||||
@Override
|
||||
public void onSuccess(ArrayList<DialogAskClienteDestinatarioDTO> value) {
|
||||
availableDestinatari = value;
|
||||
initializeAdapter(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailed(Exception ex) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnConfirmClickListener(Runnable onConfirm) {
|
||||
this.mBinding.buttonYes.setOnClickListener(v -> {
|
||||
if(validateDestinatario()) {
|
||||
this.resetClienteError();
|
||||
if(onConfirm != null) onConfirm.run();
|
||||
} else {
|
||||
this.setClienteError(mContext.getResources().getText(R.string.not_valid_recipient_error).toString());
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOnAbortClickListener(Runnable onAbort) {
|
||||
this.mBinding.buttonNo.setOnClickListener(v -> {
|
||||
if(onAbort != null) onAbort.run();
|
||||
});
|
||||
}
|
||||
|
||||
public void setCodAnag(String codAnag) {
|
||||
this.mCodAnag = codAnag;
|
||||
}
|
||||
|
||||
private void initializeAdapter(ArrayList<DialogAskClienteDestinatarioDTO> items) {
|
||||
|
||||
DialogAskCliente_Page2_ArrayAdapter adapter = new DialogAskCliente_Page2_ArrayAdapter(mContext, items);
|
||||
|
||||
|
||||
AutoCompleteTextView editTextFilledExposedDropdown = mBinding.filledExposedDropdown;
|
||||
editTextFilledExposedDropdown.setThreshold(0);
|
||||
editTextFilledExposedDropdown.setAdapter(adapter);
|
||||
}
|
||||
|
||||
|
||||
private boolean validateDestinatario() {
|
||||
return getCurrentDestinatario() != null;
|
||||
}
|
||||
|
||||
public DialogAskClienteDestinatarioDTO getCurrentDestinatario() {
|
||||
for (DialogAskClienteDestinatarioDTO destinatarioDTO : availableDestinatari) {
|
||||
if(destinatarioDTO.toString().equalsIgnoreCase(mBinding.inputDestinatario.getEditText().getText().toString())) {
|
||||
return destinatarioDTO;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
private void setClienteError(String message){
|
||||
mBinding.inputDestinatario.setErrorEnabled(true);
|
||||
mBinding.inputDestinatario.setError(message);
|
||||
}
|
||||
private void resetClienteError() {
|
||||
mBinding.inputDestinatario.setError(null);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.Filter;
|
||||
import android.widget.Filterable;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.widget.AppCompatTextView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.view.dialogs.ask_cliente.dto.DialogAskClienteDestinatarioDTO;
|
||||
|
||||
public class DialogAskCliente_Page2_ArrayAdapter extends ArrayAdapter<DialogAskClienteDestinatarioDTO> implements Filterable {
|
||||
|
||||
private Context mContext;
|
||||
private List<DialogAskClienteDestinatarioDTO> mDataset;
|
||||
private List<DialogAskClienteDestinatarioDTO> mDatasetAllItems;
|
||||
|
||||
private ListFilter listFilter = new ListFilter();
|
||||
|
||||
public DialogAskCliente_Page2_ArrayAdapter(@NonNull Context context, @NonNull ArrayList<DialogAskClienteDestinatarioDTO> list) {
|
||||
super(context, 0 , list);
|
||||
mContext = context;
|
||||
mDataset = list;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
|
||||
View listItem = convertView;
|
||||
if(listItem == null) {
|
||||
listItem = LayoutInflater.from(mContext).inflate(R.layout.dialog_ask_cliente__dropdown_item_destinatario, parent, false);
|
||||
}
|
||||
|
||||
if(position < mDataset.size()) {
|
||||
|
||||
AppCompatTextView destinatario = listItem.findViewById(R.id.destinatario);
|
||||
destinatario.setText(UtilityString.capitalizeWords(mDataset.get(position).toString()));
|
||||
|
||||
AppCompatTextView subtitle = listItem.findViewById(R.id.subtitle);
|
||||
|
||||
StringBuilder subtitleStr = new StringBuilder();
|
||||
if(!UtilityString.isNullOrEmpty(mDataset.get(position).getCitta())) {
|
||||
subtitleStr.append(UtilityString.capitalizeWords(mDataset.get(position).getCitta()) + " - ");
|
||||
}
|
||||
|
||||
if(!UtilityString.isNullOrEmpty(mDataset.get(position).getIndirizzo())) {
|
||||
subtitleStr.append(UtilityString.capitalizeWords(mDataset.get(position).getIndirizzo()));
|
||||
}
|
||||
|
||||
subtitle.setText(subtitleStr);
|
||||
|
||||
|
||||
return listItem;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public Filter getFilter() {
|
||||
return listFilter;
|
||||
}
|
||||
|
||||
public class ListFilter extends Filter {
|
||||
private Object lock = new Object();
|
||||
|
||||
@Override
|
||||
protected FilterResults performFiltering(CharSequence prefix) {
|
||||
FilterResults results = new FilterResults();
|
||||
if (mDatasetAllItems == null) {
|
||||
synchronized (lock) {
|
||||
mDatasetAllItems = new ArrayList<>(mDataset);
|
||||
}
|
||||
}
|
||||
|
||||
if (prefix == null || prefix.length() == 0) {
|
||||
synchronized (lock) {
|
||||
results.values = mDatasetAllItems;
|
||||
results.count = mDatasetAllItems.size();
|
||||
}
|
||||
} else {
|
||||
final String searchStrLowerCase = prefix.toString().toLowerCase();
|
||||
|
||||
ArrayList<DialogAskClienteDestinatarioDTO> matchValues = new ArrayList<>();
|
||||
|
||||
for (DialogAskClienteDestinatarioDTO dataItem : mDatasetAllItems) {
|
||||
if (dataItem.toString().toLowerCase().startsWith(searchStrLowerCase)) {
|
||||
matchValues.add(dataItem);
|
||||
}
|
||||
}
|
||||
|
||||
results.values = matchValues;
|
||||
results.count = matchValues.size();
|
||||
}
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void publishResults(CharSequence constraint, FilterResults results) {
|
||||
if (results.values != null) {
|
||||
mDataset.clear();
|
||||
mDataset.addAll((ArrayList<DialogAskClienteDestinatarioDTO>) results.values);
|
||||
} else {
|
||||
mDataset.clear();
|
||||
}
|
||||
if (results.count > 0) {
|
||||
notifyDataSetChanged();
|
||||
} else {
|
||||
notifyDataSetInvalidated();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package it.integry.integrywmsnative.view.dialogs.ask_cliente.viewmodel;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import androidx.databinding.ViewDataBinding;
|
||||
|
||||
public interface IDialogAskClienteViewModel {
|
||||
|
||||
void setContext(Context context);
|
||||
|
||||
void setBinding(ViewDataBinding binding);
|
||||
|
||||
void onShow();
|
||||
|
||||
void setOnConfirmClickListener(Runnable onConfirm);
|
||||
|
||||
void setOnAbortClickListener(Runnable onAbort);
|
||||
}
|
||||
@@ -55,7 +55,7 @@ public class DialogAskPositionOfLU {
|
||||
return new DialogAskPositionOfLU(context, mtbColtToUpdate, onComplete, onFailed).mDialog;
|
||||
}
|
||||
|
||||
public DialogAskPositionOfLU(Context context, MtbColt mtbColtToUpdate, RunnableArgss<DialogConsts.Results, MtbDepoPosizione> onComplete, RunnableArgs<Exception> onFailed) {
|
||||
private DialogAskPositionOfLU(Context context, MtbColt mtbColtToUpdate, RunnableArgss<DialogConsts.Results, MtbDepoPosizione> onComplete, RunnableArgs<Exception> onFailed) {
|
||||
mContext = context;
|
||||
mtbColt = mtbColtToUpdate;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user