617 lines
26 KiB
Java
617 lines
26 KiB
Java
package ch.pizzalemon.android.fragment;
|
|
|
|
import android.content.DialogInterface;
|
|
import android.content.Intent;
|
|
import android.os.Bundle;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
import android.view.LayoutInflater;
|
|
import android.view.View;
|
|
import android.view.ViewGroup;
|
|
import android.widget.Button;
|
|
import android.widget.LinearLayout;
|
|
import android.widget.RelativeLayout;
|
|
import android.widget.TextView;
|
|
|
|
import com.afollestad.materialdialogs.DialogAction;
|
|
import com.afollestad.materialdialogs.MaterialDialog;
|
|
import com.google.common.base.Predicate;
|
|
import com.google.common.collect.Collections2;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Collections;
|
|
import java.util.Comparator;
|
|
import java.util.HashMap;
|
|
import java.util.Locale;
|
|
|
|
import butterknife.BindColor;
|
|
import butterknife.BindString;
|
|
import butterknife.BindView;
|
|
import butterknife.ButterKnife;
|
|
import butterknife.OnClick;
|
|
import ch.pizzalemon.android.R;
|
|
import ch.pizzalemon.android.activity.BaseActivity;
|
|
import ch.pizzalemon.android.activity.CampaignProductListActivity;
|
|
import ch.pizzalemon.android.activity.CreateOrderActivity;
|
|
import ch.pizzalemon.android.activity.MainActivity;
|
|
import ch.pizzalemon.android.adapter.recycler.CartRecyclerAdapter;
|
|
import ch.pizzalemon.android.api.ApiEndPoints;
|
|
import ch.pizzalemon.android.api.ApiErrorUtils;
|
|
import ch.pizzalemon.android.api.ApiService;
|
|
import ch.pizzalemon.android.api.ResponseArray;
|
|
import ch.pizzalemon.android.api.ResponseObject;
|
|
import ch.pizzalemon.android.helper.DialogHelper;
|
|
import ch.pizzalemon.android.helper.PriceHelper;
|
|
import ch.pizzalemon.android.helper.SessionHelper;
|
|
import ch.pizzalemon.android.helper.SharedPrefsHelper;
|
|
import ch.pizzalemon.android.interfaces.RecyclerItemClickListener;
|
|
import ch.pizzalemon.android.model.CampaignModel;
|
|
import ch.pizzalemon.android.model.RemoveProductFromCartResponseModel;
|
|
import ch.pizzalemon.android.model.cart.CartInfoModel;
|
|
import ch.pizzalemon.android.model.cart.CartProductModel;
|
|
import ch.pizzalemon.android.model.menu.MenuProductModel;
|
|
import retrofit2.Call;
|
|
import retrofit2.Callback;
|
|
import retrofit2.Response;
|
|
|
|
/**
|
|
* Created by cimenmus on 18/09/2017.
|
|
*/
|
|
|
|
public class CartFragment extends BaseFragment {
|
|
|
|
@BindView(R.id.cartFragmentMainLayout) RelativeLayout cartFragmentMainLayout;
|
|
@BindView(R.id.noProductsOnCartTextView) TextView noProductsOnCartTextView;
|
|
@BindView(R.id.cartRecyclerView) RecyclerView cartRecyclerView;
|
|
@BindView(R.id.cartInfoLayout) LinearLayout cartInfoLayout;
|
|
@BindView(R.id.cartTotalLabelTextView) TextView cartTotalLabelTextView;
|
|
@BindView(R.id.cartProductTotalTextView) TextView cartProductTotalTextView;
|
|
@BindView(R.id.continueCartButton) Button continueCartButton;
|
|
@BindView(R.id.clearCartButton) Button clearCartButton;
|
|
|
|
@BindString(R.string.bottom_nav_menu_item_cart) String fragmentTitle;
|
|
@BindString(R.string.alert_remove_prdocut_from_cart) String removeProdcutFromCartAlert;
|
|
@BindString(R.string.product_removed_from_cart) String productRemovedFromCartText;
|
|
@BindString(R.string.alert_clear_cart) String clearCartAlertText;
|
|
@BindString(R.string.minimum_order_price_alert_part_1) String minimumOrderPriceAlertPart1Text;
|
|
@BindString(R.string.minimum_order_price_alert_part_2) String minimumOrderPriceAlertPart2Text;
|
|
@BindString(R.string.something_went_wrong) String genericErrorText;
|
|
|
|
@BindColor(R.color.actvity_default_background_color_1) int grayColor;
|
|
@BindColor(R.color.white) int whiteColor;
|
|
|
|
public static final java.lang.String FRAGMENT_NAME = "cartFragment";
|
|
private int REQUEST_CODE_CAMPAIGN_PRODUCT_LIST = 7847;
|
|
private String pizzaPassCampaignCategoryId = "";
|
|
|
|
private CartInfoModel cartInfoModel;
|
|
private ArrayList<CartProductModel> cartProductList = new ArrayList<>();
|
|
private CartRecyclerAdapter cartRecyclerAdapter;
|
|
private ArrayList<MenuProductModel> pizzaPassCampaignProductList = new ArrayList<>();
|
|
|
|
public CartFragment() {}
|
|
|
|
public static CartFragment newInstance() {
|
|
return new CartFragment();
|
|
}
|
|
|
|
@Override
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
}
|
|
|
|
@Override
|
|
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
|
View view = inflater.inflate(R.layout.fragment_cart, container, false);
|
|
ButterKnife.bind(this, view);
|
|
initViews();
|
|
return view;
|
|
}
|
|
|
|
@Override
|
|
public void onResume() {
|
|
super.onResume();
|
|
getCartProducts();
|
|
}
|
|
|
|
/*
|
|
@Override
|
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
super.onActivityResult(requestCode, resultCode, data);
|
|
if(requestCode == REQUEST_CODE_CAMPAIGN_PRODUCT_LIST && resultCode == RESULT_OK){
|
|
BaseActivity.setCurrentActivity(createOrderActivity);
|
|
getCartProducts();
|
|
}
|
|
}
|
|
*/
|
|
|
|
@OnClick({R.id.clearCartButton, R.id.continueCartButton})
|
|
protected void onClick(View view){
|
|
switch (view.getId()){
|
|
case R.id.clearCartButton:
|
|
DialogHelper.showTwoButtonsDialog(BaseActivity.currentActivity, clearCartAlertText,
|
|
new MaterialDialog.SingleButtonCallback() {
|
|
@Override
|
|
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
|
|
clearCart();
|
|
}
|
|
}, new MaterialDialog.SingleButtonCallback() {
|
|
@Override
|
|
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
|
|
dialog.dismiss();
|
|
}
|
|
});
|
|
break;
|
|
case R.id.continueCartButton:
|
|
|
|
// without minimum price control for store. minimum price is contorlled by addOrder2() service.
|
|
if(!pizzaPassCampaignCategoryId.isEmpty()){
|
|
getCampaignProductsForPizzaPassOnContinueButtonClicked();
|
|
}
|
|
else {
|
|
openCreateOrderActivity();
|
|
}
|
|
break;
|
|
|
|
// with minimum price control for store
|
|
/*
|
|
Double storeMinimumPrice = PriceHelper.stringToDouble(SessionHelper.getSelectedStore().getMinimumPrice());
|
|
Double cartCurrentPrice = PriceHelper.stringToDouble(PriceHelper.removeCurrencyFromPrice(cartInfoModel.getCartTotalModel().getText()));
|
|
|
|
if(cartCurrentPrice >= storeMinimumPrice){
|
|
|
|
if(!pizzaPassCampaignCategoryId.isEmpty()){
|
|
getCampaignProductsForPizzaPassOnContinueButtonClicked();
|
|
}
|
|
else {
|
|
openCreateOrderActivity();
|
|
}
|
|
|
|
}
|
|
else {
|
|
String dialogText =
|
|
new StringBuilder()
|
|
.append(minimumOrderPriceAlertPart1Text)
|
|
.append(" ")
|
|
.append(SessionHelper.getSelectedStore().getMinimumPrice())
|
|
.append(" ")
|
|
.append(minimumOrderPriceAlertPart2Text)
|
|
.toString();
|
|
|
|
DialogHelper.showAlertDialog(
|
|
BaseActivity.currentActivity,
|
|
dialogText);
|
|
}
|
|
break;
|
|
*/
|
|
|
|
}
|
|
}
|
|
|
|
private void initViews(){
|
|
setPizzalinkToolbarFields(false, fragmentTitle);
|
|
initRecyclerView();
|
|
}
|
|
|
|
private void getCartProducts(){
|
|
DialogHelper.showLoadingDialog();
|
|
/*
|
|
Call<ResponseObject<CartInfoModel>> call = ApiService.apiInterface.getCartProducts(
|
|
"/" + SessionHelper.getSelectedStore().getStoreName() + ApiEndPoints.API_GET_CART_PRODUCTS + SessionHelper.getCustomerToken().getToken());
|
|
*/
|
|
|
|
HashMap<String, Object> params = new HashMap<>();
|
|
SessionHelper.addCouponCodeToRequestParamsIfNeeded(params);
|
|
|
|
Call<ResponseObject<CartInfoModel>> call = ApiService.apiInterface.getCartProducts(
|
|
"/" + SessionHelper.getSelectedStore().getStoreName() + ApiEndPoints.API_GET_CART_PRODUCTS + SessionHelper.getCustomerToken().getToken(),
|
|
params);
|
|
|
|
call.enqueue(new Callback<ResponseObject<CartInfoModel>>() {
|
|
@Override
|
|
public void onResponse(Call<ResponseObject<CartInfoModel>> call, Response<ResponseObject<CartInfoModel>> response) {
|
|
if(response.isSuccessful() &&
|
|
response.body().getData() != null &&
|
|
response.body().isSuccess()){
|
|
cartInfoModel = response.body().getData();
|
|
cartInfoModel.checkNull();
|
|
SharedPrefsHelper.setCartItemCount(cartInfoModel.getProducts().size());
|
|
SharedPrefsHelper.setCartTotalPrice(PriceHelper.removeCurrencyFromPrice(cartInfoModel.getCartTotalModel().getText()));
|
|
MainActivity mainActivity = (MainActivity) BaseActivity.currentActivity;
|
|
mainActivity.updateBadge();
|
|
mainActivity.setCartTotalLayoutVisibility(false);
|
|
setCartTotalFields();
|
|
fillAndNotifyAdapter();
|
|
|
|
if(cartInfoModel.getProducts().isEmpty()){
|
|
DialogHelper.hideLoadingDialog();
|
|
}
|
|
else {
|
|
checkPizzaPassCampaign();
|
|
}
|
|
}
|
|
else {
|
|
DialogHelper.hideLoadingDialog();
|
|
ApiErrorUtils.parseError(response);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Call<ResponseObject<CartInfoModel>> call, Throwable t) {
|
|
DialogHelper.hideLoadingDialog();
|
|
DialogHelper.showFailedDialog();
|
|
}
|
|
});
|
|
}
|
|
|
|
private void clearCart(){
|
|
DialogHelper.showLoadingDialog();
|
|
Call<ResponseObject> call = ApiService.apiInterface.clearCart(
|
|
SessionHelper.getSelectedStore().getStoreName(),
|
|
SessionHelper.getCustomerToken().getToken());
|
|
call.enqueue(new Callback<ResponseObject>() {
|
|
@Override
|
|
public void onResponse(Call<ResponseObject> call, Response<ResponseObject> response) {
|
|
DialogHelper.hideLoadingDialog();
|
|
if(response.isSuccessful() && response.body().isSuccess()){
|
|
cartProductList.clear();
|
|
cartRecyclerAdapter.notifyDataSetChanged();
|
|
setCartLayoutsVisibility();
|
|
SharedPrefsHelper.setCartItemCount(0);
|
|
SharedPrefsHelper.setCartTotalPrice("0");
|
|
MainActivity mainActivity = (MainActivity) BaseActivity.currentActivity;
|
|
mainActivity.setCartItemCount();
|
|
}
|
|
|
|
else
|
|
ApiErrorUtils.parseError(response);
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Call<ResponseObject> call, Throwable t) {
|
|
DialogHelper.hideLoadingDialog();
|
|
DialogHelper.showFailedDialog();
|
|
}
|
|
});
|
|
}
|
|
|
|
private void fillAndNotifyAdapter(){
|
|
CartProductModel.checkNull(cartInfoModel.getProducts());
|
|
cartProductList.clear();
|
|
cartProductList.addAll(cartInfoModel.getProducts());
|
|
sortCartProducts();
|
|
cartRecyclerAdapter.notifyDataSetChanged();
|
|
setCartLayoutsVisibility();
|
|
}
|
|
|
|
private void setCartTotalFields(){
|
|
cartTotalLabelTextView.setText(cartInfoModel.getCartTotalModel().getTitle().toUpperCase(Locale.GERMAN));
|
|
cartProductTotalTextView.setText(PriceHelper.roundFractions(cartInfoModel.getCartTotalModel().getText()));
|
|
}
|
|
|
|
private void initRecyclerView(){
|
|
cartRecyclerAdapter = new CartRecyclerAdapter(cartProductList, new RecyclerItemClickListener() {
|
|
@Override
|
|
public void onItemClick(View view, final int position) {
|
|
DialogHelper.showTwoButtonsDialog(BaseActivity.currentActivity, removeProdcutFromCartAlert,
|
|
new MaterialDialog.SingleButtonCallback() {
|
|
@Override
|
|
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
|
|
dialog.dismiss();
|
|
removeProductFromCart(position);
|
|
}
|
|
}, new MaterialDialog.SingleButtonCallback() {
|
|
@Override
|
|
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
|
|
dialog.dismiss();
|
|
}
|
|
});
|
|
}
|
|
});
|
|
LinearLayoutManager layoutManager = new LinearLayoutManager(BaseActivity.currentActivity);
|
|
cartRecyclerView.setLayoutManager(layoutManager);
|
|
cartRecyclerView.setAdapter(cartRecyclerAdapter);
|
|
}
|
|
|
|
private void setCartLayoutsVisibility(){
|
|
if(cartProductList.size() > 0){
|
|
noProductsOnCartTextView.setVisibility(View.GONE);
|
|
//cartFragmentMainLayout.setBackgroundColor(grayColor);
|
|
cartRecyclerView.setVisibility(View.VISIBLE);
|
|
cartInfoLayout.setVisibility(View.VISIBLE);
|
|
}
|
|
else {
|
|
cartRecyclerView.setVisibility(View.GONE);
|
|
cartInfoLayout.setVisibility(View.GONE);
|
|
//cartFragmentMainLayout.setBackgroundColor(whiteColor);
|
|
noProductsOnCartTextView.setVisibility(View.VISIBLE);
|
|
}
|
|
}
|
|
|
|
private void removeProductFromCart(final int position){
|
|
DialogHelper.showLoadingDialog();
|
|
Call<ResponseObject<RemoveProductFromCartResponseModel>> call =
|
|
ApiService.apiInterface.removeProductFromCart(
|
|
"/" + SessionHelper.getSelectedStore().getStoreName() + ApiEndPoints.API_REMOVE_RPODUCT_FORM_CART + SessionHelper.getCustomerToken().getToken(),
|
|
getRemoveProductFromCartRequestParams(cartProductList.get(position).getCartId()));
|
|
call.enqueue(new Callback<ResponseObject<RemoveProductFromCartResponseModel>>() {
|
|
@Override
|
|
public void onResponse(Call<ResponseObject<RemoveProductFromCartResponseModel>> call, Response<ResponseObject<RemoveProductFromCartResponseModel>> response) {
|
|
DialogHelper.hideLoadingDialog();
|
|
if(response.isSuccessful() &&
|
|
response.body().getData() != null &&
|
|
response.body().isSuccess()){
|
|
cartProductList.remove(position);
|
|
getCartItemCount();
|
|
/*
|
|
DialogHelper.showOneButtonDialogWithCallback(productRemovedFromCartText, new MaterialDialog.SingleButtonCallback() {
|
|
@Override
|
|
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
|
|
SharedPrefsHelper.setCartItemCount(cartProductList.size());
|
|
MainActivity mainActivity = (MainActivity) BaseActivity.currentActivity;
|
|
mainActivity.setCartItemCount();
|
|
mainActivity.reopenCartFragment();
|
|
}
|
|
});
|
|
*/
|
|
}
|
|
else {
|
|
ApiErrorUtils.parseError(response);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Call<ResponseObject<RemoveProductFromCartResponseModel>> call, Throwable t) {
|
|
DialogHelper.hideLoadingDialog();
|
|
DialogHelper.showFailedDialog();
|
|
}
|
|
});
|
|
}
|
|
|
|
private HashMap<String, Object> getRemoveProductFromCartRequestParams(String cartProductId){
|
|
HashMap<String, Object> params = new HashMap<>();
|
|
params.put("key", cartProductId);
|
|
return params;
|
|
}
|
|
|
|
private void getCartItemCount(){
|
|
/*
|
|
Call<ResponseObject<CartInfoModel>> call = ApiService.apiInterface.getCartProducts(
|
|
"/" + SessionHelper.getSelectedStore().getStoreName() + ApiEndPoints.API_GET_CART_PRODUCTS + SessionHelper.getCustomerToken().getToken());
|
|
*/
|
|
|
|
HashMap<String, Object> params = new HashMap<>();
|
|
SessionHelper.addCouponCodeToRequestParamsIfNeeded(params);
|
|
|
|
Call<ResponseObject<CartInfoModel>> call = ApiService.apiInterface.getCartProducts(
|
|
"/" + SessionHelper.getSelectedStore().getStoreName() + ApiEndPoints.API_GET_CART_PRODUCTS + SessionHelper.getCustomerToken().getToken(),
|
|
params);
|
|
|
|
call.enqueue(new Callback<ResponseObject<CartInfoModel>>() {
|
|
@Override
|
|
public void onResponse(Call<ResponseObject<CartInfoModel>> call, final Response<ResponseObject<CartInfoModel>> response) {
|
|
DialogHelper.hideLoadingDialog();
|
|
if(response.isSuccessful() &&
|
|
response.body().getData() != null &&
|
|
response.body().isSuccess()){
|
|
|
|
DialogHelper.showOneButtonDialogWithDismissListener(
|
|
productRemovedFromCartText,
|
|
new DialogInterface.OnDismissListener() {
|
|
@Override
|
|
public void onDismiss(DialogInterface dialogInterface) {
|
|
SharedPrefsHelper.setCartItemCount(response.body().getData().getProducts().size());
|
|
SharedPrefsHelper.setCartTotalPrice(PriceHelper.removeCurrencyFromPrice(response.body().getData().getCartTotalModel().getText()));
|
|
MainActivity mainActivity = (MainActivity) BaseActivity.currentActivity;
|
|
mainActivity.setCartItemCount();
|
|
mainActivity.reopenCartFragment();
|
|
}
|
|
}
|
|
);
|
|
|
|
if(!pizzaPassCampaignProductList.isEmpty()){
|
|
cartInfoModel.setPizzaPassCampaignUsed(
|
|
isBasketContainsCampaignProduct(
|
|
pizzaPassCampaignProductList));
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Call<ResponseObject<CartInfoModel>> call, Throwable t) {
|
|
|
|
}
|
|
});
|
|
}
|
|
|
|
private void sortCartProducts(){
|
|
|
|
ArrayList<CartProductModel> tempCartProductList = new ArrayList<>();
|
|
|
|
// find margherita products
|
|
ArrayList<CartProductModel> margheritaPizzaCartProductModelList = new ArrayList<>(Collections2.filter(
|
|
cartProductList,
|
|
new Predicate<CartProductModel>() {
|
|
@Override
|
|
public boolean apply(CartProductModel cartProductModel) {
|
|
return cartProductModel.getName().toLowerCase().equals("margherita");
|
|
}
|
|
}
|
|
));
|
|
|
|
// remove margherita products from cartProductList
|
|
if(!margheritaPizzaCartProductModelList.isEmpty()){
|
|
cartProductList.removeAll(margheritaPizzaCartProductModelList);
|
|
|
|
}
|
|
|
|
// sort cartProductList alphebetically
|
|
Collections.sort(cartProductList, new Comparator<CartProductModel>() {
|
|
@Override
|
|
public int compare(CartProductModel cpm1, CartProductModel cpm2) {
|
|
return cpm1.getName().compareTo(cpm2.getName());
|
|
}
|
|
});
|
|
|
|
// add margherita products to temp tempCartProductList
|
|
if(!margheritaPizzaCartProductModelList.isEmpty()){
|
|
tempCartProductList.addAll(margheritaPizzaCartProductModelList);
|
|
}
|
|
|
|
tempCartProductList.addAll(cartProductList);
|
|
cartProductList.clear();
|
|
cartProductList.addAll(tempCartProductList);
|
|
|
|
}
|
|
|
|
private void checkPizzaPassCampaign(){
|
|
ApiService
|
|
.apiInterface
|
|
.checkPizzaPassCampaign(
|
|
SessionHelper.getSelectedStore().getStoreName(),
|
|
SessionHelper.getCustomerToken().getToken())
|
|
.enqueue(new Callback<ResponseObject<CampaignModel>>() {
|
|
@Override
|
|
public void onResponse(Call<ResponseObject<CampaignModel>> call, Response<ResponseObject<CampaignModel>> response) {
|
|
DialogHelper.hideLoadingDialog();
|
|
if(response.isSuccessful() &&
|
|
response.body() != null){
|
|
|
|
if(response.body().isSuccess()){
|
|
|
|
if(response.body().getData() == null){
|
|
DialogHelper.showAlertDialog(BaseActivity.currentActivity, genericErrorText);
|
|
}
|
|
else {
|
|
pizzaPassCampaignCategoryId = response.body().getData().getCategoryId();
|
|
getCampaignProducts(response.body().getData());
|
|
}
|
|
}
|
|
|
|
}
|
|
else{
|
|
ApiErrorUtils.parseError(response);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Call<ResponseObject<CampaignModel>> call, Throwable t) {
|
|
DialogHelper.hideLoadingDialog();
|
|
DialogHelper.showFailedDialog();
|
|
}
|
|
});
|
|
}
|
|
|
|
private void showPizzaPassCampaignDialog(final CampaignModel campaignModel){
|
|
DialogHelper.showTwoButtonsDialog(
|
|
campaignModel.getName(),
|
|
campaignModel.getDescription(),
|
|
R.string.accept_campaign,
|
|
new MaterialDialog.SingleButtonCallback() {
|
|
@Override
|
|
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
|
|
Intent campaignIntent = new Intent(BaseActivity.currentActivity, CampaignProductListActivity.class);
|
|
campaignIntent.putExtra("campaignModel", campaignModel);
|
|
startActivityForResult(campaignIntent, REQUEST_CODE_CAMPAIGN_PRODUCT_LIST);
|
|
}
|
|
},
|
|
R.string.decline_campaign,
|
|
new MaterialDialog.SingleButtonCallback() {
|
|
@Override
|
|
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
|
|
}
|
|
},
|
|
false
|
|
);
|
|
}
|
|
|
|
private void getCampaignProducts(final CampaignModel campaignModel){
|
|
Call<ResponseArray<MenuProductModel>> call = ApiService.apiInterface.getProductsByCategory(
|
|
SessionHelper.getSelectedStore().getStoreName(),
|
|
campaignModel.getCategoryId());
|
|
call.enqueue(new Callback<ResponseArray<MenuProductModel>>() {
|
|
@Override
|
|
public void onResponse(Call<ResponseArray<MenuProductModel>> call, Response<ResponseArray<MenuProductModel>> response) {
|
|
DialogHelper.hideLoadingDialog();
|
|
if(response.isSuccessful() &&
|
|
response.body().getData() != null &&
|
|
response.body().isSuccess()) {
|
|
if(!isBasketContainsCampaignProduct(response.body().getData())){
|
|
showPizzaPassCampaignDialog(campaignModel);
|
|
}
|
|
}
|
|
else {
|
|
ApiErrorUtils.parseError(response);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Call<ResponseArray<MenuProductModel>> call, Throwable t) {
|
|
DialogHelper.showFailedDialog();
|
|
}
|
|
});
|
|
}
|
|
|
|
private void getCampaignProductsForPizzaPassOnContinueButtonClicked(){
|
|
|
|
DialogHelper.showLoadingDialog();
|
|
|
|
Call<ResponseArray<MenuProductModel>> call = ApiService.apiInterface.getProductsByCategory(
|
|
SessionHelper.getSelectedStore().getStoreName(),
|
|
pizzaPassCampaignCategoryId);
|
|
call.enqueue(new Callback<ResponseArray<MenuProductModel>>() {
|
|
@Override
|
|
public void onResponse(Call<ResponseArray<MenuProductModel>> call, Response<ResponseArray<MenuProductModel>> response) {
|
|
|
|
if(response.isSuccessful() &&
|
|
response.body().getData() != null &&
|
|
response.body().isSuccess()) {
|
|
|
|
pizzaPassCampaignProductList.clear();
|
|
pizzaPassCampaignProductList.addAll(response.body().getData());
|
|
cartInfoModel.setPizzaPassCampaignUsed(isBasketContainsCampaignProduct(response.body().getData()));
|
|
|
|
DialogHelper.hideLoadingDialog();
|
|
openCreateOrderActivity();
|
|
}
|
|
else {
|
|
DialogHelper.hideLoadingDialog();
|
|
ApiErrorUtils.parseError(response);
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onFailure(Call<ResponseArray<MenuProductModel>> call, Throwable t) {
|
|
DialogHelper.hideLoadingDialog();
|
|
DialogHelper.showFailedDialog();
|
|
}
|
|
});
|
|
}
|
|
|
|
private boolean isBasketContainsCampaignProduct(ArrayList<MenuProductModel> campaignProductsList){
|
|
|
|
boolean isContains = false;
|
|
|
|
outerLoop:for(CartProductModel cartProductModel : cartProductList) {
|
|
for(MenuProductModel campaignProductModel : campaignProductsList){
|
|
if(cartProductModel.getProductId().equals(campaignProductModel.getId())){
|
|
isContains = true;
|
|
break outerLoop;
|
|
}
|
|
}
|
|
}
|
|
|
|
return isContains;
|
|
}
|
|
|
|
private void openCreateOrderActivity(){
|
|
Intent continueCartIntent = new Intent(BaseActivity.currentActivity, CreateOrderActivity.class);
|
|
continueCartIntent.putExtra("cartInfoModel", cartInfoModel);
|
|
startActivity(continueCartIntent);
|
|
}
|
|
|
|
}
|