From b6f718d4eaf2799d8e990e80f3202daf0a03219e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?mustafa=20ic=CC=A7men?= Date: Mon, 30 Dec 2019 23:35:00 +0300 Subject: [PATCH] delivery time preference dialog fix --- .../CreateOrderSummaryFragment.java | 110 +++++++++++++----- .../pizzaleu/android/helper/DialogHelper.java | 23 ++++ app/src/main/res/values/strings.xml | 2 +- 3 files changed, 105 insertions(+), 30 deletions(-) diff --git a/app/src/main/java/ch/pizzaleu/android/fragment/createOrder/CreateOrderSummaryFragment.java b/app/src/main/java/ch/pizzaleu/android/fragment/createOrder/CreateOrderSummaryFragment.java index 2d8490d..b1697f5 100644 --- a/app/src/main/java/ch/pizzaleu/android/fragment/createOrder/CreateOrderSummaryFragment.java +++ b/app/src/main/java/ch/pizzaleu/android/fragment/createOrder/CreateOrderSummaryFragment.java @@ -229,8 +229,7 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { if(response.isSuccessful() && response.body().isSuccess()){ if(createOrderActivity.getSelectedShippingMethod().getCode().equalsIgnoreCase(ApiConstants.SHIPPING_METHOD_CODE_FREE_SHIPPING)){ - DialogHelper.hideLoadingDialog(); - showDeliveryTimePreferenceDialog(); + checkDeliveryTimeForPreferenceDialog(); } else if(createOrderActivity.getSelectedShippingMethod().getCode().equalsIgnoreCase(ApiConstants.SHIPPING_METHOD_CODE_PICK_UP_FROM_STORE)){ getDeliveryTimeOfStore(choosePickUpDateTimeText); @@ -254,33 +253,6 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { } - private void showDeliveryTimePreferenceDialog(){ - DialogHelper.showTwoButtonsDialog( - getString(R.string.info), - getString(R.string.delivery_time_preference_message), - R.string.delivery_time_preference_as_soon_as_possible, - new MaterialDialog.SingleButtonCallback() { - @Override - public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { - DialogHelper.showLoadingDialog(); - isChoosingDeliveyTimeForFreeShipping = false; - checkDeliveryTime(); - } - }, - R.string.delivery_time_preference_choose_delivery_time, - new MaterialDialog.SingleButtonCallback() { - @Override - public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { - DialogHelper.showLoadingDialog(); - isChoosingDeliveyTimeForFreeShipping = true; - getDeliveryTimeOfStore(null); - } - }, - false, - true - ); - } - private void checkDeliveryTime(){ ApiService .apiInterface @@ -319,6 +291,86 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { }); } + private void checkDeliveryTimeForPreferenceDialog(){ + ApiService + .apiInterface + .checkDeliveryTime( + SessionHelper.getSelectedStore().getStoreName(), + createOrderActivity.getSelectedShippingMethod().getCode()) + .enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + DialogHelper.hideLoadingDialog(); + if(response.isSuccessful() && + response.body() != null){ + + if(response.body().isSuccess()){ + showDeliveryTimePreferenceDialogWithTwoButtons(); + } + else { + showDeliveryTimePreferenceDialogWithOneButton(); + } + + } + else{ + ApiErrorUtils.parseError(response); + } + } + + @Override + public void onFailure(Call> call, Throwable t) { + DialogHelper.hideLoadingDialog(); + DialogHelper.showFailedDialog(); + } + }); + } + + private void showDeliveryTimePreferenceDialogWithTwoButtons(){ + DialogHelper.showTwoButtonsDialog( + getString(R.string.info), + getString(R.string.delivery_time_preference_message), + R.string.delivery_time_preference_as_soon_as_possible, + new MaterialDialog.SingleButtonCallback() { + @Override + public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { + DialogHelper.showLoadingDialog(); + isChoosingDeliveyTimeForFreeShipping = false; + checkDeliveryTime(); + } + }, + R.string.delivery_time_preference_choose_delivery_time, + new MaterialDialog.SingleButtonCallback() { + @Override + public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { + DialogHelper.showLoadingDialog(); + isChoosingDeliveyTimeForFreeShipping = true; + getDeliveryTimeOfStore(null); + } + }, + false, + true + ); + + } + + private void showDeliveryTimePreferenceDialogWithOneButton(){ + DialogHelper.showOneButtonDialogWithCallback( + getString(R.string.info), + getString(R.string.delivery_time_preference_message), + getString(R.string.delivery_time_preference_choose_delivery_time), + new MaterialDialog.SingleButtonCallback() { + @Override + public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { + DialogHelper.showLoadingDialog(); + isChoosingDeliveyTimeForFreeShipping = true; + getDeliveryTimeOfStore(null); + } + }, + false, + true + ); + } + private void getDeliveryTimeOfStore(final String dialogMessage){ ApiService .apiInterface diff --git a/app/src/main/java/ch/pizzaleu/android/helper/DialogHelper.java b/app/src/main/java/ch/pizzaleu/android/helper/DialogHelper.java index ea6e58f..5254103 100644 --- a/app/src/main/java/ch/pizzaleu/android/helper/DialogHelper.java +++ b/app/src/main/java/ch/pizzaleu/android/helper/DialogHelper.java @@ -294,6 +294,29 @@ public class DialogHelper { .show(); } + public static void showOneButtonDialogWithCallback(String title, + String message, + String positiveButtonText, + MaterialDialog.SingleButtonCallback singleButtonCallback, + boolean cancelable, + boolean isButtonTextSmallCaps){ + MaterialDialog materialDialog = + new MaterialDialog.Builder(BaseActivity.currentActivity) + .title(title) + .content(message) + .titleColorRes(R.color.red) + .contentColorRes(R.color.black) + .positiveText(positiveButtonText) + .onPositive(singleButtonCallback) + .cancelable(cancelable) + .typeface("Quicksand-Medium.ttf", "Quicksand-Regular.ttf") + .build(); + materialDialog.getActionButton(DialogAction.POSITIVE).setAllCaps(!isButtonTextSmallCaps); + materialDialog.getActionButton(DialogAction.NEGATIVE).setAllCaps(!isButtonTextSmallCaps); + materialDialog.getActionButton(DialogAction.NEUTRAL).setAllCaps(!isButtonTextSmallCaps); + materialDialog.show(); + } + public static void showOneButtonDialogWithDismissListener(String message, DialogInterface.OnDismissListener dismissListener){ new MaterialDialog.Builder(BaseActivity.currentActivity) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b04dbd1..b323e71 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -194,7 +194,7 @@ Bitte wählen Sie aus wann Sie Ihre Bestellung abholen möchten. Information Bitte wählen Sie die Zeit für den gewünschten Termin aus. - Schnell wie möglich + schnell wie möglich Termin auswählen