add to cart
This commit is contained in:
@@ -10,11 +10,11 @@ import android.widget.TextView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import butterknife.BindString;
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import ch.pizzalink.android.R;
|
||||
import ch.pizzalink.android.helper.ImageLoadHelper;
|
||||
import ch.pizzalink.android.helper.PriceHelper;
|
||||
import ch.pizzalink.android.interfaces.RecyclerItemClickListener;
|
||||
import ch.pizzalink.android.model.menu.MenuProductModel;
|
||||
|
||||
@@ -38,8 +38,6 @@ public class MenuProductRecyclerAdapter extends RecyclerView.Adapter<RecyclerVie
|
||||
@BindView(R.id.productIngredientsTextView) TextView productIngredientsTextView;
|
||||
@BindView(R.id.productPriceTextView) TextView productPriceTextView;
|
||||
|
||||
@BindString(R.string.chf) String chfText;
|
||||
|
||||
public MenuProductViewHolder(final View view, final RecyclerItemClickListener recyclerItemClickListener) {
|
||||
super(view);
|
||||
ButterKnife.bind(this, view);
|
||||
@@ -110,7 +108,7 @@ public class MenuProductRecyclerAdapter extends RecyclerView.Adapter<RecyclerVie
|
||||
ImageLoadHelper.loadImage(menuProductViewHolder.productImageView, menuProductList.get(position).getImageURL());
|
||||
menuProductViewHolder.productNameTextView.setText(menuProductList.get(position).getName());
|
||||
menuProductViewHolder.productPriceTextView.setText(
|
||||
menuProductViewHolder.chfText + " " + menuProductList.get(position).getPrice());
|
||||
PriceHelper.getPriceWithCurreny(menuProductList.get(position).getPrice()));
|
||||
if(menuProductList.get(position).isDescriptionAvailable()){
|
||||
menuProductViewHolder.productIngredientsLayout.setVisibility(View.VISIBLE);
|
||||
menuProductViewHolder.productIngredientsTextView.setText(menuProductList.get(position).getDescription());
|
||||
|
||||
@@ -7,7 +7,6 @@ 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.LinearLayoutManager;
|
||||
import android.support.v7.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
import android.widget.Button;
|
||||
@@ -15,9 +14,7 @@ import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindString;
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
import butterknife.OnClick;
|
||||
@@ -25,6 +22,7 @@ import ch.pizzalink.android.R;
|
||||
import ch.pizzalink.android.activity.BaseActivity;
|
||||
import ch.pizzalink.android.adapter.recycler.ProductCheckboxOptionsRecyclerAdapter;
|
||||
import ch.pizzalink.android.adapter.recycler.ProductRadioOptionsRecyclerAdapter;
|
||||
import ch.pizzalink.android.helper.PriceHelper;
|
||||
import ch.pizzalink.android.interfaces.RecyclerItemClickListener;
|
||||
import ch.pizzalink.android.model.menu.MenuProductModel;
|
||||
import ch.pizzalink.android.model.menu.MenuProductOptionModel;
|
||||
@@ -47,8 +45,6 @@ public class ProductPropertiesBottomSheetDialog extends BottomSheetDialogFragmen
|
||||
@BindView(R.id.productCountTextView) TextView productCountTextView;
|
||||
@BindView(R.id.addToCartButton) Button addToCartButton;
|
||||
|
||||
@BindString(R.string.chf) String chfText;
|
||||
|
||||
private int productCount = 1;
|
||||
|
||||
private BottomSheetBehavior mBehavior;
|
||||
@@ -85,12 +81,18 @@ public class ProductPropertiesBottomSheetDialog extends BottomSheetDialogFragmen
|
||||
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:
|
||||
break;
|
||||
@@ -99,13 +101,13 @@ public class ProductPropertiesBottomSheetDialog extends BottomSheetDialogFragmen
|
||||
|
||||
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);
|
||||
fillRadioAndCheckboxOptionLists();
|
||||
initRadioRecyclerView();
|
||||
initCheckboxRecyclerView();
|
||||
break;
|
||||
@@ -132,8 +134,6 @@ public class ProductPropertiesBottomSheetDialog extends BottomSheetDialogFragmen
|
||||
|
||||
private void initRadioRecyclerView(){
|
||||
radioRecyclerView.setNestedScrollingEnabled(false);
|
||||
radioRecyclerHeaderTextView.setText(menuProductModel.getProductOptionList().get(0).getName());
|
||||
productRadioOptionValueList.addAll(menuProductModel.getProductOptionList().get(0).getOptionValueModelList());
|
||||
GridLayoutManager gridLayoutManager = new GridLayoutManager(BaseActivity.currentActivity, 3);
|
||||
radioRecyclerView.setLayoutManager(gridLayoutManager);
|
||||
productRadioOptionsRecyclerAdapter = new ProductRadioOptionsRecyclerAdapter(productRadioOptionValueList, new RecyclerItemClickListener() {
|
||||
@@ -145,7 +145,8 @@ public class ProductPropertiesBottomSheetDialog extends BottomSheetDialogFragmen
|
||||
}
|
||||
productRadioOptionValueList.get(position).setSelected(true);
|
||||
productRadioOptionsRecyclerAdapter.notifyDataSetChanged();
|
||||
productPriceTextView.setText(chfText + " " + productRadioOptionValueList.get(position).getPrice());
|
||||
productPriceTextView.setText(PriceHelper.calculatePriceAfterRadioOptionValueChanged(
|
||||
productCount, menuProductModel, productRadioOptionValueList.get(position)));
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -154,8 +155,6 @@ public class ProductPropertiesBottomSheetDialog extends BottomSheetDialogFragmen
|
||||
|
||||
private void initCheckboxRecyclerView(){
|
||||
checkboxRecyclerView.setNestedScrollingEnabled(false);
|
||||
checkboxRecyclerHeaderTextView.setText(menuProductModel.getProductOptionList().get(0).getName());
|
||||
productCheckboxOptionValueList.addAll(menuProductModel.getProductOptionList().get(0).getOptionValueModelList());
|
||||
GridLayoutManager gridLayoutManager = new GridLayoutManager(BaseActivity.currentActivity, 3);
|
||||
checkboxRecyclerView.setLayoutManager(gridLayoutManager);
|
||||
productCheckboxOptionsRecyclerAdapter = new ProductCheckboxOptionsRecyclerAdapter(productCheckboxOptionValueList, new RecyclerItemClickListener() {
|
||||
@@ -164,6 +163,9 @@ public class ProductPropertiesBottomSheetDialog extends BottomSheetDialogFragmen
|
||||
productCheckboxOptionValueList.get(position).setSelected(
|
||||
!productCheckboxOptionValueList.get(position).isSelected());
|
||||
productCheckboxOptionsRecyclerAdapter.notifyItemChanged(position);
|
||||
productPriceTextView.setText(
|
||||
PriceHelper.calculatePriceAfterCheckboxOptionValueChanged(
|
||||
productCount, menuProductModel, productCheckboxOptionValueList));
|
||||
}
|
||||
});
|
||||
checkboxRecyclerView.setAdapter(productCheckboxOptionsRecyclerAdapter);
|
||||
@@ -171,12 +173,13 @@ public class ProductPropertiesBottomSheetDialog extends BottomSheetDialogFragmen
|
||||
|
||||
private void setFields(){
|
||||
productNameTextView.setText(menuProductModel.getName());
|
||||
productPriceTextView.setText(chfText + " " + menuProductModel.getPrice());
|
||||
productPriceTextView.setText(PriceHelper.getPriceWithCurreny(menuProductModel.getPrice()));
|
||||
productPriceTextView.setText(PriceHelper.getPriceWithCurreny(menuProductModel.getPrice()));
|
||||
}
|
||||
|
||||
private void fillRadioAndCheckboxOptionLists(){
|
||||
productRadioOptionValueList.addAll(menuProductModel.getProductOptionList().get(0).getOptionValueModelList());
|
||||
for(MenuProductOptionModel menuProductOptionModel : menuProductModel.getProductOptionList()){
|
||||
setSelectedPriceShowingOptions(menuProductOptionModel.getOptionValueModelList());
|
||||
if(menuProductOptionModel.getType().toLowerCase().equals("radio") ||
|
||||
menuProductOptionModel.getType().toLowerCase().equals("select")){
|
||||
radioRecyclerHeaderTextView.setText(menuProductOptionModel.getName());
|
||||
@@ -186,7 +189,13 @@ public class ProductPropertiesBottomSheetDialog extends BottomSheetDialogFragmen
|
||||
checkboxRecyclerHeaderTextView.setText(menuProductOptionModel.getName());
|
||||
productCheckboxOptionValueList.addAll(menuProductOptionModel.getOptionValueModelList());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void setSelectedPriceShowingOptions(ArrayList<MenuProductOptionValueModel> menuProductOptionValueList){
|
||||
for(MenuProductOptionValueModel menuProductOptionValueModel : menuProductOptionValueList){
|
||||
if(menuProductOptionValueModel.getPrice().equals("0") || menuProductOptionValueModel.getPrice().equals("0.00"))
|
||||
menuProductOptionValueModel.setSelected(true);
|
||||
}
|
||||
}
|
||||
/*
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
package ch.pizzalink.android.helper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import ch.pizzalink.android.R;
|
||||
import ch.pizzalink.android.activity.BaseActivity;
|
||||
import ch.pizzalink.android.model.menu.MenuProductModel;
|
||||
import ch.pizzalink.android.model.menu.MenuProductOptionValueModel;
|
||||
|
||||
/**
|
||||
* Created by cimenmus on 12/10/2017.
|
||||
*/
|
||||
|
||||
public class PriceHelper {
|
||||
|
||||
public static String getPriceWithCurreny(String price){
|
||||
return BaseActivity.currentActivity.getString(R.string.chf) + " " + price;
|
||||
}
|
||||
|
||||
public static String getPriceWithCurreny(Double price){
|
||||
return BaseActivity.currentActivity.getString(R.string.chf) + " " + price;
|
||||
}
|
||||
|
||||
public static String removeCurrencyFromPrice(String priceWithCurreny){
|
||||
try {
|
||||
String currencyText = BaseActivity.currentActivity.getString(R.string.chf);
|
||||
return priceWithCurreny.replace(currencyText, "").trim();
|
||||
}catch (Exception e){
|
||||
return priceWithCurreny.trim();
|
||||
}
|
||||
}
|
||||
|
||||
public static String calculatePriceAfterCountChanged(String oldPriceString, int oldCount, int newCount){
|
||||
Double oldPrice = Double.valueOf(removeCurrencyFromPrice(oldPriceString));
|
||||
Double productOldPrice = oldPrice / oldCount;
|
||||
Double productNewPrice = productOldPrice * newCount;
|
||||
return getPriceWithCurreny(productNewPrice);
|
||||
}
|
||||
|
||||
public static String calculatePriceAfterRadioOptionValueChanged(int count,
|
||||
MenuProductModel menuProductModel,
|
||||
MenuProductOptionValueModel menuProductOptionValueModel){
|
||||
|
||||
Double productPrice = Double.valueOf(menuProductModel.getPrice());
|
||||
|
||||
switch (menuProductOptionValueModel.getPrice_prefix()){
|
||||
case "+":
|
||||
productPrice += Double.valueOf(menuProductOptionValueModel.getPrice());
|
||||
break;
|
||||
case "-":
|
||||
productPrice -= Double.valueOf(menuProductOptionValueModel.getPrice());
|
||||
break;
|
||||
}
|
||||
|
||||
return getPriceWithCurreny(productPrice * count);
|
||||
|
||||
}
|
||||
|
||||
public static String calculatePriceAfterCheckboxOptionValueChanged(int count,
|
||||
MenuProductModel menuProductModel,
|
||||
ArrayList<MenuProductOptionValueModel> menuProductOptionValueModelList){
|
||||
|
||||
Double productPrice = Double.valueOf(menuProductModel.getPrice());
|
||||
|
||||
for(MenuProductOptionValueModel menuProductOptionValueModel : menuProductOptionValueModelList){
|
||||
if(menuProductOptionValueModel.isSelected()){
|
||||
switch (menuProductOptionValueModel.getPrice_prefix()){
|
||||
case "+":
|
||||
productPrice += Double.valueOf(menuProductOptionValueModel.getPrice());
|
||||
break;
|
||||
case "-":
|
||||
productPrice -= Double.valueOf(menuProductOptionValueModel.getPrice());
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return getPriceWithCurreny(productPrice * count);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user