Refactoring DialogScanOrCreateLU

This commit is contained in:
Giuseppe Scorrano 2022-09-01 15:54:55 +02:00
parent b129bb51c6
commit f4f7f4a6f0
4 changed files with 141 additions and 211 deletions

View File

@ -55,7 +55,7 @@ public class DialogInputPesoLuView extends DialogFragment {
this.init();
return new MaterialAlertDialogBuilder(requireContext())
var alertDialog = new MaterialAlertDialogBuilder(requireContext())
.setView(mBindings.getRoot())
.setCancelable(false)
.setPositiveButton(R.string.confirm, (dialog, which) -> {
@ -76,6 +76,8 @@ public class DialogInputPesoLuView extends DialogFragment {
onDialogDismiss.run(newCodTcol, netWeightDecimal, grossWeightDecimal);
})
.create();
alertDialog.setCanceledOnTouchOutside(false);
return alertDialog;
}
private void init() {

View File

@ -2,17 +2,14 @@ package it.integry.integrywmsnative.view.dialogs.scan_or_create_lu;
import android.app.Dialog;
import android.content.DialogInterface;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.text.SpannableString;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.jetbrains.annotations.NotNull;
@ -40,12 +37,12 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial
private DialogScanOrCreateLuBinding mBindings;
private int mBarcodeScannerIstanceID;
private RunnableArgss<MtbColt, Boolean> mOnComplete;
private final RunnableArgss<MtbColt, Boolean> mOnComplete;
private MtbColt openedMtbColt;
private boolean mShouldCheckResiduo;
private boolean mShouldCheckIfExistDoc;
private boolean mEnableCreation;
private final boolean mShouldCheckResiduo;
private final boolean mShouldCheckIfExistDoc;
private final boolean mEnableCreation;
private final BindableBoolean basketEnabled = new BindableBoolean();
private final BindableBoolean creationEnabled = new BindableBoolean();
@ -73,22 +70,21 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial
mEnableCreation = enableCreation;
mOnComplete = onComplete;
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
this.initBarcode();
mBindings = DataBindingUtil.inflate(inflater, R.layout.dialog_scan_or_create_lu, container, false);
mBindings.setLifecycleOwner(this);
mBindings.setView(this);
MainApplication.appComponent
.dialogScanOrCreateLUComponent()
.create()
.inject(this);
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
this.initBarcode();
mBindings = DialogScanOrCreateLuBinding.inflate(LayoutInflater.from(requireContext()), null, false);
mBindings.setLifecycleOwner(this);
mBindings.setView(this);
this.mViewModel
.setListener(this);
@ -97,6 +93,7 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial
this.mViewModel.init(mShouldCheckResiduo, mShouldCheckIfExistDoc, mEnableCreation);
mBindings.createNewLuButton.setOnClickListener(v -> {
dismiss();
this.mViewModel.createNewLU();
});
@ -106,18 +103,12 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial
}).show();
});
return mBindings.getRoot();
}
@NonNull
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) {
var dialog = super.onCreateDialog(savedInstanceState);
dialog.setCanceledOnTouchOutside(false);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
return dialog;
var alertDialog = new MaterialAlertDialogBuilder(requireContext())
.setView(mBindings.getRoot())
.setCancelable(false)
.create();
alertDialog.setCanceledOnTouchOutside(false);
return alertDialog;
}
@Override

View File

@ -47,28 +47,21 @@
app:tint="?colorPrimary" />
<androidx.appcompat.widget.LinearLayoutCompat
<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:orientation="vertical">
<TextView
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:text="@string/action_insert_weight" />
</androidx.appcompat.widget.LinearLayoutCompat>
android:gravity="center_horizontal"
android:text="@string/action_insert_weight" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/MaterialAlertDialog.Material3.Body.Text.CenterStacked"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/dialog_input_peso_lu_description"
android:layout_marginTop="16dp"/>
android:layout_marginTop="16dp"
android:text="@string/dialog_input_peso_lu_description" />
<androidx.appcompat.widget.LinearLayoutCompat

View File

