diff --git a/.idea/misc.xml b/.idea/misc.xml
index 7158618..cca2cda 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -37,7 +37,7 @@
-
+
diff --git a/app/src/main/java/ch/pizzalink/android/activity/MainActivity.java b/app/src/main/java/ch/pizzalink/android/activity/MainActivity.java
index 12ae25d..c1d6b92 100644
--- a/app/src/main/java/ch/pizzalink/android/activity/MainActivity.java
+++ b/app/src/main/java/ch/pizzalink/android/activity/MainActivity.java
@@ -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));
+ }
+
}
diff --git a/app/src/main/java/ch/pizzalink/android/activity/UpdateProfileActivity.java b/app/src/main/java/ch/pizzalink/android/activity/UpdateProfileActivity.java
index 53159f6..8e1cf4a 100644
--- a/app/src/main/java/ch/pizzalink/android/activity/UpdateProfileActivity.java
+++ b/app/src/main/java/ch/pizzalink/android/activity/UpdateProfileActivity.java
@@ -78,7 +78,7 @@ public class UpdateProfileActivity extends BaseActivity {
public void onResponse(Call> call, final Response> 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() {
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 466104d..9aa9cd4 100644
--- a/app/src/main/java/ch/pizzalink/android/api/ApiEndPoints.java
+++ b/app/src/main/java/ch/pizzalink/android/api/ApiEndPoints.java
@@ -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=";
}
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 661eca5..b7a280e 100644
--- a/app/src/main/java/ch/pizzalink/android/api/ApiInterface.java
+++ b/app/src/main/java/ch/pizzalink/android/api/ApiInterface.java
@@ -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> updateProfile(@Url String url, @FieldMap HashMap body);
+ @FormUrlEncoded
+ @POST
+ Call> removeProductFromCart(@Url String url,
+ @FieldMap HashMap body);
+
}
diff --git a/app/src/main/java/ch/pizzalink/android/fragment/CartFragment.java b/app/src/main/java/ch/pizzalink/android/fragment/CartFragment.java
index 20c2834..b93face 100644
--- a/app/src/main/java/ch/pizzalink/android/fragment/CartFragment.java
+++ b/app/src/main/java/ch/pizzalink/android/fragment/CartFragment.java
@@ -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> call =
+ ApiService.apiInterface.removeProductFromCart(
+ ApiEndPoints.API_REMOVE_RPODUCT_FORM_CART + SessionHelper.getCustomerToken().getToken(),
+ getRemoveProductFromCartRequestParams(cartProductList.get(position).getCartId()));
+ call.enqueue(new Callback>() {
+ @Override
+ public void onResponse(Call> call, Response> 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> call, Throwable t) {
+ DialogHelper.hideLoadingDialog();
+ DialogHelper.showFailedDialog();
+ }
+ });
+ }
+
+ private HashMap getRemoveProductFromCartRequestParams(String cartProductId){
+ HashMap params = new HashMap<>();
+ params.put("key", cartProductId);
+ return params;
+ }
}
diff --git a/app/src/main/java/ch/pizzalink/android/model/RemoveProductFromCartResponseModel.java b/app/src/main/java/ch/pizzalink/android/model/RemoveProductFromCartResponseModel.java
new file mode 100644
index 0000000..c1d0cc3
--- /dev/null
+++ b/app/src/main/java/ch/pizzalink/android/model/RemoveProductFromCartResponseModel.java
@@ -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;
+ }
+}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 76cd62b..ce6fd21 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -86,6 +86,8 @@
DEVAM
TEMİZLE
Sepetinizde ürün bulunmamaktadır.
+ Bu ürünü sepetinizden silmek istediğinize emin misiniz?
+ Ürün sepetinizden silindi.
Bir hata oluştu.