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;
}
}

View File

@@ -128,6 +128,7 @@
android:id="@+id/shoppingCartImageView"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_gravity="center_horizontal"
android:src="@drawable/ic_bottom_nav_item_cart_white"/>
<TextView
@@ -135,7 +136,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/bottom_nav_menu_item_cart"
android:textSize="12sp"
android:textSize="10sp"
android:textColor="@color/white"/>
</LinearLayout>

View File

@@ -73,17 +73,17 @@
<!-- MainAcitivity -->    
<string name="bottom_nav_menu_item_menu">Menu</string>    
<string name="bottom_nav_menu_item_cart">Cart</string>    
<string name="bottom_nav_menu_item_history">History</string>    
<string name="bottom_nav_menu_item_profile">Profile</string>    
<string name="bottom_nav_menu_item_cart">Warenkorb</string>    
<string name="bottom_nav_menu_item_history">Bestellungshistorie</string>    
<string name="bottom_nav_menu_item_profile">Mein Konto</string>    
<string name="bottom_nav_menu_item_info">Info</string>
<string name="cart_total">ZWISHENSUMME</string>
<!-- MainAcitivity -->
<!-- ProductPropertiesBottomSheetDialog -->    
<string name="add_to_cart">IN DEN WARENKORB LEGEN</string>    
<string name="count">Count</string>    
<string name="no_options_selected_part">is not selected.</string>
<string name="count">Betrag</string>    
<string name="no_options_selected_part">wurde nicht ausgewählt.</string>
<!-- ProductPropertiesBottomSheetDialog -->
<!-- CartFragment-->    
@@ -96,33 +96,33 @@
<!-- CartFragment-->
<!-- OrderHistoryFragment-->
<string name="order_history_total">Total :</string>    
<string name="order_history_date">Date</string>    
<string name="order_history_total">Gesamtbetrag :</string>    
<string name="order_history_date">Datum</string>    
<string name="order_history_status">Status</string>
<!-- OrderHistoryFragment-->
<!-- OrderHistoryDetailsActivity-->
<string name="activity_title_order_history_details">Order Details</string>    
<string name="order_history_order_date">CREATE DATE</string>    
<string name="activity_title_order_history_details">Bestellungsdetail</string>    
<string name="order_history_order_date">BESTELLUNGSDATUM</string>    
<string name="order_history_order_status">STATUS</string>    
<string name="order_history_order_shipping_time">SHIPPING TIME</string>    
<string name="order_history_order_shipping_time">VERSANDZEIT</string>    
<string name="order_history_order_total">ZWISHENSUMME</string>    
<string name="order_history_order_payment_method">PAYMENT METHOD</string>    
<string name="order_history_order_fullname">FULLNAME</string>    
<string name="order_history_order_shipping_method">SHIPPING METHOD</string>    
<string name="order_history_order_shipping_address">SHIPPING ADDRESS</string>     
<string name="order_history_order_payment_method">ZAHLUNGSWEISE</string>    
<string name="order_history_order_fullname">VOLLNAME</string>    
<string name="order_history_order_shipping_method">LIEFERUNGSMETHODE</string>    
<string name="order_history_order_shipping_address">LIEFERUNGSADRESSE</string>     
<string name="order_history_order_note">NACHRICHT</string> 
<!-- OrderHistoryDetailsActivity-->
<!-- CreateOrderActivity --> 
<string name="activity_title_create_order">Bestellen</string>    
<string name="next">NEXT</string>    
<string name="previous">PREVIOUS</string>    
<string name="confirm_order">APPROVE</string>    
<string name="done_order">DONE</string>    
<string name="next">NÄCHSTE</string>    
<string name="previous">VORHERIGE</string>    
<string name="confirm_order">BESTÄTIGEN</string>    
<string name="done_order">FERTIG</string>    
<string-array name="stepperLabels">
<item>Versandart</item>
<item>Versandadresse</item>        
<item>Lieferungsart</item>
<item>Lieferungadresseadresse</item>        
<item>Bezahlverfahren</item>
<item>Nachricht</item>        
<item>Betrag</item>    
@@ -130,11 +130,11 @@
<!-- CreateOrderActivity -->
<!-- ShippingMethodFragment-->    
<string name="alert_choose_shipping_method">Lütfen bir teslimat yöntemi seçiniz.</string>
<string name="alert_choose_shipping_method">Bitte wählen Sie eine Lieferungsmethode</string>
<!-- ShippingMethodFragment-->
    
<!-- ShippingAddressFragment-->
<string name="alert_choose_shipping_address">Bitte wählen Sie eine Versandadresse aus oder fügen Sie eine neue Versandadresse hinzu.</string>
<string name="alert_choose_shipping_address">Bitte wählen Sie eine Lieferungsadresse aus oder fügen Sie eine neue Lieferungsadresse hinzu.</string>
<!-- ShippingAddressFragment-->
<!-- PaymentMethodFragment-->
@@ -146,11 +146,11 @@
<!-- CreateOrderNoteFragment-->
<!-- CreateOrderSummaryFragment-->    
<string name="order_person_fullname">TO</string>    
<string name="order_shipping_method">SHIPPING METHOD</string>    
<string name="order_shipping_address">SHIPPING ADDRESS</string>    
<string name="order_payment_method">PAYMENT METHOD</string>    
<string name="order_total">TOTAL</string>
<string name="order_person_fullname">AN</string>    
<string name="order_shipping_method">LIEFERUNGSMETHODE</string>    
<string name="order_shipping_address">LIEFERUNGSADRESSE</string>    
<string name="order_payment_method">ZAHLUNGSWEISE</string>    
<string name="order_total">ZWISCHENSUMME</string>
<string name="order_notee">NACHRICHT</string>
<!-- CreateOrderSummaryFragment-->
@@ -164,8 +164,8 @@
<string name="profile_telephone">TELEFONNUMMER</string>    
<string name="profile_email">E-MAIL-ADRESSE</string>    
<string name="my_addresses">Meine Adressen</string>    
<string name="update_profile">Profil aktualisieren</string>    
<string name="update_password">Passwort aktualisieren</string>    
<string name="update_profile">Profil Aktualisieren</string>    
<string name="update_password">Passwort Aktualisieren</string>    
<string name="button_logout">Abmelden</string>    
<string name="alert_logout">Möchten Sie sich abmelden?</string>
<!-- ProfileFragment-->