diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 3f13236..df8f7a2 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/.idea/caches/gradle_models.ser b/.idea/caches/gradle_models.ser index d1d3451..ffce9ce 100644 Binary files a/.idea/caches/gradle_models.ser and b/.idea/caches/gradle_models.ser differ diff --git a/app/src/main/java/ch/pizzamaxx/android/dialog/ProductPropertiesBottomSheetDialog.java b/app/src/main/java/ch/pizzamaxx/android/dialog/ProductPropertiesBottomSheetDialog.java deleted file mode 100644 index 9c7113a..0000000 --- a/app/src/main/java/ch/pizzamaxx/android/dialog/ProductPropertiesBottomSheetDialog.java +++ /dev/null @@ -1,424 +0,0 @@ -package ch.pizzamaxx.android.dialog; - -import android.app.Dialog; -import android.os.Bundle; -import android.support.annotation.NonNull; -import android.support.design.widget.BottomSheetBehavior; -import android.support.design.widget.BottomSheetDialog; -import android.support.design.widget.BottomSheetDialogFragment; -import android.support.v7.widget.GridLayoutManager; -import android.support.v7.widget.RecyclerView; -import android.view.View; -import android.widget.Button; -import android.widget.ImageView; -import android.widget.TextView; - -import java.util.ArrayList; -import java.util.HashMap; - -import butterknife.BindString; -import butterknife.BindView; -import butterknife.ButterKnife; -import butterknife.OnClick; -import ch.pizzamaxx.android.R; -import ch.pizzamaxx.android.activity.BaseActivity; -import ch.pizzamaxx.android.activity.MainActivity; -import ch.pizzamaxx.android.adapter.recycler.ProductCheckboxOptionsRecyclerAdapter; -import ch.pizzamaxx.android.adapter.recycler.ProductRadioOptionsRecyclerAdapter; -import ch.pizzamaxx.android.api.ApiEndPoints; -import ch.pizzamaxx.android.api.ApiService; -import ch.pizzamaxx.android.api.ResponseObject; -import ch.pizzamaxx.android.helper.DialogHelper; -import ch.pizzamaxx.android.helper.ImageLoadHelper; -import ch.pizzamaxx.android.helper.PriceHelper; -import ch.pizzamaxx.android.helper.SessionHelper; -import ch.pizzamaxx.android.helper.SharedPrefsHelper; -import ch.pizzamaxx.android.interfaces.RecyclerItemClickListener; -import ch.pizzamaxx.android.model.cart.CartInfoModel; -import ch.pizzamaxx.android.model.menu.MenuProductModel; -import ch.pizzamaxx.android.model.menu.MenuProductOptionModel; -import ch.pizzamaxx.android.model.menu.MenuProductOptionValueModel; -import retrofit2.Call; -import retrofit2.Callback; -import retrofit2.Response; - -/** - * Created by cimenmus on 08/10/2017. - */ - -public class ProductPropertiesBottomSheetDialog extends BottomSheetDialogFragment { - - @BindView(R.id.closeImageView) ImageView closeImageView; - @BindView(R.id.productImageView) ImageView productImageView; - @BindView(R.id.productNameTextView) TextView productNameTextView; - @BindView(R.id.productPriceTextView) TextView productPriceTextView; - @BindView(R.id.addToCartButton) Button addToCartButton; - @BindView(R.id.radioRecyclerHeaderTextView) TextView radioRecyclerHeaderTextView; - @BindView(R.id.radioRecyclerView) RecyclerView radioRecyclerView; - @BindView(R.id.checkboxRecyclerHeaderTextView) TextView checkboxRecyclerHeaderTextView; - @BindView(R.id.checkboxRecyclerView) RecyclerView checkboxRecyclerView; - @BindView(R.id.increaseProductCountImageView) ImageView increaseProductCountImageView; - @BindView(R.id.deccreaseProductCountImageView) ImageView deccreaseProductCountImageView; - @BindView(R.id.productCountTextView) TextView productCountTextView; - - @BindString(R.string.no_options_selected_part) String noOptionsSelectedText; - - private int productCount = 1; - - private BottomSheetBehavior mBehavior; - private MenuProductModel menuProductModel; - - private ArrayList productRadioOptionValueList = new ArrayList<>(); - private ArrayList productCheckboxOptionValueList = new ArrayList<>(); - private ProductRadioOptionsRecyclerAdapter productRadioOptionsRecyclerAdapter; - private ProductCheckboxOptionsRecyclerAdapter productCheckboxOptionsRecyclerAdapter; - - @NonNull - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - BottomSheetDialog dialog = (BottomSheetDialog) super.onCreateDialog(savedInstanceState); - View view = View.inflate(getContext(), R.layout.layout_bottomsheet, null); - ButterKnife.bind(this, view); - initViews(); - dialog.setContentView(view); - mBehavior = BottomSheetBehavior.from((View) view.getParent()); - return dialog; - } - - @Override - public void onStart() { - super.onStart(); - mBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); - } - - @OnClick({R.id.closeImageView, - R.id.increaseProductCountImageView, - R.id.deccreaseProductCountImageView, - R.id.addToCartButton}) - public void onCLick(View view){ - switch (view.getId()){ - case R.id.closeImageView: - dismiss(); - break; - case R.id.increaseProductCountImageView: - productCount++; - productCountTextView.setText(String.valueOf(productCount)); - productPriceTextView.setText( - PriceHelper.calculatePriceAfterCountChanged( - productPriceTextView.getText().toString(), productCount - 1, productCount)); - break; - case R.id.deccreaseProductCountImageView: - if(productCount == 1) - break; - productCount--; - productCountTextView.setText(String.valueOf(productCount)); - productPriceTextView.setText( - PriceHelper.calculatePriceAfterCountChanged( - productPriceTextView.getText().toString(), productCount + 1, productCount)); - break; - case R.id.addToCartButton: - if(checkFields()) - //addProductToCart(); - break; - } - } - - @Override - public void onDestroy() { - super.onDestroy(); - - for(MenuProductOptionModel menuProductOptionModel : menuProductModel.getProductOptionList()){ - for(MenuProductOptionValueModel menuProductOptionValueModel : menuProductOptionModel.getOptionValueModelList()){ - menuProductOptionValueModel.setSelected(false); - } - } - - for(MenuProductOptionModel menuProductOptionModel : menuProductModel.getProductOptionList()){ - for(MenuProductOptionValueModel menuProductOptionValueModel : menuProductOptionModel.getOptionValueModelList()){ - if(menuProductOptionValueModel.getPrice().equals("0") || menuProductOptionValueModel.getPrice().equals("0.00")){ - - /* - //checkbox - if(!(menuProductOptionModel.getType().toLowerCase().equals("radio") || - menuProductOptionModel.getType().toLowerCase().equals("select"))){ - menuProductOptionValueModel.setSelected(true); - } - - //radio - else if(!isAnyOptionValueSelected(menuProductOptionModel.getOptionValueModelList())){ - menuProductOptionValueModel.setSelected(true); - } - */ - if((menuProductOptionModel.getType().toLowerCase().equals("radio") || - menuProductOptionModel.getType().toLowerCase().equals("select") && - !isAnyOptionValueSelected(menuProductOptionModel.getOptionValueModelList()))){ - menuProductOptionValueModel.setSelected(true); - } - - } - } - } - - } - - private void initViews(){ - setFields(); - fillRadioAndCheckboxOptionLists(); - switch (menuProductModel.getProductOptionType()){ - case RADIO_AND_CHECKBOX: - radioRecyclerView.setVisibility(View.VISIBLE); - checkboxRecyclerView.setVisibility(View.VISIBLE); - radioRecyclerHeaderTextView.setVisibility(View.VISIBLE); - checkboxRecyclerHeaderTextView.setVisibility(View.VISIBLE); - initRadioRecyclerView(); - initCheckboxRecyclerView(); - break; - case RADIO: - radioRecyclerHeaderTextView.setVisibility(View.VISIBLE); - radioRecyclerView.setVisibility(View.VISIBLE); - checkboxRecyclerView.setVisibility(View.GONE); - checkboxRecyclerHeaderTextView.setVisibility(View.GONE); - initRadioRecyclerView(); - break; - case CHECKBOX: - radioRecyclerHeaderTextView.setVisibility(View.GONE); - radioRecyclerView.setVisibility(View.GONE); - checkboxRecyclerHeaderTextView.setVisibility(View.VISIBLE); - checkboxRecyclerView.setVisibility(View.VISIBLE); - initCheckboxRecyclerView(); - break; - } - } - - public void setMenuProductModel(MenuProductModel menuProductModel){ - this.menuProductModel = menuProductModel; - } - - private void initRadioRecyclerView(){ - radioRecyclerView.setNestedScrollingEnabled(false); - GridLayoutManager gridLayoutManager = new GridLayoutManager(BaseActivity.currentActivity, 1); - radioRecyclerView.setLayoutManager(gridLayoutManager); - productRadioOptionsRecyclerAdapter = new ProductRadioOptionsRecyclerAdapter(productRadioOptionValueList, new RecyclerItemClickListener() { - @Override - public void onItemClick(View view, int position) { - if(!productRadioOptionValueList.get(position).isSelected()){ - for(MenuProductOptionValueModel menuProductOptionValueModel : productRadioOptionValueList){ - menuProductOptionValueModel.setSelected(false); - } - productRadioOptionValueList.get(position).setSelected(true); - productRadioOptionsRecyclerAdapter.notifyDataSetChanged(); - productPriceTextView.setText(PriceHelper.calculatePriceAfterRadioOptionValueChanged( - productCount, menuProductModel, productRadioOptionValueList.get(position))); - } - } - }); - radioRecyclerView.setAdapter(productRadioOptionsRecyclerAdapter); - } - - private void initCheckboxRecyclerView(){ - checkboxRecyclerView.setNestedScrollingEnabled(false); - GridLayoutManager gridLayoutManager = new GridLayoutManager(BaseActivity.currentActivity, 1); - checkboxRecyclerView.setLayoutManager(gridLayoutManager); - productCheckboxOptionsRecyclerAdapter = new ProductCheckboxOptionsRecyclerAdapter(productCheckboxOptionValueList, new RecyclerItemClickListener() { - @Override - public void onItemClick(View view, int position) { - productCheckboxOptionValueList.get(position).setSelected( - !productCheckboxOptionValueList.get(position).isSelected()); - productCheckboxOptionsRecyclerAdapter.notifyItemChanged(position); - productPriceTextView.setText( - PriceHelper.calculatePriceAfterCheckboxOptionValueChanged( - productCount, menuProductModel, productCheckboxOptionValueList)); - } - }); - checkboxRecyclerView.setAdapter(productCheckboxOptionsRecyclerAdapter); - } - - private void setFields(){ - ImageLoadHelper.loadImage(productImageView, menuProductModel.getImageURL()); - productNameTextView.setText(menuProductModel.getName()); - productPriceTextView.setText(PriceHelper.getPriceWithCurreny(menuProductModel.getPrice())); - productPriceTextView.setText(PriceHelper.getPriceWithCurreny(menuProductModel.getPrice())); - } - - private void fillRadioAndCheckboxOptionLists(){ - for(MenuProductOptionModel menuProductOptionModel : menuProductModel.getProductOptionList()){ - setSelectedPriceShowingOptions(menuProductOptionModel); - - if(menuProductOptionModel.getType().toLowerCase().equals("radio") || - menuProductOptionModel.getType().toLowerCase().equals("select")){ - radioRecyclerHeaderTextView.setText(menuProductOptionModel.getName()); - productRadioOptionValueList.addAll(menuProductOptionModel.getOptionValueModelList()); - } - else{ - checkboxRecyclerHeaderTextView.setText(menuProductOptionModel.getName()); - productCheckboxOptionValueList.addAll(menuProductOptionModel.getOptionValueModelList()); - } - } - } - - private void setSelectedPriceShowingOptions(MenuProductOptionModel menuProductOptionModel){ - for(MenuProductOptionValueModel menuProductOptionValueModel : menuProductOptionModel.getOptionValueModelList()){ - if(menuProductOptionValueModel.getPrice().equals("0") || menuProductOptionValueModel.getPrice().equals("0.00")){ - - /* - //checkbox - if(!(menuProductOptionModel.getType().toLowerCase().equals("radio") || - menuProductOptionModel.getType().toLowerCase().equals("select"))){ - menuProductOptionValueModel.setSelected(true); - } - - //radio - else if(!isAnyOptionValueSelected(menuProductOptionModel.getOptionValueModelList())){ - menuProductOptionValueModel.setSelected(true); - } - */ - - if((menuProductOptionModel.getType().toLowerCase().equals("radio") || - menuProductOptionModel.getType().toLowerCase().equals("select") && - !isAnyOptionValueSelected(menuProductOptionModel.getOptionValueModelList()))){ - menuProductOptionValueModel.setSelected(true); - } - } - } - } - - /* - private void addProductToCart(){ - DialogHelper.showLoadingDialog(); - Call> call = - ApiService.apiInterface.addProductsToBasket( - ApiEndPoints.API_ADD_PRODUCTS_TO_BASKET + SessionHelper.getCustomerToken().getToken(), - getAddToCartRequestParams()); - call.enqueue(new Callback>() { - @Override - public void onResponse(Call> call, Response> response) { - DialogHelper.hideLoadingDialog(); - if(response.isSuccessful() && response.body().getData() != null){ - if(response.body().isSuccess()){ - DialogHelper.showDialogWithPositiveButton(BaseActivity.currentActivity, response.body().getData().getSuccessMessage()); - getCartItemCount(); - } - else - DialogHelper.showDialogWithPositiveButton(BaseActivity.currentActivity, response.body().getData().getErrorMessage()); - } - else - ApiErrorUtils.parseError(response); - } - - @Override - public void onFailure(Call> call, Throwable t) { - DialogHelper.hideLoadingDialog(); - DialogHelper.showFailedDialog(); - } - }); - - } - */ - - private HashMap getAddToCartRequestParams(){ - - HashMap params = new HashMap<>(); - params.put("product_id", menuProductModel.getId()); - params.put("quantity", productCount); - - for(MenuProductOptionModel productOptionModel : menuProductModel.getProductOptionList()){ - - ArrayList selectedCheckboxOptionList = new ArrayList<>(); - - for(MenuProductOptionValueModel productOptionValueModel : productOptionModel.getOptionValueModelList()){ - - if(productOptionValueModel.isSelected()){ - - if(productOptionModel.getType().equals("checkbox")){ - selectedCheckboxOptionList.add(productOptionValueModel.getProductOptionValueId()); - } - else { - params.put("option[" + productOptionModel.getProductOptionId() + "]", productOptionValueModel.getProductOptionValueId()); - } - } - } - - if(productOptionModel.getType().equals("checkbox")){ - params.put("option[" + productOptionModel.getProductOptionId() + "]", selectedCheckboxOptionList); - } - - } - - return params; - } - - private void getCartItemCount(){ - /* - Call> call = ApiService.apiInterface.getCartProducts( - "/" + SessionHelper.getSelectedStore().getStoreName() + ApiEndPoints.API_GET_CART_PRODUCTS + SessionHelper.getCustomerToken().getToken()); - */ - - HashMap params = new HashMap<>(); - if(SessionHelper.getSelectedCoupon() != null){ - params.put("coupon", SessionHelper.getSelectedCoupon().getCode()); - } - - Call> call = ApiService.apiInterface.getCartProducts( - "/" + SessionHelper.getSelectedStore().getStoreName() + ApiEndPoints.API_GET_CART_PRODUCTS + SessionHelper.getCustomerToken().getToken(), - params); - - call.enqueue(new Callback>() { - @Override - public void onResponse(Call> call, Response> response) { - if(response.isSuccessful() && - response.body().getData() != null && - response.body().isSuccess()){ - SharedPrefsHelper.setCartItemCount(response.body().getData().getProducts().size()); - SharedPrefsHelper.setCartTotalPrice(PriceHelper.removeCurrencyFromPrice(response.body().getData().getCartTotalModel().getText())); - MainActivity mainActivity = (MainActivity) BaseActivity.currentActivity; - mainActivity.setCartItemCount(); - dismiss(); - } - } - - @Override - public void onFailure(Call> call, Throwable t) { - - } - }); - } - - - private boolean checkFields(){ - - if(radioRecyclerView.getVisibility() == View.VISIBLE && - !isSelectedAtLeastOne(productRadioOptionValueList)){ - DialogHelper.showAlertDialog(BaseActivity.currentActivity, - radioRecyclerHeaderTextView.getText().toString() + " " + noOptionsSelectedText); - return false; - } - - if(checkboxRecyclerView.getVisibility() == View.VISIBLE && - !isSelectedAtLeastOne(productCheckboxOptionValueList)){ - DialogHelper.showAlertDialog(BaseActivity.currentActivity, - checkboxRecyclerHeaderTextView.getText().toString() + " " + noOptionsSelectedText); - return false; - } - - return true; - } - - private boolean isSelectedAtLeastOne(ArrayList menuProductOptionValueModels){ - for(MenuProductOptionValueModel menuProductOptionValueModel : menuProductOptionValueModels){ - if(menuProductOptionValueModel.isSelected()){ - return true; - } - } - return false; - } - - private boolean isAnyOptionValueSelected(ArrayList menuProductOptionValueModels){ - for (MenuProductOptionValueModel menuProductOptionValueModel : menuProductOptionValueModels){ - if(menuProductOptionValueModel.isSelected()){ - return true; - } - } - return false; - } - -} diff --git a/app/src/main/java/ch/pizzamaxx/android/fragment/MenuFragment.java b/app/src/main/java/ch/pizzamaxx/android/fragment/MenuFragment.java index 7ea2620..c6d6324 100644 --- a/app/src/main/java/ch/pizzamaxx/android/fragment/MenuFragment.java +++ b/app/src/main/java/ch/pizzamaxx/android/fragment/MenuFragment.java @@ -22,9 +22,7 @@ import ch.pizzamaxx.android.adapter.recycler.MenuProductRecyclerAdapter; import ch.pizzamaxx.android.api.ApiErrorUtils; import ch.pizzamaxx.android.api.ApiService; import ch.pizzamaxx.android.api.ResponseArray; -import ch.pizzamaxx.android.dialog.ProductPropertiesBottomSheetDialog; import ch.pizzamaxx.android.helper.DialogHelper; -import ch.pizzamaxx.android.helper.DisplayHelper; import ch.pizzamaxx.android.helper.SessionHelper; import ch.pizzamaxx.android.interfaces.RecyclerItemClickListener; import ch.pizzamaxx.android.model.CategoryModel; @@ -110,7 +108,6 @@ public class MenuFragment extends BaseFragment { Intent productPropertiesIntent = new Intent(BaseActivity.currentActivity, ProductDetailsActivity.class); productPropertiesIntent.putExtra("menuProductModel", menuProductList.get(position)); startActivityForResult(productPropertiesIntent, REQUEST_CODE_PRODUCT_PROPERTIES); - //showBottomsheetDialog(menuProductList.get(position)); } }); menuProductRecyclerView.addItemDecoration(new GridSpacesItemDecoration(2, 16, true)); @@ -150,12 +147,6 @@ public class MenuFragment extends BaseFragment { menuProductRecyclerAdapter.notifyDataSetChanged(); } - public void showBottomsheetDialog(MenuProductModel menuProductModel){ - ProductPropertiesBottomSheetDialog productPropertiesBottomSheetDialog = new ProductPropertiesBottomSheetDialog(); - productPropertiesBottomSheetDialog.setMenuProductModel(menuProductModel); - productPropertiesBottomSheetDialog.show(getChildFragmentManager(), "dialog"); - } - private void sortProductsByName(){ Collections.sort(menuProductList, new Comparator() { @Override diff --git a/app/src/main/java/ch/pizzamaxx/android/fragment/ProductFragment.java b/app/src/main/java/ch/pizzamaxx/android/fragment/ProductFragment.java index f0b34b5..c7377b6 100644 --- a/app/src/main/java/ch/pizzamaxx/android/fragment/ProductFragment.java +++ b/app/src/main/java/ch/pizzamaxx/android/fragment/ProductFragment.java @@ -22,9 +22,7 @@ import ch.pizzamaxx.android.api.ApiConstants; import ch.pizzamaxx.android.api.ApiErrorUtils; import ch.pizzamaxx.android.api.ApiService; import ch.pizzamaxx.android.api.ResponseArray; -import ch.pizzamaxx.android.dialog.ProductPropertiesBottomSheetDialog; import ch.pizzamaxx.android.helper.DialogHelper; -import ch.pizzamaxx.android.helper.DisplayHelper; import ch.pizzamaxx.android.helper.SessionHelper; import ch.pizzamaxx.android.interfaces.RecyclerItemClickListener; import ch.pizzamaxx.android.model.CategoryModel; @@ -110,7 +108,6 @@ public class ProductFragment extends BaseFragment { Intent productPropertiesIntent = new Intent(BaseActivity.currentActivity, ProductDetailsActivity.class); productPropertiesIntent.putExtra("menuProductModel", productList.get(position)); startActivityForResult(productPropertiesIntent, REQUEST_CODE_PRODUCT_PROPERTIES); - //showBottomsheetDialog(productList.get(position)); } }); customProductRecyclerView.addItemDecoration(new GridSpacesItemDecoration(2, 16, true)); @@ -159,12 +156,6 @@ public class ProductFragment extends BaseFragment { return ApiConstants.PRODUCT_ID_EKSTRA_KEBAP; } - public void showBottomsheetDialog(MenuProductModel menuProductModel){ - ProductPropertiesBottomSheetDialog productPropertiesBottomSheetDialog = new ProductPropertiesBottomSheetDialog(); - productPropertiesBottomSheetDialog.setMenuProductModel(menuProductModel); - productPropertiesBottomSheetDialog.show(getChildFragmentManager(), "dialog"); - } - private void sortProductsByName(){ } diff --git a/app/src/main/java/ch/pizzamaxx/android/model/menu/MenuProductModel.java b/app/src/main/java/ch/pizzamaxx/android/model/menu/MenuProductModel.java index 0a2fc18..cecaa51 100644 --- a/app/src/main/java/ch/pizzamaxx/android/model/menu/MenuProductModel.java +++ b/app/src/main/java/ch/pizzamaxx/android/model/menu/MenuProductModel.java @@ -61,33 +61,6 @@ public class MenuProductModel implements Serializable { !description.equals(BaseActivity.currentActivity.getString(R.string.empty_description)); } - public ProductOptionType getProductOptionType(){ - if(productOptionList == null) - return ProductOptionType.NO_TYPE; - switch (productOptionList.size()){ - case 0: - return ProductOptionType.NO_TYPE; - case 1: - if(productOptionList.get(0).getType().toLowerCase().equals("radio") || - productOptionList.get(0).getType().toLowerCase().equals("select")) - return ProductOptionType.RADIO; - else - return ProductOptionType.CHECKBOX; - case 2: - return ProductOptionType.RADIO_AND_CHECKBOX; - default: - //return ProductOptionType.NO_TYPE; - return ProductOptionType.RADIO_AND_CHECKBOX; - } - } - - public enum ProductOptionType{ - NO_TYPE, - RADIO, - CHECKBOX, - RADIO_AND_CHECKBOX - } - public String getId() { return id; } diff --git a/app/src/main/res/layout/layout_bottomsheet.xml b/app/src/main/res/layout/layout_bottomsheet.xml deleted file mode 100644 index 1d2533b..0000000 --- a/app/src/main/res/layout/layout_bottomsheet.xml +++ /dev/null @@ -1,231 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - -