piiza row

This commit is contained in:
2017-09-26 20:41:48 +03:00
parent d4f7ea2de0
commit 2e2a4ce55f
6 changed files with 239 additions and 12 deletions

2
.idea/misc.xml generated
View File

@@ -37,7 +37,7 @@
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">

View File

@@ -3,6 +3,7 @@ package ch.pizzalink.android.adapter.recycler;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.graphics.drawable.Drawable;
import android.support.v7.widget.AppCompatCheckBox;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
@@ -10,19 +11,23 @@ import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.Transformation;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindDrawable;
import butterknife.BindView;
import butterknife.BindViews;
import butterknife.ButterKnife;
import ch.pizzalink.android.R;
import ch.pizzalink.android.activity.BaseActivity;
import ch.pizzalink.android.helper.ImageLoadHelper;
import ch.pizzalink.android.interfaces.CheckBoxChangedListener;
import ch.pizzalink.android.interfaces.RecyclerItemClickListener;
import ch.pizzalink.android.model.PizzaModel;
@@ -37,6 +42,7 @@ public class PizzaRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.View
private ArrayList<PizzaModel> pizzaList = new ArrayList<>();
private RecyclerItemClickListener recyclerItemClickListener;
private CheckBoxChangedListener checkBoxChangedListener;
public static class PizzaViewHolder extends RecyclerView.ViewHolder {
@@ -47,9 +53,38 @@ public class PizzaRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.View
@BindView(R.id.expandBottomLayoutImageView) ImageView expandBottomLayoutImageView;
@BindView(R.id.collapseBottomLayoutImageView) ImageView collapseBottomLayoutImageView;
public PizzaViewHolder(final View view, final RecyclerItemClickListener recyclerItemClickListener) {
@BindViews({ R.id.pizzaSize1CheckBox, R.id.pizzaSize2CheckBox, R.id.pizzaSize3CheckBox })
List<AppCompatCheckBox> pizzaSizeCheckBoxList;
@BindView(R.id.pizzaSize1Layout) LinearLayout pizzaSize1Layout;
@BindView(R.id.pizzaSize1NameTextView) TextView pizzaSize1NameTextView;
@BindView(R.id.pizzaSize1CheckBox) AppCompatCheckBox pizzaSize1CheckBox;
@BindView(R.id.pizzaSize1LengthTextView) TextView pizzaSize1LengthTextView;
@BindView(R.id.pizzaSize2Layout) LinearLayout pizzaSize2Layout;
@BindView(R.id.pizzaSize2NameTextView) TextView pizzaSize2NameTextView;
@BindView(R.id.pizzaSize2CheckBox) AppCompatCheckBox pizzaSize2CheckBox;
@BindView(R.id.pizzaSize2LengthTextView) TextView pizzaSize2LengthTextView;
@BindView(R.id.pizzaSize3Layout) LinearLayout pizzaSize3Layout;
@BindView(R.id.pizzaSize3NameTextView) TextView pizzaSize3NameTextView;
@BindView(R.id.pizzaSize3CheckBox) AppCompatCheckBox pizzaSize3CheckBox;
@BindView(R.id.pizzaSize3LengthTextView) TextView pizzaSize3LengthTextView;
@BindView(R.id.increasePizzaCountTextView) ImageView increasePizzaCountTextView;
@BindView(R.id.pizzaCountTextView) TextView pizzaCountTextView;
@BindView(R.id.deccreasePizzaCountTextView) ImageView deccreasePizzaCountTextView;
@BindView(R.id.pizzaPriceTextView) TextView pizzaPriceTextView;
@BindView(R.id.addPizzaToCartButton) Button addPizzaToCartButton;
public PizzaViewHolder(final View view,
final RecyclerItemClickListener recyclerItemClickListener,
final CheckBoxChangedListener checkBoxChangedListener) {
super(view);
ButterKnife.bind(this, view);
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
@@ -57,6 +92,40 @@ public class PizzaRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.View
recyclerItemClickListener.onItemClick(pizzaBottomLayout, getAdapterPosition());
}
});
increasePizzaCountTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(recyclerItemClickListener != null)
recyclerItemClickListener.onItemClick(increasePizzaCountTextView, getAdapterPosition());
}
});
deccreasePizzaCountTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(recyclerItemClickListener != null)
recyclerItemClickListener.onItemClick(deccreasePizzaCountTextView, getAdapterPosition());
}
});
addPizzaToCartButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(recyclerItemClickListener != null)
recyclerItemClickListener.onItemClick(addPizzaToCartButton, getAdapterPosition());
}
});
for(final AppCompatCheckBox appCompatCheckBox : pizzaSizeCheckBoxList){
appCompatCheckBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(checkBoxChangedListener != null)
checkBoxChangedListener.onCheckedChanged(appCompatCheckBox, getAdapterPosition());
}
});
}
}
}
@@ -75,9 +144,12 @@ public class PizzaRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.View
return HOLDER_PIZZA;
}
public PizzaRecyclerAdapter(ArrayList<PizzaModel> pizzaList, RecyclerItemClickListener recyclerItemClickListener){
public PizzaRecyclerAdapter(ArrayList<PizzaModel> pizzaList,
RecyclerItemClickListener recyclerItemClickListener,
CheckBoxChangedListener checkBoxChangedListener){
this.pizzaList = pizzaList;
this.recyclerItemClickListener = recyclerItemClickListener;
this.checkBoxChangedListener = checkBoxChangedListener;
}
@Override
@@ -91,7 +163,7 @@ public class PizzaRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.View
case HOLDER_PIZZA:
view = inflater.inflate(R.layout.row_pizza_2, viewGroup, false);
viewHolder = new PizzaViewHolder(view, recyclerItemClickListener);
viewHolder = new PizzaViewHolder(view, recyclerItemClickListener, checkBoxChangedListener);
break;
case HOLDER_SPACE:
@@ -101,7 +173,7 @@ public class PizzaRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.View
default:
view = inflater.inflate(R.layout.row_pizza_2, viewGroup, false);
viewHolder = new PizzaViewHolder(view, recyclerItemClickListener);
viewHolder = new PizzaViewHolder(view, recyclerItemClickListener, checkBoxChangedListener);
break;
}
@@ -116,9 +188,10 @@ public class PizzaRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.View
case HOLDER_PIZZA :
PizzaViewHolder pizzaViewHolder = (PizzaViewHolder) holder;
pizzaViewHolder.pizzaNameTextView.setText("Anatolia");
pizzaViewHolder.pizzaIngredientsTextView.setText("Mozzarella, Artischocken, Pilze, Peperoni, Oliven, Oregano");
ImageLoadHelper.loadImage(pizzaViewHolder.pizzaImageView, "http://www.pizzalink.ch/pizza/image/cache/catalog/pizza/2-220x220.png");
pizzaViewHolder.pizzaNameTextView.setText(pizzaList.get(position).getName());
pizzaViewHolder.pizzaIngredientsTextView.setText(pizzaList.get(position).getIngredients());
pizzaViewHolder.pizzaCountTextView.setText(String.valueOf(pizzaList.get(position).getCount()));
ImageLoadHelper.loadImage(pizzaViewHolder.pizzaImageView, pizzaList.get(position).getImageURL());
if(pizzaList.get(position).isExpanded()){
pizzaViewHolder.expandBottomLayoutImageView.setVisibility(View.GONE);
@@ -131,8 +204,42 @@ public class PizzaRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.View
pizzaViewHolder.collapseBottomLayoutImageView.setVisibility(View.GONE);
pizzaViewHolder.pizzaBottomLayout.setVisibility(View.GONE);
}
if(pizzaList.get(position).getPizzaSizeList().size() == 0){
pizzaViewHolder.pizzaSize1Layout.setVisibility(View.GONE);
pizzaViewHolder.pizzaSize2Layout.setVisibility(View.GONE);
pizzaViewHolder.pizzaSize3Layout.setVisibility(View.GONE);
}
else if(pizzaList.get(position).getPizzaSizeList().size() == 1){
pizzaViewHolder.pizzaSize1Layout.setVisibility(View.VISIBLE);
pizzaViewHolder.pizzaSize1NameTextView.setText(pizzaList.get(position).getPizzaSizeList().get(0).getName());
pizzaViewHolder.pizzaSize2Layout.setVisibility(View.GONE);
pizzaViewHolder.pizzaSize3Layout.setVisibility(View.GONE);
}
else if(pizzaList.get(position).getPizzaSizeList().size() == 2){
pizzaViewHolder.pizzaSize1Layout.setVisibility(View.VISIBLE);
pizzaViewHolder.pizzaSize1NameTextView.setText(pizzaList.get(position).getPizzaSizeList().get(0).getName());
pizzaViewHolder.pizzaSize2Layout.setVisibility(View.VISIBLE);
pizzaViewHolder.pizzaSize2NameTextView.setText(pizzaList.get(position).getPizzaSizeList().get(1).getName());
pizzaViewHolder.pizzaSize3Layout.setVisibility(View.GONE);
}
else if(pizzaList.get(position).getPizzaSizeList().size() <= 3){
pizzaViewHolder.pizzaSize1Layout.setVisibility(View.VISIBLE);
pizzaViewHolder.pizzaSize1NameTextView.setText(pizzaList.get(position).getPizzaSizeList().get(0).getName());
pizzaViewHolder.pizzaSize2Layout.setVisibility(View.VISIBLE);
pizzaViewHolder.pizzaSize2NameTextView.setText(pizzaList.get(position).getPizzaSizeList().get(1).getName());
pizzaViewHolder.pizzaSize3Layout.setVisibility(View.VISIBLE);
pizzaViewHolder.pizzaSize3NameTextView.setText(pizzaList.get(position).getPizzaSizeList().get(2).getName());
}
break;
case HOLDER_SPACE :
SpaceViewHolder spaceViewHolder = (SpaceViewHolder) holder;
break;

