diff --git a/app/src/main/java/it/integry/integrywmsnative/core/expansion/view/SectionedRecyclerViewAdapter.java b/app/src/main/java/it/integry/integrywmsnative/core/expansion/view/SectionedRecyclerViewAdapter.java index 6b43eb10..53a9a699 100644 --- a/app/src/main/java/it/integry/integrywmsnative/core/expansion/view/SectionedRecyclerViewAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/core/expansion/view/SectionedRecyclerViewAdapter.java @@ -41,15 +41,15 @@ public abstract class SectionedRecyclerViewAdapter { +// recyclerView.postDelayed(() -> { // Precarica alcuni ViewHolder -// for (int i = 0; i < 25; i++) { +// for (int i = 0; i < 100; i++) { // sharedPool.putRecycledView( // createViewHolder(recyclerView, TYPE_HEADER)); // } -// for (int i = 0; i < 50; i++) { +// for (int i = 0; i < 100; i++) { // sharedPool.putRecycledView( // createViewHolder(recyclerView, TYPE_ITEM)); // } -// }); +// }, 50); } protected static class Section { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java index b145c9df..41912bdb 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoFragment.java @@ -4,6 +4,7 @@ import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.text.Html; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -69,12 +70,12 @@ import it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.FilterViagg import it.integry.integrywmsnative.gest.ordini_uscita_elenco.filters.OrdiniUscitaElencoFiltroViewModel; import it.integry.integrywmsnative.gest.ordini_uscita_elenco.ui.OrdiniUscitaElencoAdapter; import it.integry.integrywmsnative.gest.ordini_uscita_elenco.ui.OrdiniUscitaElencoListModel; -import it.integry.integrywmsnative.ui.filter_chips.filters.FilterCommessaLayoutView; import it.integry.integrywmsnative.gest.spedizione.SpedizioneActivity; import it.integry.integrywmsnative.gest.spedizione.dialogs.row_info.BaseDialogRowInfoView; import it.integry.integrywmsnative.ui.ElevatedToolbar; import it.integry.integrywmsnative.ui.filter_chips.FilterChipDTO; import it.integry.integrywmsnative.ui.filter_chips.FilterChipView; +import it.integry.integrywmsnative.ui.filter_chips.filters.FilterCommessaLayoutView; import it.integry.integrywmsnative.ui.filter_chips.filters.FilterNumeroOrdineLayoutView; import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView; @@ -168,11 +169,11 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF mBindings.setView(this); mBindings.setViewmodel(mViewModel); - this.initRecyclerView(); + Log.d("onCreateView", "Started"); + this.initBarcodeReader(); - this.initFilters(); - + Log.d("onCreateView", "Ended"); return mBindings.getRoot(); } @@ -180,37 +181,41 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF public void onStart() { super.onStart(); + Log.d("onStart", "Started"); this.mViewModel.getOrderList().observe(getViewLifecycleOwner(), data -> { executorService.execute(() -> { try { this.onLoadingStarted(); + + this.initMtbDepoCache(); this.initMtbGrupsCache(); this.initJtbComtCache(); + handler.post(() -> { + mAppliedFilterViewModel.init(data); + this.refreshList(data, null); + }); - mAppliedFilterViewModel.init(data); - - this.refreshList(data, null); this.onLoadingEnded(); } catch (Exception e) { onError(e); } }); + }); + this.onLoadingStarted(); - executorService.execute(() -> { - try { - this.initMtbDepoCache(); - String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); - mViewModel.init(codMdep, mCurrentGestioneOrd, mCurrentGestioneCol, mCurrentSegnoCol); + this.initRecyclerView(); + this.initFilters(); - this.onLoadingEnded(); - } catch (Exception e) { - onError(e); - } + String codMdep = SettingsManager.i().getUserSession().getDepo().getCodMdep(); + mViewModel.init(codMdep, mCurrentGestioneOrd, mCurrentGestioneCol, mCurrentSegnoCol, () -> { + this.onLoadingEnded(); }); + + Log.d("onStart", "Ended"); } @Override @@ -227,52 +232,45 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF private void initRecyclerView() { - this.onLoadingStarted(); - - boolean canSelectMultipleOrdini = SettingsManager.iDB().isFlagSpedizioneCanSelectMultipleOrders(); boolean canSelectMultipleClienti = SettingsManager.iDB().isFlagMultiClienteOrdV(); - executorService.execute(() -> { - - - OrdiniUscitaElencoAdapter ordiniUscitaElencoAdapter = - new OrdiniUscitaElencoAdapter(getActivity(), mOrdiniInevasiMutableData) - .setOnGroupItemClicked(x -> { - if (!canSelectMultipleClienti) { - Stream.of(mOrdiniInevasiMutableData) - .filter(y -> !y.getGroupTitle().equalsIgnoreCase(x) && y.getSelectedObservable().get()) - .forEach(y -> y.getSelectedObservable().set(false)); - } - - boolean allSelected = Stream.of(mOrdiniInevasiMutableData) - .filter(y -> y.getGroupTitle().equalsIgnoreCase(x)) - .allMatch(y -> y.getSelectedObservable().get()); + OrdiniUscitaElencoAdapter ordiniUscitaElencoAdapter = + new OrdiniUscitaElencoAdapter(getActivity(), mOrdiniInevasiMutableData) + .setOnGroupItemClicked(x -> { + if (!canSelectMultipleClienti) { Stream.of(mOrdiniInevasiMutableData) - .filter(y -> y.getGroupTitle().equalsIgnoreCase(x)) - .forEach(y -> y.getSelectedObservable().set(!allSelected)); - }) - .setOnItemChecked(x -> { - if (!canSelectMultipleClienti && x.getSelectedObservable().get()) { - Stream.of(mOrdiniInevasiMutableData) - .filter(y -> !y.getGroupTitle().equalsIgnoreCase(x.getGroupTitle()) && y.getSelectedObservable().get()) - .forEach(y -> y.getSelectedObservable().set(false)); - } + .filter(y -> !y.getGroupTitle().equalsIgnoreCase(x) && y.getSelectedObservable().get()) + .forEach(y -> y.getSelectedObservable().set(false)); + } - fabVisible.set(Stream.of(mOrdiniInevasiMutableData) - .anyMatch(y -> y.getSelectedObservable().get())); - }); + boolean allSelected = Stream.of(mOrdiniInevasiMutableData) + .filter(y -> y.getGroupTitle().equalsIgnoreCase(x)) + .allMatch(y -> y.getSelectedObservable().get()); - ordiniUscitaElencoAdapter - .setEmptyView(this.mBindings.ordiniVenditaEmptyView); + Stream.of(mOrdiniInevasiMutableData) + .filter(y -> y.getGroupTitle().equalsIgnoreCase(x)) + .forEach(y -> y.getSelectedObservable().set(!allSelected)); + }) + .setOnItemChecked(x -> { + if (!canSelectMultipleClienti && x.getSelectedObservable().get()) { + Stream.of(mOrdiniInevasiMutableData) + .filter(y -> !y.getGroupTitle().equalsIgnoreCase(x.getGroupTitle()) && y.getSelectedObservable().get()) + .forEach(y -> y.getSelectedObservable().set(false)); + } - this.mBindings.venditaMainList.setLayoutManager(new LinearLayoutManager(getActivity())); - this.mBindings.venditaMainList.setItemViewCacheSize(20); - this.mBindings.venditaMainList.setAdapter(ordiniUscitaElencoAdapter); + fabVisible.set(Stream.of(mOrdiniInevasiMutableData) + .anyMatch(y -> y.getSelectedObservable().get())); + }); + + ordiniUscitaElencoAdapter + .setEmptyView(this.mBindings.ordiniVenditaEmptyView); + + this.mBindings.venditaMainList.setLayoutManager(new LinearLayoutManager(getActivity())); + this.mBindings.venditaMainList.setItemViewCacheSize(20); + this.mBindings.venditaMainList.setAdapter(ordiniUscitaElencoAdapter); - }); - this.onLoadingEnded(); // if (mToolbar != null) // mToolbar.setRecyclerView(this.mBindings.venditaMainList); @@ -756,13 +754,11 @@ public class OrdiniUscitaElencoFragment extends BaseFragment implements ITitledF var list = convertDataModelToListModel(tmpList); - handler.post(() -> { - this.mOrdiniInevasiMutableData.clear(); - this.mOrdiniInevasiMutableData.addAll(list); + this.mOrdiniInevasiMutableData.clear(); + this.mOrdiniInevasiMutableData.addAll(list); - fabVisible.set(mOrdiniInevasiMutableData.stream() - .anyMatch(y -> y.getSelectedObservable().get())); - }); + fabVisible.set(mOrdiniInevasiMutableData.stream() + .anyMatch(y -> y.getSelectedObservable().get())); } private List convertDataModelToListModel(List dataList) { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoModule.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoModule.java index 4449fdd9..1bcd6218 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoModule.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoModule.java @@ -1,5 +1,9 @@ package it.integry.integrywmsnative.gest.ordini_uscita_elenco; +import android.os.Handler; + +import java.util.concurrent.ExecutorService; + import javax.inject.Singleton; import dagger.Module; @@ -20,8 +24,8 @@ public class OrdiniUscitaElencoModule { } @Provides - OrdiniUscitaElencoViewModel providesProdOrdineLavorazioneElencoViewModel(OrdiniRESTConsumer ordiniRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, OrdiniUscitaElencoRESTConsumer ordiniUscitaElencoRESTConsumer) { - return new OrdiniUscitaElencoViewModel(ordiniRESTConsumer, colliMagazzinoRESTConsumer, barcodeRESTConsumer, ordiniUscitaElencoRESTConsumer); + OrdiniUscitaElencoViewModel providesProdOrdineLavorazioneElencoViewModel(Handler handler, ExecutorService executorService, OrdiniRESTConsumer ordiniRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, OrdiniUscitaElencoRESTConsumer ordiniUscitaElencoRESTConsumer) { + return new OrdiniUscitaElencoViewModel(handler, executorService, ordiniRESTConsumer, colliMagazzinoRESTConsumer, barcodeRESTConsumer, ordiniUscitaElencoRESTConsumer); } } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java index 3854c793..8eb8f4ac 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/OrdiniUscitaElencoViewModel.java @@ -9,6 +9,7 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Objects; +import java.util.concurrent.ExecutorService; import java.util.stream.Collectors; import javax.inject.Inject; @@ -39,6 +40,8 @@ public class OrdiniUscitaElencoViewModel { private final MutableLiveData> mOrderList = new MutableLiveData<>(); + private final android.os.Handler mHandler; + private final ExecutorService executorService; private final OrdiniRESTConsumer mOrdiniRESTConsumer; private final ColliMagazzinoRESTConsumer mColliMagazzinoRESTConsumer; private final BarcodeRESTConsumer mBarcodeRESTConsumer; @@ -51,7 +54,14 @@ public class OrdiniUscitaElencoViewModel { private int mCurrentSegnoCol; @Inject - public OrdiniUscitaElencoViewModel(OrdiniRESTConsumer ordiniRESTConsumer, ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, BarcodeRESTConsumer barcodeRESTConsumer, OrdiniUscitaElencoRESTConsumer ordiniUscitaElencoRESTConsumer) { + public OrdiniUscitaElencoViewModel(android.os.Handler handler, + ExecutorService executorService, + OrdiniRESTConsumer ordiniRESTConsumer, + ColliMagazzinoRESTConsumer colliMagazzinoRESTConsumer, + BarcodeRESTConsumer barcodeRESTConsumer, + OrdiniUscitaElencoRESTConsumer ordiniUscitaElencoRESTConsumer) { + this.mHandler = handler; + this.executorService = executorService; this.mOrdiniRESTConsumer = ordiniRESTConsumer; this.mColliMagazzinoRESTConsumer = colliMagazzinoRESTConsumer; this.mBarcodeRESTConsumer = barcodeRESTConsumer; @@ -59,37 +69,36 @@ public class OrdiniUscitaElencoViewModel { } - public void init(String currentCodMdep, GestioneEnum gestioneOrd, GestioneEnum gestioneCol, int segnoCol) throws Exception { + public void init(String currentCodMdep, GestioneEnum gestioneOrd, GestioneEnum gestioneCol, int segnoCol, Runnable onComplete) { this.mCurrentCodMdep = currentCodMdep; this.mCurrentGestioneOrd = gestioneOrd; this.mCurrentGestioneCol = gestioneCol; this.mCurrentSegnoCol = segnoCol; -// Date loadingStartDate = new Date(); - var ordiniLavorazione = this.mOrdiniRESTConsumer.getOrdiniInevasiSynchronized(this.mCurrentCodMdep, mCurrentGestioneOrd); + executorService.execute(() -> { - var orderList = ordiniLavorazione.parallelStream() - .map(x -> { - try { - return OrdiniUscitaElencoDTO.fromParent(x); - } catch (Exception ex) { - return null; - } - }) - .filter(Objects::nonNull) - .collect(Collectors.toList()); + List ordiniLavorazione = null; + try { + ordiniLavorazione = this.mOrdiniRESTConsumer.getOrdiniInevasiSynchronized(this.mCurrentCodMdep, mCurrentGestioneOrd); - this.mOrderList.postValue(orderList); + var orderList = ordiniLavorazione.parallelStream() + .map(x -> { + try { + return OrdiniUscitaElencoDTO.fromParent(x); + } catch (Exception ex) { + return null; + } + }) + .filter(Objects::nonNull) + .collect(Collectors.toList()); -// long forcedDelaySecs = (new Date().getTime() - loadingStartDate.getTime()) / 1000; -// -// if (2 - forcedDelaySecs > 0) { -// try { -// Thread.sleep((2 - forcedDelaySecs) * 1000); -// } catch (Exception ignored) { -// } -// } + this.mOrderList.postValue(orderList); + onComplete.run(); + } catch (Exception e) { + this.sendError(e); + } + }); } diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/OrdiniUscitaElencoFiltroViewModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/OrdiniUscitaElencoFiltroViewModel.java index 9d71487e..22127813 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/OrdiniUscitaElencoFiltroViewModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/filters/OrdiniUscitaElencoFiltroViewModel.java @@ -9,9 +9,11 @@ import com.annimon.stream.function.Predicate; import org.apache.commons.lang3.time.DateUtils; import java.util.ArrayList; +import java.util.Comparator; import java.util.Date; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; import it.integry.integrywmsnative.core.model.JtbComt; import it.integry.integrywmsnative.core.model.MtbDepo; @@ -44,7 +46,7 @@ public class OrdiniUscitaElencoFiltroViewModel { public void init(List initialList) { this.initialOrderList = initialList; - this.currentFilteredOrderList.postValue(this.initialOrderList); + this.currentFilteredOrderList.setValue(this.initialOrderList); } public MutableLiveData> getMutableFilteredOrderList() { @@ -349,13 +351,12 @@ public class OrdiniUscitaElencoFiltroViewModel { public List getAllNumOrds() { - return Stream - .of(Objects.requireNonNull(initialOrderList)) + return Objects.requireNonNull(initialOrderList).parallelStream() .filter(x -> x.getNumOrd() != null) - .sortBy(x -> -x.getNumOrd()) + .sorted(Comparator.comparing(OrdineInevasoDTO::getNumOrd)) .map(x -> x.getNumOrd() != null ? x.getNumOrd() : null) .distinct() - .toList(); + .collect(Collectors.toList()); } public List getAvailableNumOrds() { diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/ui/OrdiniUscitaElencoAdapter.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/ui/OrdiniUscitaElencoAdapter.java index 8c608194..7a0ae725 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/ui/OrdiniUscitaElencoAdapter.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/ui/OrdiniUscitaElencoAdapter.java @@ -34,6 +34,29 @@ public class OrdiniUscitaElencoAdapter extends ExtendedSectionedRecyclerViewNew< private RunnableArgs mOnGroupItemClicked; private RunnableArgs mOnItemChecked; + private final int transparentColor; + + public OrdiniUscitaElencoAdapter(Context context, ObservableArrayList mutableDataSet) { + super(mutableDataSet); + mContext = context; + layoutInflater = LayoutInflater.from(mContext); + transparentColor = ResourcesCompat.getColor(mContext.getResources(), android.R.color.transparent, null); +// asyncLayoutInflater = new AsyncLayoutInflater(mContext); + + mutableDataSet.addOnListChangedCallback(new OnListGeneralChangedCallback() { + @Override + public void onChanged(ObservableList sender) { + + Map> collect = sender.stream() + .collect(Collectors.groupingBy(OrdiniUscitaElencoListModel::getGroupTitle)); + + String[] keyArray = new String[collect.keySet().size()]; + collect.keySet().toArray(keyArray); + + setSections(Arrays.asList(keyArray), collect); + } + }); + } static class SubheaderHolder extends RecyclerView.ViewHolder { @@ -57,27 +80,6 @@ public class OrdiniUscitaElencoAdapter extends ExtendedSectionedRecyclerViewNew< } } - public OrdiniUscitaElencoAdapter(Context context, ObservableArrayList mutableDataSet) { - super(mutableDataSet); - mContext = context; - layoutInflater = LayoutInflater.from(mContext); -// asyncLayoutInflater = new AsyncLayoutInflater(mContext); - - mutableDataSet.addOnListChangedCallback(new OnListGeneralChangedCallback() { - @Override - public void onChanged(ObservableList sender) { - - Map> collect = sender.stream() - .collect(Collectors.groupingBy(OrdiniUscitaElencoListModel::getGroupTitle)); - - String[] keyArray = new String[collect.keySet().size()]; - collect.keySet().toArray(keyArray); - - setSections(Arrays.asList(keyArray), collect); - } - }); - } - public OrdiniUscitaElencoAdapter setOnGroupItemClicked(RunnableArgs onGroupItemClicked) { this.mOnGroupItemClicked = onGroupItemClicked; return this; @@ -126,25 +128,25 @@ public class OrdiniUscitaElencoAdapter extends ExtendedSectionedRecyclerViewNew< if (listModel.getEtichettaColor() != null) holder.mBinding.emptyView.setBackgroundColor(listModel.getEtichettaColor()); else - holder.mBinding.emptyView.setBackgroundColor(ResourcesCompat.getColor(mContext.getResources(), android.R.color.transparent, null)); + holder.mBinding.emptyView.setBackgroundColor(transparentColor); if (!UtilityString.isNullOrEmpty(listModel.getDescription())) { - holder.mBinding.descrizione.setText(Html.fromHtml(listModel.getDescription())); + holder.mBinding.descrizione.setText(listModel.getDescriptionSpanned()); holder.mBinding.descrizione.setVisibility(View.VISIBLE); } else holder.mBinding.descrizione.setVisibility(View.GONE); if (!UtilityString.isNullOrEmpty(listModel.getSubDescription())) { - holder.mBinding.subDescrizione.setText(Html.fromHtml(listModel.getSubDescription())); + holder.mBinding.subDescrizione.setText(listModel.getSubDescriptionSpanned()); holder.mBinding.subDescrizione.setVisibility(View.VISIBLE); } else holder.mBinding.subDescrizione.setVisibility(View.GONE); if (!UtilityString.isNullOrEmpty(listModel.getRightDescription())) { - holder.mBinding.rightDescrizione.setText(Html.fromHtml(listModel.getRightDescription())); + holder.mBinding.rightDescrizione.setText(listModel.getRightDescriptionSpanned()); holder.mBinding.rightDescrizione.setVisibility(View.VISIBLE); } else holder.mBinding.rightDescrizione.setVisibility(View.GONE); if (!UtilityString.isNullOrEmpty(listModel.getRightSubDescription())) { - holder.mBinding.rightSubDescrizione.setText(Html.fromHtml(listModel.getRightSubDescription())); + holder.mBinding.rightSubDescrizione.setText(listModel.getRightSubDescriptionSpanned()); holder.mBinding.rightSubDescrizione.setVisibility(View.VISIBLE); } else holder.mBinding.rightSubDescrizione.setVisibility(View.GONE); diff --git a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/ui/OrdiniUscitaElencoListModel.java b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/ui/OrdiniUscitaElencoListModel.java index df2d942d..9e49a0fb 100644 --- a/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/ui/OrdiniUscitaElencoListModel.java +++ b/app/src/main/java/it/integry/integrywmsnative/gest/ordini_uscita_elenco/ui/OrdiniUscitaElencoListModel.java @@ -1,5 +1,8 @@ package it.integry.integrywmsnative.gest.ordini_uscita_elenco.ui; +import android.text.Html; +import android.text.Spanned; + import androidx.annotation.ColorInt; import it.integry.integrywmsnative.core.di.BindableBoolean; @@ -13,6 +16,11 @@ public class OrdiniUscitaElencoListModel implements Cloneable { private String rightDescription; private String rightSubDescription; + private Spanned descriptionSpanned; + private Spanned subDescriptionSpanned; + private Spanned rightDescriptionSpanned; + private Spanned rightSubDescriptionSpanned; + private @ColorInt Integer etichettaColor; private boolean hidden; @@ -37,6 +45,7 @@ public class OrdiniUscitaElencoListModel implements Cloneable { public OrdiniUscitaElencoListModel setDescription(String description) { this.description = description; + this.descriptionSpanned = description != null ? Html.fromHtml(description) : null; return this; } @@ -46,6 +55,7 @@ public class OrdiniUscitaElencoListModel implements Cloneable { public OrdiniUscitaElencoListModel setSubDescription(String subDescription) { this.subDescription = subDescription; + this.subDescriptionSpanned = subDescription != null ? Html.fromHtml(subDescription) : null; return this; } @@ -55,6 +65,7 @@ public class OrdiniUscitaElencoListModel implements Cloneable { public OrdiniUscitaElencoListModel setRightDescription(String rightDescription) { this.rightDescription = rightDescription; + this.rightDescriptionSpanned = rightDescription != null ? Html.fromHtml(rightDescription) : null; return this; } @@ -64,6 +75,7 @@ public class OrdiniUscitaElencoListModel implements Cloneable { public OrdiniUscitaElencoListModel setRightSubDescription(String rightSubDescription) { this.rightSubDescription = rightSubDescription; + this.rightSubDescriptionSpanned = rightSubDescription != null ? Html.fromHtml(rightSubDescription) : null; return this; } @@ -97,4 +109,20 @@ public class OrdiniUscitaElencoListModel implements Cloneable { this.originalModel = originalModel; return this; } + + public Spanned getDescriptionSpanned() { + return descriptionSpanned; + } + + public Spanned getSubDescriptionSpanned() { + return subDescriptionSpanned; + } + + public Spanned getRightDescriptionSpanned() { + return rightDescriptionSpanned; + } + + public Spanned getRightSubDescriptionSpanned() { + return rightSubDescriptionSpanned; + } } diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogProgressView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogProgressView.java index 4c456019..dc04761d 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogProgressView.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/DialogProgressView.java @@ -74,7 +74,12 @@ public class DialogProgressView extends DialogFragment { try { if (!manager.isDestroyed() && !isAdded()) { - //manager.executePendingTransactions(); + try { + manager.executePendingTransactions(); + } catch (IllegalStateException e) { + //ignore + String a = ""; + } showNow(manager, "loading-dialog"); mBindings.progressBar.setIndeterminate(isIndeterminateProgress()); @@ -91,7 +96,16 @@ public class DialogProgressView extends DialogFragment { handler.post(() -> { if (isAdded()) { dismissAllowingStateLoss(); + if (!getParentFragmentManager().isDestroyed()) { + try { + getParentFragmentManager().executePendingTransactions(); + } catch (IllegalStateException e) { + //ignore + String a = ""; + } + } } + }); }