diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
index 8217d34..1413b72 100644
Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ
diff --git a/app/build.gradle b/app/build.gradle
index 9c9abfe..31a7ad7 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -21,6 +21,7 @@ android {
dependencies {
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', {
exclude group: 'com.android.support', module: 'support-annotations'
})
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a6ac899..f23e80f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -34,7 +34,7 @@
+ android:windowSoftInputMode="adjustPan" />
@@ -51,11 +51,13 @@
android:name=".activity.UpdateProfileActivity"
android:screenOrientation="portrait" />
+ android:name=".activity.ProductDetailsActivity"
+ android:screenOrientation="portrait" />
+ android:screenOrientation="portrait" />
+
+
\ No newline at end of file
diff --git a/app/src/main/java/ch/pizzapp/android/activity/CampaignProductDetailsActivity.java b/app/src/main/java/ch/pizzapp/android/activity/CampaignProductDetailsActivity.java
new file mode 100644
index 0000000..52d9d3f
--- /dev/null
+++ b/app/src/main/java/ch/pizzapp/android/activity/CampaignProductDetailsActivity.java
@@ -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 productRadioOptionValueList = new ArrayList<>();
+ private ArrayList 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> 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 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 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> call = ApiService.apiInterface.getCartProducts(
+ ApiEndPoints.API_GET_CART_PRODUCTS + SessionHelper.getCustomerToken().getToken());
+ call.enqueue(new Callback>() {
+ @Override
+ public void onResponse(Call> call, Response> 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> 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;
+ }
+
+}
\ No newline at end of file
diff --git a/app/src/main/java/ch/pizzapp/android/activity/CampaignProductListActivity.java b/app/src/main/java/ch/pizzapp/android/activity/CampaignProductListActivity.java
new file mode 100644
index 0000000..d6b85ca
--- /dev/null
+++ b/app/src/main/java/ch/pizzapp/android/activity/CampaignProductListActivity.java
@@ -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 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> call = ApiService.apiInterface.getProductsByCategory(campaignModel.getCategoryId());
+ call.enqueue(new Callback>() {
+ @Override
+ public void onResponse(Call> call, Response> 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> call, Throwable t) {
+ DialogHelper.hideLoadingDialog();
+ DialogHelper.showFailedDialog();
+ }
+ });
+ }
+
+ private void fillAndNotifyProductList(ArrayList productList){
+ MenuProductModel.checkNull(productList);
+ menuProductList.clear();
+ menuProductList.addAll(productList);
+ sortProductsByName();
+ menuProductRecyclerAdapter.notifyDataSetChanged();
+ }
+
+ private void sortProductsByName(){
+ Collections.sort(menuProductList, new Comparator() {
+ @Override
+ public int compare(MenuProductModel product1, MenuProductModel product2) {
+ return product1.getName().compareTo(product2.getName());
+ }
+ });
+ }
+
+}
diff --git a/app/src/main/java/ch/pizzapp/android/activity/MainActivity.java b/app/src/main/java/ch/pizzapp/android/activity/MainActivity.java
index b291db3..76189b0 100644
--- a/app/src/main/java/ch/pizzapp/android/activity/MainActivity.java
+++ b/app/src/main/java/ch/pizzapp/android/activity/MainActivity.java
@@ -40,7 +40,6 @@ import ch.pizzapp.android.helper.DialogHelper;
import ch.pizzapp.android.helper.PriceHelper;
import ch.pizzapp.android.helper.SessionHelper;
import ch.pizzapp.android.helper.SharedPrefsHelper;
-import ch.pizzapp.android.model.CampaignModel;
import ch.pizzapp.android.model.CategoryModel;
import ch.pizzapp.android.view.AppToolbar;
import io.github.luizgrp.sectionedrecyclerviewadapter.SectionParameters;
@@ -77,7 +76,6 @@ public class MainActivity extends BaseActivity {
private NavigationMenuRecyclerAdapter navigationMenuRecyclerAdapter;
//private Badge badge;
private Animation animUp,animDown;
- private CampaignModel campaignModel;
private SectionedRecyclerViewAdapter sectionAdapter = new SectionedRecyclerViewAdapter();
@@ -95,9 +93,14 @@ public class MainActivity extends BaseActivity {
super.onActivityResult(requestCode, resultCode, data);
}
+ @Override
+ protected void onResume() {
+ super.onResume();
+ setCartItemCount();
+ }
+
private void getDataFromIntent(){
isStartWithOrderHistory = getIntent().getBooleanExtra("isStartWithOrderHistory", false);
- campaignModel = (CampaignModel)getIntent().getSerializableExtra("campaignModel");
}
private void initViews(){
@@ -158,10 +161,6 @@ public class MainActivity extends BaseActivity {
if(isStartWithOrderHistory){
bottomNavigationView.setCurrentItem(1);
}
- else if (campaignModel != null) {
- CategoryModel campaignCategoryModel = new CategoryModel(campaignModel);
- openProductsScreen(campaignCategoryModel);
- }
else {
openProductsScreen(categoryList.get(2));
}
diff --git a/app/src/main/java/ch/pizzapp/android/activity/ProductPropertiesActivity.java b/app/src/main/java/ch/pizzapp/android/activity/ProductDetailsActivity.java
similarity index 91%
rename from app/src/main/java/ch/pizzapp/android/activity/ProductPropertiesActivity.java
rename to app/src/main/java/ch/pizzapp/android/activity/ProductDetailsActivity.java
index 861c9e1..509de53 100644
--- a/app/src/main/java/ch/pizzapp/android/activity/ProductPropertiesActivity.java
+++ b/app/src/main/java/ch/pizzapp/android/activity/ProductDetailsActivity.java
@@ -1,27 +1,14 @@
package ch.pizzapp.android.activity;
-import android.support.design.widget.BottomSheetBehavior;
-import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
-import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
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.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
import butterknife.BindString;
import butterknife.BindView;
@@ -42,20 +29,17 @@ 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.AddToBasketOptionModel;
-import ch.pizzapp.android.model.ZoneModel;
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.MediaType;
import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
-public class ProductPropertiesActivity extends BaseActivity {
+public class ProductDetailsActivity extends BaseActivity {
@BindView(R.id.closeImageView) ImageView closeImageView;
@BindView(R.id.backIcon) ImageView backIcon;
@@ -73,7 +57,6 @@ public class ProductPropertiesActivity extends BaseActivity {
@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;
@@ -83,12 +66,11 @@ public class ProductPropertiesActivity extends BaseActivity {
private ArrayList productCheckboxOptionValueList = new ArrayList<>();
private ProductRadioOptionsRecyclerAdapter productRadioOptionsRecyclerAdapter;
private ProductCheckboxOptionsRecyclerAdapter productCheckboxOptionsRecyclerAdapter;
- private boolean isFromPizzapassCampaign, isFromChampagneCampaign;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_product_properties);
+ setContentView(R.layout.activity_product_details);
ButterKnife.bind(this);
getDataFromIntent();
initViews();
@@ -106,9 +88,6 @@ public class ProductPropertiesActivity extends BaseActivity {
finish();
break;
case R.id.increaseProductCountImageView:
- if(isFromPizzapassCampaign || isFromChampagneCampaign){
- return;
- }
productCount++;
productCountTextView.setText(String.valueOf(productCount));
productPriceTextView.setText(
@@ -127,13 +106,7 @@ public class ProductPropertiesActivity extends BaseActivity {
case R.id.addToCartButton:
if(checkFields()){
if(SessionHelper.isCustomerLoggedIn()){
- if((isFromPizzapassCampaign && SessionHelper.isUserUsedPizzapassCampaign()) ||
- (isFromChampagneCampaign && SessionHelper.isUserUsedChampagneCampaign())){
- DialogHelper.showAlertDialog(BaseActivity.currentActivity, cannotUseCampaignText);
- }
- else {
- addProductToCart();
- }
+ addProductToCart();
}
else {
DialogHelper.showNeedToLoginDialog(R.string.need_to_login_for_shopping);
@@ -175,9 +148,8 @@ public class ProductPropertiesActivity extends BaseActivity {
private void getDataFromIntent(){
menuProductModel = (MenuProductModel) getIntent().getSerializableExtra("menuProductModel");
- isFromPizzapassCampaign = getIntent().getBooleanExtra("isFromPizzapassCampaign", false);
- isFromChampagneCampaign = getIntent().getBooleanExtra("isFromChampagneCampaign", false);
}
+
private void initViews(){
setFields();
fillRadioAndCheckboxOptionLists();
@@ -367,12 +339,6 @@ public class ProductPropertiesActivity extends BaseActivity {
response.body().isSuccess()){
SharedPrefsHelper.setCartItemCount(response.body().getData().getProducts().size());
SharedPrefsHelper.setCartTotalPrice(PriceHelper.removeCurrencyFromPrice(response.body().getData().getCartTotalModel().getText()));
- if(isFromPizzapassCampaign){
- SessionHelper.setUserUsedPizzapassCampaign(true);
- }
- else if(isFromChampagneCampaign){
- SessionHelper.setUserUsedChampagneCampaign(true);
- }
/*
MainActivity mainActivity = (MainActivity) getActivity();
diff --git a/app/src/main/java/ch/pizzapp/android/fragment/CartFragment.java b/app/src/main/java/ch/pizzapp/android/fragment/CartFragment.java
index c02aaa6..e109a4d 100644
--- a/app/src/main/java/ch/pizzapp/android/fragment/CartFragment.java
+++ b/app/src/main/java/ch/pizzapp/android/fragment/CartFragment.java
@@ -92,10 +92,15 @@ public class CartFragment extends BaseFragment {
View view = inflater.inflate(R.layout.fragment_cart, container, false);
ButterKnife.bind(this, view);
initViews();
- getCartProducts();
return view;
}
+ @Override
+ public void onResume() {
+ super.onResume();
+ getCartProducts();
+ }
+
@OnClick({R.id.clearCartButton, R.id.continueCartButton})
protected void onClick(View view){
switch (view.getId()){
diff --git a/app/src/main/java/ch/pizzapp/android/fragment/MenuFragment.java b/app/src/main/java/ch/pizzapp/android/fragment/MenuFragment.java
index e0ed587..b06d4e7 100644
--- a/app/src/main/java/ch/pizzapp/android/fragment/MenuFragment.java
+++ b/app/src/main/java/ch/pizzapp/android/fragment/MenuFragment.java
@@ -17,7 +17,7 @@ import butterknife.ButterKnife;
import ch.pizzapp.android.R;
import ch.pizzapp.android.activity.BaseActivity;
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.api.ApiErrorUtils;
import ch.pizzapp.android.api.ApiService;
@@ -102,10 +102,8 @@ public class MenuFragment extends BaseFragment {
new RecyclerItemClickListener() {
@Override
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("isFromPizzapassCampaign", categoryModel.isPizzapassCampaign());
- productPropertiesIntent.putExtra("isFromChampagneCampaign", categoryModel.isChampagneCampaign());
startActivityForResult(productPropertiesIntent, REQUEST_CODE_PRODUCT_PROPERTIES);
//showBottomsheetDialog(menuProductList.get(position));
}
diff --git a/app/src/main/java/ch/pizzapp/android/fragment/ProductFragment.java b/app/src/main/java/ch/pizzapp/android/fragment/ProductFragment.java
index 8835994..6f75a3d 100644
--- a/app/src/main/java/ch/pizzapp/android/fragment/ProductFragment.java
+++ b/app/src/main/java/ch/pizzapp/android/fragment/ProductFragment.java
@@ -15,7 +15,7 @@ import butterknife.ButterKnife;
import ch.pizzapp.android.R;
import ch.pizzapp.android.activity.BaseActivity;
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.api.ApiConstants;
import ch.pizzapp.android.api.ApiErrorUtils;
@@ -100,7 +100,7 @@ public class ProductFragment extends BaseFragment {
new RecyclerItemClickListener() {
@Override
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));
startActivityForResult(productPropertiesIntent, REQUEST_CODE_PRODUCT_PROPERTIES);
//showBottomsheetDialog(productList.get(position));
diff --git a/app/src/main/java/ch/pizzapp/android/fragment/createOrder/CreateOrderSummaryFragment.java b/app/src/main/java/ch/pizzapp/android/fragment/createOrder/CreateOrderSummaryFragment.java
index 63d0b4e..6fc817a 100644
--- a/app/src/main/java/ch/pizzapp/android/fragment/createOrder/CreateOrderSummaryFragment.java
+++ b/app/src/main/java/ch/pizzapp/android/fragment/createOrder/CreateOrderSummaryFragment.java
@@ -3,6 +3,7 @@ package ch.pizzapp.android.fragment.createOrder;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
+import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -19,8 +20,8 @@ import butterknife.ButterKnife;
import butterknife.OnClick;
import ch.pizzapp.android.R;
import ch.pizzapp.android.activity.BaseActivity;
+import ch.pizzapp.android.activity.CampaignProductListActivity;
import ch.pizzapp.android.activity.CreateOrderActivity;
-import ch.pizzapp.android.activity.MainActivity;
import ch.pizzapp.android.api.ApiEndPoints;
import ch.pizzapp.android.api.ApiErrorUtils;
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.SharedPrefsHelper;
import ch.pizzapp.android.model.CampaignModel;
+import ch.pizzapp.android.model.cart.CartInfoModel;
import ch.pizzapp.android.model.cart.CartProductModel;
import ch.pizzapp.android.view.AppInfoView;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
+import static android.app.Activity.RESULT_OK;
+
/**
* Created by cimenmus on 17/10/2017.
*/
@@ -63,6 +67,7 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
@BindString(R.string.something_went_wrong) String genericErrorText;
public static final java.lang.String FRAGMENT_NAME = "orderSummaryFragment";
+ private int REQUEST_CODE_CAMPAIGN_PRODUCT_LIST = 7847;
private CreateOrderActivity createOrderActivity;
public CreateOrderSummaryFragment() {}
@@ -84,6 +89,15 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
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})
protected void onClick(View view){
CreateOrderActivity createOrderActivity = (CreateOrderActivity) getActivity();
@@ -142,6 +156,20 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
}
else {
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{
@@ -183,9 +211,9 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
new MaterialDialog.SingleButtonCallback() {
@Override
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);
- BaseActivity.currentActivity.startActivity(campaignIntent);
+ startActivityForResult(campaignIntent, REQUEST_CODE_CAMPAIGN_PRODUCT_LIST);
}
},
R.string.decline_campaign,
@@ -263,9 +291,9 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
new MaterialDialog.SingleButtonCallback() {
@Override
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);
- BaseActivity.currentActivity.startActivity(campaignIntent);
+ startActivityForResult(campaignIntent, REQUEST_CODE_CAMPAIGN_PRODUCT_LIST);
}
},
R.string.decline_campaign,
@@ -384,4 +412,29 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment {
return containsAnyPizza;
}
+ private void getCartProducts(){
+ DialogHelper.showLoadingDialog();
+ Call> call = ApiService.apiInterface.getCartProducts(
+ ApiEndPoints.API_GET_CART_PRODUCTS + SessionHelper.getCustomerToken().getToken());
+ call.enqueue(new Callback>() {
+ @Override
+ public void onResponse(Call> call, Response> 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> call, Throwable t) {
+ DialogHelper.hideLoadingDialog();
+ DialogHelper.showFailedDialog();
+ }
+ });
+ }
+
}
diff --git a/app/src/main/java/ch/pizzapp/android/model/CategoryModel.java b/app/src/main/java/ch/pizzapp/android/model/CategoryModel.java
index 8a85802..43461ad 100644
--- a/app/src/main/java/ch/pizzapp/android/model/CategoryModel.java
+++ b/app/src/main/java/ch/pizzapp/android/model/CategoryModel.java
@@ -27,25 +27,11 @@ public class CategoryModel implements Serializable{
@SerializedName("children")
private ArrayList subCategoryList;
- private String campaignCode;
-
public void checkNull(){
if(name == null)
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 categoryList){
for (CategoryModel categoryModel : categoryList){
categoryModel.checkNull();
@@ -94,13 +80,4 @@ public class CategoryModel implements Serializable{
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);
- }
-
-
}
diff --git a/app/src/main/java/ch/pizzapp/android/view/AppToolbar.java b/app/src/main/java/ch/pizzapp/android/view/AppToolbar.java
index b9513bf..d648c71 100644
--- a/app/src/main/java/ch/pizzapp/android/view/AppToolbar.java
+++ b/app/src/main/java/ch/pizzapp/android/view/AppToolbar.java
@@ -19,8 +19,8 @@ public class AppToolbar extends Toolbar {
private View rootView;
private TextView toolbarTitleTextView;
- private ImageView hamburgerIcon, backIcon;
- private boolean showHamburgerIcon, showBackIcon;
+ private ImageView hamburgerIcon, backIcon, closeIcon;
+ private boolean showHamburgerIcon, showBackIcon, showCloseIcon;
private String title;
private int toolbarBackgroundColor, titleTextColor;
@@ -42,6 +42,7 @@ public class AppToolbar extends Toolbar {
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.AppToolbar, 0, 0);
try {
showHamburgerIcon = a.getBoolean(R.styleable.AppToolbar_showHamburgerMenuIcon, false);
+ showCloseIcon = a.getBoolean(R.styleable.AppToolbar_showCloseIcon, false);
showBackIcon = a.getBoolean(R.styleable.AppToolbar_showBackIcon, false);
title = a.getString(R.styleable.AppToolbar_title);
/*
@@ -65,17 +66,26 @@ public class AppToolbar extends Toolbar {
//this.setBackgroundResource(toolbarBackgroundColor);
//toolbarTitleTextView.setTextColor(titleTextColor);
hamburgerIcon = (ImageView) rootView.findViewById(R.id.hamburgerIcon);
+ closeIcon = (ImageView) rootView.findViewById(R.id.closeIcon);
backIcon = (ImageView) rootView.findViewById(R.id.backIcon);
if(showHamburgerIcon)
hamburgerIcon.setVisibility(VISIBLE);
if(showBackIcon)
backIcon.setVisibility(VISIBLE);
+ if(showCloseIcon)
+ closeIcon.setVisibility(VISIBLE);
backIcon.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
BaseActivity.currentActivity.onBackPressed();
}
});
+ closeIcon.setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ BaseActivity.currentActivity.onBackPressed();
+ }
+ });
if(title != null) {
toolbarTitleTextView.setText(title);
toolbarTitleTextView.setVisibility(VISIBLE);
diff --git a/app/src/main/res/layout/activity_campaign_product_details.xml b/app/src/main/res/layout/activity_campaign_product_details.xml
new file mode 100644
index 0000000..2b7ce3f
--- /dev/null
+++ b/app/src/main/res/layout/activity_campaign_product_details.xml
@@ -0,0 +1,261 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_campaign_product_list.xml b/app/src/main/res/layout/activity_campaign_product_list.xml
new file mode 100644
index 0000000..a329858
--- /dev/null
+++ b/app/src/main/res/layout/activity_campaign_product_list.xml
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 57605c7..2a24d2a 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -74,7 +74,7 @@
+ android:layout_height="?android:attr/actionBarSize">
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index df1ae31..6e1cc8a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -31,8 +31,10 @@
- Keine Internetverbindung. Bitte versuchen Sie es später noch einmal.
- Sie müssen die Pizzalink-Applikation aktualisieren, um sie zu verwenden.
+ Keine Internetverbindung. Bitte versuchen Sie es später noch einmal.
+
+ Sie müssen die Pizzalink-Applikation aktualisieren, um sie zu verwenden.
+
AKTUALISIEREN
@@ -48,7 +50,8 @@
Passwort vergessen
- Geben sie beim registrieren ihre E-Mail-Adresse ein und folgen Sie den Anweisungen.
+ Geben sie beim registrieren ihre E-Mail-Adresse ein und folgen Sie den Anweisungen.
+
SENDEN
Erforderliche Informationen wurden an Ihre E-Mail-Adresse geschickt. Folgen Sie den Anweisungen um Ihr Passwort zurückzusetzen.
@@ -70,7 +73,8 @@
Bitte füllen Sie alle Felder aus.
Bitte geben sie eine gültige E-Mail-Adresse ein.
Passwörter stimmen nicht überein.
- Bitte geben sie eine gültige Postleitzahl ein.
+ Bitte geben sie eine gültige Postleitzahl ein.
+
Bitte wählen Sie zuerst ein Land.
REGISTRIEREN
@@ -97,7 +101,8 @@
WEITER
LÖSCHEN
Es befindet sich kein Produkt im Warenkorb.
- Möchten Sie das Produkt aus dem Warenkorb entfernen?
+ Möchten Sie das Produkt aus dem Warenkorb entfernen?
+
Produkt wurde aus dem Warenkorb entfernt.
Möchten Sie alle Produkte aus dem Warenkorb entfernen?