#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;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import android.app.DatePickerDialog;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
@ -9,6 +8,7 @@ import android.view.LayoutInflater;
|
||||
import android.view.WindowManager;
|
||||
import android.widget.ArrayAdapter;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.databinding.DataBindingUtil;
|
||||
|
||||
import com.annimon.stream.Stream;
|
||||
@ -22,12 +22,11 @@ import java.util.List;
|
||||
import it.integry.integrywmsnative.R;
|
||||
import it.integry.integrywmsnative.core.di.BindableString;
|
||||
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.rest.model.DocumentoResoDTO;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityDate;
|
||||
import it.integry.integrywmsnative.core.utility.UtilityString;
|
||||
import it.integry.integrywmsnative.databinding.DialogUltimeConsegneFiltroAvanzatoBinding;
|
||||
import it.integry.integrywmsnative.ui.adapter.SimpleAutoCompleteDropdownAdapter;
|
||||
|
||||
public class DialogUltimeConsegneFiltroAvanzato {
|
||||
|
||||
@ -105,8 +104,7 @@ public class DialogUltimeConsegneFiltroAvanzato {
|
||||
|
||||
private void initView(DialogUltimeConsegneFiltroAvanzatoBinding bindings, DialogUltimeConsegneFiltroAvanzatoViewModel viewModel) {
|
||||
|
||||
arrayAdapterRagSoc = new ArrayAdapter(mContext, R.layout.dialog_vendita_filtro_avanzato__single_item);
|
||||
arrayAdapterRagSoc.addAll(getAvailableRagSocs(false));
|
||||
arrayAdapterRagSoc = new SimpleAutoCompleteDropdownAdapter(mContext, R.layout.dialog_vendita_filtro_avanzato__single_item, getAvailableRagSocs(false));
|
||||
bindings.filledExposedDropdownRagSoc.setAdapter(arrayAdapterRagSoc);
|
||||
|
||||
bindings.filledExposedDropdownDataDoc.setOnClickListener(view -> {
|
||||
@ -141,7 +139,9 @@ public class DialogUltimeConsegneFiltroAvanzato {
|
||||
BindableString.registerListener(viewModel.ragSoc, value -> {
|
||||
if (UtilityString.isNullOrEmpty(value)) currentRagSocPredicate = null;
|
||||
else {
|
||||
currentRagSocPredicate = o -> o.getRagSoc().equalsIgnoreCase(viewModel.ragSoc.get());
|
||||
currentRagSocPredicate = o -> {
|
||||
return o.getRagSoc().equalsIgnoreCase(viewModel.ragSoc.get());
|
||||
};
|
||||
}
|
||||
|
||||
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