Fix su dialog dismiss in DialogScanArt.

Rivista implementazione di destroy fragment.
This commit is contained in:
Giuseppe Scorrano 2021-02-24 12:47:33 +01:00
parent 7346357b8e
commit d044c2ab26
20 changed files with 106 additions and 140 deletions

View File

@ -289,6 +289,10 @@ public class MainActivity extends BaseActivity
mBinding.appBarMain.toolbarTitleCenteredLayout.setVisibility(View.GONE);
mBinding.appBarMain.toolbarTitleLeft.setVisibility(View.VISIBLE);
((ITitledFragment) fragment).onCreateActionBar(mBinding.appBarMain.toolbarTitleLeft, this);
((IScrollableFragment) fragment).addOnPreDestroy(() -> {
mBinding.appBarMain.toolbarTitleCenteredLayout.setVisibility(View.VISIBLE);
mBinding.appBarMain.toolbarTitleLeft.setVisibility(View.GONE);
});
} else {
mBinding.appBarMain.toolbarTitleCenteredLayout.setVisibility(View.VISIBLE);
mBinding.appBarMain.toolbarTitleLeft.setVisibility(View.GONE);
@ -296,7 +300,7 @@ public class MainActivity extends BaseActivity
if(fragment instanceof IScrollableFragment) {
((IScrollableFragment) fragment).setScrollToolbar(mBinding.appBarMain.elevatedToolbar);
((IScrollableFragment) fragment).setScrollableOnPreDestroy(() -> {
((IScrollableFragment) fragment).addOnPreDestroy(() -> {
mBinding.appBarMain.elevatedToolbar.resetAll();
});
}

View File

@ -25,6 +25,7 @@ public class BaseDialogFragment extends DialogFragment {
}
}
private boolean isControlKey(KeyEvent keyEvent) {
int keyCode = keyEvent.getKeyCode();
return (

View File

@ -0,0 +1,7 @@
package it.integry.integrywmsnative.core.interfaces;
public interface IDestroyableFragment {
void addOnPreDestroy(Runnable onPreDestroy);
}

View File

@ -2,10 +2,8 @@ package it.integry.integrywmsnative.core.interfaces;
import it.integry.integrywmsnative.ui.ElevatedToolbar;
public interface IScrollableFragment {
public interface IScrollableFragment extends IDestroyableFragment {
void setScrollToolbar(ElevatedToolbar toolbar);
void setScrollableOnPreDestroy(Runnable onPreDestroy);
}

View File

@ -8,10 +8,8 @@ import androidx.appcompat.widget.AppCompatTextView;
* Created by GiuseppeS on 07/03/2018.
*/
public interface ITitledFragment {
public interface ITitledFragment extends IDestroyableFragment {
void onCreateActionBar(AppCompatTextView titleText, Context context);
void onActionBarPreDestroy(Runnable onActionBarPreDestroy);
}

View File

@ -45,7 +45,7 @@ import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageHelper;
public class MainAccettazioneFragment extends Fragment implements ISearcableFragment, ITitledFragment, IScrollableFragment {
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
private ElevatedToolbar mToolbar;
private FragmentMainAccettazioneBinding mBinding;
@ -54,7 +54,7 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
private MainListAccettazioneAdapter mAdapter;
private List<OrdineAccettazioneInevasoDTO> mOriginalOrderList;
private List<OrdineAccettazioneInevasoDTO> mRenderedOrderList = new ArrayList<>();
private final List<OrdineAccettazioneInevasoDTO> mRenderedOrderList = new ArrayList<>();
private AppCompatTextView mAppBarTitle;
@ -81,11 +81,6 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
mAppBarTitle.setText(context.getText(R.string.accettazione_title_fragment).toString());
}
@Override
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
this.mOnPreDestroyList.add(onActionBarPreDestroy);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
@ -154,7 +149,7 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
private RunnableArgs<OrdineAccettazioneInevasoDTO> onSingleSelectionChanged = dto -> {
private final RunnableArgs<OrdineAccettazioneInevasoDTO> onSingleSelectionChanged = dto -> {
List<OrdineAccettazioneInevasoDTO> selectedOrders = mHelper.getSelectedOrders(mOriginalOrderList);
if(dto.isSelected()) {
@ -249,8 +244,9 @@ public class MainAccettazioneFragment extends Fragment implements ISearcableFrag
mToolbar = toolbar;
}
@Override
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
public void addOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
}

View File

@ -50,7 +50,7 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
private FragmentMainBinding mBindings;
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
private ElevatedToolbar mToolbar;
private LayoutInflater mLayoutInflater;
@ -210,21 +210,11 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
titleText.setText(context.getText(R.string.app_name).toString());
}
@Override
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
this.mOnPreDestroyList.add(onActionBarPreDestroy);
}
@Override
public void setScrollToolbar(ElevatedToolbar toolbar) {
mToolbar = toolbar;
}
@Override
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
mOnPreDestroyList.add(onPreDestroy);
}
private void initGestMenu() {
ICustomConfiguration customConfiguration = ClassRouter.getInstance(ClassRouter.PATH.CUSTOM_CONFIGURATION);
@ -264,4 +254,9 @@ public class MainFragment extends Fragment implements ITitledFragment, IScrollab
String appVersion = UtilityResources.getAppVersion();
mBindings.currentAppVersionName.setText("v" + appVersion);
}
@Override
public void addOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
}

View File

@ -64,14 +64,14 @@ public class OrdiniUscitaElencoFragment extends Fragment implements ITitledFragm
private FragmentMainOrdiniUscitaBinding mBindings = null;
private ObservableArrayList<OrdiniUscitaElencoListModel> mOrdiniInevasiMutableData = new ObservableArrayList<>();
private final ObservableArrayList<OrdiniUscitaElencoListModel> mOrdiniInevasiMutableData = new ObservableArrayList<>();
private GestioneEnum mCurrentGestioneOrd = null;
private GestioneEnum mCurrentGestioneCol = null;
private int mCurrentSegnoCol = 0;
private ElevatedToolbar mToolbar;
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
private int barcodeScannerIstanceID = -1;
private Dialog mCurrentProgress;
@ -133,6 +133,14 @@ public class OrdiniUscitaElencoFragment extends Fragment implements ITitledFragm
mViewModel.init(codMdep, mCurrentGestioneOrd, mCurrentGestioneCol, mCurrentSegnoCol);
}
@Override
public void onDestroy() {
for (Runnable onPreDestroy : mOnPreDestroyList) {
onPreDestroy.run();
}
super.onDestroy();
}
private void initRecyclerView() {
boolean canSelectMultipleOrdini = SettingsManager.iDB().isFlagSpedizioneCanSelectMultipleOrders();
@ -247,10 +255,6 @@ public class OrdiniUscitaElencoFragment extends Fragment implements ITitledFragm
@Override
public void onPreDestroy(Runnable onComplete) {
for (Runnable onPreDestroy : mOnPreDestroyList) {
onPreDestroy.run();
}
BarcodeManager.removeCallback(barcodeScannerIstanceID);
onComplete.run();
}
@ -260,11 +264,6 @@ public class OrdiniUscitaElencoFragment extends Fragment implements ITitledFragm
titleText.setText(context.getText(R.string.prod_ordine_lavorazione_title_fragment).toString());
}
@Override
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
this.mOnPreDestroyList.add(onActionBarPreDestroy);
}
public void dispatchOrders() {
List<OrdiniUscitaElencoDTO> selectedOrders = Stream.of(this.mOrdiniInevasiMutableData)
@ -345,11 +344,6 @@ public class OrdiniUscitaElencoFragment extends Fragment implements ITitledFragm
mToolbar = toolbar;
}
@Override
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
@Override
public boolean isSelectAllButtonEnabled() {
return SettingsManager.iDB().isFlagMultiClienteOrdV();
@ -389,4 +383,9 @@ public class OrdiniUscitaElencoFragment extends Fragment implements ITitledFragm
}).show();
}
@Override
public void addOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
}

