diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index d3baaec..8e1b0dc 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/.idea/misc.xml b/.idea/misc.xml index c0f68ed..99202cc 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -25,7 +25,7 @@ - + diff --git a/app/src/main/java/ch/pizzapp/android/fragment/createOrder/CreateOrderSummaryFragment.java b/app/src/main/java/ch/pizzapp/android/fragment/createOrder/CreateOrderSummaryFragment.java index 44e3b13..287a0a3 100644 --- a/app/src/main/java/ch/pizzapp/android/fragment/createOrder/CreateOrderSummaryFragment.java +++ b/app/src/main/java/ch/pizzapp/android/fragment/createOrder/CreateOrderSummaryFragment.java @@ -16,8 +16,11 @@ import com.braintreepayments.api.dropin.DropInRequest; import com.braintreepayments.api.dropin.DropInResult; import com.google.android.gms.wallet.Cart; import com.google.android.gms.wallet.LineItem; +import com.wdullaer.materialdatetimepicker.date.DatePickerDialog; +import com.wdullaer.materialdatetimepicker.time.TimePickerDialog; import java.util.ArrayList; +import java.util.Calendar; import java.util.HashMap; import java.util.List; @@ -77,11 +80,16 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { @BindString(R.string.unknown_payment_method) String unknownPaymentMethodText; @BindString(R.string.payment_canceled) String paymentCanceledText; @BindString(R.string.andorid_pay_not_found) String androidPayNotFoundText; + @BindString(R.string.choose) String choosetext; + @BindString(R.string.alert) String alertText; + @BindString(R.string.delivery_date) String deliveryDateText; + @BindString(R.string.delivery_time) String deliveryTimeText; public static final java.lang.String FRAGMENT_NAME = "orderSummaryFragment"; private int REQUEST_CODE_CAMPAIGN_PRODUCT_LIST = 7847; private final int REQUEST_CODE_BRAINTREE_PAYMENT = 3784; private CreateOrderActivity createOrderActivity; + private String dateOfOrder, timeOfOrder; public CreateOrderSummaryFragment() {} @@ -346,27 +354,11 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { response.body() != null){ if(response.body().isSuccess()){ - - if(createOrderActivity.getSelectedPaymentMethod().getPaymentMethodType() == PaymentMethodModel.PaymentMethodType.UNKNOWN){ - DialogHelper.hideLoadingDialog(); - DialogHelper.showAlertDialog(BaseActivity.currentActivity, unknownPaymentMethodText); - } - else if(createOrderActivity.getSelectedPaymentMethod().getPaymentMethodType() == PaymentMethodModel.PaymentMethodType.CASH || - createOrderActivity.getSelectedPaymentMethod().getPaymentMethodType() == PaymentMethodModel.PaymentMethodType.TRANSFER){ - createOrder(null); - } - else if(createOrderActivity.getSelectedPaymentMethod().getPaymentMethodType() == PaymentMethodModel.PaymentMethodType.TWINT) { - DialogHelper.hideLoadingDialog(); - startTwintPayment(); - } - else { - DialogHelper.hideLoadingDialog(); - startBraintreePayment(); - } + redirectToPayment(); } else { DialogHelper.hideLoadingDialog(); - DialogHelper.showAlertDialog(BaseActivity.currentActivity, restaurantOutOfOrderText); + showRestaurantOutOfOrderDialog(); } } @@ -408,6 +400,129 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { }); } + private void showRestaurantOutOfOrderDialog(){ + + DialogHelper.showTwoButtonsDialog( + alertText, + restaurantOutOfOrderText, + R.string.accept_campaign, + new MaterialDialog.SingleButtonCallback() { + @Override + public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { + showDatePickerDialog(); + } + }, + R.string.decline_campaign, + new MaterialDialog.SingleButtonCallback() { + @Override + public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { + dialog.dismiss(); + } + } + ); + } + + private void showDatePickerDialog() { + + Calendar nowDate = Calendar.getInstance(); + Calendar maxdate = Calendar.getInstance(); + maxdate.add(Calendar.DAY_OF_YEAR, 7); + //maxdate.add(Calendar.MONTH, 1); + + int nowYear = nowDate.get(Calendar.YEAR); + int nowMonth = nowDate.get(Calendar.MONTH); + int nowDay = nowDate.get(Calendar.DAY_OF_MONTH); + + DatePickerDialog datePickerDialog = DatePickerDialog.newInstance( + new DatePickerDialog.OnDateSetListener() { + @Override + public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) { + + String yearOfOrder = String.valueOf(year); + String monthOfOrder = String.valueOf(monthOfYear + 1); + String dayOfOrder = String.valueOf(dayOfMonth); + + if(monthOfOrder.length() == 1){ + monthOfOrder = "0" + monthOfOrder; + } + + if(dayOfOrder.length() == 1){ + dayOfOrder = "0" + dayOfOrder; + } + + dateOfOrder = dayOfOrder + "." + monthOfOrder + "." + yearOfOrder; + showTimePickerDialog(); + } + }, + nowYear, + nowMonth, + nowDay + ); + + datePickerDialog.vibrate(false); + datePickerDialog.setMinDate(nowDate); + datePickerDialog.setMaxDate(maxdate); + //datePickerDialog.autoDismiss(true); + datePickerDialog.show(BaseActivity.currentActivity.getFragmentManager(), choosetext); + } + + private void showTimePickerDialog(){ + + Calendar nowDate = Calendar.getInstance(); + int nowHour = nowDate.get(Calendar.HOUR_OF_DAY); + int nowMinute = nowDate.get(Calendar.MINUTE); + int nowSecond = nowDate.get(Calendar.SECOND); + + TimePickerDialog timePickerDialog = + TimePickerDialog.newInstance( + new TimePickerDialog.OnTimeSetListener() { + @Override + public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int second) { + + String hourOfOrder = String.valueOf(hourOfDay); + String minuteOfOrder = String.valueOf(minute); + + if(hourOfOrder.length() == 1){ + hourOfOrder = "0" + hourOfOrder; + } + + if(minuteOfOrder.length() == 1){ + minuteOfOrder = "0" + minuteOfOrder; + } + + timeOfOrder = hourOfOrder + ":" + minuteOfOrder; + redirectToPayment(); + } + }, + nowHour, + nowMinute, + true + ); + + timePickerDialog.vibrate(false); + //timePickerDialog.setMinTime(nowHour, nowMinute, nowSecond); + timePickerDialog.show(BaseActivity.currentActivity.getFragmentManager(), choosetext); + } + + private void redirectToPayment(){ + if(createOrderActivity.getSelectedPaymentMethod().getPaymentMethodType() == PaymentMethodModel.PaymentMethodType.UNKNOWN){ + DialogHelper.hideLoadingDialog(); + DialogHelper.showAlertDialog(BaseActivity.currentActivity, unknownPaymentMethodText); + } + else if(createOrderActivity.getSelectedPaymentMethod().getPaymentMethodType() == PaymentMethodModel.PaymentMethodType.CASH || + createOrderActivity.getSelectedPaymentMethod().getPaymentMethodType() == PaymentMethodModel.PaymentMethodType.TRANSFER){ + createOrder(null); + } + else if(createOrderActivity.getSelectedPaymentMethod().getPaymentMethodType() == PaymentMethodModel.PaymentMethodType.TWINT) { + DialogHelper.hideLoadingDialog(); + startTwintPayment(); + } + else { + DialogHelper.hideLoadingDialog(); + startBraintreePayment(); + } + } + private void createOrder(String paymentMethodNonce){ DialogHelper.showLoadingDialog(); Call> call = ApiService.apiInterface.createOrder( @@ -448,6 +563,7 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { } private String createOrderNote(){ + CreateOrderActivity createOrderActivity = (CreateOrderActivity) getActivity(); StringBuilder stringBuilder = new StringBuilder(); if(isCartContainsAnyPizza(createOrderActivity.getCartInfo().getProducts())){ @@ -460,7 +576,25 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { } stringBuilder.append("
"); } - stringBuilder.append(createOrderActivity.getOrderNote()); + + stringBuilder + .append(createOrderActivity.getOrderNote()) + .append("
"); + + if(dateOfOrder != null && !dateOfOrder.isEmpty() && + timeOfOrder != null && !timeOfOrder.isEmpty()){ + + stringBuilder + .append(deliveryDateText) + .append(" ") + .append(dateOfOrder) + .append("\n") + .append(deliveryTimeText) + .append(" ") + .append(timeOfOrder); + + } + return stringBuilder.toString(); } @@ -514,6 +648,7 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { // Go to Settings --> Processing --> CVV --> Click on Edit --> Check option 'CVV not provided(l)', Enable option 'for any transaction' DropInRequest paymentRequest = new DropInRequest() + //.tokenizationKey(ApiConstants.BRAINTREE_TOKENIZATION_KEY_SANDBOX) .tokenizationKey(ApiConstants.BRAINTREE_TOKENIZATION_KEY_PRODUCTION) //.clientToken("eyJ2ZXJzaW9uIjoyLCJhdXRob3JpemF0aW9uRmluZ2VycHJpbnQiOiI3NzY2ZmNmNTQ3MDc1YWMzMGZiNmIxMzU3MTI1ZTJmODc5YjM4MmNkOTcwYmYwZmYyNmQzMWJmNGRiYjI1MjQzfGNyZWF0ZWRfYXQ9MjAxOC0wNi0xM1QxODo1Mzo0Mi4wODA4MDc5MDQrMDAwMFx1MDAyNm1lcmNoYW50X2lkPTM0OHBrOWNnZjNiZ3l3MmJcdTAwMjZwdWJsaWNfa2V5PTJuMjQ3ZHY4OWJxOXZtcHIiLCJjb25maWdVcmwiOiJodHRwczovL2FwaS5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tOjQ0My9tZXJjaGFudHMvMzQ4cGs5Y2dmM2JneXcyYi9jbGllbnRfYXBpL3YxL2NvbmZpZ3VyYXRpb24iLCJjaGFsbGVuZ2VzIjpbXSwiZW52aXJvbm1lbnQiOiJzYW5kYm94IiwiY2xpZW50QXBpVXJsIjoiaHR0cHM6Ly9hcGkuc2FuZGJveC5icmFpbnRyZWVnYXRld2F5LmNvbTo0NDMvbWVyY2hhbnRzLzM0OHBrOWNnZjNiZ3l3MmIvY2xpZW50X2FwaSIsImFzc2V0c1VybCI6Imh0dHBzOi8vYXNzZXRzLmJyYWludHJlZWdhdGV3YXkuY29tIiwiYXV0aFVybCI6Imh0dHBzOi8vYXV0aC52ZW5tby5zYW5kYm94LmJyYWludHJlZWdhdGV3YXkuY29tIiwiYW5hbHl0aWNzIjp7InVybCI6Imh0dHBzOi8vb3JpZ2luLWFuYWx5dGljcy1zYW5kLnNhbmRib3guYnJhaW50cmVlLWFwaS5jb20vMzQ4cGs5Y2dmM2JneXcyYiJ9LCJ0aHJlZURTZWN1cmVFbmFibGVkIjp0cnVlLCJwYXlwYWxFbmFibGVkIjp0cnVlLCJwYXlwYWwiOnsiZGlzcGxheU5hbWUiOiJBY21lIFdpZGdldHMsIEx0ZC4gKFNhbmRib3gpIiwiY2xpZW50SWQiOm51bGwsInByaXZhY3lVcmwiOiJodHRwOi8vZXhhbXBsZS5jb20vcHAiLCJ1c2VyQWdyZWVtZW50VXJsIjoiaHR0cDovL2V4YW1wbGUuY29tL3RvcyIsImJhc2VVcmwiOiJodHRwczovL2Fzc2V0cy5icmFpbnRyZWVnYXRld2F5LmNvbSIsImFzc2V0c1VybCI6Imh0dHBzOi8vY2hlY2tvdXQucGF5cGFsLmNvbSIsImRpcmVjdEJhc2VVcmwiOm51bGwsImFsbG93SHR0cCI6dHJ1ZSwiZW52aXJvbm1lbnROb05ldHdvcmsiOnRydWUsImVudmlyb25tZW50Ijoib2ZmbGluZSIsInVudmV0dGVkTWVyY2hhbnQiOmZhbHNlLCJicmFpbnRyZWVDbGllbnRJZCI6Im1hc3RlcmNsaWVudDMiLCJiaWxsaW5nQWdyZWVtZW50c0VuYWJsZWQiOnRydWUsIm1lcmNoYW50QWNjb3VudElkIjoiYWNtZXdpZGdldHNsdGRzYW5kYm94IiwiY3VycmVuY3lJc29Db2RlIjoiVVNEIn0sIm1lcmNoYW50SWQiOiIzNDhwazljZ2YzYmd5dzJiIiwidmVubW8iOiJvZmYifQ==") //.amount("CHF1.0") @@ -600,5 +735,4 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { .build(); } - } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 95b3d34..e14671c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -94,7 +94,7 @@ wurde nicht ausgewählt. Bu kampanyadan daha önce yararlandığınız için sepetinize ekleyemezsiniz. - Restorant çalışma saatleri dışında olduğu için siparişinizi alamıyoruz. + Restorant şu anda hizmet vermemektedir. İleri bir tarih ve saat için sipariş oluşturmak ister misiniz?      @@ -175,6 +175,8 @@ Bilinmeyen ödeme yöntemi. Ödeme işlemi iptal edildi. Android Pay Card not found. + Teslimat Tarihi: + Teslimat Saati: