diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/ProdRiposizionamentoDaProdFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/ProdRiposizionamentoDaProdFragment.java index 46861a07..10d579ca 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/ProdRiposizionamentoDaProdFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/prod_riposizionamento_da_prod/ProdRiposizionamentoDaProdFragment.java @@ -15,6 +15,7 @@ import com.annimon.stream.Stream; import com.ravikoradiya.liveadapter.LiveAdapter; import com.ravikoradiya.liveadapter.Type; +import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -29,6 +30,7 @@ import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager; import it.integry.integrywmsnative.core.expansion.BaseFragment; import it.integry.integrywmsnative.core.expansion.OnGeneralChangedCallback; import it.integry.integrywmsnative.core.expansion.RunnableArgs; +import it.integry.integrywmsnative.core.interfaces.ISearchableFragment; import it.integry.integrywmsnative.core.interfaces.ITitledFragment; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.model.MtbDepoPosizione; @@ -42,11 +44,10 @@ import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.dto.ArtsIn import it.integry.integrywmsnative.gest.prod_riposizionamento_da_prod.filter.ProdRiposizionamentoDaProdFilterViewModel; import it.integry.integrywmsnative.ui.filter_chips.FilterChipDTO; import it.integry.integrywmsnative.ui.filter_chips.FilterChipView; -import it.integry.integrywmsnative.ui.filter_chips.filters.FilterNumeroOrdineLayoutView; import it.integry.integrywmsnative.view.dialogs.DialogConsts; import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLUView; -public class ProdRiposizionamentoDaProdFragment extends BaseFragment implements ITitledFragment, ProdRiposizionamentoDaProdViewModel.Listener { +public class ProdRiposizionamentoDaProdFragment extends BaseFragment implements ISearchableFragment, ITitledFragment, ProdRiposizionamentoDaProdViewModel.Listener { @Inject ProdRiposizionamentoDaProdViewModel mViewModel; @@ -57,6 +58,8 @@ public class ProdRiposizionamentoDaProdFragment extends BaseFragment implements private final Handler mHandler = new Handler(); private final int mInterval = 120 * 1000; //2 minuti private int barcodeScannerIstanceID = -1; + private AppCompatTextView mAppBarTitle; + private String mTextFilter; public ProdRiposizionamentoDaProdFragment() { @@ -123,7 +126,7 @@ public class ProdRiposizionamentoDaProdFragment extends BaseFragment implements mViewModel.getItemsInventario().observe(getViewLifecycleOwner(), data -> { mBindings.emptyView.setVisibility(data == null || data.isEmpty() ? View.VISIBLE : View.GONE); - mFilterViewModel.init(mViewModel.getItemsInventario().getValue()); + mFilterViewModel.init(getFilteredList(mTextFilter)); this.refreshList(null); }); @@ -254,6 +257,44 @@ public class ProdRiposizionamentoDaProdFragment extends BaseFragment implements .show(requireActivity().getSupportFragmentManager(), "tag"); } + @Override + public void onSearchEnabled() { + mAppBarTitle.setVisibility(View.GONE); + } + + @Override + public void onSearchDisabled() { + mAppBarTitle.setVisibility(View.VISIBLE); + } + + @Override + public boolean onQueryTextSubmit(String query) { + return false; + } + + @Override + public boolean onQueryTextChange(String newText) { + List originalList = this.mViewModel.getItemsInventario().getValue(); + if (originalList == null || originalList.isEmpty()) return false; + mTextFilter = newText; + List filteredOrders = getFilteredList(newText); + + refreshList(filteredOrders); + return true; + } + + private List getFilteredList(String newText) { + List filteredOrders = new ArrayList<>(); + List originalList = this.mViewModel.getItemsInventario().getValue(); + if (originalList == null || originalList.isEmpty() || newText == null) return originalList; + for (int i = 0; i < originalList.size(); i++) { + if (originalList.get(i).getDescrizione().toLowerCase().contains(newText.toLowerCase())) { + filteredOrders.add(originalList.get(i)); + } + } + return filteredOrders; + } + @Override public void onStart() { super.onStart(); @@ -274,7 +315,8 @@ public class ProdRiposizionamentoDaProdFragment extends BaseFragment implements @Override public void onCreateActionBar(AppCompatTextView titleText, Context context) { - titleText.setText(context.getText(R.string.prod_riposizionamento_da_prod_title).toString()); + mAppBarTitle = titleText; + mAppBarTitle.setText(context.getText(R.string.prod_riposizionamento_da_prod_title).toString()); } @Override