From 7d777ad8877b5b902856aef01420b94d336794bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?mustafa=20ic=CC=A7men?= Date: Mon, 10 Aug 2020 23:36:06 +0300 Subject: [PATCH] User Voucher Info --- .idea/caches/build_file_checksums.ser | Bin 542 -> 542 bytes .../PersonalCouponCodesRecyclerAdapter.java | 68 ++++++++++ .../pizzacucina/android/api/ApiEndPoints.java | 1 + .../pizzacucina/android/api/ApiInterface.java | 6 +- .../android/fragment/ProfileFragment.java | 44 ++++++- .../android/model/PersonalCouponModel.java | 19 ++- app/src/main/res/layout/fragment_profile.xml | 21 ++++ .../res/layout/row_personal_coupon_code.xml | 118 ++++++++++++++++++ app/src/main/res/values/strings.xml | 7 ++ 9 files changed, 280 insertions(+), 4 deletions(-) create mode 100644 app/src/main/java/ch/pizzacucina/android/adapter/recycler/PersonalCouponCodesRecyclerAdapter.java create mode 100644 app/src/main/res/layout/row_personal_coupon_code.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 21f6a9ee0650e51f5fba42a64233280853968cd2..4417c880d975871df56eca7701028525fb22e922 100644 GIT binary patch delta 15 XcmbQoGLL1#43?WW6CZ7y)5Hh>HwOnc delta 15 XcmbQoGLL1#43H@62o diff --git a/app/src/main/java/ch/pizzacucina/android/adapter/recycler/PersonalCouponCodesRecyclerAdapter.java b/app/src/main/java/ch/pizzacucina/android/adapter/recycler/PersonalCouponCodesRecyclerAdapter.java new file mode 100644 index 0000000..720e3f2 --- /dev/null +++ b/app/src/main/java/ch/pizzacucina/android/adapter/recycler/PersonalCouponCodesRecyclerAdapter.java @@ -0,0 +1,68 @@ +package ch.pizzacucina.android.adapter.recycler; + +import android.content.Context; +import android.support.v7.widget.RecyclerView; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; +import java.util.ArrayList; +import butterknife.BindView; +import butterknife.ButterKnife; +import ch.pizzacucina.android.R; +import ch.pizzacucina.android.activity.BaseActivity; +import ch.pizzacucina.android.model.PersonalCouponModel; + +public class PersonalCouponCodesRecyclerAdapter extends RecyclerView.Adapter { + + private Context context; + private ArrayList personalCouponCodeList; + + public static class ViewHolder extends RecyclerView.ViewHolder{ + + @BindView(R.id.personalCouponCodeTextView) TextView personalCouponCodeTextView; + @BindView(R.id.personalCouponTotalAmountTextView) TextView personalCouponTotalAmountTextView; + @BindView(R.id.personalCouponRemainingAmountTextView) TextView personalCouponRemainingAmountTextView; + @BindView(R.id.personalCouponStatusTextView) TextView personalCouponStatusTextView; + + public ViewHolder(final View view) { + super(view); + ButterKnife.bind(this, view); + } + } + + public PersonalCouponCodesRecyclerAdapter(Context context, + ArrayList personalCouponCodeList){ + this.context = context; + this.personalCouponCodeList = personalCouponCodeList; + } + + @Override + public PersonalCouponCodesRecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int viewType) { + View root = LayoutInflater.from(BaseActivity.currentActivity).inflate(R.layout.row_personal_coupon_code, viewGroup, false); + return new PersonalCouponCodesRecyclerAdapter.ViewHolder(root); + } + + @Override + public void onBindViewHolder(PersonalCouponCodesRecyclerAdapter.ViewHolder holder, int position) { + + holder.personalCouponCodeTextView.setText(personalCouponCodeList.get(position).getCode()); + holder.personalCouponTotalAmountTextView.setText(personalCouponCodeList.get(position).getAmount()); + holder.personalCouponRemainingAmountTextView.setText(personalCouponCodeList.get(position).getTotal()); + + String statusMessage = ""; + if(personalCouponCodeList.get(position).isActive()){ + statusMessage = context.getString(R.string.yes); + } + else { + statusMessage = context.getString(R.string.no); + } + holder.personalCouponStatusTextView.setText(statusMessage); + } + + @Override + public int getItemCount() { + return personalCouponCodeList.size(); + } + +} diff --git a/app/src/main/java/ch/pizzacucina/android/api/ApiEndPoints.java b/app/src/main/java/ch/pizzacucina/android/api/ApiEndPoints.java index 755699b..8b3394e 100644 --- a/app/src/main/java/ch/pizzacucina/android/api/ApiEndPoints.java +++ b/app/src/main/java/ch/pizzacucina/android/api/ApiEndPoints.java @@ -54,5 +54,6 @@ public class ApiEndPoints { public static final String API_CREATE_BRAINTREE_PAYMENT_TOKEN = PREFIX + "createPaymentToken" + SUFFIX + "&token="; public static final String API_GET_DATATRANS_INFO = PREFIX + "getDatatransInfo" + SUFFIX + "&token="; public static final String API_CREATE_DATATRANS_PAYMENT = PREFIX + "checkDatatransPayment" + SUFFIX + "&token="; + public static final String API_GET_PERSONAL_COUPONS = PREFIX + "getUserVouchers" + SUFFIX + "&token="; } diff --git a/app/src/main/java/ch/pizzacucina/android/api/ApiInterface.java b/app/src/main/java/ch/pizzacucina/android/api/ApiInterface.java index 614335a..bbdeea6 100644 --- a/app/src/main/java/ch/pizzacucina/android/api/ApiInterface.java +++ b/app/src/main/java/ch/pizzacucina/android/api/ApiInterface.java @@ -244,7 +244,7 @@ public interface ApiInterface { @FormUrlEncoded @POST Call checkOrderPrice(@Url String url, - @FieldMap HashMap body); + @FieldMap HashMap body); @GET Call> createBraintreePaymentToken(@Url String url); @@ -252,7 +252,9 @@ public interface ApiInterface { @GET(ApiEndPoints.API_GET_CAMPAIGN_BANNERS) Call> getCampaignBanners(); - + @GET("{storeName}" + ApiEndPoints.API_GET_PERSONAL_COUPONS) + Call> getPersonalCouponList(@Path("storeName") String storeName, + @Query("token") String token); diff --git a/app/src/main/java/ch/pizzacucina/android/fragment/ProfileFragment.java b/app/src/main/java/ch/pizzacucina/android/fragment/ProfileFragment.java index 711a48d..34667a9 100644 --- a/app/src/main/java/ch/pizzacucina/android/fragment/ProfileFragment.java +++ b/app/src/main/java/ch/pizzacucina/android/fragment/ProfileFragment.java @@ -3,6 +3,8 @@ package ch.pizzacucina.android.fragment; import android.content.Intent; import android.os.Bundle; import android.support.annotation.NonNull; +import android.support.v7.widget.LinearLayoutManager; +import android.support.v7.widget.RecyclerView; import android.support.v7.widget.SwitchCompat; import android.view.LayoutInflater; import android.view.View; @@ -16,6 +18,8 @@ import com.onesignal.OneSignal; import org.json.JSONException; import org.json.JSONObject; +import java.util.ArrayList; + import butterknife.BindString; import butterknife.BindView; import butterknife.ButterKnife; @@ -26,14 +30,17 @@ import ch.pizzacucina.android.activity.MyAddressesActivity; import ch.pizzacucina.android.activity.SplashActivity; import ch.pizzacucina.android.activity.UpdatePasswordActivity; import ch.pizzacucina.android.activity.UpdateProfileActivity; +import ch.pizzacucina.android.adapter.recycler.PersonalCouponCodesRecyclerAdapter; import ch.pizzacucina.android.api.ApiConstants; import ch.pizzacucina.android.api.ApiErrorUtils; import ch.pizzacucina.android.api.ApiService; +import ch.pizzacucina.android.api.ResponseArray; import ch.pizzacucina.android.api.ResponseObject; import ch.pizzacucina.android.helper.DialogHelper; import ch.pizzacucina.android.helper.NetworkHelper; import ch.pizzacucina.android.helper.SessionHelper; import ch.pizzacucina.android.helper.SharedPrefsHelper; +import ch.pizzacucina.android.model.PersonalCouponModel; import ch.pizzacucina.android.model.UserModel; import ch.pizzacucina.android.view.AppInfoView; import retrofit2.Call; @@ -55,6 +62,7 @@ public class ProfileFragment extends BaseFragment { @BindView(R.id.emailPizzalinkInfoLayout) AppInfoView emailPizzalinkInfoLayout; @BindView(R.id.phonePizzalinkInfoLayout) AppInfoView phonePizzalinkInfoLayout; @BindView(R.id.enableNotificationsSwitch) SwitchCompat enableNotificationsSwitch; + @BindView(R.id.personalCouponCodesRecyclerView) RecyclerView personalCouponCodesRecyclerView; @BindString(R.string.bottom_nav_menu_item_profile) String fragmentTitle; @BindString(R.string.alert_logout) String logoutAlertText; @@ -64,6 +72,7 @@ public class ProfileFragment extends BaseFragment { private int REQUEST_CODE_UPDATE_PROFILE = 2563; private UserModel userModel; + private PersonalCouponCodesRecyclerAdapter personalCouponCodesRecyclerAdapter; public ProfileFragment() {} @@ -228,11 +237,11 @@ public class ProfileFragment extends BaseFragment { call.enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { - DialogHelper.hideLoadingDialog(); if(response.isSuccessful() && response.body().getData() != null && response.body().isSuccess()){ setFields(response.body().getData()); + getPersonalCouponCodeList(); } else { ApiErrorUtils.parseError(response); @@ -247,6 +256,32 @@ public class ProfileFragment extends BaseFragment { }); } + private void getPersonalCouponCodeList(){ + Call> call = ApiService.apiInterface.getPersonalCouponList( + SessionHelper.getSelectedStore().getStoreName(), + SessionHelper.getCustomerToken().getToken()); + call.enqueue(new Callback>() { + @Override + public void onResponse(Call> call, Response> response) { + DialogHelper.hideLoadingDialog(); + if(response.isSuccessful() && + response.body().getData() != null && + response.body().isSuccess()){ + initPersonalCouponCodesRecyclerView(response.body().getData()); + } + else { + ApiErrorUtils.parseError(response); + } + } + + @Override + public void onFailure(Call> call, Throwable t) { + DialogHelper.hideLoadingDialog(); + DialogHelper.showFailedDialog(); + } + }); + } + private void setFields(UserModel user){ user.checkNull(); @@ -261,6 +296,13 @@ public class ProfileFragment extends BaseFragment { phonePizzalinkInfoLayout.setText(userModel.getTelephone()); } + private void initPersonalCouponCodesRecyclerView(ArrayList personalCouponList){ + personalCouponCodesRecyclerAdapter = new PersonalCouponCodesRecyclerAdapter(BaseActivity.currentActivity, personalCouponList); + personalCouponCodesRecyclerView.setLayoutManager(new LinearLayoutManager(BaseActivity.currentActivity)); + personalCouponCodesRecyclerView.setNestedScrollingEnabled(false); + personalCouponCodesRecyclerView.setAdapter(personalCouponCodesRecyclerAdapter); + } + private void logOutOnWeb(){ DialogHelper.showLoadingDialog(); Call call = ApiService.apiInterface.logout( diff --git a/app/src/main/java/ch/pizzacucina/android/model/PersonalCouponModel.java b/app/src/main/java/ch/pizzacucina/android/model/PersonalCouponModel.java index 0a3cbeb..de7977c 100644 --- a/app/src/main/java/ch/pizzacucina/android/model/PersonalCouponModel.java +++ b/app/src/main/java/ch/pizzacucina/android/model/PersonalCouponModel.java @@ -29,10 +29,15 @@ public class PersonalCouponModel extends CouponModel { @SerializedName("voucher_theme_id") private String voucherThemeId; + @Expose + @SerializedName("is_active") + private Boolean isActive; + private String theme; private String message; private String image; private String amount; + private String total; @Override public CouponType getCouponType() { @@ -41,7 +46,12 @@ public class PersonalCouponModel extends CouponModel { @Override public boolean isActive() { - return getStatus().equals("1"); + if(isActive != null){ + return isActive; + } + else { + return getStatus().equals("1"); + } } public String getVoucherId() { @@ -113,4 +123,11 @@ public class PersonalCouponModel extends CouponModel { } return amount; } + + public String getTotal() { + if(total == null){ + total = ""; + } + return total; + } } diff --git a/app/src/main/res/layout/fragment_profile.xml b/app/src/main/res/layout/fragment_profile.xml index aa59c22..0f5589c 100644 --- a/app/src/main/res/layout/fragment_profile.xml +++ b/app/src/main/res/layout/fragment_profile.xml @@ -46,6 +46,27 @@ android:layout_height="wrap_content" app:description="@string/kebap_pass" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 590c15e..53f7b8c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -28,6 +28,8 @@ Bitte einloggen um zu bestellen. Sie müssen sich registrieren um diese Seite zu besuchen. BEENDEN + JA + NEIN    @@ -221,6 +223,11 @@ Postleitzahl Ändern     Möchten Sie sich abmelden? Abmelden  + VOUCHERS  + Code:  + Total:  + Remaining:  + Active: