Aggiornati dialog ask posizione e fixati problemi sul dismiss dei dialog

This commit is contained in:
Giuseppe Scorrano 2025-03-04 10:56:19 +01:00
parent 329d53f8d0
commit 993191c083
22 changed files with 400 additions and 120 deletions

View File

@ -122,5 +122,10 @@ Create the following layout resource file [dialog_${dashName}.xml]
alertDialog.setOnShowListener(this);
return alertDialog;
}
@Override
public void dismiss() {
if(getDialog() != null) getDialog().dismiss();
}
}

View File

@ -116,6 +116,10 @@ import it.integry.integrywmsnative.view.dialogs.ask_cliente.DialogAskClienteModu
import it.integry.integrywmsnative.view.dialogs.ask_commessa.DialogAskCommessaComponent;
import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.DialogAskLineaProdComponent;
import it.integry.integrywmsnative.view.dialogs.ask_linea_prod.DialogAskLineaProdModule;
import it.integry.integrywmsnative.view.dialogs.ask_livello_posizione.DialogAskLivelloPosizioneComponent;
import it.integry.integrywmsnative.view.dialogs.ask_livello_posizione.DialogAskLivelloPosizioneModule;
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLUComponent;
import it.integry.integrywmsnative.view.dialogs.ask_position_of_lu.DialogAskPositionOfLUModule;
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesComponent;
import it.integry.integrywmsnative.view.dialogs.ask_unknown_barcode_notes.DialogAskUnknownBarcodeNotesModule;
import it.integry.integrywmsnative.view.dialogs.ask_vettore.DialogAskVettoreComponent;
@ -233,7 +237,9 @@ import it.integry.integrywmsnative.view.dialogs.update_available.DialogUpdateAva
DialogAskVettoreModule.class,
DialogCreateNewArtModule.class,
DialogSwitchUserDepoModule.class,
DialogUpdateAvailableModule.class
DialogUpdateAvailableModule.class,
DialogAskPositionOfLUModule.class,
DialogAskLivelloPosizioneModule.class
})
public interface MainApplicationComponent {
@ -392,6 +398,11 @@ public interface MainApplicationComponent {
DialogUpdateAvailableComponent.Factory dialogUpdateAvailableComponent();
DialogAskPositionOfLUComponent.Factory dialogAskPositionOfLUComponent();
DialogAskLivelloPosizioneComponent.Factory dialogAskLivelloPosizioneComponent();
void inject(MainApplication mainApplication);
void inject(AppContext mainApplication);

View File

@ -99,7 +99,7 @@ public class ArticoliInGiacenzaFragment extends BaseFragment implements ITitledF
}
private void choosePosition(RunnableArgs<MtbDepoPosizione> onComplete) {
DialogAskPositionOfLUView.makeBase(false, (status, mtbDepoPosizione) -> {
DialogAskPositionOfLUView.newInstance(false, (status, mtbDepoPosizione) -> {
if (status == DialogConsts.Results.ABORT) {
popMe();
@ -107,7 +107,7 @@ public class ArticoliInGiacenzaFragment extends BaseFragment implements ITitledF
onComplete.run(mtbDepoPosizione);
}
}, this::onError)
})
.show(requireActivity().getSupportFragmentManager(), "tag");
}

View File

@ -252,7 +252,7 @@ public class ProdRiposizionamentoDaProdFragment extends BaseFragment implements
};
private void choosePosition(RunnableArgs<MtbDepoPosizione> onComplete) {
DialogAskPositionOfLUView.makeBase(false, (status, mtbDepoPosizione) -> {
DialogAskPositionOfLUView.newInstance(false, (status, mtbDepoPosizione) -> {
if (status == DialogConsts.Results.ABORT) {
popMe();
@ -260,7 +260,7 @@ public class ProdRiposizionamentoDaProdFragment extends BaseFragment implements
onComplete.run(mtbDepoPosizione);
}
}, this::onError)
})
.show(requireActivity().getSupportFragmentManager(), "tag");
}

View File

