delivery time preference dialog fix

This commit is contained in:
2019-12-30 23:35:00 +03:00
parent 0a2e2a577d
commit b6f718d4ea
3 changed files with 105 additions and 30 deletions

View File

@@ -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<ResponseObject<Boolean>>() {
@Override
public void onResponse(Call<ResponseObject<Boolean>> call, Response<ResponseObject<Boolean>> 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<ResponseObject<Boolean>> 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

View File

@@ -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)

View File

@@ -194,7 +194,7 @@
<string name="choose_pick_up_date_time">Bitte wählen Sie aus wann Sie Ihre Bestellung abholen möchten.</string>
<string name="info">Information</string>
<string name="delivery_time_preference_message">Bitte wählen Sie die Zeit für den gewünschten Termin aus.</string>
<string name="delivery_time_preference_as_soon_as_possible">Schnell wie möglich</string>
<string name="delivery_time_preference_as_soon_as_possible">schnell wie möglich</string>
<string name="delivery_time_preference_choose_delivery_time">Termin auswählen</string>
<!-- CreateOrderSummaryFragment-->