#A0000207564.60 Implementato nuovo adapter per Dropdown
This commit is contained in:
parent
44cca16fec
commit
2f8d549303
@ -1,6 +1,5 @@
|
|||||||
package it.integry.integrywmsnative.gest.ultime_consegne_cliente.dialog;
|
package it.integry.integrywmsnative.gest.ultime_consegne_cliente.dialog;
|
||||||
|
|
||||||
import androidx.appcompat.app.AlertDialog;
|
|
||||||
import android.app.DatePickerDialog;
|
import android.app.DatePickerDialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
@ -9,6 +8,7 @@ import android.view.LayoutInflater;
|
|||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
import android.widget.ArrayAdapter;
|
import android.widget.ArrayAdapter;
|
||||||
|
|
||||||
|
import androidx.appcompat.app.AlertDialog;
|
||||||
import androidx.databinding.DataBindingUtil;
|
import androidx.databinding.DataBindingUtil;
|
||||||
|
|
||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
@ -22,12 +22,11 @@ import java.util.List;
|
|||||||
import it.integry.integrywmsnative.R;
|
import it.integry.integrywmsnative.R;
|
||||||
import it.integry.integrywmsnative.core.di.BindableString;
|
import it.integry.integrywmsnative.core.di.BindableString;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
|
||||||
import it.integry.integrywmsnative.core.expansion.RunnableArgss;
|
|
||||||
import it.integry.integrywmsnative.core.model.GtbAnag;
|
import it.integry.integrywmsnative.core.model.GtbAnag;
|
||||||
import it.integry.integrywmsnative.core.rest.model.DocumentoResoDTO;
|
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||||
import it.integry.integrywmsnative.databinding.DialogUltimeConsegneFiltroAvanzatoBinding;
|
import it.integry.integrywmsnative.databinding.DialogUltimeConsegneFiltroAvanzatoBinding;
|
||||||
|
import it.integry.integrywmsnative.ui.adapter.SimpleAutoCompleteDropdownAdapter;
|
||||||
|
|
||||||
public class DialogUltimeConsegneFiltroAvanzato {
|
public class DialogUltimeConsegneFiltroAvanzato {
|
||||||
|
|
||||||
@ -105,8 +104,7 @@ public class DialogUltimeConsegneFiltroAvanzato {
|
|||||||
|
|
||||||
private void initView(DialogUltimeConsegneFiltroAvanzatoBinding bindings, DialogUltimeConsegneFiltroAvanzatoViewModel viewModel) {
|
private void initView(DialogUltimeConsegneFiltroAvanzatoBinding bindings, DialogUltimeConsegneFiltroAvanzatoViewModel viewModel) {
|
||||||
|
|
||||||
arrayAdapterRagSoc = new ArrayAdapter(mContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
arrayAdapterRagSoc = new SimpleAutoCompleteDropdownAdapter(mContext, R.layout.dialog_vendita_filtro_avanzato__single_item, getAvailableRagSocs(false));
|
||||||
arrayAdapterRagSoc.addAll(getAvailableRagSocs(false));
|
|
||||||
bindings.filledExposedDropdownRagSoc.setAdapter(arrayAdapterRagSoc);
|
bindings.filledExposedDropdownRagSoc.setAdapter(arrayAdapterRagSoc);
|
||||||
|
|
||||||
bindings.filledExposedDropdownDataDoc.setOnClickListener(view -> {
|
bindings.filledExposedDropdownDataDoc.setOnClickListener(view -> {
|
||||||
@ -141,7 +139,9 @@ public class DialogUltimeConsegneFiltroAvanzato {
|
|||||||
BindableString.registerListener(viewModel.ragSoc, value -> {
|
BindableString.registerListener(viewModel.ragSoc, value -> {
|
||||||
if (UtilityString.isNullOrEmpty(value)) currentRagSocPredicate = null;
|
if (UtilityString.isNullOrEmpty(value)) currentRagSocPredicate = null;
|
||||||
else {
|
else {
|
||||||
currentRagSocPredicate = o -> o.getRagSoc().equalsIgnoreCase(viewModel.ragSoc.get());
|
currentRagSocPredicate = o -> {
|
||||||
|
return o.getRagSoc().equalsIgnoreCase(viewModel.ragSoc.get());
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
refreshList();
|
refreshList();
|
||||||
|
|||||||
@ -0,0 +1,106 @@
|
|||||||
|
package it.integry.integrywmsnative.ui.adapter;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.widget.ArrayAdapter;
|
||||||
|
import android.widget.Filter;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class SimpleAutoCompleteDropdownAdapter extends ArrayAdapter {
|
||||||
|
|
||||||
|
private List<Object> mObjects;
|
||||||
|
|
||||||
|
public SimpleAutoCompleteDropdownAdapter(@NonNull Context context, int resource) {
|
||||||
|
super(context, resource);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SimpleAutoCompleteDropdownAdapter(@NonNull Context context, int resource, int textViewResourceId) {
|
||||||
|
super(context, resource, textViewResourceId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SimpleAutoCompleteDropdownAdapter(@NonNull Context context, int resource, @NonNull Object[] objects) {
|
||||||
|
super(context, resource, objects);
|
||||||
|
mObjects = Arrays.asList(objects);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SimpleAutoCompleteDropdownAdapter(@NonNull Context context, int resource, int textViewResourceId, @NonNull Object[] objects) {
|
||||||
|
super(context, resource, textViewResourceId, objects);
|
||||||
|
mObjects = Arrays.asList(objects);
|
||||||
|
}
|
||||||
|
|
||||||
|
public SimpleAutoCompleteDropdownAdapter(@NonNull Context context, int resource, @NonNull List objects) {
|
||||||
|
super(context, resource, objects);
|
||||||
|
mObjects = objects;
|
||||||
|
}
|
||||||
|
|
||||||
|
public SimpleAutoCompleteDropdownAdapter(@NonNull Context context, int resource, int textViewResourceId, @NonNull List objects) {
|
||||||
|
super(context, resource, textViewResourceId, objects);
|
||||||
|
mObjects = objects;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@NonNull
|
||||||
|
@Override
|
||||||
|
public Filter getFilter() {
|
||||||
|
return new StringFilter(mObjects);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private class StringFilter<T> extends Filter {
|
||||||
|
|
||||||
|
private ArrayList<T> sourceObjects;
|
||||||
|
|
||||||
|
public StringFilter(List<T> objects) {
|
||||||
|
if(objects == null) return;
|
||||||
|
sourceObjects = new ArrayList<T>();
|
||||||
|
synchronized (this) {
|
||||||
|
sourceObjects.addAll(objects);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected FilterResults performFiltering(CharSequence chars) {
|
||||||
|
String filterSeq = chars.toString().toLowerCase();
|
||||||
|
FilterResults result = new FilterResults();
|
||||||
|
if (filterSeq != null && filterSeq.length() > 0) {
|
||||||
|
ArrayList<T> filter = new ArrayList<T>();
|
||||||
|
|
||||||
|
for (T object : sourceObjects) {
|
||||||
|
// the filtering itself:
|
||||||
|
if (object.toString().toLowerCase().contains(filterSeq))
|
||||||
|
filter.add(object);
|
||||||
|
}
|
||||||
|
result.count = filter.size();
|
||||||
|
result.values = filter;
|
||||||
|
} else {
|
||||||
|
// add all objects
|
||||||
|
synchronized (this) {
|
||||||
|
result.values = sourceObjects;
|
||||||
|
result.count = sourceObjects.size();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
protected void publishResults(CharSequence constraint,
|
||||||
|
FilterResults results) {
|
||||||
|
// NOTE: this function is *always* called from the UI thread.
|
||||||
|
ArrayList<T> filtered = (ArrayList<T>) results.values;
|
||||||
|
notifyDataSetChanged();
|
||||||
|
clear();
|
||||||
|
for (int i = 0, l = filtered.size(); i < l; i++)
|
||||||
|
add(filtered.get(i));
|
||||||
|
notifyDataSetInvalidated();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user