campaign fix

This commit is contained in:
cimenmus
2018-06-12 21:26:45 +03:00
parent 87f3596b50
commit b716af3bf4
21 changed files with 950 additions and 100 deletions

Binary file not shown.

View File

@@ -21,6 +21,7 @@ android {
dependencies { dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support.constraint:constraint-layout:1.1.1'
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations' exclude group: 'com.android.support', module: 'support-annotations'
}) })

View File

@@ -51,11 +51,13 @@
android:name=".activity.UpdateProfileActivity" android:name=".activity.UpdateProfileActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".activity.ProductPropertiesActivity" android:name=".activity.ProductDetailsActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity <activity
android:name=".activity.OrderHistoryDetailsActivity" android:name=".activity.OrderHistoryDetailsActivity"
android:screenOrientation="portrait" /> android:screenOrientation="portrait" />
<activity android:name=".activity.CampaignProductListActivity" />
<activity android:name=".activity.CampaignProductDetailsActivity"></activity>
</application> </application>
</manifest> </manifest>

View File

@@ -0,0 +1,399 @@
package ch.pizzapp.android.activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
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 butterknife.BindString;
import butterknife.BindView;
import butterknife.ButterKnife;
import butterknife.OnClick;
import ch.pizzapp.android.R;
import ch.pizzapp.android.adapter.recycler.ProductCheckboxOptionsRecyclerAdapter;
import ch.pizzapp.android.adapter.recycler.ProductRadioOptionsRecyclerAdapter;
import ch.pizzapp.android.api.ApiConstants;
import ch.pizzapp.android.api.ApiEndPoints;
import ch.pizzapp.android.api.ApiErrorUtils;
import ch.pizzapp.android.api.ApiService;
import ch.pizzapp.android.api.ResponseObject;
import ch.pizzapp.android.helper.DialogHelper;
import ch.pizzapp.android.helper.ImageLoadHelper;
import ch.pizzapp.android.helper.PriceHelper;
import ch.pizzapp.android.helper.SessionHelper;
import ch.pizzapp.android.helper.SharedPrefsHelper;
import ch.pizzapp.android.helper.TextHelper;
import ch.pizzapp.android.interfaces.RecyclerItemClickListener;
import ch.pizzapp.android.model.AddProductToBasketResponseModel;
import ch.pizzapp.android.model.CampaignModel;
import ch.pizzapp.android.model.cart.CartInfoModel;
import ch.pizzapp.android.model.menu.MenuProductModel;
import ch.pizzapp.android.model.menu.MenuProductOptionModel;
import ch.pizzapp.android.model.menu.MenuProductOptionValueModel;
import okhttp3.FormBody;
import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class CampaignProductDetailsActivity extends BaseActivity {
@BindView(R.id.closeImageView) ImageView closeImageView;
@BindView(R.id.backIcon) ImageView backIcon;
@BindView(R.id.productImageView) ImageView productImageView;
@BindView(R.id.productNameTextView) TextView productNameTextView;
@BindView(R.id.productPriceTextView) TextView productPriceTextView;
@BindView(R.id.productDescriptionTextView) TextView productDescriptionTextView;
@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;
@BindString(R.string.cannot_use_campaign) String cannotUseCampaignText;
private int productCount = 1;
private MenuProductModel menuProductModel;
private ArrayList<MenuProductOptionValueModel> productRadioOptionValueList = new ArrayList<>();
private ArrayList<MenuProductOptionValueModel> productCheckboxOptionValueList = new ArrayList<>();
private ProductRadioOptionsRecyclerAdapter productRadioOptionsRecyclerAdapter;
private ProductCheckboxOptionsRecyclerAdapter productCheckboxOptionsRecyclerAdapter;
private CampaignModel campaignModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_campaign_product_details);
ButterKnife.bind(this);
getDataFromIntent();
initViews();
}
@OnClick({R.id.closeImageView,
R.id.backIcon,
R.id.addToCartButton})
public void onCLick(View view){
switch (view.getId()){
case R.id.closeImageView:
case R.id.backIcon:
finish();
break;
case R.id.addToCartButton:
if(checkFields()){
if(SessionHelper.isCustomerLoggedIn()){
if((campaignModel.getCode().equals(ApiConstants.CAMPAIGN_CODE_PIZZAPASS) && SessionHelper.isUserUsedPizzapassCampaign()) ||
(campaignModel.getCode().equals(ApiConstants.CAMPAIGN_CODE_CHAMPAGNE) && SessionHelper.isUserUsedChampagneCampaign())){
DialogHelper.showAlertDialog(BaseActivity.currentActivity, cannotUseCampaignText);
}
else {
addProductToCart();
}
}
else {
DialogHelper.showNeedToLoginDialog(R.string.need_to_login_for_shopping);
}
}
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);
}
}
}
}
}
private void getDataFromIntent(){
menuProductModel = (MenuProductModel) getIntent().getSerializableExtra("menuProductModel");
campaignModel = (CampaignModel) getIntent().getSerializableExtra("campaignModel");
}
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(){
TextHelper.setTextFromHTML(productDescriptionTextView, menuProductModel.getDescription());
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);
}
}
}
}
private void addProductToCart(){
DialogHelper.showLoadingDialog();
Call<ResponseObject<AddProductToBasketResponseModel>> call =
ApiService.apiInterface.addProductsToBasket(
ApiEndPoints.API_ADD_PRODUCTS_TO_BASKET + SessionHelper.getCustomerToken().getToken(),
getAddToCartRequestParams());
call.enqueue(new Callback<ResponseObject<AddProductToBasketResponseModel>>() {
@Override
public void onResponse(Call<ResponseObject<AddProductToBasketResponseModel>> call, Response<ResponseObject<AddProductToBasketResponseModel>> 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<ResponseObject<AddProductToBasketResponseModel>> call, Throwable t) {
DialogHelper.hideLoadingDialog();
DialogHelper.showFailedDialog();
}
});
}
private RequestBody getAddToCartRequestParams(){
FormBody.Builder formBodyBuilder = new FormBody.Builder();
formBodyBuilder.add("product_id", menuProductModel.getId());
formBodyBuilder.add("quantity", String.valueOf(productCount));
for(MenuProductOptionModel productOptionModel : menuProductModel.getProductOptionList()){
ArrayList<String> selectedCheckboxOptionList = new ArrayList<>();
for(MenuProductOptionValueModel productOptionValueModel : productOptionModel.getOptionValueModelList()){
if(productOptionValueModel.isSelected()){
if(productOptionModel.getType().toLowerCase().equals("checkbox")){
selectedCheckboxOptionList.add(productOptionValueModel.getProductOptionValueId());
}
else {
String key = "option[" + productOptionModel.getProductOptionId() + "]";
formBodyBuilder.add(key, productOptionValueModel.getProductOptionValueId());
}
}
}
if(productOptionModel.getType().toLowerCase().equals("checkbox")){
for(int i = 0; i < selectedCheckboxOptionList.size(); i++){
String key = "option[" + productOptionModel.getProductOptionId() + "][" + String.valueOf(i) + "]";
formBodyBuilder.add(key, selectedCheckboxOptionList.get(i));
}
}
}
return formBodyBuilder.build();
}
private void getCartItemCount(){
Call<ResponseObject<CartInfoModel>> call = ApiService.apiInterface.getCartProducts(
ApiEndPoints.API_GET_CART_PRODUCTS + SessionHelper.getCustomerToken().getToken());
call.enqueue(new Callback<ResponseObject<CartInfoModel>>() {
@Override
public void onResponse(Call<ResponseObject<CartInfoModel>> call, Response<ResponseObject<CartInfoModel>> response) {
DialogHelper.hideLoadingDialog();
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()));
if(campaignModel.getCode().equals(ApiConstants.CAMPAIGN_CODE_PIZZAPASS)){
SessionHelper.setUserUsedPizzapassCampaign(true);
}
else if(campaignModel.getCode().equals(ApiConstants.CAMPAIGN_CODE_CHAMPAGNE)){
SessionHelper.setUserUsedChampagneCampaign(true);
}
/*
MainActivity mainActivity = (MainActivity) getActivity();
mainActivity.setCartItemCount();
*/
setResult(RESULT_OK);
finish();
}
}
@Override
public void onFailure(Call<ResponseObject<CartInfoModel>> 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<MenuProductOptionValueModel> menuProductOptionValueModels){
for(MenuProductOptionValueModel menuProductOptionValueModel : menuProductOptionValueModels){
if(menuProductOptionValueModel.isSelected()){
return true;
}
}
return false;
}
private boolean isAnyOptionValueSelected(ArrayList<MenuProductOptionValueModel> menuProductOptionValueModels){
for (MenuProductOptionValueModel menuProductOptionValueModel : menuProductOptionValueModels){
if(menuProductOptionValueModel.isSelected()){
return true;
}
}
return false;
}
}

