Implementata nuova UI (nuovo Material Design) per alcuni dialog in Rettifica Giacenze / Versamento Merce.

Implementato dialog per la domanda semplice (Si / No).
This commit is contained in:
2019-03-20 17:57:12 +01:00
parent b95dab2bcc
commit 4eb6bedf04
21 changed files with 374 additions and 61 deletions

View File

@@ -62,6 +62,7 @@ import it.integry.integrywmsnative.view.dialogs.choose_art_from_lista_arts.Dialo
import it.integry.integrywmsnative.view.dialogs.input_quantity.DialogInputQuantity;
import it.integry.integrywmsnative.view.dialogs.input_quantity.QuantityDTO;
import it.integry.integrywmsnative.view.dialogs.scan_or_create_lu.DialogScanOrCreateLU;
import it.integry.integrywmsnative.view.dialogs.yes_no.DialogYesNo;
import it.integry.plugins.barcode_base_library.model.BarcodeScanDTO;
import it.integry.plugins.barcode_base_library.model.BarcodeType;
@@ -568,16 +569,31 @@ public class RettificaGiacenzeViewModel implements IRecyclerItemClicked<MtbColr>
}
private void posizionaCollo(Runnable onComplete, Runnable onAbort, RunnableArgs<Exception> onFailed) {
DialogAskPositionOfLU.makeBase(mContext, mtbColt.get(), mtbDepoPosizione -> {
if(mtbDepoPosizione != null && mtbColt.get() != null) {
Objects.requireNonNull(mtbColt.get()).setPosizione(mtbDepoPosizione.getPosizione());
onComplete.run();
} else {
onAbort.run();
DialogYesNo.make(mContext, "Posiziona UL", "Vuoi cambiare la posizione della UL corrente?", result -> {
switch (result){
case YES:
DialogAskPositionOfLU.makeBase(mContext, mtbColt.get(), mtbDepoPosizione -> {
if(mtbDepoPosizione != null && mtbColt.get() != null) {
Objects.requireNonNull(mtbColt.get()).setPosizione(mtbDepoPosizione.getPosizione());
onComplete.run();
} else {
onAbort.run();
}
}, onFailed).show();
break;
case NO:
onAbort.run();
break;
}
}).show();
}, onFailed).show();
}
private void onItemEdit(MtbColr mtbColrToEdit, int index) {

View File

@@ -96,9 +96,11 @@ public class VenditaOrdineInevasoHelper {
final PickingObjectDTO currentItem = currentGroup.get(k);
final VenditaOrdineInevasoListViewModel.SubItem rowModel = new VenditaOrdineInevasoListViewModel.SubItem();
String badge1 = "";
badge1 += !UtilityString.isNullOrEmpty(currentItem.getCodAlis()) ? (currentItem.getCodAlis() + " - ") : "";
badge1 += (!UtilityString.isNullOrEmpty(currentItem.getCodArtFor()) ? currentItem.getCodArtFor() : currentItem.getCodMart());
String badge1 = currentItem.getCodAlis() + " - " + (!UtilityString.isNullOrEmpty(currentItem.getCodArtFor()) ? currentItem.getCodArtFor() : currentItem.getCodMart());
rowModel.setBadge1(badge1);
rowModel.setBadge2(UtilityString.isNullOrEmpty(currentItem.getCodJcom()) ? null : currentItem.getCodJcom());

View File

@@ -4,9 +4,11 @@ import android.content.Context;
import androidx.viewpager.widget.ViewPager;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
public class DeactivatableViewPager extends ViewPager {
private View mCurrentView;
public DeactivatableViewPager(Context context) {
super(context);
@@ -25,4 +27,34 @@ public class DeactivatableViewPager extends ViewPager {
public boolean onInterceptTouchEvent(MotionEvent event) {
return isEnabled() && super.onInterceptTouchEvent(event);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
if (mCurrentView == null) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
return;
}
int height = 0;
mCurrentView.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
int h = mCurrentView.getMeasuredHeight();
if (h > height) height = h;
heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
public void measureCurrentView(View currentView) {
mCurrentView = currentView;
requestLayout();
}
public int measureFragment(View view) {
if (view == null)
return 0;
view.measure(0, 0);
return view.getMeasuredHeight();
}
}

View File

@@ -3,7 +3,8 @@ package it.integry.integrywmsnative.view.dialogs;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
@@ -24,7 +25,7 @@ public class DialogAskLivelloPosizione {
private Context mContext;
private MtbDepoPosizione mtbDepoPosizione;
private Dialog mAlert;
private Dialog mDialog;
private RunnableArgs<MtbDepoPosizione> onComplete;
private RunnableArgs<Exception> onFailed;
@@ -34,7 +35,7 @@ public class DialogAskLivelloPosizione {
private boolean completedFLow = false;
public static void make(Context context, MtbDepoPosizione mtbDepoPosizione, boolean canAbort, RunnableArgs<MtbDepoPosizione> onComplete, RunnableArgs<Exception> onFailed) {
new DialogAskLivelloPosizione(context, mtbDepoPosizione, canAbort, onComplete, onFailed).mAlert.show();
new DialogAskLivelloPosizione(context, mtbDepoPosizione, canAbort, onComplete, onFailed).mDialog.show();
}
@@ -48,15 +49,17 @@ public class DialogAskLivelloPosizione {
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
View currentView = inflater.inflate(R.layout.dialog_ask_livello_of_position, null, false);
mAlert = new Dialog(mContext);
mAlert.setContentView(currentView);
mAlert.setCanceledOnTouchOutside(false);
mDialog = new Dialog(mContext);
mDialog.setContentView(currentView);
mDialog.setCanceledOnTouchOutside(false);
mDialog.setCancelable(false);
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
mAlert.setOnDismissListener(dialog -> {
mDialog.setOnDismissListener(dialog -> {
if(!completedFLow) onComplete.run(null);
});
mAlert.setOnShowListener(dialog -> {
mDialog.setOnShowListener(dialog -> {
if(!canAbort) currentView.findViewById(R.id.button_abort).setVisibility(View.GONE);
@@ -111,7 +114,7 @@ public class DialogAskLivelloPosizione {
completedFLow = true;
onComplete.run(foundPosizione);
mAlert.dismiss();
mDialog.dismiss();
} else {
@@ -142,7 +145,7 @@ public class DialogAskLivelloPosizione {
private void onLevelAbort() {
completedFLow = true;
onComplete.run(null);
mAlert.dismiss();
mDialog.dismiss();
}

View File

@@ -0,0 +1,11 @@
package it.integry.integrywmsnative.view.dialogs;
public class DialogConsts {
public enum Results {
YES,
NO,
ABORT
}
}

View File

@@ -6,6 +6,9 @@ import android.content.Context;
import androidx.databinding.DataBindingUtil;
import com.google.android.material.textfield.TextInputLayout;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
@@ -73,6 +76,8 @@ public class DialogAskPositionOfLU {
mDialog = new Dialog(mContext);
mDialog.setContentView(mBinding.getRoot());
mDialog.setCanceledOnTouchOutside(false);
mDialog.setCancelable(false);
mDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
mDialog.setOnShowListener(dialog -> {
adapter.getPage(1).findViewById(R.id.button_confirm).setOnClickListener(v -> {

View File

@@ -3,6 +3,8 @@ package it.integry.integrywmsnative.view.dialogs.ask_position_of_lu;
import android.content.Context;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;
import it.integry.integrywmsnative.ui.DeactivatableViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -25,10 +27,6 @@ public class DialogAskPositionOfLUAdapter extends PagerAdapter {
this.mDatasetViews = new ArrayList<>();
}
@Override
public int getCount() {
return mDatasetLayout.size();
}
@Override
public View instantiateItem(ViewGroup container, int position) {
@@ -38,6 +36,9 @@ public class DialogAskPositionOfLUAdapter extends PagerAdapter {
container.addView(view);
this.mDatasetViews.add(view);
DeactivatableViewPager pager = (DeactivatableViewPager) container;
pager.measureCurrentView(view);
return view;
}
@@ -56,4 +57,10 @@ public class DialogAskPositionOfLUAdapter extends PagerAdapter {
return this.mDatasetViews.get(index);
}
@Override
public int getCount() {
return mDatasetLayout.size();
}
}

View File

@@ -0,0 +1,52 @@
package it.integry.integrywmsnative.view.dialogs.yes_no;
import android.app.Dialog;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.LayoutInflater;
import androidx.databinding.DataBindingUtil;
import it.integry.integrywmsnative.R;
import it.integry.integrywmsnative.core.expansion.RunnableArgs;
import it.integry.integrywmsnative.databinding.DialogYesNoBinding;
import it.integry.integrywmsnative.view.dialogs.DialogConsts;
public class DialogYesNo {
private Dialog currentDialog;
public static Dialog make(final Context context, final String title, final String description, RunnableArgs<DialogConsts.Results> onDialogDismiss) {
return new DialogYesNo(context, title, description, onDialogDismiss).currentDialog;
}
private DialogYesNo(Context context, String title, String description, RunnableArgs<DialogConsts.Results> onDialogDismiss) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService( Context.LAYOUT_INFLATER_SERVICE );
DialogYesNoBinding bindings = DataBindingUtil.inflate(inflater, R.layout.dialog_yes_no, null, false);
currentDialog = new Dialog(context);
currentDialog.setContentView(bindings.getRoot());
currentDialog.setCancelable(false);
currentDialog.setCanceledOnTouchOutside(false);
currentDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
bindings.titleText.setText(title);
bindings.descriptionText.setText(description);
bindings.buttonYes.setOnClickListener(v -> {
onDialogDismiss.run(DialogConsts.Results.YES);
currentDialog.dismiss();
});
bindings.buttonNo.setOnClickListener(v -> {
onDialogDismiss.run(DialogConsts.Results.NO);
currentDialog.dismiss();
});
}
}