Merge branch 'develop' into feature/FastPickingSpedizione

# Conflicts:
#	app/src/main/java/it/integry/integrywmsnative/view/dialogs/scan_art/DialogScanArtView.java
This commit is contained in:
Giuseppe Scorrano 2025-03-12 18:16:07 +01:00
commit fb6a74aef8
2 changed files with 70 additions and 81 deletions

View File

@ -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<DialogConsts.Results, MtbAart, Ean128Model, MtbColr> onItemChoosed, RunnableArgs<MtbDepoPosizione> 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(mBarcodeScannerInstanceID);
BarcodeManager.enable(mBarcodeScannerInstanceID);
super.onDismiss(dialog);
}
@ -99,7 +114,6 @@ public class DialogScanArtView extends BaseDialogFragment implements DialogScanA
mBarcodeScannerInstanceID = BarcodeManager.addCallback(new BarcodeCallbackDTO()
.setOnScanSuccessful(onScanSuccessfull)
.setOnScanFailed(this::onError));
BarcodeManager.enable(mBarcodeScannerInstanceID);
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(mBarcodeScannerInstanceID);
}
}

View File

@ -11,72 +11,54 @@
app:cardCornerRadius="16dp"
app:cardElevation="0dp">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
android:orientation="vertical"
android:paddingStart="24dp"
android:paddingTop="24dp"
android:paddingEnd="24dp"
android:paddingBottom="12dp">
<androidx.appcompat.widget.LinearLayoutCompat
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title_text"
style="@style/TextViewMaterial.Dialog.HeadlineText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingStart="24dp"
android:paddingTop="24dp"
android:paddingEnd="24dp"
android:paddingBottom="12dp">
android:gravity="center_horizontal"
android:text="@string/extra_item" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="24dp"
android:orientation="horizontal">
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
style="?attr/circularProgressIndicatorStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
app:trackCornerRadius="4dp" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title_text"
style="@style/TextViewMaterial.Dialog.HeadlineText"
android:layout_width="match_parent"
style="@style/AppTheme.NewMaterial.Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:layout_marginEnd="12dp"
android:gravity="center_horizontal"
android:text="@string/extra_item" />
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="24dp"
android:orientation="horizontal">
<com.google.android.material.progressindicator.CircularProgressIndicator
android:id="@+id/progressBar"
style="?attr/circularProgressIndicatorStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
app:trackCornerRadius="4dp"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/AppTheme.NewMaterial.Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:layout_marginEnd="12dp"
android:gravity="center_horizontal"
android:text="@string/scan_item"
android:textSize="16sp" />
</androidx.appcompat.widget.LinearLayoutCompat>
<com.google.android.material.button.MaterialButton
android:id="@+id/button_no"
style="@style/Button.DangerOutline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="16dp"
android:text="@string/abort"
app:layout_constraintTop_toTopOf="parent"
app:strokeColor="@color/red_400" />
android:text="@string/scan_item"
android:textSize="16sp" />
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.appcompat.widget.LinearLayoutCompat>
</androidx.cardview.widget.CardView>