@ -224,7 +224,7 @@ public class ProdVersamentoMaterialeFragment extends BaseFragment implements Pro
// }
private void choosePosition(RunnableArgs<MtbDepoPosizione> onComplete) {
DialogAskPositionOfLUView.makeBase(false, (status, mtbDepoPosizione) -> {
DialogAskPositionOfLUView.newInstance(false, (status, mtbDepoPosizione) -> {
if (status == DialogConsts.Results.ABORT) {
popMe();
@ -232,7 +232,7 @@ public class ProdVersamentoMaterialeFragment extends BaseFragment implements Pro
onComplete.run(mtbDepoPosizione);
}
}, this::onError)
})
.show(requireActivity().getSupportFragmentManager(), "tag");
}

View File

@ -95,7 +95,7 @@ public class ProdVersamentoMaterialeInBufferFragment extends BaseFragment implem
private void choosePosition() {
DialogAskPositionOfLUView.makeBase(true, (status, mtbDepoPosizione) -> {
DialogAskPositionOfLUView.newInstance(true, (status, mtbDepoPosizione) -> {
if (status == DialogConsts.Results.ABORT) {
popMe();
@ -105,7 +105,7 @@ public class ProdVersamentoMaterialeInBufferFragment extends BaseFragment implem
});
}
}, this::onError)
})
.show(requireActivity().getSupportFragmentManager(), "tag");
}

View File

