From 7b19d9dab9e776233f5e7829002beeaa9e2096be Mon Sep 17 00:00:00 2001 From: cimenmus Date: Fri, 26 Jan 2018 22:58:57 +0300 Subject: [PATCH] bug fixes --- app/src/main/AndroidManifest.xml | 3 +- .../android/activity/CreateOrderActivity.java | 9 +++ .../android/activity/SplashActivity.java | 25 ++++++- .../pizzalink/android/api/ApiEndPoints.java | 3 +- .../pizzalink/android/api/ApiInterface.java | 5 +- .../createOrder/CreateOrderNoteFragment.java | 74 ++++++++++++++++++- .../CreateOrderSummaryFragment.java | 43 ++++++++++- .../android/helper/SharedPrefsHelper.java | 11 +++ .../android/model/cart/CartProductModel.java | 13 ++++ .../layout/activity_product_properties.xml | 2 + .../res/layout/fragment_create_order_note.xml | 67 ++++++++++++++++- app/src/main/res/values/strings.xml | 3 + 12 files changed, 250 insertions(+), 8 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 58955de..e59076b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -33,7 +33,8 @@ android:screenOrientation="portrait" /> + android:screenOrientation="portrait" + android:windowSoftInputMode="adjustPan"/> diff --git a/app/src/main/java/ch/pizzalink/android/activity/CreateOrderActivity.java b/app/src/main/java/ch/pizzalink/android/activity/CreateOrderActivity.java index 0266610..ab2fd33 100644 --- a/app/src/main/java/ch/pizzalink/android/activity/CreateOrderActivity.java +++ b/app/src/main/java/ch/pizzalink/android/activity/CreateOrderActivity.java @@ -31,6 +31,7 @@ public class CreateOrderActivity extends BaseActivity { private ShippingMethodModel selectedShippingMethod; private AddressModel selectedShippingAddress; private PaymentMethodModel selectedPaymentMethod; + private Boolean slicePizza; private String orderNote; @Override @@ -185,4 +186,12 @@ public class CreateOrderActivity extends BaseActivity { public void setOrderNote(String orderNote){ this.orderNote = orderNote; } + + public Boolean getSlicePizza() { + return slicePizza; + } + + public void setSlicePizza(Boolean slicePizza) { + this.slicePizza = slicePizza; + } } diff --git a/app/src/main/java/ch/pizzalink/android/activity/SplashActivity.java b/app/src/main/java/ch/pizzalink/android/activity/SplashActivity.java index c1af670..6244ac1 100644 --- a/app/src/main/java/ch/pizzalink/android/activity/SplashActivity.java +++ b/app/src/main/java/ch/pizzalink/android/activity/SplashActivity.java @@ -102,7 +102,7 @@ public class SplashActivity extends BaseActivity { response.body().isSuccess()){ CategoryModel.checkNull(response.body().getData()); SharedPrefsHelper.saveCategoryList(response.body().getData()); - getIgnoredCategoryIds(); + getPizzaCategoryIds(); } else ApiErrorUtils.parseError(response); @@ -115,6 +115,29 @@ public class SplashActivity extends BaseActivity { }); } + private void getPizzaCategoryIds(){ + Call> call = ApiService.apiInterface.getPizzaCategoryIds(); + call.enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + if(response.isSuccessful() && + response.body().getData() != null && + response.body().isSuccess()){ + SharedPrefsHelper.savePizzaCategoryIdList(response.body().getData()); + getIgnoredCategoryIds(); + } + else { + ApiErrorUtils.parseError(response); + } + } + + @Override + public void onFailure(Call> call, Throwable t) { + DialogHelper.showFailedDialog(); + } + }); + } + private void getIgnoredCategoryIds(){ Call> call = ApiService.apiInterface.getIgnoredCategoryIds(); call.enqueue(new Callback>() { diff --git a/app/src/main/java/ch/pizzalink/android/api/ApiEndPoints.java b/app/src/main/java/ch/pizzalink/android/api/ApiEndPoints.java index 130f315..a71ea9d 100644 --- a/app/src/main/java/ch/pizzalink/android/api/ApiEndPoints.java +++ b/app/src/main/java/ch/pizzalink/android/api/ApiEndPoints.java @@ -6,7 +6,8 @@ public class ApiEndPoints { private static final String SUFFIX = "&is_mobile=1"; public static final String API_GET_ALL_CATEGORIES = PREFIX + "getAllCategories" + SUFFIX; - public static final String API_GET_IGNORED_CATEGORI_IDS= PREFIX + "getIgnoredCategory" + SUFFIX; + public static final String API_GET_IGNORED_CATEGORY_IDS= PREFIX + "getIgnoredCategory" + SUFFIX; + public static final String API_GET_PIZZA_CATEGORY_IDS= PREFIX + "getPizzaCategories" + SUFFIX; public static final String API_REGISTER = PREFIX + "signUp" + SUFFIX; public static final String API_LOGIN = PREFIX + "login" + SUFFIX; public static final String API_LOGOUT = PREFIX + "logout" + SUFFIX; diff --git a/app/src/main/java/ch/pizzalink/android/api/ApiInterface.java b/app/src/main/java/ch/pizzalink/android/api/ApiInterface.java index a825812..07fba54 100644 --- a/app/src/main/java/ch/pizzalink/android/api/ApiInterface.java +++ b/app/src/main/java/ch/pizzalink/android/api/ApiInterface.java @@ -40,9 +40,12 @@ public interface ApiInterface { @GET(ApiEndPoints.API_GET_ALL_CATEGORIES) Call> getAllCategories(); - @GET(ApiEndPoints.API_GET_IGNORED_CATEGORI_IDS) + @GET(ApiEndPoints.API_GET_IGNORED_CATEGORY_IDS) Call> getIgnoredCategoryIds(); + @GET(ApiEndPoints.API_GET_PIZZA_CATEGORY_IDS) + Call> getPizzaCategoryIds(); + @FormUrlEncoded @POST(ApiEndPoints.API_REGISTER) Call> register(@FieldMap HashMap body); diff --git a/app/src/main/java/ch/pizzalink/android/fragment/createOrder/CreateOrderNoteFragment.java b/app/src/main/java/ch/pizzalink/android/fragment/createOrder/CreateOrderNoteFragment.java index 90a0883..fccedf0 100644 --- a/app/src/main/java/ch/pizzalink/android/fragment/createOrder/CreateOrderNoteFragment.java +++ b/app/src/main/java/ch/pizzalink/android/fragment/createOrder/CreateOrderNoteFragment.java @@ -1,11 +1,14 @@ package ch.pizzalink.android.fragment.createOrder; import android.os.Bundle; +import android.support.v7.widget.AppCompatRadioButton; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.LinearLayout; +import android.widget.RelativeLayout; import java.util.ArrayList; @@ -22,9 +25,11 @@ import ch.pizzalink.android.api.ApiService; import ch.pizzalink.android.api.ResponseObject; import ch.pizzalink.android.helper.DialogHelper; import ch.pizzalink.android.helper.SessionHelper; +import ch.pizzalink.android.helper.SharedPrefsHelper; import ch.pizzalink.android.interfaces.RecyclerItemClickListener; import ch.pizzalink.android.model.PaymentMethodModel; import ch.pizzalink.android.model.PaymentMethodsResponseModel; +import ch.pizzalink.android.model.cart.CartProductModel; import ch.pizzalink.android.view.PizzalinkEditText; import retrofit2.Call; import retrofit2.Callback; @@ -37,6 +42,9 @@ import retrofit2.Response; public class CreateOrderNoteFragment extends CreateOrderBaseFragment { @BindView(R.id.orderNotePizzalinkEditText) PizzalinkEditText orderNotePizzalinkEditText; + @BindView(R.id.slicePizzaLayout) LinearLayout slicePizzaLayout; + @BindView(R.id.yesRadioButton) AppCompatRadioButton yesRadioButton; + @BindView(R.id.noRadioButton) AppCompatRadioButton noRadioButton; public static final java.lang.String FRAGMENT_NAME = "createOrderNoteFragment"; private CreateOrderActivity createOrderActivity; @@ -60,13 +68,30 @@ public class CreateOrderNoteFragment extends CreateOrderBaseFragment { return view; } - @OnClick({R.id.previousTextView, R.id.nextTextView}) + @OnClick({R.id.yesLayout, R.id.noLayout, + R.id.previousTextView, R.id.nextTextView}) protected void onClick(View view){ switch (view.getId()){ + case R.id.yesLayout: + yesRadioButton.setChecked(true); + noRadioButton.setChecked(false); + break; + case R.id.noLayout: + noRadioButton.setChecked(true); + yesRadioButton.setChecked(false); + break; case R.id.previousTextView: createOrderActivity.onPreviousClicked(FRAGMENT_NAME); break; case R.id.nextTextView: + if(isCartContainsAnyPizza(createOrderActivity.getCartInfo().getProducts())){ + if(yesRadioButton.isChecked()){ + createOrderActivity.setSlicePizza(true); + } + else { + createOrderActivity.setSlicePizza(false); + } + } createOrderActivity.setOrderNote(orderNotePizzalinkEditText.getText()); createOrderActivity.onNextClicked(FRAGMENT_NAME); break; @@ -75,8 +100,53 @@ public class CreateOrderNoteFragment extends CreateOrderBaseFragment { private void initViews(){ createOrderActivity = (CreateOrderActivity) getActivity(); + if(isCartContainsAnyPizza(createOrderActivity.getCartInfo().getProducts())){ + slicePizzaLayout.setVisibility(View.VISIBLE); + if(createOrderActivity.getSlicePizza() != null){ + if(createOrderActivity.getSlicePizza()){ + yesRadioButton.setChecked(true); + } + else { + noRadioButton.setChecked(false); + } + } + } if(createOrderActivity.getOrderNote() != null){ orderNotePizzalinkEditText.setText(createOrderActivity.getOrderNote()); } } -} \ No newline at end of file + + private boolean isCartContainsAnyPizza(ArrayList cartProductList){ + boolean containsAnyPizza = false; + outerloop: + for(CartProductModel cartProductModel : cartProductList){ + if(SharedPrefsHelper.readPizzaCategoryIdList().contains(Integer.valueOf(cartProductModel.getProductId()))){ + containsAnyPizza = true; + break; + } + for(String categoryId : cartProductModel.getCategoryList()){ + if(SharedPrefsHelper.readPizzaCategoryIdList().contains(Integer.valueOf(categoryId))){ + containsAnyPizza = true; + break outerloop; + } + } + } + return containsAnyPizza; + } +} +/* + +StringBuilder stringBuilder = new StringBuilder(); + if(SharedPrefsHelper.isCartContainsAnyPizza()){ + stringBuilder.append(slicePizzaText).append(" : "); + if(yesRadioButton.isChecked()){ + stringBuilder.append(yesText); + } + else { + stringBuilder.append(noText); + } + stringBuilder.append("
"); + } + stringBuilder.append(orderNotePizzalinkEditText.getText()); + createOrderActivity.setOrderNote(stringBuilder.toString()); + */ \ No newline at end of file diff --git a/app/src/main/java/ch/pizzalink/android/fragment/createOrder/CreateOrderSummaryFragment.java b/app/src/main/java/ch/pizzalink/android/fragment/createOrder/CreateOrderSummaryFragment.java index ef1768f..5652989 100644 --- a/app/src/main/java/ch/pizzalink/android/fragment/createOrder/CreateOrderSummaryFragment.java +++ b/app/src/main/java/ch/pizzalink/android/fragment/createOrder/CreateOrderSummaryFragment.java @@ -5,6 +5,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import java.util.ArrayList; import java.util.HashMap; import butterknife.BindString; @@ -20,6 +21,8 @@ import ch.pizzalink.android.api.ResponseObject; import ch.pizzalink.android.helper.DialogHelper; import ch.pizzalink.android.helper.PriceHelper; import ch.pizzalink.android.helper.SessionHelper; +import ch.pizzalink.android.helper.SharedPrefsHelper; +import ch.pizzalink.android.model.cart.CartProductModel; import ch.pizzalink.android.view.PizzalinkInfoView; import retrofit2.Call; import retrofit2.Callback; @@ -39,6 +42,9 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { @BindView(R.id.orderNotePizzalinkInfoLayout) PizzalinkInfoView orderNotePizzalinkInfoLayout; @BindString(R.string.confirm_order) String confirmOrderText; + @BindString(R.string.slice_pizza) String slicePizzaText; + @BindString(R.string.yes) String yesText; + @BindString(R.string.no) String noText; public static final java.lang.String FRAGMENT_NAME = "orderSummaryFragment"; private CreateOrderActivity createOrderActivity; @@ -127,7 +133,42 @@ public class CreateOrderSummaryFragment extends CreateOrderBaseFragment { params.put("address_id", createOrderActivity.getSelectedShippingAddress().getId()); params.put("payment_method_title", createOrderActivity.getSelectedPaymentMethod().getTitle()); params.put("payment_method_code", createOrderActivity.getSelectedPaymentMethod().getCode()); - params.put("comment", createOrderActivity.getOrderNote()); + params.put("comment", createOrderNote()); return params; } + + private String createOrderNote(){ + CreateOrderActivity createOrderActivity = (CreateOrderActivity) getActivity(); + StringBuilder stringBuilder = new StringBuilder(); + if(isCartContainsAnyPizza(createOrderActivity.getCartInfo().getProducts())){ + stringBuilder.append(slicePizzaText).append(" : "); + if(createOrderActivity.getSlicePizza()){ + stringBuilder.append(yesText); + } + else { + stringBuilder.append(noText); + } + stringBuilder.append("
"); + } + stringBuilder.append(createOrderActivity.getOrderNote()); + return stringBuilder.toString(); + } + + private boolean isCartContainsAnyPizza(ArrayList cartProductList){ + boolean containsAnyPizza = false; + outerloop: + for(CartProductModel cartProductModel : cartProductList){ + if(SharedPrefsHelper.readPizzaCategoryIdList().contains(Integer.valueOf(cartProductModel.getProductId()))){ + containsAnyPizza = true; + break; + } + for(String categoryId : cartProductModel.getCategoryList()){ + if(SharedPrefsHelper.readPizzaCategoryIdList().contains(Integer.valueOf(categoryId))){ + containsAnyPizza = true; + break outerloop; + } + } + } + return containsAnyPizza; + } } diff --git a/app/src/main/java/ch/pizzalink/android/helper/SharedPrefsHelper.java b/app/src/main/java/ch/pizzalink/android/helper/SharedPrefsHelper.java index 510523a..e41429f 100644 --- a/app/src/main/java/ch/pizzalink/android/helper/SharedPrefsHelper.java +++ b/app/src/main/java/ch/pizzalink/android/helper/SharedPrefsHelper.java @@ -28,6 +28,7 @@ public class SharedPrefsHelper { private static final String PREF_KEY_CATEGORY_LIST = SHARED_PREFS_NAME + "categoryList"; private static final String PREF_KEY_IGNORED_CATEGORY_ID_LIST = SHARED_PREFS_NAME + "ignoredCategoryIdList"; + private static final String PREF_KEY_PIZZA_CATEGORY_ID_LIST = SHARED_PREFS_NAME + "pizzaCategoryIdList"; private static final String PREF_KEY_USER = SHARED_PREFS_NAME + "user"; private static final String PREF_KEY_CUSTOMER_TOKEN = SHARED_PREFS_NAME + "customerToken"; private static final String PREF_KEY_USER_LOG_IN_STATUS = SHARED_PREFS_NAME + "userLoginStatus"; @@ -63,6 +64,16 @@ public class SharedPrefsHelper { return gson.fromJson(sharedPreferences.getString(PREF_KEY_IGNORED_CATEGORY_ID_LIST, ""), ignoredCategoryIdListType); } + public static void savePizzaCategoryIdList(ArrayList pizzaCategoryIdList){ + String ignoredCategoryIdsJsonString = gson.toJson(pizzaCategoryIdList, new TypeToken>() {}.getType()); + editor.putString(PREF_KEY_PIZZA_CATEGORY_ID_LIST, ignoredCategoryIdsJsonString); + editor.apply(); + } + + public static ArrayList readPizzaCategoryIdList(){ + Type pizzaCategoryIdList = new TypeToken>(){}.getType(); + return gson.fromJson(sharedPreferences.getString(PREF_KEY_PIZZA_CATEGORY_ID_LIST, ""), pizzaCategoryIdList); + } public static void saveUser(UserModel user){ editor.putString(PREF_KEY_USER, gson.toJson(user)); diff --git a/app/src/main/java/ch/pizzalink/android/model/cart/CartProductModel.java b/app/src/main/java/ch/pizzalink/android/model/cart/CartProductModel.java index 8426736..60538cb 100644 --- a/app/src/main/java/ch/pizzalink/android/model/cart/CartProductModel.java +++ b/app/src/main/java/ch/pizzalink/android/model/cart/CartProductModel.java @@ -14,6 +14,7 @@ public class CartProductModel implements Serializable { @Expose @SerializedName("cart_id") private String cartId; @Expose @SerializedName("product_id") private String productId; + @Expose @SerializedName("categories") private ArrayList categoryList; private String name; private String model; @@ -56,6 +57,10 @@ public class CartProductModel implements Serializable { cartProductOptionModel.checkNull(); } } + + if(categoryList == null){ + categoryList = new ArrayList<>(); + } } public static void checkNull(ArrayList cartProductList){ @@ -151,4 +156,12 @@ public class CartProductModel implements Serializable { public void setOption(ArrayList option) { this.option = option; } + + public ArrayList getCategoryList() { + return categoryList; + } + + public void setCategoryList(ArrayList categoryList) { + this.categoryList = categoryList; + } } diff --git a/app/src/main/res/layout/activity_product_properties.xml b/app/src/main/res/layout/activity_product_properties.xml index 8f41e8c..c2d774e 100644 --- a/app/src/main/res/layout/activity_product_properties.xml +++ b/app/src/main/res/layout/activity_product_properties.xml @@ -20,6 +20,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" + android:focusable="true" + android:focusableInTouchMode="true" android:background="@color/white"> - + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0dacfce..89de34b 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -144,6 +144,9 @@ Nachricht (Optional) + Pizzanızın dilimlenmesini ister misiniz? + Ja + Nein