remove product from basket

This commit is contained in:
cimenmus
2017-10-25 23:57:19 +03:00
parent 49432579e6
commit 93c4fa28e5
8 changed files with 113 additions and 15 deletions

2
.idea/misc.xml generated
View File

@@ -37,7 +37,7 @@
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">

View File

@@ -1,6 +1,7 @@
package ch.pizzalink.android.activity;
import android.content.Intent;
import android.graphics.Color;
import android.support.annotation.NonNull;
import android.support.design.widget.BottomNavigationView;
import android.support.v4.app.FragmentManager;
@@ -12,6 +13,7 @@ import android.support.v7.widget.RecyclerView;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
@@ -79,12 +81,20 @@ public class MainActivity extends BaseActivity {
}
private void initViews(){
initBadgeView();
initNavigationDrawer();
initBottomNavigationView();
showStartScreen();
setCartItemCount();
}
private void initBadgeView(){
badge = new QBadgeView(this)
.setBadgeBackgroundColor(redColor)
.setBadgeTextColor(whiteColor)
.setBadgeGravity(Gravity.TOP | Gravity.END);
}
private void showStartScreen(){
fragmentManager = getSupportFragmentManager();
if(isStartWithOrderHistory){
@@ -306,16 +316,14 @@ public class MainActivity extends BaseActivity {
addBadgeAt(1, SharedPrefsHelper.getCartItemCount());
}
private void addBadgeAt(int position, int number) {
// add badge
badge = new QBadgeView(this)
.setBadgeNumber(number)
.setBadgeBackgroundColor(redColor)
.setBadgeTextColor(whiteColor)
.setBadgeGravity(Gravity.TOP | Gravity.END)
.bindTarget(bottomNavigationView.getBottomNavigationItemView(position));
if(number == 0)
badge.hide(true);
public void reopenCartFragment(){
currentFragmentName = "";
bottomNavigationView.setCurrentItem(1);
}
private void addBadgeAt(int position, int number) {
badge.setBadgeNumber(number);
badge.bindTarget(bottomNavigationView.getBottomNavigationItemView(position));
}
}

View File

@@ -78,7 +78,7 @@ public class UpdateProfileActivity extends BaseActivity {
public void onResponse(Call<ResponseObject<UserModel>> call, final Response<ResponseObject<UserModel>> response) {
DialogHelper.hideLoadingDialog();
if(response.isSuccessful() &&
response.body() != null &&
response.body().getData() != null &&
response.body().isSuccess()){
SessionHelper.saveCustomer(response.body().getData());
DialogHelper.showOneButtonDialogWithCallback(profileUpdatedText, new MaterialDialog.SingleButtonCallback() {

View File

@@ -27,4 +27,5 @@ public class ApiEndPoints {
public static final String API_UPDATE_PASSWORD = PREFIX + "passwordUpdate" + SUFFIX + "&token=";
public static final String API_DELETE_ADDRESS = PREFIX + "deleteAddress" + SUFFIX + "&token=";
public static final String API_UPDATE_PROFILE = PREFIX + "updateCustomerInfo" + SUFFIX + "&token=";
public static final String API_REMOVE_RPODUCT_FORM_CART = PREFIX + "removeProductFromBasket" + SUFFIX + "&token=";
}

View File

@@ -9,6 +9,7 @@ import ch.pizzalink.android.model.CountryModel;
import ch.pizzalink.android.model.DeleteAddressResponseModel;
import ch.pizzalink.android.model.PaymentMethodModel;
import ch.pizzalink.android.model.PaymentMethodsResponseModel;
import ch.pizzalink.android.model.RemoveProductFromCartResponseModel;
import ch.pizzalink.android.model.ShippingMethodModel;
import ch.pizzalink.android.model.ShippingMethodsResponseModel;
import ch.pizzalink.android.model.ZoneModel;
@@ -129,4 +130,9 @@ public interface ApiInterface {
@POST
Call<ResponseObject<UserModel>> updateProfile(@Url String url, @FieldMap HashMap<String, Object> body);
@FormUrlEncoded
@POST
Call<ResponseObject<RemoveProductFromCartResponseModel>> removeProductFromCart(@Url String url,
@FieldMap HashMap<String, Object> body);
}

View File

@@ -17,6 +17,7 @@ import com.afollestad.materialdialogs.DialogAction;
import com.afollestad.materialdialogs.MaterialDialog;
import java.util.ArrayList;
import java.util.HashMap;
import butterknife.BindColor;
import butterknife.BindString;
@@ -28,6 +29,7 @@ import ch.pizzalink.android.activity.BaseActivity;
import ch.pizzalink.android.activity.MainActivity;
import ch.pizzalink.android.activity.OrderActivity;
import ch.pizzalink.android.adapter.recycler.CartRecyclerAdapter;
import ch.pizzalink.android.api.ApiEndPoints;
import ch.pizzalink.android.api.ApiErrorUtils;
import ch.pizzalink.android.api.ApiService;
import ch.pizzalink.android.api.ResponseObject;
@@ -35,6 +37,7 @@ 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.RemoveProductFromCartResponseModel;
import ch.pizzalink.android.model.cart.CartInfoModel;
import ch.pizzalink.android.model.cart.CartProductModel;
import ch.pizzalink.android.model.cart.CartTotalModel;
@@ -58,6 +61,8 @@ public class CartFragment extends BaseFragment {
@BindView(R.id.clearCartButton) Button clearCartButton;
@BindString(R.string.bottom_nav_menu_item_cart) String fragmentTitle;
@BindString(R.string.alert_remove_prdocut_from_cart) String removeProdcutFromCartAlert;
@BindString(R.string.product_removed_from_cart) String productRemovedFromCartText;
@BindString(R.string.alert_clear_cart) String clearCartAlertText;
@@ -192,8 +197,20 @@ public class CartFragment extends BaseFragment {
private void initRecyclerView(){
cartRecyclerAdapter = new CartRecyclerAdapter(cartProductList, new RecyclerItemClickListener() {
@Override
public void onItemClick(View view, int position) {
public void onItemClick(View view, final int position) {
DialogHelper.showTwoButtonsDialog(BaseActivity.currentActivity, removeProdcutFromCartAlert,
new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
dialog.dismiss();
removeProductFromCart(position);
}
}, new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
dialog.dismiss();
}
});
}
});
LinearLayoutManager layoutManager = new LinearLayoutManager(BaseActivity.currentActivity);
@@ -215,4 +232,47 @@ public class CartFragment extends BaseFragment {
noProductsOnCartTextView.setVisibility(View.VISIBLE);
}
}
private void removeProductFromCart(final int position){
DialogHelper.showLoadingDialog();
Call<ResponseObject<RemoveProductFromCartResponseModel>> call =
ApiService.apiInterface.removeProductFromCart(
ApiEndPoints.API_REMOVE_RPODUCT_FORM_CART + SessionHelper.getCustomerToken().getToken(),
getRemoveProductFromCartRequestParams(cartProductList.get(position).getCartId()));
call.enqueue(new Callback<ResponseObject<RemoveProductFromCartResponseModel>>() {
@Override
public void onResponse(Call<ResponseObject<RemoveProductFromCartResponseModel>> call, Response<ResponseObject<RemoveProductFromCartResponseModel>> response) {
DialogHelper.hideLoadingDialog();
if(response.isSuccessful() &&
response.body().getData() != null &&
response.body().isSuccess()){
cartProductList.remove(position);
DialogHelper.showOneButtonDialogWithCallback(productRemovedFromCartText, new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
SharedPrefsHelper.setCartItemCount(cartProductList.size());
MainActivity mainActivity = (MainActivity) getActivity();
mainActivity.setCartItemCount();
mainActivity.reopenCartFragment();
}
});
}
else {
ApiErrorUtils.parseError(response);
}
}
@Override
public void onFailure(Call<ResponseObject<RemoveProductFromCartResponseModel>> call, Throwable t) {
DialogHelper.hideLoadingDialog();
DialogHelper.showFailedDialog();
}
});
}
private HashMap<String, Object> getRemoveProductFromCartRequestParams(String cartProductId){
HashMap<String, Object> params = new HashMap<>();
params.put("key", cartProductId);
return params;
}
}

View File

@@ -0,0 +1,21 @@
package ch.pizzalink.android.model;
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
/**
* Created by cimenmus on 25.10.2017.
*/
public class RemoveProductFromCartResponseModel {
@Expose @SerializedName("cart_id") private String cartId;
public String getCartId() {
return cartId;
}
public void setCartId(String cartId) {
this.cartId = cartId;
}
}

View File

@@ -86,6 +86,8 @@
<string name="continue_cart">DEVAM</string>
<string name="clear_cart">TEMİZLE</string>
<string name="no_product_on_cart">Sepetinizde ürün bulunmamaktadır.</string>
<string name="alert_remove_prdocut_from_cart">Bu ürünü sepetinizden silmek istediğinize emin misiniz?</string>
<string name="product_removed_from_cart">Ürün sepetinizden silindi.</string>
<!-- CartFragment-->
<string name="something_went_wrong">Bir hata oluştu.</string>