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(); this.init();
return new MaterialAlertDialogBuilder(requireContext()) var alertDialog = new MaterialAlertDialogBuilder(requireContext())
.setView(mBindings.getRoot()) .setView(mBindings.getRoot())
.setCancelable(false) .setCancelable(false)
.setPositiveButton(R.string.confirm, (dialog, which) -> { .setPositiveButton(R.string.confirm, (dialog, which) -> {
@ -76,6 +76,8 @@ public class DialogInputPesoLuView extends DialogFragment {
onDialogDismiss.run(newCodTcol, netWeightDecimal, grossWeightDecimal); onDialogDismiss.run(newCodTcol, netWeightDecimal, grossWeightDecimal);
}) })
.create(); .create();
alertDialog.setCanceledOnTouchOutside(false);
return alertDialog;
} }
private void init() { 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.app.Dialog;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle; import android.os.Bundle;
import android.text.SpannableString; import android.text.SpannableString;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.databinding.DataBindingUtil;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -40,12 +37,12 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial
private DialogScanOrCreateLuBinding mBindings; private DialogScanOrCreateLuBinding mBindings;
private int mBarcodeScannerIstanceID; private int mBarcodeScannerIstanceID;
private RunnableArgss<MtbColt, Boolean> mOnComplete; private final RunnableArgss<MtbColt, Boolean> mOnComplete;
private MtbColt openedMtbColt; private MtbColt openedMtbColt;
private boolean mShouldCheckResiduo; private final boolean mShouldCheckResiduo;
private boolean mShouldCheckIfExistDoc; private final boolean mShouldCheckIfExistDoc;
private boolean mEnableCreation; private final boolean mEnableCreation;
private final BindableBoolean basketEnabled = new BindableBoolean(); private final BindableBoolean basketEnabled = new BindableBoolean();
private final BindableBoolean creationEnabled = new BindableBoolean(); private final BindableBoolean creationEnabled = new BindableBoolean();
@ -73,22 +70,21 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial
mEnableCreation = enableCreation; mEnableCreation = enableCreation;
mOnComplete = onComplete; 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 MainApplication.appComponent
.dialogScanOrCreateLUComponent() .dialogScanOrCreateLUComponent()
.create() .create()
.inject(this); .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 this.mViewModel
.setListener(this); .setListener(this);
@ -97,6 +93,7 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial
this.mViewModel.init(mShouldCheckResiduo, mShouldCheckIfExistDoc, mEnableCreation); this.mViewModel.init(mShouldCheckResiduo, mShouldCheckIfExistDoc, mEnableCreation);
mBindings.createNewLuButton.setOnClickListener(v -> { mBindings.createNewLuButton.setOnClickListener(v -> {
dismiss();
this.mViewModel.createNewLU(); this.mViewModel.createNewLU();
}); });
@ -106,18 +103,12 @@ public class DialogScanOrCreateLUView extends BaseDialogFragment implements Dial
}).show(); }).show();
}); });
return mBindings.getRoot(); var alertDialog = new MaterialAlertDialogBuilder(requireContext())
} .setView(mBindings.getRoot())
.setCancelable(false)
@NonNull .create();
@Override alertDialog.setCanceledOnTouchOutside(false);
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState) { return alertDialog;
var dialog = super.onCreateDialog(savedInstanceState);
dialog.setCanceledOnTouchOutside(false);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
return dialog;
} }
@Override @Override

View File

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

View File

@ -1,200 +1,144 @@
<?xml version="1.0" encoding="utf-8"?> <?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"> xmlns:tools="http://schemas.android.com/tools">
<data> <data>
<variable <variable
name="view" name="view"
type="it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUView" /> type="it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLUView" />
</data> </data>
<androidx.cardview.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android" <androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/base_root"
android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:orientation="vertical"
app:cardCornerRadius="12dp" android:paddingHorizontal="16dp"
app:cardElevation="0dp"> 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_width="match_parent"
android:layout_height="wrap_content" 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_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:background="@color/light_blue_300" android:layout_marginTop="16dp"
android:orientation="horizontal"
android:gravity="center_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_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:src="@drawable/ic_error_white_24dp" android:layout_gravity="center_vertical"
android:layout_margin="24dp"/> android:layout_marginStart="4dp"
android:layout_marginEnd="12dp"
</RelativeLayout> 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_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:paddingTop="24dp" app:layout_constraintEnd_toEndOf="parent"
android:paddingBottom="16dp" app:layout_constraintStart_toStartOf="parent"
android:paddingStart="8dp" app:layout_constraintTop_toTopOf="parent"
android:paddingEnd="8dp"> android:gravity="center_horizontal"
app:visibility="@{view.basketEnabled}">
<androidx.appcompat.widget.AppCompatTextView
<LinearLayout style="@style/MaterialAlertDialog.Material3.Body.Text"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:layout_gravity="center_horizontal"
android:paddingStart="16dp" android:layout_marginVertical="12dp"
android:paddingEnd="16dp"> android:gravity="center_horizontal"
android:text="OPPURE"
android:textStyle="bold" />
<TextView <com.google.android.material.button.MaterialButton
android:id="@+id/title_text" android:id="@+id/view_basket"
android:layout_width="match_parent" style="@style/Widget.Material3.Button.OutlinedButton.Icon"
android:layout_height="wrap_content" android:layout_width="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"
android:layout_height="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>
</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>
</layout> </layout>