View File

@ -108,11 +108,6 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
mToolbarTitleText.setText(context.getText(R.string.free_picking_title_fragment).toString());
}
@Override
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
this.mOnPreDestroyList.add(onActionBarPreDestroy);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -236,11 +231,11 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
}
@Override
public void onDestroyView() {
public void onDestroy() {
for (Runnable onPreDestroy : mOnPreDestroyList) {
onPreDestroy.run();
}
super.onDestroyView();
super.onDestroy();
}
@Override
@ -248,11 +243,6 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
mToolbar = toolbar;
}
@Override
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
mOnPreDestroyList.add(onPreDestroy);
}
@Override
public void onLoadingStarted() {
@ -413,4 +403,9 @@ public class PickingLiberoFragment extends Fragment implements ITitledFragment,
if(thereIsAnOpenedUL.get()) mViewModel.closeLU(onComplete);
else onComplete.run();
}
@Override
public void addOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
}

View File

@ -117,11 +117,6 @@ public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITit
mAppBarTitle.setText(context.getText(R.string.prod_ordine_produzione_title_fragment).toString());
}
@Override
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
this.mOnPreDestroyList.add(onActionBarPreDestroy);
}
private void init() {
final Dialog progress = UtilityProgress.createDefaultProgressDialog(getActivity());
@ -152,12 +147,6 @@ public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITit
mToolbar = toolbar;
}
@Override
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
mOnPreDestroyList.add(onPreDestroy);
}
private void initRecyclerView() {
mAdapter = new OrdineProduzioneListAdapter(getActivity(), mRenderedOrderList, onSingleSelectionChanged);
mBinding.ordineProduzioneMainList.setAdapter(mAdapter);
@ -260,4 +249,9 @@ public class ProdOrdineProduzioneElencoFragment extends Fragment implements ITit
mRenderedOrderList.clear();
mRenderedOrderList.addAll(ordini);
}
@Override
public void addOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
}