View File

@@ -0,0 +1,131 @@
package ch.pizzapp.android.activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import butterknife.BindView;
import butterknife.ButterKnife;
import ch.pizzapp.android.R;
import ch.pizzapp.android.adapter.recycler.MenuProductRecyclerAdapter;
import ch.pizzapp.android.api.ApiErrorUtils;
import ch.pizzapp.android.api.ApiService;
import ch.pizzapp.android.api.ResponseArray;
import ch.pizzapp.android.helper.DialogHelper;
import ch.pizzapp.android.helper.DisplayHelper;
import ch.pizzapp.android.interfaces.RecyclerItemClickListener;
import ch.pizzapp.android.model.CampaignModel;
import ch.pizzapp.android.model.menu.MenuProductModel;
import ch.pizzapp.android.view.AppToolbar;
import ch.pizzapp.android.view.GridSpacesItemDecoration;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
public class CampaignProductListActivity extends BaseActivity {
@BindView(R.id.campaignProductsAppToolbar) AppToolbar campaignProductsAppToolbar;
@BindView(R.id.campaignProductRecyclerView) RecyclerView campaignProductRecyclerView;
private ArrayList<MenuProductModel> menuProductList = new ArrayList<>();
private MenuProductRecyclerAdapter menuProductRecyclerAdapter;
private CampaignModel campaignModel;
private int REQUEST_CODE_CAMPAIGN_PRODUCT_PROPERTIES = 4756;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_campaign_product_list);
ButterKnife.bind(this);
getDataFromIntent();
initViews();
getCampaignProducts();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == REQUEST_CODE_CAMPAIGN_PRODUCT_PROPERTIES && resultCode == RESULT_OK){
setResult(RESULT_OK);
finish();
}
}
private void getDataFromIntent(){
campaignModel = (CampaignModel) getIntent().getSerializableExtra("campaignModel");
}
private void initViews(){
campaignProductsAppToolbar.setTitle(campaignModel.getName());
initRecyclerView();
}
private void initRecyclerView(){
GridLayoutManager layoutManager = new GridLayoutManager(BaseActivity.currentActivity, 2);
campaignProductRecyclerView.setLayoutManager(layoutManager);
menuProductRecyclerAdapter = new MenuProductRecyclerAdapter(
menuProductList,
true,
new RecyclerItemClickListener() {
@Override
public void onItemClick(View view, int position) {
Intent productPropertiesIntent = new Intent(BaseActivity.currentActivity, CampaignProductDetailsActivity.class);
productPropertiesIntent.putExtra("menuProductModel", menuProductList.get(position));
productPropertiesIntent.putExtra("campaignModel", campaignModel);
//productPropertiesIntent.putExtra("isFromPizzapassCampaign", categoryModel.isPizzapassCampaign());
//productPropertiesIntent.putExtra("isFromChampagneCampaign", categoryModel.isChampagneCampaign());
startActivityForResult(productPropertiesIntent, REQUEST_CODE_CAMPAIGN_PRODUCT_PROPERTIES);
}
});
campaignProductRecyclerView.addItemDecoration(new GridSpacesItemDecoration(DisplayHelper.dpToPx(12)));
campaignProductRecyclerView.setAdapter(menuProductRecyclerAdapter);
}
private void getCampaignProducts(){
DialogHelper.showLoadingDialog();
Call<ResponseArray<MenuProductModel>> call = ApiService.apiInterface.getProductsByCategory(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())
fillAndNotifyProductList(response.body().getData());
else
ApiErrorUtils.parseError(response);
}
@Override
public void onFailure(Call<ResponseArray<MenuProductModel>> call, Throwable t) {
DialogHelper.hideLoadingDialog();
DialogHelper.showFailedDialog();
}
});
}
private void fillAndNotifyProductList(ArrayList<MenuProductModel> productList){
MenuProductModel.checkNull(productList);
menuProductList.clear();
menuProductList.addAll(productList);
sortProductsByName();
menuProductRecyclerAdapter.notifyDataSetChanged();
}
private void sortProductsByName(){
Collections.sort(menuProductList, new Comparator<MenuProductModel>() {
@Override
public int compare(MenuProductModel product1, MenuProductModel product2) {
return product1.getName().compareTo(product2.getName());
}
});
}
}