@ -1,200 +1,144 @@
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="view"
type="it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUView" />
</data>
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/base_root"
android:orientation="vertical"
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
app:cardCornerRadius="12dp"
app:cardElevation="0dp">
android:orientation="vertical"
android:paddingHorizontal="16dp"
android:paddingVertical="16dp">
<LinearLayout
<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:orientation="vertical">
android:gravity="center_horizontal"
android:text="@string/title_open_lu" />
<RelativeLayout
android:id="@+id/title_container"
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingStart="16dp"
android:paddingEnd="16dp">
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/light_blue_300"
android:layout_marginTop="16dp"
android:orientation="horizontal"
android:gravity="center_horizontal">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/title_icon"
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/MaterialAlertDialog.Material3.Body.Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_error_white_24dp"
android:layout_margin="24dp"/>
</RelativeLayout>
android:layout_gravity="center_vertical"
android:layout_marginStart="4dp"
android:layout_marginEnd="12dp"
android:gravity="center_horizontal"
android:text="Scansiona il codice a barre di una UL" />
</androidx.appcompat.widget.LinearLayoutCompat>
<LinearLayout
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/dialog_scan_or_create_lu__creation_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:visibility="@{view.creationEnabled}">
<androidx.appcompat.widget.AppCompatTextView
style="@style/MaterialAlertDialog.Material3.Body.Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginVertical="12dp"
android:gravity="center_horizontal"
android:text="OPPURE"
android:textStyle="bold" />
<com.google.android.material.button.MaterialButton
android:id="@+id/create_new_lu_button"
style="@style/Widget.Material3.Button.UnelevatedButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/button_create_new_ul" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/dialog_scan_or_create_lu__basket_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="24dp"
android:paddingBottom="16dp"
android:paddingStart="8dp"
android:paddingEnd="8dp">
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:gravity="center_horizontal"
app:visibility="@{view.basketEnabled}">
<LinearLayout
android:layout_width="match_parent"
<androidx.appcompat.widget.AppCompatTextView
style="@style/MaterialAlertDialog.Material3.Body.Text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingStart="16dp"
android:paddingEnd="16dp">
android:layout_gravity="center_horizontal"
android:layout_marginVertical="12dp"
android:gravity="center_horizontal"
android:text="OPPURE"
android:textStyle="bold" />
<TextView
android:id="@+id/title_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/TextViewMaterial.Dialog.HeadlineText"
android:text="@string/title_open_lu"
android:gravity="center_horizontal"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="16dp">
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"
android:layout_marginStart="8dp"
android:layout_marginEnd="12dp"
android:layout_gravity="center_vertical"
android:gravity="center_horizontal"
style="@style/TextViewMaterial"
android:text="Scansiona il codice a barre di una UL"/>
</LinearLayout>
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/dialog_scan_or_create_lu__creation_layout"
android:layout_width="match_parent"
<com.google.android.material.button.MaterialButton
android:id="@+id/view_basket"
style="@style/Widget.Material3.Button.OutlinedButton.Icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:visibility="@{view.creationEnabled}">
android:text="@string/button_view_basket_ul"
app:icon="@drawable/ic_black_shopping_cart"
app:iconSize="24dp" />
</androidx.appcompat.widget.LinearLayoutCompat>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="12dp"
android:layout_marginBottom="12dp"
android:textSize="16sp"
android:textStyle="bold"
android:layout_gravity="center_horizontal"
style="@style/TextViewMaterial"
android:text="OPPURE" />
<com.google.android.material.button.MaterialButton
android:id="@+id/create_new_lu_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Button.PrimaryFull"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:text="@string/button_create_new_ul"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/dialog_scan_or_create_lu__basket_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:visibility="@{view.basketEnabled}">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:layout_marginTop="12dp"
android:layout_marginBottom="12dp"
android:textSize="16sp"
android:textStyle="bold"
android:layout_gravity="center_horizontal"
style="@style/TextViewMaterial"
android:text="OPPURE" />
<com.google.android.material.button.MaterialButton
android:id="@+id/view_basket"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/Button.PrimaryOutline"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:text="@string/button_view_basket_ul"
app:iconSize="24dp"
app:icon="@drawable/ic_black_shopping_cart"/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</LinearLayout>
</androidx.cardview.widget.CardView>
</androidx.appcompat.widget.LinearLayoutCompat>
</layout>