View File

@ -20,7 +20,6 @@ import javax.inject.Inject;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.BaseFragment;
import it.integry.integrywmsnative.core.interfaces.ILifecycleFragment;
import it.integry.integrywmsnative.core.interfaces.IPoppableActivity;
import it.integry.integrywmsnative.core.interfaces.ITitledFragment;
import it.integry.integrywmsnative.core.model.MtbColr;
@ -38,12 +37,12 @@ import it.integry.integrywmsnative.gest.spedizione.SpedizioneActivity;
* Use the {@link ProdFabbisognoLineeProdFragment#newInstance} factory method to
* create an instance of this fragment.
*/
public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITitledFragment, ILifecycleFragment, ProdFabbisognoLineeProdViewModel.Listener {
public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITitledFragment, ProdFabbisognoLineeProdViewModel.Listener {
@Inject
ProdFabbisognoLineeProdViewModel mViewModel;
private ArrayList<Runnable> mOnPreDestroyList = new ArrayList<>();
private final ArrayList<Runnable> mOnPreDestroyList = new ArrayList<>();
private FragmentProdFabbisognoLineeProdBinding mBindings;
@ -97,10 +96,6 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
.show(getActivity().getSupportFragmentManager(), "tag");
}
@Override
public void onPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
@Override
public void onDestroy() {
@ -116,11 +111,6 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
titleText.setText(context.getText(R.string.prod_fabbisogno_linee_prod_title).toString());
}
@Override
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
this.mOnPreDestroyList.add(onActionBarPreDestroy);
}
@Override
public void onError(Exception ex) {
@ -159,4 +149,9 @@ public class ProdFabbisognoLineeProdFragment extends BaseFragment implements ITi
((IPoppableActivity) getActivity()).pop();
}
@Override
public void addOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
}

View File

@ -29,7 +29,7 @@ public class ProdRecuperoMaterialeFragment extends Fragment implements ITitledFr
private ProdRecuperoMaterialeViewModel mViewmodel;
private ProdRecuperoMaterialeHelper mHelper;
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
public ProdRecuperoMaterialeFragment() {
// Required empty public constructor
@ -72,12 +72,6 @@ public class ProdRecuperoMaterialeFragment extends Fragment implements ITitledFr
titleText.setText(context.getText(R.string.prod_recupero_materiale_title_fragment).toString());
}
@Override
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
this.mOnPreDestroyList.add(onActionBarPreDestroy);
}
@Override
public void onDestroy() {
for (Runnable onPreDestroy : mOnPreDestroyList) {
@ -86,4 +80,8 @@ public class ProdRecuperoMaterialeFragment extends Fragment implements ITitledFr
super.onDestroy();
}
@Override
public void addOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
}

View File

@ -26,7 +26,7 @@ public class ProdVersamentoMaterialeFragment extends Fragment implements ITitled
private ProdVersamentoMaterialViewModel mViewmodel;
private ProdVersamentoMaterialHelper mHelper;
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
public ProdVersamentoMaterialeFragment() {
// Required empty public constructor
@ -87,7 +87,7 @@ public class ProdVersamentoMaterialeFragment extends Fragment implements ITitled
}
@Override
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
this.mOnPreDestroyList.add(onActionBarPreDestroy);
public void addOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
}

View File