View File

@@ -1,6 +1,7 @@
package ch.pizzalink.android.fragment.order;
import android.os.Bundle;
import android.support.v7.widget.AppCompatCheckBox;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
@@ -9,6 +10,7 @@ import android.view.View;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindString;
import butterknife.BindView;
@@ -17,8 +19,10 @@ import ch.pizzalink.android.R;
import ch.pizzalink.android.activity.BaseActivity;
import ch.pizzalink.android.adapter.recycler.PizzaRecyclerAdapter;
import ch.pizzalink.android.helper.DisplayHelper;
import ch.pizzalink.android.interfaces.CheckBoxChangedListener;
import ch.pizzalink.android.interfaces.RecyclerItemClickListener;
import ch.pizzalink.android.model.PizzaModel;
import ch.pizzalink.android.model.SizeModel;
import ch.pizzalink.android.view.GridSpacesItemDecoration;
/**
@@ -67,10 +71,20 @@ public class PizzaFragment extends OrderBaseFragment {
pizzaRecyclerView.addItemDecoration(new GridSpacesItemDecoration(DisplayHelper.dpToPx(12)));
*/
pizzaRecyclerAdapter = new PizzaRecyclerAdapter(pizzaList, new RecyclerItemClickListener() {
RecyclerItemClickListener recyclerItemClickListener = new RecyclerItemClickListener() {
@Override
public void onItemClick(View view, int position) {
switch (view.getId()){
case R.id.increasePizzaCountTextView:
pizzaList.get(position).setCount(pizzaList.get(position).getCount() + 1);
pizzaRecyclerAdapter.notifyItemChanged(position);
break;
case R.id.deccreasePizzaCountTextView:
if(pizzaList.get(position).getCount() == 0)
break;
pizzaList.get(position).setCount(pizzaList.get(position).getCount() - 1);
pizzaRecyclerAdapter.notifyItemChanged(position);
break;
default:
for(int i = 0; i < pizzaList.size(); i++){
if(i == position && !pizzaList.get(i).isExpanded())
@@ -83,15 +97,97 @@ public class PizzaFragment extends OrderBaseFragment {
break;
}
}
});
};
CheckBoxChangedListener checkBoxChangedListener = new CheckBoxChangedListener() {
@Override
public void onCheckedChanged(AppCompatCheckBox appCompatCheckBox, int position) {
}
};
pizzaRecyclerAdapter = new PizzaRecyclerAdapter(pizzaList, recyclerItemClickListener, checkBoxChangedListener);
LinearLayoutManager layoutManager = new LinearLayoutManager(BaseActivity.currentActivity);
pizzaRecyclerView.setLayoutManager(layoutManager);
pizzaRecyclerView.setAdapter(pizzaRecyclerAdapter);
}
private void fillPizzaList(){
for(int i = 0; i < 12; i++){
pizzaList.add(new PizzaModel());
PizzaModel pizzaModel = new PizzaModel();
pizzaModel.setName("Pizza " + (i+1));
pizzaModel.setIngredients("Mozzarella, Artischocken, Pilze, Peperoni, Oliven, Oregano");
pizzaModel.setImageURL("http://www.pizzalink.ch/pizza/image/cache/catalog/pizza/2-220x220.png");
ArrayList<SizeModel> sizeList = new ArrayList<>();
if(i % 4 == 0){
SizeModel sizeModel1 = new SizeModel();
sizeModel1.setName("Size 1");
sizeModel1.setLength("Length 1");
SizeModel sizeModel2 = new SizeModel();
sizeModel2.setName("Size 2");
sizeModel2.setLength("Length 2");
SizeModel sizeModel3 = new SizeModel();
sizeModel3.setName("Size 3");
sizeModel3.setLength("Length 3");
SizeModel sizeModel4 = new SizeModel();
sizeModel4.setName("Size 4");
sizeModel4.setLength("Length 4");
sizeList.add(sizeModel1);
sizeList.add(sizeModel2);
sizeList.add(sizeModel3);
sizeList.add(sizeModel4);
} else if(i % 4 == 1){
SizeModel sizeModel1 = new SizeModel();
sizeModel1.setName("Size 1");
sizeModel1.setLength("Length 1");
SizeModel sizeModel2 = new SizeModel();
sizeModel2.setName("Size 2");
sizeModel2.setLength("Length 2");
SizeModel sizeModel3 = new SizeModel();
sizeModel3.setName("Size 3");
sizeModel3.setLength("Length 3");
sizeList.add(sizeModel1);
sizeList.add(sizeModel2);
sizeList.add(sizeModel3);
} else if(i % 4 == 2){
SizeModel sizeModel1 = new SizeModel();
sizeModel1.setName("Size 1");
sizeModel1.setLength("Length 1");
SizeModel sizeModel2 = new SizeModel();
sizeModel2.setName("Size 2");
sizeModel2.setLength("Length 2");
sizeList.add(sizeModel1);
sizeList.add(sizeModel2);
} else {
SizeModel sizeModel1 = new SizeModel();
sizeModel1.setName("Size 1");
sizeModel1.setLength("Length 1");
sizeList.add(sizeModel1);
}
pizzaModel.setPizzaSizeList(sizeList);
pizzaList.add(pizzaModel);
}
pizzaRecyclerAdapter.notifyDataSetChanged();
}

View File

@@ -0,0 +1,12 @@
package ch.pizzalink.android.interfaces;
import android.support.v7.widget.AppCompatCheckBox;
import android.view.View;
/**
* Created by cimenmus on 25/09/2017.
*/
public interface CheckBoxChangedListener {
public void onCheckedChanged(AppCompatCheckBox appCompatCheckBox, int position);
}

View File

@@ -10,6 +10,7 @@ public class PizzaModel {
private String id, name, ingredients;
private int count, isCartCount;
private String imageURL;
private double price;
private boolean isInCart;
private ArrayList<SizeModel> pizzaSizeList;
@@ -86,4 +87,12 @@ public class PizzaModel {
public void setExpanded(boolean expanded) {
isExpanded = expanded;
}
public String getImageURL() {
return imageURL;
}
public void setImageURL(String imageURL) {
this.imageURL = imageURL;
}
}

View File

@@ -90,6 +90,7 @@
android:layout_centerVertical="true">
<LinearLayout
android:id="@+id/pizzaSize1Layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
@@ -129,6 +130,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/pizzaSize2Layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
@@ -167,6 +169,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/pizzaSize3Layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
@@ -270,7 +273,7 @@
android:layout_gravity="center_horizontal"/>
<Button
android:id="@+id/addPizzaToCartTextView"
android:id="@+id/addPizzaToCartButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="12dp"