From a14a593e4f642f3b910b567251642bf3cae1a3dd Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 11 Nov 2021 13:08:38 +0100 Subject: [PATCH 1/2] Aggiunta ricerca nei filtri in vendita --- app/build.gradle | 1 - .../integrywmsnative/core/di/Converters.java | 34 +++++- .../filters/FilterAgenteLayoutView.java | 39 +++++-- .../filters/FilterAutomezzoLayoutView.java | 38 +++++-- .../filters/FilterClienteLayoutView.java | 38 +++++-- .../filters/FilterDepositoLayoutView.java | 53 ++++++--- .../filters/FilterGruppoMercLayoutView.java | 40 +++++-- .../filters/FilterNumeroOrdineLayoutView.java | 39 +++++-- .../filters/FilterPaeseLayoutView.java | 39 +++++-- .../filters/FilterTermConsLayoutView.java | 39 +++++-- .../filters/FilterVettoreLayoutView.java | 40 +++++-- .../filters/FilterViaggioLayoutView.java | 39 +++++-- .../filters/VenditaFiltroOrdiniViewModel.java | 4 +- .../ui/filter_chips/FilterLayoutView.java | 76 ++++++++++++- .../main/res/layout/layout_filter_agente.xml | 102 ++++++++--------- .../res/layout/layout_filter_automezzo.xml | 102 ++++++++--------- .../main/res/layout/layout_filter_cliente.xml | 101 +++++++++-------- .../res/layout/layout_filter_deposito.xml | 102 ++++++++--------- .../res/layout/layout_filter_gruppo_merc.xml | 101 +++++++++-------- .../layout/layout_filter_numero_ordine.xml | 103 +++++++++--------- .../main/res/layout/layout_filter_paese.xml | 102 ++++++++--------- .../res/layout/layout_filter_term_cons.xml | 101 +++++++++-------- .../main/res/layout/layout_filter_vettore.xml | 101 +++++++++-------- .../main/res/layout/layout_filter_viaggio.xml | 101 +++++++++-------- app/src/main/res/values/styles.xml | 18 +++ 25 files changed, 947 insertions(+), 606 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f2f30ac8..a6b2ad76 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -160,7 +160,6 @@ dependencies { implementation 'com.github.RaviKoradiya:LiveAdapter:1.3.4' implementation 'org.reflections:reflections:0.10.2' - } repositories { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/di/Converters.java b/app/src/main/java/it/integry/integrywmsnative/core/di/Converters.java index d36e21a0..5c9814a0 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/di/Converters.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/di/Converters.java @@ -477,7 +477,7 @@ public class Converters { @BindingAdapter("visibility") - public static void bindView(View view, final ObservableField bindableBoolean) { + public static void bindViewVisibility(View view, final ObservableField bindableBoolean) { if (view.getTag(R.id.bound_observable) != bindableBoolean) { view.setTag(R.id.bound_observable, bindableBoolean); } @@ -492,6 +492,38 @@ public class Converters { } + @BindingAdapter({"reverse_visibility"}) + public static void bindViewReverseVisibility(View view, final BindableBoolean bindableBoolean) { + if (view.getTag(R.id.bound_observable) != bindableBoolean) { + view.setTag(R.id.bound_observable, bindableBoolean); + } + bindableBoolean.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { + @Override + public void onPropertyChanged(Observable sender, int propertyId) { + view.setVisibility(bindableBoolean.get() ? View.GONE : View.VISIBLE); + } + }); + + view.setVisibility(bindableBoolean.get() ? View.GONE : View.VISIBLE); + } + + + @BindingAdapter("reverse_visibility") + public static void bindViewReverseVisibility(View view, final ObservableField bindableBoolean) { + if (view.getTag(R.id.bound_observable) != bindableBoolean) { + view.setTag(R.id.bound_observable, bindableBoolean); + } + bindableBoolean.addOnPropertyChangedCallback(new Observable.OnPropertyChangedCallback() { + @Override + public void onPropertyChanged(Observable sender, int propertyId) { + view.setVisibility(bindableBoolean.get() ? View.GONE : View.VISIBLE); + } + }); + + view.setVisibility(bindableBoolean.get() ? View.GONE : View.VISIBLE); + } + + @BindingAdapter("android:layout_weight") public static void setLayoutWeight(View view, final Float weight) { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterAgenteLayoutView.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterAgenteLayoutView.java index 6c20765d..e1416ecd 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterAgenteLayoutView.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterAgenteLayoutView.java @@ -8,6 +8,7 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.databinding.DataBindingUtil; +import androidx.lifecycle.MutableLiveData; import com.annimon.stream.ComparatorCompat; import com.annimon.stream.Stream; @@ -15,6 +16,8 @@ import com.ravikoradiya.liveadapter.LiveAdapter; import java.util.ArrayList; import java.util.List; +import java.util.Locale; +import java.util.Objects; import it.integry.integrywmsnative.BR; import it.integry.integrywmsnative.R; @@ -31,7 +34,8 @@ public class FilterAgenteLayoutView extends FilterLayoutView { private List allAgenti; private List availableAgenti; private List preSelectedAgenti = new ArrayList<>(); - private List listModel; + private List hiddenAgenti = new ArrayList<>(); + private final MutableLiveData> listModel = new MutableLiveData<>(); private RunnableArgs> onFilterApplied; @@ -41,6 +45,25 @@ public class FilterAgenteLayoutView extends FilterLayoutView { mBindings = DataBindingUtil.inflate(inflater, R.layout.layout_filter_agente, container, false); this.mBindings.setView(this); + refreshList(); + + this.setSearchView(this.mBindings.searchView, newFilter -> { + hiddenAgenti = Stream.of(allAgenti) + .filter(x -> !x.toUpperCase(Locale.ROOT).contains(newFilter.toUpperCase(Locale.ROOT))) + .toList(); + + refreshList(); + }); + + + new LiveAdapter(listModel, getViewLifecycleOwner(), BR.item) + .map(ListModel.class, R.layout.layout_filter_agente__list_item) + .into(this.mBindings.recyclerview); + + return mBindings.getRoot(); + } + + private void refreshList() { ComparatorCompat c = ComparatorCompat .chain(new ComparatorCompat((x, y) -> UtilityBoolean.toInt(x.getSelected().get()) - UtilityBoolean.toInt(y.getSelected().get()))) @@ -48,27 +71,21 @@ public class FilterAgenteLayoutView extends FilterLayoutView { .thenComparing(new ComparatorCompat<>((x, y) -> y.getOriginalModel().compareTo(x.getOriginalModel()))) .reversed(); - listModel = Stream.of(getAllAgenti()) + listModel.setValue(Stream.of(getAllAgenti()) + .filter(x -> !hiddenAgenti.contains(x)) .map(x -> new ListModel() .setSelected(new BindableBoolean(preSelectedAgenti.contains(x))) .setEnabled(new BindableBoolean(availableAgenti.contains(x))) .setOriginalModel(x)) .sorted(c) - .toList(); - - - new LiveAdapter(listModel, BR.item) - .map(ListModel.class, R.layout.layout_filter_agente__list_item) - .into(this.mBindings.recyclerview); - - return mBindings.getRoot(); + .toList()); } public void onConfirm() { if (onFilterApplied == null) return; - this.onFilterApplied.run(Stream.of(listModel) + this.onFilterApplied.run(Stream.of(Objects.requireNonNull(listModel.getValue())) .filter(x -> x.selected.get()) .map(x -> x.originalModel) .toList()); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterAutomezzoLayoutView.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterAutomezzoLayoutView.java index 56d08aef..74ba99be 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterAutomezzoLayoutView.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterAutomezzoLayoutView.java @@ -8,6 +8,7 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.databinding.DataBindingUtil; +import androidx.lifecycle.MutableLiveData; import com.annimon.stream.ComparatorCompat; import com.annimon.stream.Stream; @@ -15,6 +16,8 @@ import com.ravikoradiya.liveadapter.LiveAdapter; import java.util.ArrayList; import java.util.List; +import java.util.Locale; +import java.util.Objects; import it.integry.integrywmsnative.BR; import it.integry.integrywmsnative.R; @@ -31,7 +34,8 @@ public class FilterAutomezzoLayoutView extends FilterLayoutView { private List allAutomezzi; private List availableAutomezzi; private List preSelectedAutomezzi = new ArrayList<>(); - private List listModel; + private List hiddenAutomezzi = new ArrayList<>(); + private MutableLiveData> listModel = new MutableLiveData<>(); private RunnableArgs> onFilterApplied; @@ -41,6 +45,24 @@ public class FilterAutomezzoLayoutView extends FilterLayoutView { mBindings = DataBindingUtil.inflate(inflater, R.layout.layout_filter_automezzo, container, false); this.mBindings.setView(this); + refreshList(); + + this.setSearchView(this.mBindings.searchView, newFilter -> { + hiddenAutomezzi = Stream.of(allAutomezzi) + .filter(x -> !x.toUpperCase(Locale.ROOT).contains(newFilter.toUpperCase(Locale.ROOT))) + .toList(); + + refreshList(); + }); + + new LiveAdapter(listModel, getViewLifecycleOwner(), BR.item) + .map(ListModel.class, R.layout.layout_filter_automezzo__list_item) + .into(this.mBindings.recyclerview); + + return mBindings.getRoot(); + } + + private void refreshList() { ComparatorCompat c = ComparatorCompat .chain(new ComparatorCompat((x, y) -> UtilityBoolean.toInt(x.getSelected().get()) - UtilityBoolean.toInt(y.getSelected().get()))) @@ -48,27 +70,21 @@ public class FilterAutomezzoLayoutView extends FilterLayoutView { .thenComparing(new ComparatorCompat<>((x, y) -> y.getOriginalModel().compareTo(x.getOriginalModel()))) .reversed(); - listModel = Stream.of(getAllAutomezzi()) + listModel.setValue(Stream.of(getAllAutomezzi()) + .filter(x -> !hiddenAutomezzi.contains(x)) .map(x -> new ListModel() .setSelected(new BindableBoolean(preSelectedAutomezzi.contains(x))) .setEnabled(new BindableBoolean(availableAutomezzi.contains(x))) .setOriginalModel(x)) .sorted(c) - .toList(); - - - new LiveAdapter(listModel, BR.item) - .map(ListModel.class, R.layout.layout_filter_automezzo__list_item) - .into(this.mBindings.recyclerview); - - return mBindings.getRoot(); + .toList()); } public void onConfirm() { if (onFilterApplied == null) return; - this.onFilterApplied.run(Stream.of(listModel) + this.onFilterApplied.run(Stream.of(Objects.requireNonNull(listModel.getValue())) .filter(x -> x.selected.get()) .map(x -> x.originalModel) .toList()); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterClienteLayoutView.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterClienteLayoutView.java index 081a56d8..883b0ded 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterClienteLayoutView.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterClienteLayoutView.java @@ -8,6 +8,7 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.databinding.DataBindingUtil; +import androidx.lifecycle.MutableLiveData; import com.annimon.stream.ComparatorCompat; import com.annimon.stream.Stream; @@ -15,6 +16,8 @@ import com.ravikoradiya.liveadapter.LiveAdapter; import java.util.ArrayList; import java.util.List; +import java.util.Locale; +import java.util.Objects; import it.integry.integrywmsnative.BR; import it.integry.integrywmsnative.R; @@ -31,7 +34,8 @@ public class FilterClienteLayoutView extends FilterLayoutView { private List allClienti; private List availableClienti; private List preSelectedClienti = new ArrayList<>(); - private List listModel; + private List hiddenClienti = new ArrayList<>(); + private final MutableLiveData> listModel = new MutableLiveData<>(); private RunnableArgs> onFilterApplied; @@ -41,6 +45,24 @@ public class FilterClienteLayoutView extends FilterLayoutView { mBindings = DataBindingUtil.inflate(inflater, R.layout.layout_filter_cliente, container, false); this.mBindings.setView(this); + refreshList(); + + this.setSearchView(this.mBindings.searchView, newFilter -> { + hiddenClienti = Stream.of(allClienti) + .filter(x -> !x.toUpperCase(Locale.ROOT).contains(newFilter.toUpperCase(Locale.ROOT))) + .toList(); + + refreshList(); + }); + + new LiveAdapter(listModel, getViewLifecycleOwner(), BR.item) + .map(ListModel.class, R.layout.layout_filter_cliente__list_item) + .into(this.mBindings.recyclerview); + + return mBindings.getRoot(); + } + + private void refreshList() { ComparatorCompat c = ComparatorCompat .chain(new ComparatorCompat((x, y) -> UtilityBoolean.toInt(x.getSelected().get()) - UtilityBoolean.toInt(y.getSelected().get()))) @@ -48,27 +70,21 @@ public class FilterClienteLayoutView extends FilterLayoutView { .thenComparing(new ComparatorCompat<>((x, y) -> y.getOriginalModel().compareTo(x.getOriginalModel()))) .reversed(); - listModel = Stream.of(getAllClienti()) + listModel.setValue(Stream.of(getAllClienti()) + .filter(x -> !hiddenClienti.contains(x)) .map(x -> new ListModel() .setSelected(new BindableBoolean(preSelectedClienti.contains(x))) .setEnabled(new BindableBoolean(availableClienti.contains(x))) .setOriginalModel(x)) .sorted(c) - .toList(); - - - new LiveAdapter(listModel, BR.item) - .map(ListModel.class, R.layout.layout_filter_cliente__list_item) - .into(this.mBindings.recyclerview); - - return mBindings.getRoot(); + .toList()); } public void onConfirm() { if (onFilterApplied == null) return; - this.onFilterApplied.run(Stream.of(listModel) + this.onFilterApplied.run(Stream.of(Objects.requireNonNull(listModel.getValue())) .filter(x -> x.selected.get()) .map(x -> x.originalModel) .toList()); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterDepositoLayoutView.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterDepositoLayoutView.java index b7f6dd5d..6e22d61c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterDepositoLayoutView.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterDepositoLayoutView.java @@ -8,6 +8,7 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.databinding.DataBindingUtil; +import androidx.lifecycle.MutableLiveData; import com.annimon.stream.ComparatorCompat; import com.annimon.stream.Stream; @@ -15,6 +16,8 @@ import com.ravikoradiya.liveadapter.LiveAdapter; import java.util.ArrayList; import java.util.List; +import java.util.Locale; +import java.util.Objects; import it.integry.integrywmsnative.BR; import it.integry.integrywmsnative.R; @@ -32,7 +35,8 @@ public class FilterDepositoLayoutView extends FilterLayoutView { private List allCodMdeps; private List availableCodMdeps; private List preSelectedCodMdeps = new ArrayList<>(); - private List listModel; + private List hiddenDepos = new ArrayList<>(); + private final MutableLiveData> listModel = new MutableLiveData<>(); private RunnableArgs> onFilterApplied; @@ -42,23 +46,19 @@ public class FilterDepositoLayoutView extends FilterLayoutView { mBindings = DataBindingUtil.inflate(inflater, R.layout.layout_filter_deposito, container, false); this.mBindings.setView(this); - ComparatorCompat c = - ComparatorCompat - .chain(new ComparatorCompat((x, y) -> UtilityBoolean.toInt(x.getSelected().get()) - UtilityBoolean.toInt(y.getSelected().get()))) - .thenComparing(new ComparatorCompat<>((x, y) -> UtilityBoolean.toInt(x.getEnabled().get()) - UtilityBoolean.toInt(y.getEnabled().get()))) - .thenComparing(new ComparatorCompat<>((x, y) -> y.getOriginalModel().getCodMdep().compareToIgnoreCase(x.getOriginalModel().getCodMdep()))) - .reversed(); + refreshList(); + + this.setSearchView(this.mBindings.searchView, newFilter -> { + hiddenDepos = Stream.of(allCodMdeps) + .filter(x -> !x.getCodMdep().toUpperCase(Locale.ROOT).contains(newFilter.toUpperCase(Locale.ROOT)) && + !x.getDescrizione().toUpperCase(Locale.ROOT).contains(newFilter.toUpperCase(Locale.ROOT))) + .toList(); + + refreshList(); + }); - listModel = Stream.of(getAllCodMdeps()) - .map(x -> new ListModel() - .setSelected(new BindableBoolean(preSelectedCodMdeps.contains(x))) - .setEnabled(new BindableBoolean(availableCodMdeps.contains(x))) - .setOriginalModel(x)) - .sorted(c) - .toList(); - - new LiveAdapter(listModel, BR.item) + new LiveAdapter(listModel, getViewLifecycleOwner(), BR.item) .map(ListModel.class, R.layout.layout_filter_deposito__list_item) .into(this.mBindings.recyclerviewDepositi); @@ -69,7 +69,7 @@ public class FilterDepositoLayoutView extends FilterLayoutView { public void onConfirm() { if (onFilterApplied == null) return; - this.onFilterApplied.run(Stream.of(listModel) + this.onFilterApplied.run(Stream.of(Objects.requireNonNull(listModel.getValue())) .filter(x -> x.selected.get()) .map(x -> x.originalModel) .toList()); @@ -77,6 +77,25 @@ public class FilterDepositoLayoutView extends FilterLayoutView { dismiss(); } + private void refreshList() { + ComparatorCompat c = + ComparatorCompat + .chain(new ComparatorCompat((x, y) -> UtilityBoolean.toInt(x.getSelected().get()) - UtilityBoolean.toInt(y.getSelected().get()))) + .thenComparing(new ComparatorCompat<>((x, y) -> UtilityBoolean.toInt(x.getEnabled().get()) - UtilityBoolean.toInt(y.getEnabled().get()))) + .thenComparing(new ComparatorCompat<>((x, y) -> y.getOriginalModel().getCodMdep().compareToIgnoreCase(x.getOriginalModel().getCodMdep()))) + .reversed(); + + + listModel.setValue(Stream.of(getAllCodMdeps()) + .filter(x -> !hiddenDepos.contains(x)) + .map(x -> new ListModel() + .setSelected(new BindableBoolean(preSelectedCodMdeps.contains(x))) + .setEnabled(new BindableBoolean(availableCodMdeps.contains(x))) + .setOriginalModel(x)) + .sorted(c) + .toList()); + } + public List getAllCodMdeps() { return allCodMdeps; } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterGruppoMercLayoutView.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterGruppoMercLayoutView.java index 08172de1..d2645667 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterGruppoMercLayoutView.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterGruppoMercLayoutView.java @@ -8,6 +8,7 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.databinding.DataBindingUtil; +import androidx.lifecycle.MutableLiveData; import com.annimon.stream.ComparatorCompat; import com.annimon.stream.Stream; @@ -15,6 +16,8 @@ import com.ravikoradiya.liveadapter.LiveAdapter; import java.util.ArrayList; import java.util.List; +import java.util.Locale; +import java.util.Objects; import it.integry.integrywmsnative.BR; import it.integry.integrywmsnative.R; @@ -32,7 +35,8 @@ public class FilterGruppoMercLayoutView extends FilterLayoutView { private List allGroupMerc; private List availableGroupMerc; private List preSelectedGroupMerc = new ArrayList<>(); - private List listModel; + private List hiddenGroupMerc = new ArrayList<>(); + private final MutableLiveData> listModel = new MutableLiveData<>(); private RunnableArgs> onFilterApplied; @@ -43,6 +47,26 @@ public class FilterGruppoMercLayoutView extends FilterLayoutView { mBindings = DataBindingUtil.inflate(inflater, R.layout.layout_filter_gruppo_merc, container, false); this.mBindings.setView(this); + refreshList(); + + this.setSearchView(this.mBindings.searchView, newFilter -> { + hiddenGroupMerc = Stream.of(allGroupMerc) + .filter(x -> !x.getCodMgrp().toUpperCase(Locale.ROOT).contains(newFilter.toUpperCase(Locale.ROOT)) && + !x.getDescrizione().toUpperCase(Locale.ROOT).contains(newFilter.toUpperCase(Locale.ROOT))) + .toList(); + + refreshList(); + }); + + + new LiveAdapter(listModel, getViewLifecycleOwner(), BR.item) + .map(ListModel.class, R.layout.layout_filter_gruppo_merc__list_item) + .into(this.mBindings.recyclerview); + + return mBindings.getRoot(); + } + + private void refreshList() { ComparatorCompat c = ComparatorCompat .chain(new ComparatorCompat((x, y) -> UtilityBoolean.toInt(x.getSelected().get()) - UtilityBoolean.toInt(y.getSelected().get()))) @@ -50,27 +74,21 @@ public class FilterGruppoMercLayoutView extends FilterLayoutView { .thenComparing(new ComparatorCompat<>((x, y) -> y.getOriginalModel().getCodMgrp().compareTo(x.getOriginalModel().getCodMgrp()))) .reversed(); - listModel = Stream.of(getAllGroupMerc()) + listModel.setValue(Stream.of(getAllGroupMerc()) + .filter(x -> !hiddenGroupMerc.contains(x)) .map(x -> new ListModel() .setSelected(new BindableBoolean(preSelectedGroupMerc.contains(x))) .setEnabled(new BindableBoolean(availableGroupMerc.contains(x))) .setOriginalModel(x)) .sorted(c) - .toList(); - - - new LiveAdapter(listModel, BR.item) - .map(ListModel.class, R.layout.layout_filter_gruppo_merc__list_item) - .into(this.mBindings.recyclerview); - - return mBindings.getRoot(); + .toList()); } public void onConfirm() { if (onFilterApplied == null) return; - this.onFilterApplied.run(Stream.of(listModel) + this.onFilterApplied.run(Stream.of(Objects.requireNonNull(listModel.getValue())) .filter(x -> x.selected.get()) .map(x -> x.originalModel) .toList()); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterNumeroOrdineLayoutView.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterNumeroOrdineLayoutView.java index 58809db3..31418c67 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterNumeroOrdineLayoutView.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterNumeroOrdineLayoutView.java @@ -8,6 +8,7 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.databinding.DataBindingUtil; +import androidx.lifecycle.MutableLiveData; import com.annimon.stream.ComparatorCompat; import com.annimon.stream.Stream; @@ -15,6 +16,8 @@ import com.ravikoradiya.liveadapter.LiveAdapter; import java.util.ArrayList; import java.util.List; +import java.util.Locale; +import java.util.Objects; import it.integry.integrywmsnative.BR; import it.integry.integrywmsnative.R; @@ -31,7 +34,8 @@ public class FilterNumeroOrdineLayoutView extends FilterLayoutView { private List allNumOrds; private List availableNumOrds; private List preSelectedNumOrds = new ArrayList<>(); - private List listModel; + private List hiddenNumOrds = new ArrayList<>(); + private final MutableLiveData> listModel = new MutableLiveData<>(); private RunnableArgs> onFilterApplied; @@ -41,6 +45,25 @@ public class FilterNumeroOrdineLayoutView extends FilterLayoutView { mBindings = DataBindingUtil.inflate(inflater, R.layout.layout_filter_numero_ordine, container, false); this.mBindings.setView(this); + refreshList(); + + this.setSearchView(this.mBindings.searchView, newFilter -> { + hiddenNumOrds = Stream.of(allNumOrds) + .filter(x -> !x.toString().contains(newFilter.toUpperCase(Locale.ROOT))) + .toList(); + + refreshList(); + }); + + + new LiveAdapter(listModel, getViewLifecycleOwner(), BR.item) + .map(ListModel.class, R.layout.layout_filter_numero_ordine__list_item) + .into(this.mBindings.recyclerview); + + return mBindings.getRoot(); + } + + private void refreshList() { ComparatorCompat c = ComparatorCompat .chain(new ComparatorCompat((x, y) -> UtilityBoolean.toInt(x.getSelected().get()) - UtilityBoolean.toInt(y.getSelected().get()))) @@ -48,27 +71,21 @@ public class FilterNumeroOrdineLayoutView extends FilterLayoutView { .thenComparing(new ComparatorCompat<>((x, y) -> y.getOriginalModel().compareTo(x.getOriginalModel()))) .reversed(); - listModel = Stream.of(getAllNumOrds()) + listModel.setValue(Stream.of(getAllNumOrds()) + .filter(x -> !hiddenNumOrds.contains(x)) .map(x -> new ListModel() .setSelected(new BindableBoolean(preSelectedNumOrds.contains(x))) .setEnabled(new BindableBoolean(availableNumOrds.contains(x))) .setOriginalModel(x)) .sorted(c) - .toList(); - - - new LiveAdapter(listModel, BR.item) - .map(ListModel.class, R.layout.layout_filter_numero_ordine__list_item) - .into(this.mBindings.recyclerview); - - return mBindings.getRoot(); + .toList()); } public void onConfirm() { if (onFilterApplied == null) return; - this.onFilterApplied.run(Stream.of(listModel) + this.onFilterApplied.run(Stream.of(Objects.requireNonNull(listModel.getValue())) .filter(x -> x.selected.get()) .map(x -> x.originalModel) .toList()); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterPaeseLayoutView.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterPaeseLayoutView.java index 56dceef2..1a61c331 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterPaeseLayoutView.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterPaeseLayoutView.java @@ -8,6 +8,7 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.databinding.DataBindingUtil; +import androidx.lifecycle.MutableLiveData; import com.annimon.stream.ComparatorCompat; import com.annimon.stream.Stream; @@ -15,6 +16,8 @@ import com.ravikoradiya.liveadapter.LiveAdapter; import java.util.ArrayList; import java.util.List; +import java.util.Locale; +import java.util.Objects; import it.integry.integrywmsnative.BR; import it.integry.integrywmsnative.R; @@ -31,7 +34,8 @@ public class FilterPaeseLayoutView extends FilterLayoutView { private List allPaesi; private List availablePaesi; private List preSelectedPaesi = new ArrayList<>(); - private List listModel; + private List hiddenPaesi = new ArrayList<>(); + private final MutableLiveData> listModel = new MutableLiveData<>(); private RunnableArgs> onFilterApplied; @@ -41,6 +45,25 @@ public class FilterPaeseLayoutView extends FilterLayoutView { mBindings = DataBindingUtil.inflate(inflater, R.layout.layout_filter_paese, container, false); this.mBindings.setView(this); + refreshList(); + + this.setSearchView(this.mBindings.searchView, newFilter -> { + hiddenPaesi = Stream.of(allPaesi) + .filter(x -> !x.toUpperCase(Locale.ROOT).contains(newFilter.toUpperCase(Locale.ROOT))) + .toList(); + + refreshList(); + }); + + + new LiveAdapter(listModel, getViewLifecycleOwner(), BR.item) + .map(ListModel.class, R.layout.layout_filter_paese__list_item) + .into(this.mBindings.recyclerview); + + return mBindings.getRoot(); + } + + private void refreshList() { ComparatorCompat c = ComparatorCompat .chain(new ComparatorCompat((x, y) -> UtilityBoolean.toInt(x.getSelected().get()) - UtilityBoolean.toInt(y.getSelected().get()))) @@ -48,27 +71,21 @@ public class FilterPaeseLayoutView extends FilterLayoutView { .thenComparing(new ComparatorCompat<>((x, y) -> y.getOriginalModel().compareTo(x.getOriginalModel()))) .reversed(); - listModel = Stream.of(getAllPaesi()) + listModel.setValue(Stream.of(getAllPaesi()) + .filter(x -> !hiddenPaesi.contains(x)) .map(x -> new ListModel() .setSelected(new BindableBoolean(preSelectedPaesi.contains(x))) .setEnabled(new BindableBoolean(availablePaesi.contains(x))) .setOriginalModel(x)) .sorted(c) - .toList(); - - - new LiveAdapter(listModel, BR.item) - .map(ListModel.class, R.layout.layout_filter_paese__list_item) - .into(this.mBindings.recyclerview); - - return mBindings.getRoot(); + .toList()); } public void onConfirm() { if (onFilterApplied == null) return; - this.onFilterApplied.run(Stream.of(listModel) + this.onFilterApplied.run(Stream.of(Objects.requireNonNull(listModel.getValue())) .filter(x -> x.selected.get()) .map(x -> x.originalModel) .toList()); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterTermConsLayoutView.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterTermConsLayoutView.java index e6bc0852..2a581d63 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterTermConsLayoutView.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterTermConsLayoutView.java @@ -8,6 +8,7 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.databinding.DataBindingUtil; +import androidx.lifecycle.MutableLiveData; import com.annimon.stream.ComparatorCompat; import com.annimon.stream.Stream; @@ -15,6 +16,8 @@ import com.ravikoradiya.liveadapter.LiveAdapter; import java.util.ArrayList; import java.util.List; +import java.util.Locale; +import java.util.Objects; import it.integry.integrywmsnative.BR; import it.integry.integrywmsnative.R; @@ -31,7 +34,8 @@ public class FilterTermConsLayoutView extends FilterLayoutView { private List allTermCons; private List availableTermCons; private List preSelectedTermCons = new ArrayList<>(); - private List listModel; + private List hiddenSelectedTermCons = new ArrayList<>(); + private final MutableLiveData> listModel = new MutableLiveData<>(); private RunnableArgs> onFilterApplied; @@ -41,6 +45,25 @@ public class FilterTermConsLayoutView extends FilterLayoutView { mBindings = DataBindingUtil.inflate(inflater, R.layout.layout_filter_term_cons, container, false); this.mBindings.setView(this); + refreshList(); + + this.setSearchView(this.mBindings.searchView, newFilter -> { + hiddenSelectedTermCons = Stream.of(allTermCons) + .filter(x -> !x.toUpperCase(Locale.ROOT).contains(newFilter.toUpperCase(Locale.ROOT))) + .toList(); + + refreshList(); + }); + + + new LiveAdapter(listModel, getViewLifecycleOwner(), BR.item) + .map(ListModel.class, R.layout.layout_filter_term_cons__list_item) + .into(this.mBindings.recyclerview); + + return mBindings.getRoot(); + } + + private void refreshList() { ComparatorCompat c = ComparatorCompat .chain(new ComparatorCompat((x, y) -> UtilityBoolean.toInt(x.getSelected().get()) - UtilityBoolean.toInt(y.getSelected().get()))) @@ -48,27 +71,21 @@ public class FilterTermConsLayoutView extends FilterLayoutView { .thenComparing(new ComparatorCompat<>((x, y) -> y.getOriginalModel().compareTo(x.getOriginalModel()))) .reversed(); - listModel = Stream.of(getAllTermCons()) + listModel.setValue(Stream.of(getAllTermCons()) + .filter(x -> !hiddenSelectedTermCons.contains(x)) .map(x -> new ListModel() .setSelected(new BindableBoolean(preSelectedTermCons.contains(x))) .setEnabled(new BindableBoolean(availableTermCons.contains(x))) .setOriginalModel(x)) .sorted(c) - .toList(); - - - new LiveAdapter(listModel, BR.item) - .map(ListModel.class, R.layout.layout_filter_term_cons__list_item) - .into(this.mBindings.recyclerview); - - return mBindings.getRoot(); + .toList()); } public void onConfirm() { if (onFilterApplied == null) return; - this.onFilterApplied.run(Stream.of(listModel) + this.onFilterApplied.run(Stream.of(Objects.requireNonNull(listModel.getValue())) .filter(x -> x.selected.get()) .map(x -> x.originalModel) .toList()); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterVettoreLayoutView.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterVettoreLayoutView.java index 8cb91b19..399f682f 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterVettoreLayoutView.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterVettoreLayoutView.java @@ -8,6 +8,7 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.databinding.DataBindingUtil; +import androidx.lifecycle.MutableLiveData; import com.annimon.stream.ComparatorCompat; import com.annimon.stream.Stream; @@ -15,6 +16,8 @@ import com.ravikoradiya.liveadapter.LiveAdapter; import java.util.ArrayList; import java.util.List; +import java.util.Locale; +import java.util.Objects; import it.integry.integrywmsnative.BR; import it.integry.integrywmsnative.R; @@ -31,7 +34,8 @@ public class FilterVettoreLayoutView extends FilterLayoutView { private List allVettori; private List availableVettori; private List preSelectedVettori = new ArrayList<>(); - private List listModel; + private List hiddenSelectedVettori = new ArrayList<>(); + private final MutableLiveData> listModel = new MutableLiveData<>(); private RunnableArgs> onFilterApplied; @@ -41,6 +45,26 @@ public class FilterVettoreLayoutView extends FilterLayoutView { mBindings = DataBindingUtil.inflate(inflater, R.layout.layout_filter_vettore, container, false); this.mBindings.setView(this); + refreshList(); + + this.setSearchView(this.mBindings.searchView, newFilter -> { + hiddenSelectedVettori = Stream.of(allVettori) + .filter(x -> !x.toUpperCase(Locale.ROOT).contains(newFilter.toUpperCase(Locale.ROOT))) + .toList(); + + refreshList(); + }); + + + + new LiveAdapter(listModel, getViewLifecycleOwner(), BR.item) + .map(ListModel.class, R.layout.layout_filter_vettore__list_item) + .into(this.mBindings.recyclerview); + + return mBindings.getRoot(); + } + + private void refreshList() { ComparatorCompat c = ComparatorCompat .chain(new ComparatorCompat((x, y) -> UtilityBoolean.toInt(x.getSelected().get()) - UtilityBoolean.toInt(y.getSelected().get()))) @@ -48,27 +72,21 @@ public class FilterVettoreLayoutView extends FilterLayoutView { .thenComparing(new ComparatorCompat<>((x, y) -> y.getOriginalModel().compareTo(x.getOriginalModel()))) .reversed(); - listModel = Stream.of(getAllVettori()) + listModel.setValue(Stream.of(getAllVettori()) + .filter(x -> !hiddenSelectedVettori.contains(x)) .map(x -> new ListModel() .setSelected(new BindableBoolean(preSelectedVettori.contains(x))) .setEnabled(new BindableBoolean(availableVettori.contains(x))) .setOriginalModel(x)) .sorted(c) - .toList(); - - - new LiveAdapter(listModel, BR.item) - .map(ListModel.class, R.layout.layout_filter_vettore__list_item) - .into(this.mBindings.recyclerview); - - return mBindings.getRoot(); + .toList()); } public void onConfirm() { if (onFilterApplied == null) return; - this.onFilterApplied.run(Stream.of(listModel) + this.onFilterApplied.run(Stream.of(Objects.requireNonNull(listModel.getValue())) .filter(x -> x.selected.get()) .map(x -> x.originalModel) .toList()); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterViaggioLayoutView.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterViaggioLayoutView.java index 7eb2ab1e..4a6d5933 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterViaggioLayoutView.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/FilterViaggioLayoutView.java @@ -8,6 +8,7 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.databinding.DataBindingUtil; +import androidx.lifecycle.MutableLiveData; import com.annimon.stream.ComparatorCompat; import com.annimon.stream.Stream; @@ -15,6 +16,8 @@ import com.ravikoradiya.liveadapter.LiveAdapter; import java.util.ArrayList; import java.util.List; +import java.util.Locale; +import java.util.Objects; import it.integry.integrywmsnative.BR; import it.integry.integrywmsnative.R; @@ -31,7 +34,8 @@ public class FilterViaggioLayoutView extends FilterLayoutView { private List allIDViaggio; private List availableIDViaggio; private List preSelectedIDViaggio = new ArrayList<>(); - private List listModel; + private List hiddenIDViaggio = new ArrayList<>(); + private MutableLiveData> listModel = new MutableLiveData<>(); private RunnableArgs> onFilterApplied; @@ -41,6 +45,25 @@ public class FilterViaggioLayoutView extends FilterLayoutView { mBindings = DataBindingUtil.inflate(inflater, R.layout.layout_filter_viaggio, container, false); this.mBindings.setView(this); + refreshList(); + + this.setSearchView(this.mBindings.searchView, newFilter -> { + hiddenIDViaggio = Stream.of(allIDViaggio) + .filter(x -> !x.toString().toUpperCase(Locale.ROOT).contains(newFilter.toUpperCase(Locale.ROOT))) + .toList(); + + refreshList(); + }); + + + new LiveAdapter(listModel, getViewLifecycleOwner(), BR.item) + .map(ListModel.class, R.layout.layout_filter_viaggio__list_item) + .into(this.mBindings.recyclerview); + + return mBindings.getRoot(); + } + + private void refreshList() { ComparatorCompat c = ComparatorCompat .chain(new ComparatorCompat((x, y) -> UtilityBoolean.toInt(x.getSelected().get()) - UtilityBoolean.toInt(y.getSelected().get()))) @@ -48,27 +71,21 @@ public class FilterViaggioLayoutView extends FilterLayoutView { .thenComparing(new ComparatorCompat<>((x, y) -> y.getOriginalModel().compareTo(x.getOriginalModel()))) .reversed(); - listModel = Stream.of(getAllIDViaggio()) + listModel.setValue(Stream.of(getAllIDViaggio()) + .filter(x -> !hiddenIDViaggio.contains(x)) .map(x -> new ListModel() .setSelected(new BindableBoolean(preSelectedIDViaggio.contains(x))) .setEnabled(new BindableBoolean(availableIDViaggio.contains(x))) .setOriginalModel(x)) .sorted(c) - .toList(); - - - new LiveAdapter(listModel, BR.item) - .map(ListModel.class, R.layout.layout_filter_viaggio__list_item) - .into(this.mBindings.recyclerview); - - return mBindings.getRoot(); + .toList()); } public void onConfirm() { if (onFilterApplied == null) return; - this.onFilterApplied.run(Stream.of(listModel) + this.onFilterApplied.run(Stream.of(Objects.requireNonNull(listModel.getValue())) .filter(x -> x.selected.get()) .map(x -> x.originalModel) .toList()); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/VenditaFiltroOrdiniViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/VenditaFiltroOrdiniViewModel.java index 09e29f61..11629b15 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/VenditaFiltroOrdiniViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/VenditaFiltroOrdiniViewModel.java @@ -6,6 +6,8 @@ import androidx.lifecycle.MutableLiveData; import com.annimon.stream.Stream; import com.annimon.stream.function.Predicate; +import org.apache.commons.lang3.time.DateUtils; + import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -103,7 +105,7 @@ public class VenditaFiltroOrdiniViewModel { if (dataConsegna == null) currentDataConsPredicate.set(null); else { - currentDataConsPredicate.set(o -> o.getDataConsD().equals(dataConsegna)); + currentDataConsPredicate.set(o -> DateUtils.isSameDay(o.getDataConsD(), dataConsegna)); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/ui/filter_chips/FilterLayoutView.java b/app/src/main/java/it/integry/integrywmsnative/ui/filter_chips/FilterLayoutView.java index bec3994b..132d0694 100644 --- a/app/src/main/java/it/integry/integrywmsnative/ui/filter_chips/FilterLayoutView.java +++ b/app/src/main/java/it/integry/integrywmsnative/ui/filter_chips/FilterLayoutView.java @@ -1,15 +1,74 @@ package it.integry.integrywmsnative.ui.filter_chips; import android.content.Context; +import android.os.Bundle; +import android.view.View; +import android.widget.RelativeLayout; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.widget.SearchView; import com.google.android.material.bottomsheet.BottomSheetDialogFragment; +import it.integry.integrywmsnative.core.di.BindableBoolean; import it.integry.integrywmsnative.core.di.BindableString; +import it.integry.integrywmsnative.core.expansion.RunnableArgs; public abstract class FilterLayoutView extends BottomSheetDialogFragment { - protected BindableString filterName = new BindableString(); protected Context mContext; + private final BindableString filterName = new BindableString(); + private final BindableBoolean enabledSearch = new BindableBoolean(); + + private SearchView mSearchView; + private RunnableArgs mOnFilterChanged; + + + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + super.onViewCreated(view, savedInstanceState); + + if (mSearchView != null) this.initSearchView(); + } + + protected void initSearchView() { + + mSearchView.setOnSearchClickListener(v -> { + this.setEnabledSearch(true); + mSearchView.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT)); + }); + + mSearchView.setOnCloseListener(() -> { + setEnabledSearch(false); + var layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT); + layoutParams.addRule(RelativeLayout.ALIGN_PARENT_END); + + mSearchView.setLayoutParams(layoutParams); + return false; + }); + + this.mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { + @Override + public boolean onQueryTextSubmit(String query) { + return false; + } + + @Override + public boolean onQueryTextChange(String newText) { + if (mOnFilterChanged != null) mOnFilterChanged.run(newText); + + return false; + } + }); + +// mSearchView.setQuery("", true); +// mSearchView.setIconified(true); +// mSearchView.clearFocus(); +// +// mSearchView.getRootView().invalidate(); + } + public Context getContext() { return mContext; @@ -28,4 +87,19 @@ public abstract class FilterLayoutView extends BottomSheetDialogFragment { this.filterName.set(filterName); return this; } + + public BindableBoolean getEnabledSearch() { + return enabledSearch; + } + + public FilterLayoutView setEnabledSearch(boolean enabledSearch) { + this.enabledSearch.set(enabledSearch); + return this; + } + + public FilterLayoutView setSearchView(SearchView searchView, RunnableArgs onFilterChanged) { + this.mSearchView = searchView; + this.mOnFilterChanged = onFilterChanged; + return this; + } } diff --git a/app/src/main/res/layout/layout_filter_agente.xml b/app/src/main/res/layout/layout_filter_agente.xml index 62bc5c83..e0d28e0f 100644 --- a/app/src/main/res/layout/layout_filter_agente.xml +++ b/app/src/main/res/layout/layout_filter_agente.xml @@ -14,32 +14,28 @@ type="it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterAgenteLayoutView" /> - + android:orientation="vertical"> - - + android:orientation="horizontal" + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp"> + + android:layout_toStartOf="@id/search_view" + app:reverse_visibility="@{view.enabledSearch}"> - + + + + + + + + + app:layout_constraintTop_toTopOf="parent" /> + - + - - - - - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_filter_automezzo.xml b/app/src/main/res/layout/layout_filter_automezzo.xml index e44497cf..086397ba 100644 --- a/app/src/main/res/layout/layout_filter_automezzo.xml +++ b/app/src/main/res/layout/layout_filter_automezzo.xml @@ -14,32 +14,28 @@ type="it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterAutomezzoLayoutView" /> - + android:orientation="vertical"> - - + android:orientation="horizontal" + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp"> + + android:layout_toStartOf="@id/search_view" + app:reverse_visibility="@{view.enabledSearch}"> - + + + + + + + + + app:layout_constraintTop_toTopOf="parent" /> + - + - - - - - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_filter_cliente.xml b/app/src/main/res/layout/layout_filter_cliente.xml index bbc4476c..b024395c 100644 --- a/app/src/main/res/layout/layout_filter_cliente.xml +++ b/app/src/main/res/layout/layout_filter_cliente.xml @@ -14,32 +14,28 @@ type="it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterClienteLayoutView" /> - + android:orientation="vertical"> - - + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" + android:orientation="horizontal"> + + android:layout_toStartOf="@id/search_view" + app:reverse_visibility="@{view.enabledSearch}"> - + + + + + + + + + app:layout_constraintTop_toTopOf="parent" /> + - + - + - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/layout_filter_deposito.xml b/app/src/main/res/layout/layout_filter_deposito.xml index 89e7686e..6dcced83 100644 --- a/app/src/main/res/layout/layout_filter_deposito.xml +++ b/app/src/main/res/layout/layout_filter_deposito.xml @@ -14,32 +14,28 @@ type="it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterDepositoLayoutView" /> - + android:orientation="vertical"> - - + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" + android:orientation="horizontal"> + + android:layout_toStartOf="@id/search_view" + app:reverse_visibility="@{view.enabledSearch}"> - + + + + + + + + + app:layout_constraintTop_toTopOf="parent" /> + - + - - - - - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_filter_gruppo_merc.xml b/app/src/main/res/layout/layout_filter_gruppo_merc.xml index 561abdff..398fd1e8 100644 --- a/app/src/main/res/layout/layout_filter_gruppo_merc.xml +++ b/app/src/main/res/layout/layout_filter_gruppo_merc.xml @@ -14,32 +14,28 @@ type="it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterGruppoMercLayoutView" /> - + android:orientation="vertical"> - - + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" + android:orientation="horizontal"> + + android:layout_toStartOf="@id/search_view" + app:reverse_visibility="@{view.enabledSearch}"> - + + + + + + + + + app:layout_constraintTop_toTopOf="parent" /> + - + - + - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/layout_filter_numero_ordine.xml b/app/src/main/res/layout/layout_filter_numero_ordine.xml index d4067b9b..82c7b472 100644 --- a/app/src/main/res/layout/layout_filter_numero_ordine.xml +++ b/app/src/main/res/layout/layout_filter_numero_ordine.xml @@ -14,32 +14,28 @@ type="it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterNumeroOrdineLayoutView" /> - + android:orientation="vertical"> - - + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" + android:orientation="horizontal"> + + android:layout_toStartOf="@id/search_view" + app:reverse_visibility="@{view.enabledSearch}"> - + + + + + + + + + app:layout_constraintTop_toTopOf="parent" /> + - - - - - - - - - + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_filter_paese.xml b/app/src/main/res/layout/layout_filter_paese.xml index dee3ba73..35a934f6 100644 --- a/app/src/main/res/layout/layout_filter_paese.xml +++ b/app/src/main/res/layout/layout_filter_paese.xml @@ -14,32 +14,28 @@ type="it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterPaeseLayoutView" /> - + android:orientation="vertical"> - - + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" + android:orientation="horizontal"> + + android:layout_toStartOf="@id/search_view" + app:reverse_visibility="@{view.enabledSearch}"> - + + + + + + + + + app:layout_constraintTop_toTopOf="parent" /> + - + - - - - - - - + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_filter_term_cons.xml b/app/src/main/res/layout/layout_filter_term_cons.xml index 205fad4b..09bfbab1 100644 --- a/app/src/main/res/layout/layout_filter_term_cons.xml +++ b/app/src/main/res/layout/layout_filter_term_cons.xml @@ -14,32 +14,28 @@ type="it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterTermConsLayoutView" /> - + android:orientation="vertical"> - - + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" + android:orientation="horizontal"> + + android:layout_toStartOf="@id/search_view" + app:reverse_visibility="@{view.enabledSearch}"> - + + + + + + + + + app:layout_constraintTop_toTopOf="parent" /> + - + - + - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/layout_filter_vettore.xml b/app/src/main/res/layout/layout_filter_vettore.xml index 914ac3dd..875d9554 100644 --- a/app/src/main/res/layout/layout_filter_vettore.xml +++ b/app/src/main/res/layout/layout_filter_vettore.xml @@ -14,32 +14,28 @@ type="it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterVettoreLayoutView" /> - + android:orientation="vertical"> - - + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" + android:orientation="horizontal"> + + android:layout_toStartOf="@id/search_view" + app:reverse_visibility="@{view.enabledSearch}"> - + + + + + + + + + app:layout_constraintTop_toTopOf="parent" /> + - + - + - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/layout_filter_viaggio.xml b/app/src/main/res/layout/layout_filter_viaggio.xml index eabe8f91..a2f6eefe 100644 --- a/app/src/main/res/layout/layout_filter_viaggio.xml +++ b/app/src/main/res/layout/layout_filter_viaggio.xml @@ -14,32 +14,28 @@ type="it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterViaggioLayoutView" /> - + android:orientation="vertical"> - - + android:layout_marginStart="16dp" + android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" + android:orientation="horizontal"> + + android:layout_toStartOf="@id/search_view" + app:reverse_visibility="@{view.enabledSearch}"> - + + + + + + + + + app:layout_constraintTop_toTopOf="parent" /> + - + - + - - - - - \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 57132b20..87ff63f8 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -15,6 +15,8 @@ @style/ThemeOverlay.MaterialComponents.MaterialCalendar.Fullscreen @style/ThemeOverlay.MaterialComponents.MaterialCalendar + @style/CustomBottomSheetDialog + @@ -202,7 +206,21 @@ @style/AppTheme.NewMaterial.Text.ToolbarTitle + + + + From 420fdf6b4cc20e1daef41725dea9bca61a0da82d Mon Sep 17 00:00:00 2001 From: GiuseppeS Date: Thu, 11 Nov 2021 13:09:31 +0100 Subject: [PATCH 2/2] -> v1.19.1 (242) --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index a6b2ad76..0cc2ca2e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,8 +6,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 241 - def appVersionName = '1.19.0' + def appVersionCode = 242 + def appVersionName = '1.19.1' signingConfigs { release {