@ -55,7 +55,7 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
private OrdineAcquistoPvHelper mHelper;
private Griglia mGriglia;
private OrdineAcquistoPvOpenListAdapter mAdapter;
private List<OrdineWrapper> mRenderedOrderList = new ArrayList<>();
private final List<OrdineWrapper> mRenderedOrderList = new ArrayList<>();
private boolean mRedirectToNewOrder = true;
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
@ -122,11 +122,6 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
titleText.setText(context.getText(R.string.pv_elenco_ordiniA_title_fragment).toString());
}
@Override
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
this.mOnPreDestroyList.add(onActionBarPreDestroy);
}
private void setGriglia(Griglia griglia) {
mGriglia = griglia;
mBinding.fabNewOrder.setVisibility(View.VISIBLE);
@ -238,11 +233,6 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
}
@Override
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
@Override
public void onResume() {
super.onResume();
@ -259,4 +249,9 @@ public class PVOrdiniAcquistoGrigliaFragment extends Fragment implements ITitled
onPreDestroy.run();
}
}
@Override
public void addOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
}

View File

@ -215,11 +215,6 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
titleText.setText(context.getText(R.string.rettifica_giacenze_fragment_title).toString());
}
@Override
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
this.mOnPreDestroyList.add(onActionBarPreDestroy);
}
private final RunnableArgs<BarcodeScanDTO> onScanSuccessful = data -> {
BarcodeManager.disable();
@ -527,7 +522,12 @@ public class RettificaGiacenzeFragment extends Fragment implements ITitledFragme
@Override
public void onPreDestroy(Runnable onComplete) {
mViewModel.closeLU(false, onComplete);
BarcodeManager.removeCallback(barcodeScannerIstanceID);
mViewModel.closeLU(false, onComplete);
}
@Override
public void addOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
}

View File

@ -18,14 +18,13 @@ public class MainSettingsFragment extends PreferenceFragmentCompat implements IT
titleText.setText(context.getText(R.string.settings_category).toString());
}
@Override
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
}
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.app_preferences, rootKey);
}
@Override
public void addOnPreDestroy(Runnable onPreDestroy) {
}
}

View File

@ -71,23 +71,18 @@ public class UltimeConsegneClienteFragment extends Fragment implements ITitledFr
titleText.setText(context.getText(R.string.ultime_consegne_cliente_title).toString());
}
@Override
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
this.mOnPreDestroyList.add(onActionBarPreDestroy);
}
@Override
public void setScrollToolbar(ElevatedToolbar toolbar) {
mToolbar = toolbar;
}
@Override
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
@Override
public void onFilterClick() {
mViewModel.openFilterDialog();
}
@Override
public void addOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
}

View File

@ -27,7 +27,7 @@ import it.integry.integrywmsnative.ui.ElevatedToolbar;
*/
public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFragment, IScrollableFragment, IFilterableFragment {
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
private ElevatedToolbar mToolbar;
private UltimiArriviFornitoreViewModel mViewModel;
@ -74,20 +74,11 @@ public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFr
titleText.setText(context.getText(R.string.ultime_arrivi_fornitore_title).toString());
}
@Override
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
this.mOnPreDestroyList.add(onActionBarPreDestroy);
}
@Override
public void setScrollToolbar(ElevatedToolbar toolbar) {
mToolbar = toolbar;
}
@Override
public void setScrollableOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
@ -98,5 +89,8 @@ public class UltimiArriviFornitoreFragment extends Fragment implements ITitledFr
}
@Override
public void addOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
}

View File

@ -29,7 +29,7 @@ public class VersamentoMerceFragment extends Fragment implements ITitledFragment
private VersamentoMerceViewModel mVersamentoMerceViewModel;
private VersamentoMerceHelper mHelper;
private List<Runnable> mOnPreDestroyList = new ArrayList<>();
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
private int barcodeScannerIstanceID = -1;
@ -92,7 +92,7 @@ public class VersamentoMerceFragment extends Fragment implements ITitledFragment
}
@Override
public void onActionBarPreDestroy(Runnable onActionBarPreDestroy) {
this.mOnPreDestroyList.add(onActionBarPreDestroy);
public void addOnPreDestroy(Runnable onPreDestroy) {
this.mOnPreDestroyList.add(onPreDestroy);
}
}

View File

@ -1,6 +1,7 @@
package it.integry.integrywmsnative.view.dialogs.scan_art;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
@ -79,17 +80,19 @@ public class DialogScanArtView extends BaseDialogFragment implements DialogScanA
dismiss();
});
getDialog().setOnDismissListener(dialog -> {
BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
BarcodeManager.enable();
});
return mBindings.getRoot();
}
@Override
public void onDismiss(@NonNull DialogInterface dialog) {
BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
BarcodeManager.enable();
super.onDismiss(dialog);
}
private void initBarcode() {
mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
.setOnScanSuccessfull(onScanSuccessfull)