diff --git a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtView.java b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtView.java index 6938c66d..18ec6fff 100644 --- a/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtView.java +++ b/app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtView.java @@ -1,17 +1,16 @@ package it.integry.integrywmsnative.view.dialogs.scan_art; +import android.app.Dialog; +import android.content.Context; import android.content.DialogInterface; -import android.graphics.Color; -import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.annimon.stream.Stream; +import com.google.android.material.dialog.MaterialAlertDialogBuilder; import org.jetbrains.annotations.NotNull; @@ -19,6 +18,7 @@ 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; import it.integry.integrywmsnative.core.expansion.BaseDialogFragment; @@ -37,6 +37,8 @@ public class DialogScanArtView extends BaseDialogFragment implements DialogScanA @Inject DialogScanArtViewModel mViewModel; + private Context mContext; + private final boolean mForceOnlyUL; private DialogScanArtBinding mBindings; @@ -53,44 +55,57 @@ public class DialogScanArtView extends BaseDialogFragment implements DialogScanA private DialogScanArtView(boolean forceOnlyUL, RunnableArgssss onItemChoosed, RunnableArgs onMagazzinoAutomaticoPickingRequest) { super(); + mForceOnlyUL = forceOnlyUL; onPickingCompleted = onItemChoosed; this.onMagazzinoAutomaticoPickingRequest = onMagazzinoAutomaticoPickingRequest; - } - @Nullable - @Override - public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { - this.initBarcode(); - - mBindings = DialogScanArtBinding.inflate(inflater, container, false); - mBindings.setLifecycleOwner(this); MainApplication.appComponent .dialogScanArtComponent() .create() .inject(this); + } + + @NonNull + @Override + public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { + this.mContext = requireContext(); + + this.initBarcode(); + + mBindings = DialogScanArtBinding.inflate(LayoutInflater.from(this.mContext), null, false); + mBindings.setLifecycleOwner(this); this.mViewModel .setForceOnlyUL(mForceOnlyUL) .setListener(this); - getDialog().setCanceledOnTouchOutside(false); - getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + setCancelable(false); - mBindings.buttonNo.setOnClickListener(v -> { - onPickingCompleted.run(DialogConsts.Results.ABORT, null, null, null); - dismiss(); - }); + var alertDialog = new MaterialAlertDialogBuilder(this.mContext) + .setView(mBindings.getRoot()) + .setCancelable(isCancelable()) + .setNegativeButton(R.string.abort, (dialogInterfact, i) -> { + onPickingCompleted.run(DialogConsts.Results.ABORT, null, null, null); + }) + .create(); - return mBindings.getRoot(); + alertDialog.setCanceledOnTouchOutside(isCancelable()); + alertDialog.setOnShowListener(this); + + return alertDialog; + } + + @Override + public void dismiss() { + if (getDialog() != null) getDialog().dismiss(); } @Override public void onDismiss(@NonNull DialogInterface dialog) { BarcodeManager.removeCallback(mBarcodeScannerIstanceID); - BarcodeManager.enable(); super.onDismiss(dialog); } @@ -99,7 +114,6 @@ public class DialogScanArtView extends BaseDialogFragment implements DialogScanA mBarcodeScannerIstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO() .setOnScanSuccessful(onScanSuccessfull) .setOnScanFailed(this::onError)); - BarcodeManager.enable(); setBarcodeListener(true); } @@ -140,11 +154,4 @@ public class DialogScanArtView extends BaseDialogFragment implements DialogScanA dismiss(); }); }; - - - @Override - public void onError(Exception ex) { - super.onError(ex); - BarcodeManager.enable(); - } } diff --git a/app/src/main/res/layout/dialog_scan_art.xml b/app/src/main/res/layout/dialog_scan_art.xml index 0816d677..ca6e4f2e 100644 --- a/app/src/main/res/layout/dialog_scan_art.xml +++ b/app/src/main/res/layout/dialog_scan_art.xml @@ -11,72 +11,54 @@ app:cardCornerRadius="16dp" app:cardElevation="0dp"> + + android:orientation="vertical" + android:paddingStart="24dp" + android:paddingTop="24dp" + android:paddingEnd="24dp" + android:paddingBottom="12dp"> - - + android:gravity="center_horizontal" + android:text="@string/extra_item" /> + + + + + - - - - - - - - - - - - + android:text="@string/scan_item" + android:textSize="16sp" /> +