View File

@@ -40,7 +40,6 @@ import ch.pizzapp.android.helper.DialogHelper;
import ch.pizzapp.android.helper.PriceHelper; import ch.pizzapp.android.helper.PriceHelper;
import ch.pizzapp.android.helper.SessionHelper; import ch.pizzapp.android.helper.SessionHelper;
import ch.pizzapp.android.helper.SharedPrefsHelper; import ch.pizzapp.android.helper.SharedPrefsHelper;
import ch.pizzapp.android.model.CampaignModel;
import ch.pizzapp.android.model.CategoryModel; import ch.pizzapp.android.model.CategoryModel;
import ch.pizzapp.android.view.AppToolbar; import ch.pizzapp.android.view.AppToolbar;
import io.github.luizgrp.sectionedrecyclerviewadapter.SectionParameters; import io.github.luizgrp.sectionedrecyclerviewadapter.SectionParameters;
@@ -77,7 +76,6 @@ public class MainActivity extends BaseActivity {
private NavigationMenuRecyclerAdapter navigationMenuRecyclerAdapter; private NavigationMenuRecyclerAdapter navigationMenuRecyclerAdapter;
//private Badge badge; //private Badge badge;
private Animation animUp,animDown; private Animation animUp,animDown;
private CampaignModel campaignModel;
private SectionedRecyclerViewAdapter sectionAdapter = new SectionedRecyclerViewAdapter(); private SectionedRecyclerViewAdapter sectionAdapter = new SectionedRecyclerViewAdapter();
@@ -95,9 +93,14 @@ public class MainActivity extends BaseActivity {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
} }
@Override
protected void onResume() {
super.onResume();
setCartItemCount();
}
private void getDataFromIntent(){ private void getDataFromIntent(){
isStartWithOrderHistory = getIntent().getBooleanExtra("isStartWithOrderHistory", false); isStartWithOrderHistory = getIntent().getBooleanExtra("isStartWithOrderHistory", false);
campaignModel = (CampaignModel)getIntent().getSerializableExtra("campaignModel");
} }
private void initViews(){ private void initViews(){
@@ -158,10 +161,6 @@ public class MainActivity extends BaseActivity {
if(isStartWithOrderHistory){ if(isStartWithOrderHistory){
bottomNavigationView.setCurrentItem(1); bottomNavigationView.setCurrentItem(1);
} }
else if (campaignModel != null) {
CategoryModel campaignCategoryModel = new CategoryModel(campaignModel);
openProductsScreen(campaignCategoryModel);
}
else { else {
openProductsScreen(categoryList.get(2)); openProductsScreen(categoryList.get(2));
} }

View File

@@ -1,27 +1,14 @@
package ch.pizzapp.android.activity; package ch.pizzapp.android.activity;
import android.support.design.widget.BottomSheetBehavior;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import butterknife.BindString; import butterknife.BindString;
import butterknife.BindView; import butterknife.BindView;
@@ -42,20 +29,17 @@ import ch.pizzapp.android.helper.SharedPrefsHelper;
import ch.pizzapp.android.helper.TextHelper; import ch.pizzapp.android.helper.TextHelper;
import ch.pizzapp.android.interfaces.RecyclerItemClickListener; import ch.pizzapp.android.interfaces.RecyclerItemClickListener;
import ch.pizzapp.android.model.AddProductToBasketResponseModel; import ch.pizzapp.android.model.AddProductToBasketResponseModel;
import ch.pizzapp.android.model.AddToBasketOptionModel;
import ch.pizzapp.android.model.ZoneModel;
import ch.pizzapp.android.model.cart.CartInfoModel; import ch.pizzapp.android.model.cart.CartInfoModel;
import ch.pizzapp.android.model.menu.MenuProductModel; import ch.pizzapp.android.model.menu.MenuProductModel;
import ch.pizzapp.android.model.menu.MenuProductOptionModel; import ch.pizzapp.android.model.menu.MenuProductOptionModel;
import ch.pizzapp.android.model.menu.MenuProductOptionValueModel; import ch.pizzapp.android.model.menu.MenuProductOptionValueModel;
import okhttp3.FormBody; import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.Callback; import retrofit2.Callback;
import retrofit2.Response; import retrofit2.Response;
public class ProductPropertiesActivity extends BaseActivity { public class ProductDetailsActivity extends BaseActivity {
@BindView(R.id.closeImageView) ImageView closeImageView; @BindView(R.id.closeImageView) ImageView closeImageView;
@BindView(R.id.backIcon) ImageView backIcon; @BindView(R.id.backIcon) ImageView backIcon;
@@ -73,7 +57,6 @@ public class ProductPropertiesActivity extends BaseActivity {
@BindView(R.id.productCountTextView) TextView productCountTextView; @BindView(R.id.productCountTextView) TextView productCountTextView;
@BindString(R.string.no_options_selected_part) String noOptionsSelectedText; @BindString(R.string.no_options_selected_part) String noOptionsSelectedText;
@BindString(R.string.cannot_use_campaign) String cannotUseCampaignText;
private int productCount = 1; private int productCount = 1;
@@ -83,12 +66,11 @@ public class ProductPropertiesActivity extends BaseActivity {
private ArrayList<MenuProductOptionValueModel> productCheckboxOptionValueList = new ArrayList<>(); private ArrayList<MenuProductOptionValueModel> productCheckboxOptionValueList = new ArrayList<>();
private ProductRadioOptionsRecyclerAdapter productRadioOptionsRecyclerAdapter; private ProductRadioOptionsRecyclerAdapter productRadioOptionsRecyclerAdapter;
private ProductCheckboxOptionsRecyclerAdapter productCheckboxOptionsRecyclerAdapter; private ProductCheckboxOptionsRecyclerAdapter productCheckboxOptionsRecyclerAdapter;
private boolean isFromPizzapassCampaign, isFromChampagneCampaign;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setContentView(R.layout.activity_product_properties); setContentView(R.layout.activity_product_details);
ButterKnife.bind(this); ButterKnife.bind(this);
getDataFromIntent(); getDataFromIntent();
initViews(); initViews();
@@ -106,9 +88,6 @@ public class ProductPropertiesActivity extends BaseActivity {
finish(); finish();
break; break;
case R.id.increaseProductCountImageView: case R.id.increaseProductCountImageView:
if(isFromPizzapassCampaign || isFromChampagneCampaign){
return;
}
productCount++; productCount++;
productCountTextView.setText(String.valueOf(productCount)); productCountTextView.setText(String.valueOf(productCount));
productPriceTextView.setText( productPriceTextView.setText(
@@ -127,14 +106,8 @@ public class ProductPropertiesActivity extends BaseActivity {
case R.id.addToCartButton: case R.id.addToCartButton:
if(checkFields()){ if(checkFields()){
if(SessionHelper.isCustomerLoggedIn()){ if(SessionHelper.isCustomerLoggedIn()){
if((isFromPizzapassCampaign && SessionHelper.isUserUsedPizzapassCampaign()) ||
(isFromChampagneCampaign && SessionHelper.isUserUsedChampagneCampaign())){
DialogHelper.showAlertDialog(BaseActivity.currentActivity, cannotUseCampaignText);
}
else {
addProductToCart(); addProductToCart();
} }
}
else { else {
DialogHelper.showNeedToLoginDialog(R.string.need_to_login_for_shopping); DialogHelper.showNeedToLoginDialog(R.string.need_to_login_for_shopping);
} }
@@ -175,9 +148,8 @@ public class ProductPropertiesActivity extends BaseActivity {
private void getDataFromIntent(){ private void getDataFromIntent(){
menuProductModel = (MenuProductModel) getIntent().getSerializableExtra("menuProductModel"); menuProductModel = (MenuProductModel) getIntent().getSerializableExtra("menuProductModel");
isFromPizzapassCampaign = getIntent().getBooleanExtra("isFromPizzapassCampaign", false);
isFromChampagneCampaign = getIntent().getBooleanExtra("isFromChampagneCampaign", false);
} }
private void initViews(){ private void initViews(){
setFields(); setFields();
fillRadioAndCheckboxOptionLists(); fillRadioAndCheckboxOptionLists();
@@ -367,12 +339,6 @@ public class ProductPropertiesActivity extends BaseActivity {
response.body().isSuccess()){ response.body().isSuccess()){
SharedPrefsHelper.setCartItemCount(response.body().getData().getProducts().size()); SharedPrefsHelper.setCartItemCount(response.body().getData().getProducts().size());
SharedPrefsHelper.setCartTotalPrice(PriceHelper.removeCurrencyFromPrice(response.body().getData().getCartTotalModel().getText())); SharedPrefsHelper.setCartTotalPrice(PriceHelper.removeCurrencyFromPrice(response.body().getData().getCartTotalModel().getText()));
if(isFromPizzapassCampaign){
SessionHelper.setUserUsedPizzapassCampaign(true);
}
else if(isFromChampagneCampaign){
SessionHelper.setUserUsedChampagneCampaign(true);
}
/* /*
MainActivity mainActivity = (MainActivity) getActivity(); MainActivity mainActivity = (MainActivity) getActivity();

View File

@@ -92,10 +92,15 @@ public class CartFragment extends BaseFragment {
View view = inflater.inflate(R.layout.fragment_cart, container, false); View view = inflater.inflate(R.layout.fragment_cart, container, false);
ButterKnife.bind(this, view); ButterKnife.bind(this, view);
initViews(); initViews();
getCartProducts();
return view; return view;
} }
@Override
public void onResume() {
super.onResume();
getCartProducts();
}
@OnClick({R.id.clearCartButton, R.id.continueCartButton}) @OnClick({R.id.clearCartButton, R.id.continueCartButton})
protected void onClick(View view){ protected void onClick(View view){
switch (view.getId()){ switch (view.getId()){

View File

@@ -17,7 +17,7 @@ import butterknife.ButterKnife;
import ch.pizzapp.android.R; import ch.pizzapp.android.R;
import ch.pizzapp.android.activity.BaseActivity; import ch.pizzapp.android.activity.BaseActivity;
import ch.pizzapp.android.activity.MainActivity; import ch.pizzapp.android.activity.MainActivity;
import ch.pizzapp.android.activity.ProductPropertiesActivity; import ch.pizzapp.android.activity.ProductDetailsActivity;
import ch.pizzapp.android.adapter.recycler.MenuProductRecyclerAdapter; import ch.pizzapp.android.adapter.recycler.MenuProductRecyclerAdapter;
import ch.pizzapp.android.api.ApiErrorUtils; import ch.pizzapp.android.api.ApiErrorUtils;
import ch.pizzapp.android.api.ApiService; import ch.pizzapp.android.api.ApiService;
@@ -102,10 +102,8 @@ public class MenuFragment extends BaseFragment {
new RecyclerItemClickListener() { new RecyclerItemClickListener() {
@Override @Override
public void onItemClick(View view, int position) { public void onItemClick(View view, int position) {
Intent productPropertiesIntent = new Intent(BaseActivity.currentActivity, ProductPropertiesActivity.class); Intent productPropertiesIntent = new Intent(BaseActivity.currentActivity, ProductDetailsActivity.class);
productPropertiesIntent.putExtra("menuProductModel", menuProductList.get(position)); productPropertiesIntent.putExtra("menuProductModel", menuProductList.get(position));
productPropertiesIntent.putExtra("isFromPizzapassCampaign", categoryModel.isPizzapassCampaign());
productPropertiesIntent.putExtra("isFromChampagneCampaign", categoryModel.isChampagneCampaign());
startActivityForResult(productPropertiesIntent, REQUEST_CODE_PRODUCT_PROPERTIES); startActivityForResult(productPropertiesIntent, REQUEST_CODE_PRODUCT_PROPERTIES);
//showBottomsheetDialog(menuProductList.get(position)); //showBottomsheetDialog(menuProductList.get(position));
} }

View File

@@ -15,7 +15,7 @@ import butterknife.ButterKnife;
import ch.pizzapp.android.R; import ch.pizzapp.android.R;
import ch.pizzapp.android.activity.BaseActivity; import ch.pizzapp.android.activity.BaseActivity;
import ch.pizzapp.android.activity.MainActivity; import ch.pizzapp.android.activity.MainActivity;
import ch.pizzapp.android.activity.ProductPropertiesActivity; import ch.pizzapp.android.activity.ProductDetailsActivity;
import ch.pizzapp.android.adapter.recycler.MenuProductRecyclerAdapter; import ch.pizzapp.android.adapter.recycler.MenuProductRecyclerAdapter;
import ch.pizzapp.android.api.ApiConstants; import ch.pizzapp.android.api.ApiConstants;
import ch.pizzapp.android.api.ApiErrorUtils; import ch.pizzapp.android.api.ApiErrorUtils;
@@ -100,7 +100,7 @@ public class ProductFragment extends BaseFragment {
new RecyclerItemClickListener() { new RecyclerItemClickListener() {
@Override @Override
public void onItemClick(View view, int position) { public void onItemClick(View view, int position) {
Intent productPropertiesIntent = new Intent(BaseActivity.currentActivity, ProductPropertiesActivity.class); Intent productPropertiesIntent = new Intent(BaseActivity.currentActivity, ProductDetailsActivity.class);
productPropertiesIntent.putExtra("menuProductModel", productList.get(position)); productPropertiesIntent.putExtra("menuProductModel", productList.get(position));
startActivityForResult(productPropertiesIntent, REQUEST_CODE_PRODUCT_PROPERTIES); startActivityForResult(productPropertiesIntent, REQUEST_CODE_PRODUCT_PROPERTIES);
//showBottomsheetDialog(productList.get(position)); //showBottomsheetDialog(productList.get(position));

View File

@@ -3,6 +3,7 @@ package ch.pizzapp.android.fragment.createOrder;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -19,8 +20,8 @@ import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
import ch.pizzapp.android.R; import ch.pizzapp.android.R;
import ch.pizzapp.android.activity.BaseActivity; import ch.pizzapp.android.activity.BaseActivity;
import ch.pizzapp.android.activity.CampaignProductListActivity;
import ch.pizzapp.android.activity.CreateOrderActivity; import ch.pizzapp.android.activity.CreateOrderActivity;
import ch.pizzapp.android.activity.MainActivity;
import ch.pizzapp.android.api.ApiEndPoints; import ch.pizzapp.android.api.ApiEndPoints;
import ch.pizzapp.android.api.ApiErrorUtils; import ch.pizzapp.android.api.ApiErrorUtils;
import ch.pizzapp.android.api.ApiService; import ch.pizzapp.android.api.ApiService;
@@ -30,12 +31,15 @@ import ch.pizzapp.android.helper.PriceHelper;
import ch.pizzapp.android.helper.SessionHelper; import ch.pizzapp.android.helper.SessionHelper;
import ch.pizzapp.android.helper.SharedPrefsHelper; import ch.pizzapp.android.helper.SharedPrefsHelper;
import ch.pizzapp.android.model.CampaignModel; import ch.pizzapp.android.model.CampaignModel;
import ch.pizzapp.android.model.cart.CartInfoModel;
import ch.pizzapp.android.model.cart.CartProductModel; import ch.pizzapp.android.model.cart.CartProductModel;
import ch.pizzapp.android.view.AppInfoView; import ch.pizzapp.android.view.AppInfoView;
import retrofit2.Call; import retrofit2.Call;
import retrofit2.Callback; import retrofit2.Callback;
import retrofit2.Response; import retrofit2.Response;
import static android.app.Activity.RESULT_OK;
/** /**
* Created by cimenmus on 17/10/2017. * Created by cimenmus on 17/10/2017.
*/ */
@@ -63,6 +67,7 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
@BindString(R.string.something_went_wrong) String genericErrorText; @BindString(R.string.something_went_wrong) String genericErrorText;
public static final java.lang.String FRAGMENT_NAME = "orderSummaryFragment"; public static final java.lang.String FRAGMENT_NAME = "orderSummaryFragment";
private int REQUEST_CODE_CAMPAIGN_PRODUCT_LIST = 7847;
private CreateOrderActivity createOrderActivity; private CreateOrderActivity createOrderActivity;
public CreateOrderSummaryFragment() {} public CreateOrderSummaryFragment() {}
@@ -84,6 +89,15 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
return view; return view;
} }
@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.previousTextView, R.id.nextTextView}) @OnClick({R.id.previousTextView, R.id.nextTextView})
protected void onClick(View view){ protected void onClick(View view){
CreateOrderActivity createOrderActivity = (CreateOrderActivity) getActivity(); CreateOrderActivity createOrderActivity = (CreateOrderActivity) getActivity();
@@ -142,6 +156,20 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
} }
else { else {
checkChampagneCampaign(); checkChampagneCampaign();
/*
// dummy //
CampaignModel campaignModel = new CampaignModel();
campaignModel.setCategoryId("71");
campaignModel.setName("Pizzapass");
campaignModel.setCode("PIZZAPASS");
campaignModel.setDescription("10 pizza alana 11. pizza bizden!");
if(!SessionHelper.isUserUsedPizzapassCampaign()){
showPizzapassCampaignDialog(campaignModel);
}
else {
checkChampagneCampaign();
}
*/
} }
} }
else{ else{
@@ -183,9 +211,9 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
new MaterialDialog.SingleButtonCallback() { new MaterialDialog.SingleButtonCallback() {
@Override @Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
Intent campaignIntent = new Intent(BaseActivity.currentActivity, MainActivity.class); Intent campaignIntent = new Intent(BaseActivity.currentActivity, CampaignProductListActivity.class);
campaignIntent.putExtra("campaignModel", campaignModel); campaignIntent.putExtra("campaignModel", campaignModel);
BaseActivity.currentActivity.startActivity(campaignIntent); startActivityForResult(campaignIntent, REQUEST_CODE_CAMPAIGN_PRODUCT_LIST);
} }
}, },
R.string.decline_campaign, R.string.decline_campaign,
@@ -263,9 +291,9 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
new MaterialDialog.SingleButtonCallback() { new MaterialDialog.SingleButtonCallback() {
@Override @Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) { public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
Intent campaignIntent = new Intent(BaseActivity.currentActivity, MainActivity.class); Intent campaignIntent = new Intent(BaseActivity.currentActivity, CampaignProductListActivity.class);
campaignIntent.putExtra("campaignModel", campaignModel); campaignIntent.putExtra("campaignModel", campaignModel);
BaseActivity.currentActivity.startActivity(campaignIntent); startActivityForResult(campaignIntent, REQUEST_CODE_CAMPAIGN_PRODUCT_LIST);
} }
}, },
R.string.decline_campaign, R.string.decline_campaign,
@@ -384,4 +412,29 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
return containsAnyPizza; return containsAnyPizza;
} }
private void getCartProducts(){
DialogHelper.showLoadingDialog();
Call<ResponseObject<CartInfoModel>> call = ApiService.apiInterface.getCartProducts(
ApiEndPoints.API_GET_CART_PRODUCTS + SessionHelper.getCustomerToken().getToken());
call.enqueue(new Callback<ResponseObject<CartInfoModel>>() {
@Override
public void onResponse(Call<ResponseObject<CartInfoModel>> call, Response<ResponseObject<CartInfoModel>> response) {
DialogHelper.hideLoadingDialog();
if(response.isSuccessful() &&
response.body().getData() != null &&
response.body().isSuccess()){
createOrderActivity.setCartInfo(response.body().getData());
}
else
ApiErrorUtils.parseError(response);
}
@Override
public void onFailure(Call<ResponseObject<CartInfoModel>> call, Throwable t) {
DialogHelper.hideLoadingDialog();
DialogHelper.showFailedDialog();
}
});
}
} }

View File

@@ -27,25 +27,11 @@ public class CategoryModel implements Serializable{
@SerializedName("children") @SerializedName("children")
private ArrayList<CategoryModel> subCategoryList; private ArrayList<CategoryModel> subCategoryList;
private String campaignCode;
public void checkNull(){ public void checkNull(){
if(name == null) if(name == null)
name = ""; name = "";
} }
public CategoryModel(CampaignModel campaignModel){
try {
id = Integer.valueOf(campaignModel.getCategoryId());
}
catch (Exception e){
id = -1;
}
name = campaignModel.getName();
subCategoryList = new ArrayList<>();
campaignCode = campaignModel.getCode();
}
public static void checkNull(ArrayList<CategoryModel> categoryList){ public static void checkNull(ArrayList<CategoryModel> categoryList){
for (CategoryModel categoryModel : categoryList){ for (CategoryModel categoryModel : categoryList){
categoryModel.checkNull(); categoryModel.checkNull();
@@ -94,13 +80,4 @@ public class CategoryModel implements Serializable{
this.subCategoryList = subCategoryList; this.subCategoryList = subCategoryList;
} }
public boolean isPizzapassCampaign() {
return campaignCode != null && campaignCode.toUpperCase().equals(ApiConstants.CAMPAIGN_CODE_PIZZAPASS);
}
public boolean isChampagneCampaign() {
return campaignCode != null && campaignCode.toUpperCase().equals(ApiConstants.CAMPAIGN_CODE_CHAMPAGNE);
}
} }

View File

@@ -19,8 +19,8 @@ public class AppToolbar extends Toolbar {
private View rootView; private View rootView;
private TextView toolbarTitleTextView; private TextView toolbarTitleTextView;
private ImageView hamburgerIcon, backIcon; private ImageView hamburgerIcon, backIcon, closeIcon;
private boolean showHamburgerIcon, showBackIcon; private boolean showHamburgerIcon, showBackIcon, showCloseIcon;
private String title; private String title;
private int toolbarBackgroundColor, titleTextColor; private int toolbarBackgroundColor, titleTextColor;
@@ -42,6 +42,7 @@ public class AppToolbar extends Toolbar {
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.AppToolbar, 0, 0); TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.AppToolbar, 0, 0);
try { try {
showHamburgerIcon = a.getBoolean(R.styleable.AppToolbar_showHamburgerMenuIcon, false); showHamburgerIcon = a.getBoolean(R.styleable.AppToolbar_showHamburgerMenuIcon, false);
showCloseIcon = a.getBoolean(R.styleable.AppToolbar_showCloseIcon, false);
showBackIcon = a.getBoolean(R.styleable.AppToolbar_showBackIcon, false); showBackIcon = a.getBoolean(R.styleable.AppToolbar_showBackIcon, false);
title = a.getString(R.styleable.AppToolbar_title); title = a.getString(R.styleable.AppToolbar_title);
/* /*
@@ -65,17 +66,26 @@ public class AppToolbar extends Toolbar {
//this.setBackgroundResource(toolbarBackgroundColor); //this.setBackgroundResource(toolbarBackgroundColor);
//toolbarTitleTextView.setTextColor(titleTextColor); //toolbarTitleTextView.setTextColor(titleTextColor);
hamburgerIcon = (ImageView) rootView.findViewById(R.id.hamburgerIcon); hamburgerIcon = (ImageView) rootView.findViewById(R.id.hamburgerIcon);
closeIcon = (ImageView) rootView.findViewById(R.id.closeIcon);
backIcon = (ImageView) rootView.findViewById(R.id.backIcon); backIcon = (ImageView) rootView.findViewById(R.id.backIcon);
if(showHamburgerIcon) if(showHamburgerIcon)
hamburgerIcon.setVisibility(VISIBLE); hamburgerIcon.setVisibility(VISIBLE);
if(showBackIcon) if(showBackIcon)
backIcon.setVisibility(VISIBLE); backIcon.setVisibility(VISIBLE);
if(showCloseIcon)
closeIcon.setVisibility(VISIBLE);
backIcon.setOnClickListener(new OnClickListener() { backIcon.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
BaseActivity.currentActivity.onBackPressed(); BaseActivity.currentActivity.onBackPressed();
} }
}); });
closeIcon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
BaseActivity.currentActivity.onBackPressed();
}
});
if(title != null) { if(title != null) {
toolbarTitleTextView.setText(title); toolbarTitleTextView.setText(title);
toolbarTitleTextView.setVisibility(VISIBLE); toolbarTitleTextView.setVisibility(VISIBLE);

View File

@@ -0,0 +1,261 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingPrefix"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/white"
tools:context="ch.pizzapp.android.activity.CampaignProductDetailsActivity">
<ImageView
android:layout_width="36dp"
android:layout_height="36dp"
android:padding="12dp"
android:src="@drawable/ic_back"
android:visibility="gone"/>
<!-- android:background="@color/cart_dialog_background" -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:focusable="true"
android:focusableInTouchMode="true"
android:background="@color/white">
<ImageView
android:id="@+id/backIcon"
android:layout_width="36dp"
android:layout_height="36dp"
android:src="@drawable/ic_back"
android:tint="@color/red"
android:padding="8dp"
android:visibility="gone"/>
<ImageView
android:id="@+id/closeImageView"
android:layout_width="36dp"
android:layout_height="36dp"
android:src="@drawable/ic_cancel"
android:layout_gravity="right|end"
android:padding="12dp"
android:visibility="visible"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/productImageView"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_marginLeft="24dp"
android:layout_marginStart="24dp"
android:layout_marginRight="12dp"
android:layout_marginEnd="12dp"
android:layout_gravity="center_horizontal" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_marginRight="12dp"
android:layout_centerVertical="true"
android:layout_marginEnd="12dp"
android:layout_toRightOf="@+id/productImageView"
android:layout_toEndOf="@+id/productImageView">
<TextView
android:id="@+id/productNameTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/navy"
android:textSize="18sp"
android:padding="12sp"
android:text="Pizza Formaggio"
fontPath="fonts/Quicksand-Bold.ttf"
android:layout_gravity="center"
android:gravity="center" />
<TextView
android:id="@+id/productPriceTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textColor="@color/red"
android:text="CHF 25.00"
android:textSize="18sp"
android:paddingBottom="12dp"
android:paddingLeft="12dp"
android:paddingStart="12dp"
android:paddingRight="12dp"
android:paddingEnd="12dp"
fontPath="fonts/Quicksand-Bold.ttf"
android:layout_gravity="center"
android:gravity="center" />
</LinearLayout>
</RelativeLayout>
<TextView
android:id="@+id/productDescriptionTextView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="24dp"
android:paddingBottom="12dp"
android:paddingLeft="24dp"
android:paddingStart="24dp"
android:paddingRight="24dp"
android:paddingEnd="24dp"
android:textColor="@color/navy"
android:text="Mozzarella, Artischocken, Pilze, Peperoni, Oliven, Oregano"/>
<Button
android:id="@+id/addToCartButton"
android:layout_width="match_parent"
android:layout_height="48dp"
android:text="@string/add_to_cart"
style="@style/PizzalinkRedButton"
android:layout_marginTop="12dp"
android:layout_marginBottom="12dp"/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
fontPath="fonts/Quicksand-Bold.ttf"
android:text="@string/count"
android:paddingTop="12dp"
android:paddingLeft="12dp"
android:paddingStart="12dp"
android:paddingRight="12dp"
android:paddingEnd="12dp"
android:textSize="16sp"
android:textColor="@color/navy"/>
<RelativeLayout
android:id="@+id/ProductCountLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_margin="12dp">
<ImageView
android:id="@+id/deccreaseProductCountImageView"
android:layout_width="24dp"
android:layout_height="24dp"
android:padding="4dp"
android:src="@drawable/ic_decrease"
android:layout_marginRight="4dp"
android:layout_marginEnd="4dp"
android:layout_alignParentBottom="true"
android:visibility="gone"/>
<TextView
android:id="@+id/productCountTextView"
android:layout_width="24dp"
android:gravity="center"
android:layout_height="wrap_content"
android:text="1"
android:includeFontPadding="false"
android:lineSpacingExtra="0dp"
android:textSize="24sp"
fontPath="fonts/Quicksand-Bold.ttf"
android:layout_toRightOf="@+id/deccreaseProductCountImageView"
android:layout_toEndOf="@+id/deccreaseProductCountImageView"
android:layout_alignParentBottom="true"
android:textColor="@color/navy"/>
<ImageView
android:id="@+id/increaseProductCountImageView"
android:layout_width="24dp"
android:layout_height="24dp"
android:padding="4dp"
android:layout_gravity="center_vertical"
android:layout_toRightOf="@+id/productCountTextView"
android:layout_toEndOf="@+id/productCountTextView"
android:src="@drawable/ic_increase"
android:layout_alignParentBottom="true"
android:layout_marginLeft="4dp"
android:layout_marginStart="4dp"
android:visibility="gone"/>
</RelativeLayout>
<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:background="@color/navy"
android:layout_marginLeft="12dp"
android:layout_marginStart="12dp"
android:layout_marginRight="12dp"
android:layout_marginEnd="12dp"/>
<TextView
android:id="@+id/radioRecyclerHeaderTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
fontPath="fonts/Quicksand-Bold.ttf"
android:padding="12dp"
android:visibility="gone"
android:text="Size"
android:textSize="16sp"
android:textColor="@color/navy"/>
<android.support.v7.widget.RecyclerView
android:id="@+id/radioRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"/>
<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:background="@color/navy"
android:layout_marginLeft="12dp"
android:layout_marginStart="12dp"
android:layout_marginRight="12dp"
android:layout_marginEnd="12dp"/>
<TextView
android:id="@+id/checkboxRecyclerHeaderTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
fontPath="fonts/Quicksand-Bold.ttf"
android:padding="12dp"
android:visibility="gone"
android:textSize="16sp"
android:textColor="@color/navy"/>
<android.support.v7.widget.RecyclerView
android:id="@+id/checkboxRecyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"/>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</LinearLayout>
</LinearLayout>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="ch.pizzapp.android.activity.CampaignProductListActivity">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/background_wood"/>
<ch.pizzapp.android.view.AppToolbar
android:id="@+id/campaignProductsAppToolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
app:showCloseIcon="true"
app:title="@string/activity_title_login"
app:titleTextColor="@color/navy" />
<android.support.v7.widget.RecyclerView
android:id="@+id/campaignProductRecyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:layout_below="@+id/campaignProductsAppToolbar"/>
</RelativeLayout>

View File

@@ -74,7 +74,7 @@
<com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx <com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx
android:id="@+id/bottomNavigationView" android:id="@+id/bottomNavigationView"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" android:layout_height="?android:attr/actionBarSize"
app:itemIconTint="@drawable/selector_bottom_navigation_item" app:itemIconTint="@drawable/selector_bottom_navigation_item"
app:itemTextColor="@drawable/selector_bottom_navigation_item" app:itemTextColor="@drawable/selector_bottom_navigation_item"
android:background="@color/navy" android:background="@color/navy"

View File

@@ -14,7 +14,7 @@
<RelativeLayout <RelativeLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"> android:layout_height="?android:attr/actionBarSize">
<TextView <TextView
android:id="@+id/previousTextView" android:id="@+id/previousTextView"

View File

@@ -6,7 +6,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingPrefix" tools:ignore="MissingPrefix"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize" android:layout_height="?android:attr/actionBarSize"
android:contentInsetLeft="0dp" android:contentInsetLeft="0dp"
android:contentInsetStart="0dp" android:contentInsetStart="0dp"
app:contentInsetLeft="0dp" app:contentInsetLeft="0dp"
@@ -27,17 +27,27 @@
<ImageView <ImageView
android:id="@+id/hamburgerIcon" android:id="@+id/hamburgerIcon"
android:layout_width="?attr/actionBarSize" android:layout_width="?android:attr/actionBarSize"
android:layout_height="?attr/actionBarSize" android:layout_height="?android:attr/actionBarSize"
android:padding="20dp" android:padding="20dp"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:src="@drawable/ic_hamburger_menu" android:src="@drawable/ic_hamburger_menu"
android:visibility="gone"/> android:visibility="gone"/>
<ImageView
android:id="@+id/closeIcon"
android:layout_width="?android:attr/actionBarSize"
android:layout_height="?android:attr/actionBarSize"
android:padding="20dp"
android:layout_centerVertical="true"
android:src="@drawable/ic_cancel"
android:tint="@color/white"
android:visibility="gone"/>
<ImageView <ImageView
android:id="@+id/backIcon" android:id="@+id/backIcon"
android:layout_width="?attr/actionBarSize" android:layout_width="?android:attr/actionBarSize"
android:layout_height="?attr/actionBarSize" android:layout_height="?android:attr/actionBarSize"
android:padding="20dp" android:padding="20dp"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:src="@drawable/ic_back" android:src="@drawable/ic_back"
@@ -54,8 +64,8 @@
android:visibility="gone"/> android:visibility="gone"/>
<ImageView <ImageView
android:layout_width="?attr/actionBarSize" android:layout_width="?android:attr/actionBarSize"
android:layout_height="?attr/actionBarSize" android:layout_height="?android:attr/actionBarSize"
android:layout_alignParentRight="true" android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:padding="12dp" android:padding="12dp"

View File

@@ -4,6 +4,7 @@
<declare-styleable name="AppToolbar"> <declare-styleable name="AppToolbar">
<attr name="showHamburgerMenuIcon" format="boolean" /> <attr name="showHamburgerMenuIcon" format="boolean" />
<attr name="showBackIcon" format="boolean" /> <attr name="showBackIcon" format="boolean" />
<attr name="showCloseIcon" format="boolean" />
<attr name="title" format="string" /> <attr name="title" format="string" />
<attr name="toolbarBackgroundColor" format="reference" /> <attr name="toolbarBackgroundColor" format="reference" />
<attr name="toolbarTitleTextColor" format="reference" /> <attr name="toolbarTitleTextColor" format="reference" />

View File

@@ -31,8 +31,10 @@
<!-- General--> <!-- General-->
<!-- SplashActivity -->   <!-- SplashActivity -->  
<string name="no_network_message">Keine Internetverbindung. Bitte versuchen Sie es später noch einmal.</string>   <string name="no_network_message">Keine Internetverbindung. Bitte versuchen Sie es später noch einmal.</string>
<string name="alert_update_app">Sie müssen die Pizzalink-Applikation aktualisieren, um sie zu verwenden.</string>       
<string name="alert_update_app">Sie müssen die Pizzalink-Applikation aktualisieren, um sie zu verwenden.</string>
    
<string name="update_app">AKTUALISIEREN</string> <string name="update_app">AKTUALISIEREN</string>
<!-- SplashActivity --> <!-- SplashActivity -->
@@ -48,7 +50,8 @@
<!-- ForgotPasswordActivity--> <!-- ForgotPasswordActivity-->
<string name="activity_title_forgot_password">Passwort vergessen</string>     <string name="activity_title_forgot_password">Passwort vergessen</string>    
<string name="reset_password_hint"> Geben sie beim registrieren ihre E-Mail-Adresse ein und folgen Sie den Anweisungen.</string>     <string name="reset_password_hint"> Geben sie beim registrieren ihre E-Mail-Adresse ein und folgen Sie den Anweisungen.</string>
    
<string name="reset_password_button">SENDEN</string>     <string name="reset_password_button">SENDEN</string>    
<string name="password_reset">Erforderliche Informationen wurden an Ihre E-Mail-Adresse geschickt. Folgen Sie den Anweisungen um Ihr Passwort zurückzusetzen.</string> <string name="password_reset">Erforderliche Informationen wurden an Ihre E-Mail-Adresse geschickt. Folgen Sie den Anweisungen um Ihr Passwort zurückzusetzen.</string>
<!-- ForgotPasswordActivity--> <!-- ForgotPasswordActivity-->
@@ -70,7 +73,8 @@
<string name="alert_fill_all_fields">Bitte füllen Sie alle Felder aus.</string>     <string name="alert_fill_all_fields">Bitte füllen Sie alle Felder aus.</string>    
<string name="alert_invalid_email">Bitte geben sie eine gültige E-Mail-Adresse ein.</string>   <string name="alert_invalid_email">Bitte geben sie eine gültige E-Mail-Adresse ein.</string>  
<string name="alert_passwords_not_matched">Passwörter stimmen nicht überein.</string>     <string name="alert_passwords_not_matched">Passwörter stimmen nicht überein.</string>    
<string name="alert_invalid_post_code">Bitte geben sie eine gültige Postleitzahl ein.</string>     <string name="alert_invalid_post_code">Bitte geben sie eine gültige Postleitzahl ein.</string> 
  
<string name="alert_select_country_first">Bitte wählen Sie zuerst ein Land.</string>     <string name="alert_select_country_first">Bitte wählen Sie zuerst ein Land.</string>    
<string name="button_register">REGISTRIEREN</string> <string name="button_register">REGISTRIEREN</string>
<!-- RegisterActivity--> <!-- RegisterActivity-->
@@ -97,7 +101,8 @@
<string name="continue_cart">WEITER</string>     <string name="continue_cart">WEITER</string>    
<string name="clear_cart">LÖSCHEN</string>     <string name="clear_cart">LÖSCHEN</string>    
<string name="no_product_on_cart">Es befindet sich kein Produkt im Warenkorb.</string>     <string name="no_product_on_cart">Es befindet sich kein Produkt im Warenkorb.</string>    
<string name="alert_remove_prdocut_from_cart">Möchten Sie das Produkt aus dem Warenkorb entfernen?</string>     <string name="alert_remove_prdocut_from_cart">Möchten Sie das Produkt aus dem Warenkorb entfernen?</string>
    
<string name="product_removed_from_cart">Produkt wurde aus dem Warenkorb entfernt.</string>     <string name="product_removed_from_cart">Produkt wurde aus dem Warenkorb entfernt.</string>    
<string name="alert_clear_cart">Möchten Sie alle Produkte aus dem Warenkorb entfernen?</string> <string name="alert_clear_cart">Möchten Sie alle Produkte aus dem Warenkorb entfernen?</string>
<!-- CartFragment--> <!-- CartFragment-->