diff --git a/app/build.gradle b/app/build.gradle index 84f2115f..6d538635 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ apply plugin: 'com.google.gms.google-services' android { - def appVersionCode = 414 - def appVersionName = '1.39.01' + def appVersionCode = 416 + def appVersionName = '1.39.03' signingConfigs { release { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/data_recover/ColliDataRecoverService.java b/app/src/main/java/it/integry/integrywmsnative/core/data_recover/ColliDataRecoverService.java index c38160f8..9c1691b9 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/data_recover/ColliDataRecoverService.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/data_recover/ColliDataRecoverService.java @@ -22,6 +22,7 @@ import javax.inject.Singleton; import it.integry.integrywmsnative.core.CommonConst; import it.integry.integrywmsnative.core.model.MtbColt; import it.integry.integrywmsnative.core.rest.model.OrdineUscitaInevasoDTO; +import it.integry.integrywmsnative.core.utility.UtilityGson; @Singleton public class ColliDataRecoverService { @@ -108,7 +109,7 @@ public class ColliDataRecoverService { private void loadLocalFile() { InputStream inputStream; - Gson gson = new Gson(); + Gson gson = UtilityGson.createObject(); try { inputStream = mApplicationContext.openFileInput(CommonConst.Files.RECOVER_COLLO_FILE); @@ -130,7 +131,7 @@ public class ColliDataRecoverService { private void updateLocalFile() { FileOutputStream outputStream; - Gson gson = new Gson(); + Gson gson = UtilityGson.createObject(); String jsonText = gson.toJson(mtbColtsSessions); try { diff --git a/app/src/main/java/it/integry/integrywmsnative/core/ean128/Ean128Service.java b/app/src/main/java/it/integry/integrywmsnative/core/ean128/Ean128Service.java index 1a66bafa..9286180c 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/ean128/Ean128Service.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/ean128/Ean128Service.java @@ -8,6 +8,7 @@ import it.integry.barcode_base_android_library.model.BarcodeScanDTO; import it.integry.integrywmsnative.core.base.Callable; import it.integry.integrywmsnative.core.base.CallableII; import it.integry.integrywmsnative.core.rest.model.Ean128Model; +import it.integry.integrywmsnative.core.utility.UtilityDate; public class Ean128Service { @@ -87,8 +88,8 @@ public class Ean128Service { case DUE_DATE -> model.DueDate = convertToDateTime(aiValue.toString()); case PACK_DATE -> model.PackDate = convertToDateTime(aiValue.toString()); case BEST_BEFORE -> - model.BestBefore = String.valueOf(convertToDateTime(aiValue.toString())); - case EXPIRY -> model.Expiry = String.valueOf(convertToDateTime(aiValue.toString())); + model.BestBefore = UtilityDate.formatDate(convertToDateTime(aiValue.toString()), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH); + case EXPIRY -> model.Expiry = UtilityDate.formatDate(convertToDateTime(aiValue.toString()), UtilityDate.COMMONS_DATE_FORMATS.DMY_SLASH); case VARIANT -> model.Variant = aiValue.toString(); case SERIAL -> model.Serial = aiValue.toString(); case QTY_DATE_BATCH -> model.QtyDateBatch = aiValue.toString(); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java index e37e2ab1..448b2349 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/BaseActivity.java @@ -52,7 +52,11 @@ public class BaseActivity extends AppCompatActivity { if (!progressOpened && !this.mCurrentProgress.isAdded() && !this.mCurrentProgress.isInLayout()) { this.progressOpened = true; runOnUiThread(() -> { - this.mCurrentProgress.show(getSupportFragmentManager(), "tag"); + try { + this.mCurrentProgress.show(getSupportFragmentManager(), "tag"); + } catch (IllegalStateException ise) { + //ignored + } }); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/EntityRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/EntityRESTConsumer.java index 1a23b78f..7ecfc092 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/EntityRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/EntityRESTConsumer.java @@ -40,7 +40,7 @@ public class EntityRESTConsumer extends _BaseRESTConsumer { if (response.body() != null) { if (response.body().getEsito() == EsitoType.OK) { - Gson gson = new Gson(); + Gson gson = UtilityGson.createObject(); T object = gson.fromJson(response.body().getEntity(), type); callback.onSuccess(object); @@ -133,7 +133,7 @@ public class EntityRESTConsumer extends _BaseRESTConsumer { if (response.body() != null) { if (response.body().getEsito() == EsitoType.OK) { - Gson gson = new Gson(); + Gson gson = UtilityGson.createObject(); List jsons = response.body().getEntityList(); List newList = new ArrayList(); diff --git a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/SystemRESTConsumer.java b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/SystemRESTConsumer.java index a9deddfc..fd8bbbda 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/SystemRESTConsumer.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/rest/consumers/SystemRESTConsumer.java @@ -32,6 +32,7 @@ import it.integry.integrywmsnative.core.rest.model.ServiceRESTResponse; import it.integry.integrywmsnative.core.rest.model.system.RegisterDeviceRequestDTO; import it.integry.integrywmsnative.core.settings.SettingsManager; import it.integry.integrywmsnative.core.utility.UtilityDate; +import it.integry.integrywmsnative.core.utility.UtilityGson; import it.integry.integrywmsnative.core.utility.UtilityString; import retrofit2.Call; import retrofit2.Callback; @@ -72,15 +73,7 @@ public class SystemRESTConsumer extends _BaseRESTConsumer { @Override public void onResponse(Call> call, Response> response) { analyzeAnswer(response, "ProcessSql", o -> { - Gson gson = new GsonBuilder() - .registerTypeAdapter(Date.class, (JsonDeserializer) (json, typeOfT, context) -> { - try { - return UtilityDate.recognizeDate(json.getAsString()); - } catch (Exception e) { - throw new JsonParseException(e); - } - }) - .create(); + Gson gson = UtilityGson.createObject(); String json = gson.toJson(o); 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