This commit is contained in:
cimenmus
2018-01-07 15:38:14 +03:00
parent 01374caa79
commit 67a9fe01a4
12 changed files with 154 additions and 53 deletions

View File

@@ -103,7 +103,7 @@ public class LoginActivity extends BaseActivity {
}
else{
DialogHelper.hideLoadingDialog();
ApiErrorUtils.parseError(response);
ApiErrorUtils.parseErrorWithoutAuthorizationErrorControl(response);
}
}

View File

@@ -153,11 +153,11 @@ public class MainActivity extends BaseActivity {
openProductsScreen(categoryList.get(2));
}
}
private void initBottomNavigationView(){
//bottomNavigationView.enableAnimation(false);
bottomNavigationView.enableShiftingMode(false);
bottomNavigationView.setTextSize(10);
bottomNavigationView.enableItemShiftingMode(false);
bottomNavigationView.setTextVisibility(true);
bottomNavigationView.setIconSize(24, 24);
@@ -413,12 +413,12 @@ public class MainActivity extends BaseActivity {
}
public void setCartItemCount(){
addBadgeAt(1, SharedPrefsHelper.getCartItemCount());
addBadgeAt(2, SharedPrefsHelper.getCartItemCount());
}
public void reopenCartFragment(){
currentFragmentName = "";
bottomNavigationView.setCurrentItem(1);
bottomNavigationView.setCurrentItem(2);
}
/*

View File

@@ -5,13 +5,23 @@ 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;
@@ -31,10 +41,15 @@ import ch.pizzalink.android.helper.SessionHelper;
import ch.pizzalink.android.helper.SharedPrefsHelper;
import ch.pizzalink.android.interfaces.RecyclerItemClickListener;
import ch.pizzalink.android.model.AddProductToBasketResponseModel;
import ch.pizzalink.android.model.AddToBasketOptionModel;
import ch.pizzalink.android.model.ZoneModel;
import ch.pizzalink.android.model.cart.CartInfoModel;
import ch.pizzalink.android.model.menu.MenuProductModel;
import ch.pizzalink.android.model.menu.MenuProductOptionModel;
import ch.pizzalink.android.model.menu.MenuProductOptionValueModel;
import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
@@ -256,6 +271,7 @@ public class ProductPropertiesActivity extends BaseActivity {
}
private void addProductToCart(){
DialogHelper.showLoadingDialog();
Call<ResponseObject<AddProductToBasketResponseModel>> call =
ApiService.apiInterface.addProductsToBasket(
@@ -286,38 +302,37 @@ public class ProductPropertiesActivity extends BaseActivity {
}
private HashMap<String, Object> getAddToCartRequestParams(){
private RequestBody getAddToCartRequestParams(){
HashMap<String, Object> params = new HashMap<>();
params.put("product_id", menuProductModel.getId());
params.put("quantity", productCount);
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().equals("checkbox")){
if(productOptionModel.getType().toLowerCase().equals("checkbox")){
selectedCheckboxOptionList.add(productOptionValueModel.getProductOptionValueId());
}
else {
params.put("option[" + productOptionModel.getProductOptionId() + "]", productOptionValueModel.getProductOptionValueId());
String key = "option[" + productOptionModel.getProductOptionId() + "]";
formBodyBuilder.add(key, productOptionValueModel.getProductOptionValueId());
}
}
}
if(productOptionModel.getType().equals("checkbox")){
params.put("option[" + productOptionModel.getProductOptionId() + "]", selectedCheckboxOptionList);
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 params;
return formBodyBuilder.build();
}
private void getCartItemCount(){
Call<ResponseObject<CartInfoModel>> call = ApiService.apiInterface.getCartProducts(
SessionHelper.getCustomerToken().getToken());

View File

@@ -140,6 +140,7 @@ public class CartRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewH
StringBuilder stringBuilder = new StringBuilder();
for(int i = 0; i < cartProductModel.getOption().size(); i++){
if(!stringBuilder.toString().contains(cartProductModel.getOption().get(i).getName())){
if(!stringBuilder.toString().isEmpty()){

View File

@@ -16,6 +16,7 @@ public class ApiEndPoints {
public static final String API_GET_PRODUCTS_BY_CATEGORY = PREFIX + "getProductsByCategory" + SUFFIX;
public static final String API_GET_PRODUCT = PREFIX + "getProduct" + SUFFIX;
public static final String API_ADD_PRODUCTS_TO_BASKET = PREFIX + "addProductsToBasket" + SUFFIX + "&token=";
//public static final String API_ADD_PRODUCTS_TO_BASKET = PREFIX + "addProductsToBasketYeni" + SUFFIX + "&token=";
public static final String API_GET_SHIPPING_METHODS = PREFIX + "getShippingMethodsArray" + SUFFIX;
public static final String API_GET_CUSTOMER_ADDRESSES = PREFIX + "getAddresses" + SUFFIX;
public static final String API_ADD_NEW_ADDRESS = PREFIX + "addAddress" + SUFFIX + "&token=";

View File

@@ -15,6 +15,7 @@ import retrofit2.Converter;
import retrofit2.Response;
public class ApiErrorUtils {
public static void parseError(Response<?> response) {
Converter<ResponseBody, ApiError> converter = ApiService.retrofit.responseBodyConverter(ApiError.class, new Annotation[0]);
ApiError error = new ApiError();
@@ -45,9 +46,27 @@ public class ApiErrorUtils {
DialogHelper.showDialogWithPositiveButton(BaseActivity.currentActivity, error.getMessage());
} catch (Exception e) {
DialogHelper.showDialogWithPositiveButton(BaseActivity.currentActivity, BaseActivity.currentActivity.getString(R.string.something_went_wrong));
}
}
public static void parseErrorWithoutAuthorizationErrorControl(Response<?> response) {
Converter<ResponseBody, ApiError> converter = ApiService.retrofit.responseBodyConverter(ApiError.class, new Annotation[0]);
ApiError error = new ApiError();
error.setStatusCode(response.code());
BaseResponse baseResponse = (BaseResponse) response.body();
if (baseResponse != null && baseResponse.getMessage() != null && !baseResponse.getMessage().isEmpty()) {
DialogHelper.showAlertDialog(BaseActivity.currentActivity, baseResponse.getMessage());
return;
}
return;
try {
error = converter.convert(response.errorBody());
DialogHelper.showDialogWithPositiveButton(BaseActivity.currentActivity, error.getMessage());
} catch (Exception e) {
DialogHelper.showDialogWithPositiveButton(BaseActivity.currentActivity, BaseActivity.currentActivity.getString(R.string.something_went_wrong));
}
}
}

View File

@@ -1,9 +1,15 @@
package ch.pizzalink.android.api;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import ch.pizzalink.android.model.AddNewAddressResponseModel;
import ch.pizzalink.android.model.AddProductToBasketResponseModel;
import ch.pizzalink.android.model.AddToBasketOptionModel;
import ch.pizzalink.android.model.AddressModel;
import ch.pizzalink.android.model.AppVersionModel;
import ch.pizzalink.android.model.CountryModel;
@@ -19,12 +25,19 @@ import ch.pizzalink.android.model.CategoryModel;
import ch.pizzalink.android.model.OrderHistoryModel;
import ch.pizzalink.android.model.UserModel;
import ch.pizzalink.android.model.menu.MenuProductModel;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;
import retrofit2.Call;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.FieldMap;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.PartMap;
import retrofit2.http.Query;
import retrofit2.http.Url;
@@ -68,10 +81,10 @@ public interface ApiInterface {
@POST(ApiEndPoints.API_GET_PRODUCT)
Call<ResponseArray<MenuProductModel>> getProductById(@Field("product_id") int productId);
@FormUrlEncoded
@POST
Call<ResponseObject<AddProductToBasketResponseModel>> addProductsToBasket(@Url String url,
@FieldMap HashMap<String, Object> body);
@Body RequestBody body);
@GET(ApiEndPoints.API_GET_SHIPPING_METHODS)
Call<ResponseArray<ShippingMethodModel>> getShippingMethods(@Query("token") String token);

View File

@@ -120,7 +120,7 @@ public class ProductPropertiesBottomSheetDialog extends BottomSheetDialogFragmen
break;
case R.id.addToCartButton:
if(checkFields())
addProductToCart();
//addProductToCart();
break;
}
}
@@ -269,6 +269,7 @@ public class ProductPropertiesBottomSheetDialog extends BottomSheetDialogFragmen
}
}
/*
private void addProductToCart(){
DialogHelper.showLoadingDialog();
Call<ResponseObject<AddProductToBasketResponseModel>> call =
@@ -299,6 +300,7 @@ public class ProductPropertiesBottomSheetDialog extends BottomSheetDialogFragmen
});
}
*/
private HashMap<String, Object> getAddToCartRequestParams(){

View File

@@ -77,6 +77,7 @@ public class SharedPrefsHelper {
editor.remove(PREF_KEY_USER);
editor.remove(PREF_KEY_CUSTOMER_TOKEN);
editor.remove(PREF_KEY_CART_ITEM_COUNT);
editor.remove(PREF_KEY_CART_TOTAL_PRICE);
editor.apply();
}

View File

@@ -0,0 +1,48 @@
package ch.pizzalink.android.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import java.io.Serializable;
import java.util.ArrayList;
/**
* Created by cimenmus on 29.11.2017.
*/
public class AddToBasketOptionModel{
@SerializedName("optionId")
@Expose
private String optionId;
@SerializedName("selectedOptionValues")
@Expose
private ArrayList<String> selectedOptionValues;
public AddToBasketOptionModel(String optionId, ArrayList<String> selectedOptionValues) {
this.optionId = optionId;
this.selectedOptionValues = selectedOptionValues;
}
public AddToBasketOptionModel(String optionId, String selectedOptionValue) {
this.optionId = optionId;
this.selectedOptionValues = new ArrayList<>();
selectedOptionValues.add(selectedOptionValue);
}
public String getOptionId() {
return optionId;
}
public void setOptionId(String optionId) {
this.optionId = optionId;
}
public ArrayList<String> getSelectedOptionValueList() {
return selectedOptionValues;
}
public void setSelectedOptionValueList(ArrayList<String> selectedOptionValues) {
this.selectedOptionValues = selectedOptionValues;
}
}