@ -529,7 +529,7 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
DialogYesNoView.newInstance(null, "Vuoi cambiare la posizione della UL corrente?", result -> {
switch (result) {
case YES:
DialogAskPositionOfLUView.makeBase(false, (status, mtbDepoPosizione) -> {
DialogAskPositionOfLUView.newInstance(false, (status, mtbDepoPosizione) -> {
if (status == DialogConsts.Results.ABORT) {
onComplete.run(false, null);
} else {
@ -539,7 +539,7 @@ public class RettificaGiacenzeFragment extends BaseFragment implements ITitledFr
onComplete.run(true, null);
}
}
}, this::onError)
})
.show(requireActivity().getSupportFragmentManager(), "tag");
break;

View File

@ -958,13 +958,13 @@ public class SpedizioneActivity extends BaseActivity implements SpedizioneViewMo
DialogYesNoView.newInstance(null, "Vuoi cambiare la posizione della UL corrente?", result -> {
switch (result) {
case YES:
DialogAskPositionOfLUView.makeBase(false, (status, mtbDepoPosizione) -> {
DialogAskPositionOfLUView.newInstance(false, (status, mtbDepoPosizione) -> {
if (status == DialogConsts.Results.ABORT) {
onComplete.run(false, null);
} else {
onComplete.run(true, mtbDepoPosizione);
}
}, this::onError).show(getSupportFragmentManager(), "tag");
}).show(getSupportFragmentManager(), "tag");
break;
case NO:

View File

@ -2,6 +2,7 @@ package it.integry.integrywmsnative.gest.versamento_merce;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.text.Html;
import android.text.SpannableString;
import android.view.LayoutInflater;
@ -34,8 +35,8 @@ import it.integry.integrywmsnative.core.model.secondary.GestioneEnum;
import it.integry.integrywmsnative.core.utility.UtilityExceptions;
import it.integry.integrywmsnative.databinding.FragmentMainVersamentoMerceBinding;
import it.integry.integrywmsnative.gest.spedizione.model.PickedQuantityDTO;
import it.integry.integrywmsnative.view.dialogs.DialogAskLivelloPosizione;
import it.integry.integrywmsnative.view.dialogs.DialogCommon;
import it.integry.integrywmsnative.view.dialogs.ask_livello_posizione.DialogAskLivelloPosizioneView;
import it.integry.integrywmsnative.view.dialogs.base.DialogSimpleMessageView;
import it.integry.integrywmsnative.view.dialogs.choose_arts_from_mtbcolr_list.DialogChooseArtsFromMtbColrList;
import it.integry.integrywmsnative.view.dialogs.input_quantity_v2.DialogInputQuantityV2DTO;
@ -51,6 +52,9 @@ public class VersamentoMerceFragment extends BaseFragment implements ITitledFrag
@Inject
DialogInputQuantityV2View mDialogInputQuantityV2View;
@Inject
Handler handler;
private FragmentMainVersamentoMerceBinding mBindings = null;
private final List<Runnable> mOnPreDestroyList = new ArrayList<>();
@ -151,25 +155,26 @@ public class VersamentoMerceFragment extends BaseFragment implements ITitledFrag
@Override
public void onLivelloPosizioneRequired(MtbDepoPosizione posizione, RunnableArgs<MtbDepoPosizione> onComplete) {
this.getActivity().runOnUiThread(() -> {
DialogAskLivelloPosizione.make(getActivity(), posizione, false, onComplete, this::onError);
handler.post(() -> {
DialogAskLivelloPosizioneView.newInstance(posizione, false, onComplete, this::onError)
.show(requireActivity().getSupportFragmentManager(), "ask-livello-posizione");
});
}
@Override
public void onSpostamentoTraDepConfirmRequired(String sourceCodMdep, String destinationCodMdep, RunnableArgs<Boolean> onComplete) {
this.getActivity().runOnUiThread(() -> {
handler.post(() -> {
DialogSimpleMessageView.makeWarningDialog(Html.fromHtml("Stai spostando una UL dal deposito <b>" + sourceCodMdep + "</b> al deposito <b>" + destinationCodMdep + "</b>"),
null,
() -> onComplete.run(true),
() -> onComplete.run(false))
.show(getActivity().getSupportFragmentManager(), "tag");
.show(requireActivity().getSupportFragmentManager(), "tag");
});
}
@Override
public void onArtsChooseRequired(List<MtbColr> mtbColrList, RunnableArgs<List<MtbColr>> onComplete, Runnable onAbort) {
this.requireActivity().runOnUiThread(() -> {
handler.post(() -> {
DialogChooseArtsFromMtbColrList
.newInstance(mtbColrList, data -> {
if(data == null || data.isEmpty()) {

View File

@ -52,7 +52,7 @@ public class DialogAskLivelloPosizione {
this.onFailed = onFailed;
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
View currentView = inflater.inflate(R.layout.dialog_ask_livello_of_position, null, false);
View currentView = inflater.inflate(R.layout.dialog_ask_livello_posizione, null, false);
mDialog = new Dialog(mContext);
mDialog.setContentView(currentView);

View File

@ -0,0 +1,14 @@
package it.integry.integrywmsnative.view.dialogs.ask_livello_posizione;
import dagger.Subcomponent;
@Subcomponent
public interface DialogAskLivelloPosizioneComponent {
@Subcomponent.Factory
interface Factory {
DialogAskLivelloPosizioneComponent create();
}
void inject(DialogAskLivelloPosizioneView dialogAskLivelloPosizioneView);
}

View File

@ -0,0 +1,14 @@
package it.integry.integrywmsnative.view.dialogs.ask_livello_posizione;
import dagger.Module;
import dagger.Provides;
@Module(subcomponents = DialogAskLivelloPosizioneComponent.class)
public class DialogAskLivelloPosizioneModule {
@Provides
DialogAskLivelloPosizioneViewModel providesDialogAskLivelloPosizioneViewModel() {
return new DialogAskLivelloPosizioneViewModel();
}
}

View File

@ -0,0 +1,177 @@
package it.integry.integrywmsnative.view.dialogs.ask_livello_posizione;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import javax.inject.Inject;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.BaseDialogFragment;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.core.model.MtbDepoPosizione;
import it.integry.integrywmsnative.core.utility.UtilityFocus;
import it.integry.integrywmsnative.core.utility.UtilityPosizione;
import it.integry.integrywmsnative.databinding.DialogAskLivelloPosizioneBinding;
public class DialogAskLivelloPosizioneView extends BaseDialogFragment {
@Inject
DialogAskLivelloPosizioneViewModel mViewModel;
private MtbDepoPosizione mtbDepoPosizione;
private boolean canAbort;
private RunnableArgs<MtbDepoPosizione> onComplete;
private RunnableArgs<Exception> onFailed;
private DialogAskLivelloPosizioneBinding mBindings;
private Context mContext;
private boolean completedFLow = false;
//Pass here all external parameters
public static DialogAskLivelloPosizioneView newInstance(MtbDepoPosizione mtbDepoPosizione, boolean canAbort, RunnableArgs<MtbDepoPosizione> onComplete, RunnableArgs<Exception> onFailed) {
return new DialogAskLivelloPosizioneView(mtbDepoPosizione, canAbort, onComplete, onFailed);
}
private DialogAskLivelloPosizioneView(MtbDepoPosizione mtbDepoPosizione, boolean canAbort, RunnableArgs<MtbDepoPosizione> onComplete, RunnableArgs<Exception> onFailed) {
super();
this.mtbDepoPosizione = mtbDepoPosizione;
this.onComplete = onComplete;
this.onFailed = onFailed;
this.canAbort = canAbort;
MainApplication.appComponent
.dialogAskLivelloPosizioneComponent()
.create()
.inject(this);
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
this.mContext = requireContext();
mBindings = DialogAskLivelloPosizioneBinding.inflate(LayoutInflater.from(this.mContext), null, false);
mBindings.setLifecycleOwner(this);
setCancelable(false);
var alertDialogBuilder = new MaterialAlertDialogBuilder(this.mContext)
.setView(mBindings.getRoot())
.setCancelable(isCancelable())
.setPositiveButton(R.string.confirm, (dialogInterface, i) -> {
String levelNumber = mBindings.levelNumber.getText().toString();
onLevelConfirm(levelNumber);
});
if (canAbort)
alertDialogBuilder.setNeutralButton(R.string.abort, ((dialogInterface, i) -> {
onLevelAbort();
}));
var alertDialog = alertDialogBuilder.create();
alertDialog.setCanceledOnTouchOutside(isCancelable());
alertDialog.setOnShowListener(this);
return alertDialog;
}
@Override
public void dismiss() {
if (getDialog() != null) getDialog().dismiss();
}
@Override
public void onShow(DialogInterface dialogInterface) {
UtilityFocus.focusTextBox(mContext, mBindings.levelNumberLayout.getEditText());
mBindings.levelNumberLayout.getEditText().addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (mBindings.levelNumberLayout.getEditText().getText() != null) {
validateLevel(mBindings.levelNumberLayout.getEditText().getText().toString());
} else resetLevelError();
}
@Override
public void afterTextChanged(Editable s) {
}
});
}
@Override
public void onDismiss(@NonNull DialogInterface dialog) {
super.onDismiss(dialog);
if(!completedFLow) onComplete.run(null);
}
private void onLevelConfirm(String levelString) {
String newPosizione = mtbDepoPosizione.getPosizione().substring(0, mtbDepoPosizione.getPosizione().length() - 1);
newPosizione += levelString;
MtbDepoPosizione foundPosizione = UtilityPosizione.getFromCache(newPosizione);
if (foundPosizione != null) {
resetLevelError();
completedFLow = true;
onComplete.run(foundPosizione);
dismiss();
} else {
setLevelError(mContext.getResources().getString(R.string.not_valid));
}
}
private void validateLevel(String levelString) {
String newPosizione = mtbDepoPosizione.getPosizione().substring(0, mtbDepoPosizione.getPosizione().length() - 1);
newPosizione += levelString;
if (UtilityPosizione.getFromCache(newPosizione) != null) {
resetLevelError();
} else setLevelError(mContext.getResources().getString(R.string.not_valid));
}
private void setLevelError(String message) {
mBindings.levelNumberLayout.setErrorEnabled(true);
mBindings.levelNumberLayout.setError(message);
mBindings.levelNumberLayout.setErrorIconDrawable(null);
}
private void resetLevelError() {
mBindings.levelNumberLayout.setError(null);
}
private void onLevelAbort() {
completedFLow = true;
onComplete.run(null);
dismiss();
}
}

View File

@ -0,0 +1,5 @@
package it.integry.integrywmsnative.view.dialogs.ask_livello_posizione;
public class DialogAskLivelloPosizioneViewModel {
}

View File

@ -0,0 +1,14 @@
package it.integry.integrywmsnative.view.dialogs.ask_position_of_lu;
import dagger.Subcomponent;
@Subcomponent
public interface DialogAskPositionOfLUComponent {
@Subcomponent.Factory
interface Factory {
DialogAskPositionOfLUComponent create();
}
void inject(DialogAskPositionOfLUView dialogAskPositionOfLUView);
}

View File

@ -0,0 +1,14 @@
package it.integry.integrywmsnative.view.dialogs.ask_position_of_lu;
import dagger.Module;
import dagger.Provides;
@Module(subcomponents = DialogAskPositionOfLUComponent.class)
public class DialogAskPositionOfLUModule {
@Provides
DialogAskPositionOfLUViewModel providesDialogAskPositionOfLUViewModel() {
return new DialogAskPositionOfLUViewModel();
}
}

View File

@ -1,6 +1,7 @@
package it.integry.integrywmsnative.view.dialogs.ask_position_of_lu;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.text.Editable;
@ -20,7 +21,10 @@ import com.google.android.material.textfield.TextInputLayout;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import it.integry.barcode_base_android_library.model.BarcodeScanDTO;
import it.integry.integrywmsnative.MainApplication;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeCallbackDTO;
import it.integry.integrywmsnative.core.barcode_reader.BarcodeManager;
@ -33,41 +37,49 @@ import it.integry.integrywmsnative.core.utility.UtilityPosizione;
import it.integry.integrywmsnative.databinding.DialogAskPositionOfLuBinding;
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
public class DialogAskPositionOfLUView extends BaseDialogFragment implements DialogInterface.OnShowListener {
public class DialogAskPositionOfLUView extends BaseDialogFragment {
@Inject
DialogAskPositionOfLUViewModel mViewModel;
private DialogAskPositionOfLuBinding mBindings;
private DialogAskPositionOfLUAdapter viewpagerAdapter;
private int mBarcodeScannerIstanceID;
private boolean mCheckForLineaProd;
private Context mContext;
private int mBarcodeScannerInstanceID;
private MtbDepoPosizione currentMtbDepoPosizione;
private RunnableArgss<DialogConsts.Results, MtbDepoPosizione> onComplete;
private RunnableArgs<Exception> onFailed;
private TextInputLayout livelloTextInputLayout;
private boolean mCheckForLineaProd = false;
private RunnableArgss<DialogConsts.Results, MtbDepoPosizione> onComplete = null;
private boolean completedFlow = false;
private TextInputLayout livelloTextInputLayout;
public static DialogAskPositionOfLUView makeBase(boolean checkForLineaProd, RunnableArgss<DialogConsts.Results, MtbDepoPosizione> onComplete, RunnableArgs<Exception> onFailed) {
return new DialogAskPositionOfLUView(checkForLineaProd, onComplete, onFailed);
//Pass here all external parameters
public static DialogAskPositionOfLUView newInstance(boolean checkForLineaProd, RunnableArgss<DialogConsts.Results, MtbDepoPosizione> onComplete) {
return new DialogAskPositionOfLUView(checkForLineaProd, onComplete);
}
private DialogAskPositionOfLUView(boolean checkForLineaProd, RunnableArgss<DialogConsts.Results, MtbDepoPosizione> onComplete, RunnableArgs<Exception> onFailed) {
private DialogAskPositionOfLUView(boolean checkForLineaProd, RunnableArgss<DialogConsts.Results, MtbDepoPosizione> onComplete) {
super();
this.mCheckForLineaProd = checkForLineaProd;
this.onComplete = onComplete;
this.onFailed = onFailed;
MainApplication.appComponent
.dialogAskPositionOfLUComponent()
.create()
.inject(this);
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
this.initBarcode();
this.mContext = requireContext();
mBindings = DialogAskPositionOfLuBinding.inflate(LayoutInflater.from(requireActivity()), null, false);
mBindings = DialogAskPositionOfLuBinding.inflate(LayoutInflater.from(this.mContext), null, false);
mBindings.setLifecycleOwner(this);
List<Integer> views = new ArrayList<>();
@ -78,11 +90,16 @@ public class DialogAskPositionOfLUView extends BaseDialogFragment implements Dia
mBindings.viewpager.setAdapter(viewpagerAdapter);
mBindings.viewpager.beginFakeDrag();
var alertDialog = new MaterialAlertDialogBuilder(requireContext())
this.initBarcode();
setCancelable(false);
var alertDialog = new MaterialAlertDialogBuilder(this.mContext)
.setView(mBindings.getRoot())
.setCancelable(false)
.setCancelable(isCancelable())
.create();
alertDialog.setCanceledOnTouchOutside(false);
alertDialog.setCanceledOnTouchOutside(isCancelable());
alertDialog.setOnShowListener(this);
return alertDialog;
}
@ -97,6 +114,11 @@ public class DialogAskPositionOfLUView extends BaseDialogFragment implements Dia
}
}
@Override
public void dismiss() {
if (getDialog() != null) getDialog().dismiss();
}
@Override
public void onShow(DialogInterface dialog) {
((AppCompatTextView) viewpagerAdapter.getPage(0)
@ -142,7 +164,7 @@ public class DialogAskPositionOfLUView extends BaseDialogFragment implements Dia
}
private void initBarcode() {
mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
mBarcodeScannerInstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
.setOnScanSuccessful(onScanSuccessfull)
.setOnScanFailed(this::onError));
@ -151,7 +173,7 @@ public class DialogAskPositionOfLUView extends BaseDialogFragment implements Dia
@Override
public void onDismiss(@NonNull DialogInterface dialog) {
BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
BarcodeManager.removeCallback(mBarcodeScannerInstanceID);
if (!completedFlow) onComplete.run(DialogConsts.Results.ABORT, null);
super.onDismiss(dialog);
}
@ -237,4 +259,5 @@ public class DialogAskPositionOfLUView extends BaseDialogFragment implements Dia
onComplete.run(DialogConsts.Results.ABORT, null);
dismiss();
}
}
}

View File

@ -0,0 +1,5 @@
package it.integry.integrywmsnative.view.dialogs.ask_position_of_lu;
public class DialogAskPositionOfLUViewModel {
}

View File

@ -35,7 +35,7 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial
DialogScanOrCreateLUViewModel mViewModel;
private DialogScanOrCreateLuBinding mBindings;
private int mBarcodeScannerIstanceID;
private int mBarcodeScannerInstanceID;
private final RunnableArgss<MtbColt, Boolean> mOnComplete;
private MtbColt openedMtbColt;
@ -109,15 +109,22 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial
.setView(mBindings.getRoot())
.setCancelable(isCancelable())
.create();
alertDialog.setCanceledOnTouchOutside(false);
alertDialog.setCanceledOnTouchOutside(isCancelable());
alertDialog.setOnShowListener(this);
alertDialog.setOnDismissListener(this);
return alertDialog;
}
@Override
public void dismiss() {
if(getDialog() != null) getDialog().dismiss();
}
@Override
public void onDismiss(@NonNull DialogInterface dialog) {
BarcodeManager.removeCallback(mBarcodeScannerIstanceID);
BarcodeManager.enable();
BarcodeManager.removeCallback(mBarcodeScannerInstanceID);
if (openedMtbColt == null) {
mOnComplete.run(null, false);
}
@ -125,8 +132,10 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial
}
private void initBarcode() {
mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
mBarcodeScannerInstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
.setOnScanSuccessful(onScanSuccessfull)
.setOnScanFailed(this::onError));
BarcodeManager.enable();
@ -165,6 +174,7 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial
public void onLUOpened(MtbColt mtbColt, boolean created) {
this.openedMtbColt = mtbColt;
mOnComplete.run(mtbColt, created);
dismiss();
}

View File

@ -1,68 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.text.Html" />
<import type="it.integry.integrywmsnative.R" />
<variable
name="mContext"
type="android.content.Context" />
</data>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/light_blue_300"
android:gravity="center_horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_error_white_24dp"
android:layout_margin="24dp"/>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="24dp"
android:paddingLeft="24dp"
android:paddingRight="24dp">
<TextView
android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial.Dialog.HeadlineText"
android:text="@string/placement"
android:gravity="center_horizontal"/>
<include
layout="@layout/dialog_ask_position_of_lu__page2" />
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</layout>

View File

@ -0,0 +1,58 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
app:cardCornerRadius="16dp"
app:cardElevation="0dp">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingHorizontal="16dp"
android:paddingVertical="16dp">
<androidx.appcompat.widget.AppCompatImageView
style="@style/MaterialAlertDialog.Material3.Title.Icon.CenterStacked"
android:layout_width="36dp"
android:layout_height="36dp"
android:src="@drawable/ic_error_white_24dp"
app:tint="?colorPrimary" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title_text"
style="@style/MaterialAlertDialog.Material3.Title.Text.CenterStacked"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginBottom="16dp"
android:text="@string/placement" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/level_number_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/level_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/level"
android:inputType="number"
style="@style/TextInputEditText.OutlinePrimary"/>
</com.google.android.material.textfield.TextInputLayout>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.cardview.widget.CardView>
</layout>

View File

@ -1,11 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.text.Html" />
<import type="it.integry.integrywmsnative.R" />
</data>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
@ -50,5 +44,4 @@
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.cardview.widget.CardView>
</layout>