diff --git a/app/src/main/java/ch/pizzaleu/android/api/ApiConstants.java b/app/src/main/java/ch/pizzaleu/android/api/ApiConstants.java index 09a33ed..4814cd0 100644 --- a/app/src/main/java/ch/pizzaleu/android/api/ApiConstants.java +++ b/app/src/main/java/ch/pizzaleu/android/api/ApiConstants.java @@ -29,6 +29,7 @@ public class ApiConstants { public static final String DATATRANS_REFERENCE_NUMBER_TEST = "968927"; // Taken from Datatrans sample app public static final String DATATRANS_SIGNATURE_TEST = "30916165706580013"; // Taken from Datatrans sample app + public static final String SHIPPING_METHOD_CODE_FREE_SHIPPING = "free.free"; public static final String SHIPPING_METHOD_CODE_PICK_UP_FROM_STORE = "pickup.pickup"; public static final String CART_SUBTOTAL = "zwischensumme"; 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 510e0e7..d378a4b 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 @@ -104,6 +104,7 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { private ProductOnOrderSummaryRecyclerAdapter productOnOrderSummaryRecyclerAdapter; private StoreShiftModel storeShiftModel; private PaymentTokenModel braintreePaymentTokenModel; + private boolean isChoosingDeliveyTimeForFreeShipping; public CreateOrderSummaryFragment() {} @@ -226,7 +227,12 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { @Override public void onResponse(Call call, Response response) { if(response.isSuccessful() && response.body().isSuccess()){ - if(createOrderActivity.getSelectedShippingMethod().getCode().equalsIgnoreCase(ApiConstants.SHIPPING_METHOD_CODE_PICK_UP_FROM_STORE)){ + + if(createOrderActivity.getSelectedShippingMethod().getCode().equalsIgnoreCase(ApiConstants.SHIPPING_METHOD_CODE_FREE_SHIPPING)){ + DialogHelper.hideLoadingDialog(); + showDeliveryTimePreferenceDialog(); + } + else if(createOrderActivity.getSelectedShippingMethod().getCode().equalsIgnoreCase(ApiConstants.SHIPPING_METHOD_CODE_PICK_UP_FROM_STORE)){ getDeliveryTimeOfStore(choosePickUpDateTimeText); } else { @@ -248,6 +254,32 @@ 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 + ); + } + private void checkDeliveryTime(){ ApiService .apiInterface @@ -301,7 +333,12 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { if(response.body().isSuccess()){ storeShiftModel = response.body().getData(); - showRestaurantOutOfOrderDialog(dialogMessage); + if(dialogMessage == null || dialogMessage.isEmpty()){ + showDatePickerDialog(); + } + else { + showRestaurantOutOfOrderDialog(dialogMessage); + } } else { DialogHelper.showAlertDialog(BaseActivity.currentActivity, genericErrorText); @@ -388,6 +425,10 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { final int nowMonth = nowDate.get(Calendar.MONTH); final int nowDay = nowDate.get(Calendar.DAY_OF_MONTH); + if(isChoosingDeliveyTimeForFreeShipping && nowDate.get(Calendar.HOUR_OF_DAY) == 23){ + nowDate.add(Calendar.DAY_OF_YEAR, 1); + } + DatePickerDialog datePickerDialog = DatePickerDialog.newInstance( new DatePickerDialog.OnDateSetListener() { @Override @@ -434,8 +475,11 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { dateOfOrder.get(Calendar.MONTH) == nowDate.get(Calendar.MONTH) && dateOfOrder.get(Calendar.DAY_OF_MONTH) == nowDate.get(Calendar.DAY_OF_MONTH); - if(isTheSameDate && - createOrderActivity.getSelectedShippingMethod().getCode().equalsIgnoreCase(ApiConstants.SHIPPING_METHOD_CODE_PICK_UP_FROM_STORE)){ + if(isTheSameDate && isChoosingDeliveyTimeForFreeShipping){ + nowDate.add( Calendar.MINUTE, 75); + } + // createOrderActivity.getSelectedShippingMethod().getCode().equalsIgnoreCase(ApiConstants.SHIPPING_METHOD_CODE_PICK_UP_FROM_STORE) + else if(isTheSameDate){ nowDate.add( Calendar.MINUTE, 10); } @@ -519,7 +563,11 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { timePickerDialog.setSelectableTimes(generateEnabledTimePoints(workingParts)); timePickerDialog.vibrate(false); - //timePickerDialog.setMinTime(nowHour, nowMinute, nowSecond); + + if(isTheSameDate){ + timePickerDialog.setMinTime(nowHour, nowMinute, nowSecond); + } + timePickerDialog.show(BaseActivity.currentActivity.getFragmentManager(), choosetext); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b5c0e9c..fd929ed 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -192,6 +192,10 @@ Die Zahlung wurde storniert. Android Pay konnte nicht finden. 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 + Termin auswählenn