Showing
10 changed files
with
279 additions
and
7 deletions
... | @@ -36,7 +36,7 @@ public class SplashActivity extends BaseActivity { | ... | @@ -36,7 +36,7 @@ public class SplashActivity extends BaseActivity { |
36 | public void onWarplyReady() { | 36 | public void onWarplyReady() { |
37 | if (!WarplyDBHelper.getInstance(SplashActivity.this).isTableNotEmpty("auth")) { | 37 | if (!WarplyDBHelper.getInstance(SplashActivity.this).isTableNotEmpty("auth")) { |
38 | WarplyManager.getCosmoteUser(new WarplyCosmoteUserRequest() | 38 | WarplyManager.getCosmoteUser(new WarplyCosmoteUserRequest() |
39 | - .setGuid("7000000833"), //6012049321, 6012049322, 6012049323, 7000000831 history, 7000000826, 7000000831 shared coupons, prod 6006552990, prod 6005892749, live 3000184910 | 39 | + .setGuid("7000000800"), //6012049321, 6012049322, 6012049323, 7000000831 history, 7000000826, 7000000831 shared coupons, prod 6006552990, prod 6005892749, live 3000184910 |
40 | mLoginReceiver); | 40 | mLoginReceiver); |
41 | } else { | 41 | } else { |
42 | startNextActivity(); | 42 | startNextActivity(); | ... | ... |
... | @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' | ... | @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' |
2 | 2 | ||
3 | ext { | 3 | ext { |
4 | PUBLISH_GROUP_ID = 'ly.warp' | 4 | PUBLISH_GROUP_ID = 'ly.warp' |
5 | - PUBLISH_VERSION = '4.5.4.6rc76' | 5 | + PUBLISH_VERSION = '4.5.4.6rc77' |
6 | PUBLISH_ARTIFACT_ID = 'warply-android-sdk' | 6 | PUBLISH_ARTIFACT_ID = 'warply-android-sdk' |
7 | } | 7 | } |
8 | 8 | ... | ... |
... | @@ -6,11 +6,13 @@ import android.content.Intent; | ... | @@ -6,11 +6,13 @@ import android.content.Intent; |
6 | import android.graphics.Bitmap; | 6 | import android.graphics.Bitmap; |
7 | import android.graphics.Color; | 7 | import android.graphics.Color; |
8 | import android.os.Bundle; | 8 | import android.os.Bundle; |
9 | +import android.text.TextUtils; | ||
9 | import android.view.View; | 10 | import android.view.View; |
10 | import android.widget.ImageView; | 11 | import android.widget.ImageView; |
11 | import android.widget.LinearLayout; | 12 | import android.widget.LinearLayout; |
12 | import android.widget.TextView; | 13 | import android.widget.TextView; |
13 | 14 | ||
15 | +import androidx.appcompat.app.AlertDialog; | ||
14 | import androidx.core.content.ContextCompat; | 16 | import androidx.core.content.ContextCompat; |
15 | import androidx.core.text.HtmlCompat; | 17 | import androidx.core.text.HtmlCompat; |
16 | import androidx.recyclerview.widget.LinearLayoutManager; | 18 | import androidx.recyclerview.widget.LinearLayoutManager; |
... | @@ -22,6 +24,8 @@ import com.google.zxing.BarcodeFormat; | ... | @@ -22,6 +24,8 @@ import com.google.zxing.BarcodeFormat; |
22 | import com.google.zxing.common.BitMatrix; | 24 | import com.google.zxing.common.BitMatrix; |
23 | import com.google.zxing.oned.EAN13Writer; | 25 | import com.google.zxing.oned.EAN13Writer; |
24 | 26 | ||
27 | +import org.greenrobot.eventbus.EventBus; | ||
28 | + | ||
25 | import java.io.Serializable; | 29 | import java.io.Serializable; |
26 | import java.text.ParseException; | 30 | import java.text.ParseException; |
27 | import java.text.SimpleDateFormat; | 31 | import java.text.SimpleDateFormat; |
... | @@ -30,11 +34,15 @@ import java.util.Date; | ... | @@ -30,11 +34,15 @@ import java.util.Date; |
30 | 34 | ||
31 | import io.github.inflationx.viewpump.ViewPumpContextWrapper; | 35 | import io.github.inflationx.viewpump.ViewPumpContextWrapper; |
32 | import ly.warp.sdk.R; | 36 | import ly.warp.sdk.R; |
37 | +import ly.warp.sdk.io.callbacks.CallbackReceiver; | ||
33 | import ly.warp.sdk.io.models.Coupon; | 38 | import ly.warp.sdk.io.models.Coupon; |
34 | import ly.warp.sdk.io.models.CouponList; | 39 | import ly.warp.sdk.io.models.CouponList; |
40 | +import ly.warp.sdk.io.models.RefreshUnifiedCouponsEventModel; | ||
35 | import ly.warp.sdk.io.models.UnifiedCoupon; | 41 | import ly.warp.sdk.io.models.UnifiedCoupon; |
36 | import ly.warp.sdk.utils.WarplyManagerHelper; | 42 | import ly.warp.sdk.utils.WarplyManagerHelper; |
37 | import ly.warp.sdk.utils.managers.WarplyAnalyticsManager; | 43 | import ly.warp.sdk.utils.managers.WarplyAnalyticsManager; |
44 | +import ly.warp.sdk.utils.managers.WarplyEventBusManager; | ||
45 | +import ly.warp.sdk.utils.managers.WarplyManager; | ||
38 | import ly.warp.sdk.views.adapters.ActiveCouponAdapter; | 46 | import ly.warp.sdk.views.adapters.ActiveCouponAdapter; |
39 | 47 | ||
40 | 48 | ||
... | @@ -51,12 +59,14 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL | ... | @@ -51,12 +59,14 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL |
51 | private ImageView mIvBack, mIvBarcode, mIvMarketExpand; | 59 | private ImageView mIvBack, mIvBarcode, mIvMarketExpand; |
52 | private TextView mTvTerms, mTvCouponCode, mTvCouponDate, mTvMarketExpand, | 60 | private TextView mTvTerms, mTvCouponCode, mTvCouponDate, mTvMarketExpand, |
53 | mTvTermsValue, mTvFullBarcode, mTvActiveValue; | 61 | mTvTermsValue, mTvFullBarcode, mTvActiveValue; |
54 | - private LinearLayout mLlShops, mLlBarcodeContainer, mLlTerms, mLlMarketCoupons, mLlMarketExpand; | 62 | + private LinearLayout mLlShops, mLlBarcodeContainer, mLlTerms, mLlMarketCoupons, mLlMarketExpand, |
63 | + mLlCancelUnified; | ||
55 | private UnifiedCoupon mCoupon; | 64 | private UnifiedCoupon mCoupon; |
56 | private boolean mIsBarcodeShown = false, mIsTermsShown = false, mIsFromWallet = false, | 65 | private boolean mIsBarcodeShown = false, mIsTermsShown = false, mIsFromWallet = false, |
57 | mIsMarketExpand = true, mShopsPressed = false, mCouponPressed = false; | 66 | mIsMarketExpand = true, mShopsPressed = false, mCouponPressed = false; |
58 | private RecyclerView mRecyclerCoupons; | 67 | private RecyclerView mRecyclerCoupons; |
59 | private ActiveCouponAdapter mAdapterCoupons; | 68 | private ActiveCouponAdapter mAdapterCoupons; |
69 | + private AlertDialog mErrorAlertDialog, mSuccessAlertDialog, mAskCancelUnifiedAlertDialog; | ||
60 | 70 | ||
61 | // =========================================================== | 71 | // =========================================================== |
62 | // Methods for/from SuperClass/Interfaces | 72 | // Methods for/from SuperClass/Interfaces |
... | @@ -94,6 +104,7 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL | ... | @@ -94,6 +104,7 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL |
94 | mIvMarketExpand = findViewById(R.id.iv_market_expand); | 104 | mIvMarketExpand = findViewById(R.id.iv_market_expand); |
95 | mRecyclerCoupons = findViewById(R.id.rv_active_market_coupons); | 105 | mRecyclerCoupons = findViewById(R.id.rv_active_market_coupons); |
96 | mTvActiveValue = findViewById(R.id.textView14); | 106 | mTvActiveValue = findViewById(R.id.textView14); |
107 | + mLlCancelUnified = findViewById(R.id.ll_cancel_coupon); | ||
97 | mRecyclerCoupons.setNestedScrollingEnabled(false); | 108 | mRecyclerCoupons.setNestedScrollingEnabled(false); |
98 | mRecyclerCoupons.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); | 109 | mRecyclerCoupons.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); |
99 | 110 | ||
... | @@ -155,6 +166,10 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL | ... | @@ -155,6 +166,10 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL |
155 | mIvMarketExpand.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.ic_up_dark_new)); | 166 | mIvMarketExpand.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.ic_up_dark_new)); |
156 | mIsMarketExpand = true; | 167 | mIsMarketExpand = true; |
157 | } | 168 | } |
169 | + return; | ||
170 | + } | ||
171 | + if (view.getId() == R.id.ll_cancel_coupon) { | ||
172 | + askCancelUnifiedDialog(); | ||
158 | } | 173 | } |
159 | } | 174 | } |
160 | 175 | ||
... | @@ -193,7 +208,8 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL | ... | @@ -193,7 +208,8 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL |
193 | cpnlist.add(cpn); | 208 | cpnlist.add(cpn); |
194 | } | 209 | } |
195 | 210 | ||
196 | - mTvActiveValue.setText(HtmlCompat.fromHtml(String.format(getString(R.string.cos_unified_subtitle), String.valueOf(activeValue)), HtmlCompat.FROM_HTML_MODE_COMPACT)); | 211 | +// mTvActiveValue.setText(HtmlCompat.fromHtml(String.format(getString(R.string.cos_unified_subtitle), String.valueOf(activeValue)), HtmlCompat.FROM_HTML_MODE_COMPACT)); |
212 | + mTvActiveValue.setText(getString(R.string.cos_unified_subtitle2)); | ||
197 | 213 | ||
198 | Collections.sort(cpnlist, (coupon1, coupon2) -> coupon1.getExpirationDate().compareTo(coupon2.getExpirationDate())); | 214 | Collections.sort(cpnlist, (coupon1, coupon2) -> coupon1.getExpirationDate().compareTo(coupon2.getExpirationDate())); |
199 | for (Coupon tempItem : cpnlist) { | 215 | for (Coupon tempItem : cpnlist) { |
... | @@ -234,6 +250,7 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL | ... | @@ -234,6 +250,7 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL |
234 | mLlShops.setOnClickListener(this); | 250 | mLlShops.setOnClickListener(this); |
235 | mLlTerms.setOnClickListener(this); | 251 | mLlTerms.setOnClickListener(this); |
236 | mLlMarketExpand.setOnClickListener(this); | 252 | mLlMarketExpand.setOnClickListener(this); |
253 | + mLlCancelUnified.setOnClickListener(this); | ||
237 | 254 | ||
238 | String tempCoupon = ""; | 255 | String tempCoupon = ""; |
239 | int result = 0; | 256 | int result = 0; |
... | @@ -280,6 +297,72 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL | ... | @@ -280,6 +297,72 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL |
280 | } | 297 | } |
281 | } | 298 | } |
282 | 299 | ||
300 | + private void cancelUnified() { | ||
301 | + if (mCoupon.getCoupons() != null && mCoupon.getCoupons().size() == 0) return; | ||
302 | + | ||
303 | + String transactionID = mCoupon.getCoupons().get(0).getTransactionUuid(); | ||
304 | + | ||
305 | + if (TextUtils.isEmpty(transactionID)) return; | ||
306 | + | ||
307 | + WarplyManager.cancelUnifiedCoupon(transactionID, mCancelUnifiedCallback); | ||
308 | + } | ||
309 | + | ||
310 | + private void askCancelUnifiedDialog() { | ||
311 | + if (!isFinishing()) { | ||
312 | + mAskCancelUnifiedAlertDialog = new AlertDialog.Builder(this) | ||
313 | + .setTitle(R.string.cos_dlg_cancel_unified_coupon_success_title) | ||
314 | + .setMessage(R.string.cos_dlg_cancel_unified_coupon_success_subtitle2) | ||
315 | + .setPositiveButton(R.string.cos_dlg_positive_button3, (dialogPositive, whichPositive) -> { | ||
316 | + cancelUnified(); | ||
317 | + }) | ||
318 | + .setNegativeButton(R.string.cos_dlg_negative_button4, (dialogNegative, whichNegative) -> { | ||
319 | + dialogNegative.dismiss(); | ||
320 | + }) | ||
321 | + .show(); | ||
322 | + } | ||
323 | + } | ||
324 | + | ||
325 | + private void errorDialog() { | ||
326 | + if (!isFinishing()) { | ||
327 | + mErrorAlertDialog = new AlertDialog.Builder(this) | ||
328 | + .setTitle(R.string.cos_dlg_cancel_unified_coupon_success_title) | ||
329 | + .setMessage(R.string.cos_dlg_error_subtitle) | ||
330 | + .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | ||
331 | + dialogPositive.dismiss(); | ||
332 | + }) | ||
333 | + .setCancelable(false) | ||
334 | + .show(); | ||
335 | + } | ||
336 | + } | ||
337 | + | ||
338 | + private void successDialog() { | ||
339 | + if (!isFinishing()) { | ||
340 | + mSuccessAlertDialog = new AlertDialog.Builder(this) | ||
341 | + .setTitle(R.string.cos_dlg_cancel_unified_coupon_success_title) | ||
342 | + .setMessage(R.string.cos_dlg_cancel_unified_coupon_success_subtitle) | ||
343 | + .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | ||
344 | + dialogPositive.dismiss(); | ||
345 | + RefreshUnifiedCouponsEventModel couponsRefreshed = new RefreshUnifiedCouponsEventModel(); | ||
346 | + EventBus.getDefault().post(new WarplyEventBusManager(couponsRefreshed)); | ||
347 | + onBackPressed(); | ||
348 | + }) | ||
349 | + .setCancelable(false) | ||
350 | + .show(); | ||
351 | + } | ||
352 | + } | ||
353 | + | ||
354 | + private final CallbackReceiver<Integer> mCancelUnifiedCallback = new CallbackReceiver<Integer>() { | ||
355 | + @Override | ||
356 | + public void onSuccess(Integer result) { | ||
357 | + successDialog(); | ||
358 | + } | ||
359 | + | ||
360 | + @Override | ||
361 | + public void onFailure(int errorCode) { | ||
362 | + errorDialog(); | ||
363 | + } | ||
364 | + }; | ||
365 | + | ||
283 | // =========================================================== | 366 | // =========================================================== |
284 | // Inner and Anonymous Classes | 367 | // Inner and Anonymous Classes |
285 | // =========================================================== | 368 | // =========================================================== | ... | ... |
warply_android_sdk/src/main/java/ly/warp/sdk/io/models/RefreshUnifiedCouponsEventModel.java
0 → 100644
1 | +/* | ||
2 | + * Copyright 2010-2013 Warply Ltd. All rights reserved. | ||
3 | + * | ||
4 | + * Redistribution and use in source and binary forms, without modification, are | ||
5 | + * permitted provided that the following conditions are met: | ||
6 | + * | ||
7 | + * 1. Redistributions of source code must retain the above copyright notice, | ||
8 | + * this list of conditions and the following disclaimer. | ||
9 | + * | ||
10 | + * 2. Redistributions in binary form must reproduce the above copyright notice, | ||
11 | + * this list of conditions and the following disclaimer in the documentation | ||
12 | + * and/or other materials provided with the distribution. | ||
13 | + * | ||
14 | + * THIS SOFTWARE IS PROVIDED BY THE WARPLY LTD ``AS IS'' AND ANY EXPRESS OR | ||
15 | + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
16 | + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO | ||
17 | + * EVENT SHALL WARPLY LTD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
18 | + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
19 | + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, | ||
20 | + * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||
21 | + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||
22 | + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, | ||
23 | + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
24 | + */ | ||
25 | + | ||
26 | +package ly.warp.sdk.io.models; | ||
27 | + | ||
28 | + | ||
29 | +/** | ||
30 | + * Created by Panagiotis Triantafyllou on 03-Oct-23. | ||
31 | + */ | ||
32 | + | ||
33 | +public class RefreshUnifiedCouponsEventModel { | ||
34 | + private boolean success; | ||
35 | + | ||
36 | + public RefreshUnifiedCouponsEventModel() { | ||
37 | + this.success = true; | ||
38 | + } | ||
39 | + | ||
40 | + public boolean isSuccess() { | ||
41 | + return success; | ||
42 | + } | ||
43 | + | ||
44 | + public void setSuccess(boolean success) { | ||
45 | + this.success = success; | ||
46 | + } | ||
47 | +} |
... | @@ -102,6 +102,18 @@ public interface ApiService { | ... | @@ -102,6 +102,18 @@ public interface ApiService { |
102 | 102 | ||
103 | @Headers("Content-Type: application/json") | 103 | @Headers("Content-Type: application/json") |
104 | @POST("/oauth/{appUuid}/context") | 104 | @POST("/oauth/{appUuid}/context") |
105 | + Call<ResponseBody> cancelUnifiedCoupon(@Path("appUuid") String appUuid, | ||
106 | + @Body RequestBody request, | ||
107 | + @Header(WarpConstants.HEADER_DATE) String timeStamp, | ||
108 | + @Header(WarpConstants.HEADER_LOYALTY_BUNDLE_ID) String bundleId, | ||
109 | + @Header(WarpConstants.HEADER_UNIQUE_DEVICE_ID) String deviceId, | ||
110 | + @Header(WarpConstants.HEADER_CHANNEL) String channel, | ||
111 | + @Header(WarpConstants.HEADER_WEB_ID) String webId, | ||
112 | + @Header(WarpConstants.HEADER_SIGNATURE) String signature, | ||
113 | + @Header(WarpConstants.HEADER_AUTHORIZATION) String bearer); | ||
114 | + | ||
115 | + @Headers("Content-Type: application/json") | ||
116 | + @POST("/oauth/{appUuid}/context") | ||
105 | Call<ResponseBody> getTelematicsHistoy(@Path("appUuid") String appUuid, | 117 | Call<ResponseBody> getTelematicsHistoy(@Path("appUuid") String appUuid, |
106 | @Body RequestBody request, | 118 | @Body RequestBody request, |
107 | @Header(WarpConstants.HEADER_DATE) String timeStamp, | 119 | @Header(WarpConstants.HEADER_DATE) String timeStamp, | ... | ... |
... | @@ -14,6 +14,7 @@ import ly.warp.sdk.io.models.LoyaltySDKDynatraceEventModel; | ... | @@ -14,6 +14,7 @@ import ly.warp.sdk.io.models.LoyaltySDKDynatraceEventModel; |
14 | import ly.warp.sdk.io.models.LoyaltySDKFirebaseEventModel; | 14 | import ly.warp.sdk.io.models.LoyaltySDKFirebaseEventModel; |
15 | import ly.warp.sdk.io.models.LoyaltySDKSessionExpiredEventModel; | 15 | import ly.warp.sdk.io.models.LoyaltySDKSessionExpiredEventModel; |
16 | import ly.warp.sdk.io.models.QuestionnaireEventModel; | 16 | import ly.warp.sdk.io.models.QuestionnaireEventModel; |
17 | +import ly.warp.sdk.io.models.RefreshUnifiedCouponsEventModel; | ||
17 | import ly.warp.sdk.io.models.UnifiedCouponsEventModel; | 18 | import ly.warp.sdk.io.models.UnifiedCouponsEventModel; |
18 | import ly.warp.sdk.io.models.WarplyCCMSEnabledModel; | 19 | import ly.warp.sdk.io.models.WarplyCCMSEnabledModel; |
19 | import ly.warp.sdk.io.models.WarplyCouponsChangedEventModel; | 20 | import ly.warp.sdk.io.models.WarplyCouponsChangedEventModel; |
... | @@ -46,6 +47,7 @@ public class WarplyEventBusManager { | ... | @@ -46,6 +47,7 @@ public class WarplyEventBusManager { |
46 | private CouponsEventModel couponsAdded; | 47 | private CouponsEventModel couponsAdded; |
47 | 48 | ||
48 | private UnifiedCouponsEventModel unifiedCouponsAdded; | 49 | private UnifiedCouponsEventModel unifiedCouponsAdded; |
50 | + private RefreshUnifiedCouponsEventModel refreshUnifiedCouponsAdded; | ||
49 | private LoyaltyEventModel campaignsAdded; | 51 | private LoyaltyEventModel campaignsAdded; |
50 | private HealthEventModel healthAdded; | 52 | private HealthEventModel healthAdded; |
51 | private WarplyCouponsChangedEventModel couponsChanged; | 53 | private WarplyCouponsChangedEventModel couponsChanged; |
... | @@ -96,6 +98,10 @@ public class WarplyEventBusManager { | ... | @@ -96,6 +98,10 @@ public class WarplyEventBusManager { |
96 | this.unifiedCouponsAdded = unifiedCouponsAdded; | 98 | this.unifiedCouponsAdded = unifiedCouponsAdded; |
97 | } | 99 | } |
98 | 100 | ||
101 | + public WarplyEventBusManager(RefreshUnifiedCouponsEventModel refreshUnifiedCouponsAdded) { | ||
102 | + this.refreshUnifiedCouponsAdded = refreshUnifiedCouponsAdded; | ||
103 | + } | ||
104 | + | ||
99 | public WarplyEventBusManager(WarplyPacingCardEventModel widgetChanged) { | 105 | public WarplyEventBusManager(WarplyPacingCardEventModel widgetChanged) { |
100 | this.widgetChanged = widgetChanged; | 106 | this.widgetChanged = widgetChanged; |
101 | } | 107 | } |
... | @@ -238,6 +244,10 @@ public class WarplyEventBusManager { | ... | @@ -238,6 +244,10 @@ public class WarplyEventBusManager { |
238 | return unifiedCouponsAdded; | 244 | return unifiedCouponsAdded; |
239 | } | 245 | } |
240 | 246 | ||
247 | + public RefreshUnifiedCouponsEventModel getRefreshUnifiedCouponsAdded() { | ||
248 | + return refreshUnifiedCouponsAdded; | ||
249 | + } | ||
250 | + | ||
241 | public LoyaltyEventModel getCampaignsAdded() { | 251 | public LoyaltyEventModel getCampaignsAdded() { |
242 | return campaignsAdded; | 252 | return campaignsAdded; |
243 | } | 253 | } | ... | ... |
... | @@ -2027,6 +2027,56 @@ public class WarplyManager { | ... | @@ -2027,6 +2027,56 @@ public class WarplyManager { |
2027 | }); | 2027 | }); |
2028 | } | 2028 | } |
2029 | 2029 | ||
2030 | + public static void cancelUnifiedCoupon(String transactionID, final CallbackReceiver<Integer> receiver) { | ||
2031 | + WarpUtils.log("************* WARPLY Cancel Unified Request ********************"); | ||
2032 | + WarpUtils.log("[WARP Trace] WARPLY Cancel Unified Request is active"); | ||
2033 | + WarpUtils.log("**************************************************"); | ||
2034 | + ApiService service = ApiClient.getRetrofitInstance().create(ApiService.class); | ||
2035 | + cancelUnifiedCoupon(service, transactionID, new Callback<ResponseBody>() { | ||
2036 | + @Override | ||
2037 | + public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { | ||
2038 | + if (response.code() == 200 && response.body() != null) { | ||
2039 | + JSONObject jobjResponse = null; | ||
2040 | + try { | ||
2041 | + jobjResponse = new JSONObject(response.body().string()); | ||
2042 | + } catch (Exception e) { | ||
2043 | + LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
2044 | + dynatraceEvent.setEventName("custom_error_cancel_unified_loyalty"); | ||
2045 | + EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
2046 | + e.printStackTrace(); | ||
2047 | + } | ||
2048 | + | ||
2049 | + if (jobjResponse != null && jobjResponse.has("status") && jobjResponse.optInt("status", 2) == 1) { | ||
2050 | + LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
2051 | + dynatraceEvent.setEventName("custom_success_cancel_unified_loyalty"); | ||
2052 | + EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
2053 | + Integer status = new Integer(jobjResponse.optInt("status", 2)); | ||
2054 | + receiver.onSuccess(status); | ||
2055 | + } else { | ||
2056 | + LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
2057 | + dynatraceEvent.setEventName("custom_error_cancel_unified_loyalty"); | ||
2058 | + EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
2059 | + receiver.onFailure(2); | ||
2060 | + } | ||
2061 | + | ||
2062 | + } else { | ||
2063 | + LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
2064 | + dynatraceEvent.setEventName("custom_error_cancel_unified_loyalty"); | ||
2065 | + EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
2066 | + receiver.onFailure(response.code()); | ||
2067 | + } | ||
2068 | + } | ||
2069 | + | ||
2070 | + @Override | ||
2071 | + public void onFailure(Call<ResponseBody> call, Throwable t) { | ||
2072 | + LoyaltySDKDynatraceEventModel dynatraceEvent = new LoyaltySDKDynatraceEventModel(); | ||
2073 | + dynatraceEvent.setEventName("custom_error_cancel_unified_loyalty"); | ||
2074 | + EventBus.getDefault().post(new WarplyEventBusManager(dynatraceEvent)); | ||
2075 | + receiver.onFailure(2); | ||
2076 | + } | ||
2077 | + }); | ||
2078 | + } | ||
2079 | + | ||
2030 | public static void getUnifiedCouponsDeals(final CallbackReceiver<ArrayList<UnifiedCoupon>> receiver) { | 2080 | public static void getUnifiedCouponsDeals(final CallbackReceiver<ArrayList<UnifiedCoupon>> receiver) { |
2031 | WarpUtils.log("************* WARPLY User Coupons Request ********************"); | 2081 | WarpUtils.log("************* WARPLY User Coupons Request ********************"); |
2032 | WarpUtils.log("[WARP Trace] WARPLY User Coupons Request is active"); | 2082 | WarpUtils.log("[WARP Trace] WARPLY User Coupons Request is active"); |
... | @@ -2997,6 +3047,44 @@ public class WarplyManager { | ... | @@ -2997,6 +3047,44 @@ public class WarplyManager { |
2997 | }); | 3047 | }); |
2998 | } | 3048 | } |
2999 | 3049 | ||
3050 | + private static void cancelUnifiedCoupon(ApiService service, String transactionID, Callback<ResponseBody> callback) { | ||
3051 | + String timeStamp = DateFormat.format("yyyy-MM-dd hh:mm:ss", System.currentTimeMillis()).toString(); | ||
3052 | + String apiKey = WarpUtils.getApiKey(Warply.getWarplyContext()); | ||
3053 | + String webId = WarpUtils.getWebId(Warply.getWarplyContext()); | ||
3054 | + | ||
3055 | + Map<String, Object> jsonParamsUnified = new ArrayMap<>(); | ||
3056 | + Map<String, Object> jsonParams = new ArrayMap<>(); | ||
3057 | + jsonParams.put("action", "cancel_unified_coupon"); | ||
3058 | + jsonParams.put("transaction_id", transactionID); | ||
3059 | + | ||
3060 | + jsonParamsUnified.put("coupon", jsonParams); | ||
3061 | + RequestBody cancelUnifiedDataRequest = RequestBody.create(MediaType.get("application/json; charset=utf-8"), (new JSONObject(jsonParamsUnified)).toString()); | ||
3062 | + | ||
3063 | + Call<ResponseBody> telematicsCall = service.cancelUnifiedCoupon( | ||
3064 | + WarplyProperty.getAppUuid(Warply.getWarplyContext()), | ||
3065 | + cancelUnifiedDataRequest, | ||
3066 | + timeStamp, | ||
3067 | + "android:" + Warply.getWarplyContext().getPackageName(), | ||
3068 | + new WarplyDeviceInfoCollector(Warply.getWarplyContext()).getUniqueDeviceId(), | ||
3069 | + "mobile", | ||
3070 | + webId, | ||
3071 | + WarpUtils.produceSignature(apiKey + timeStamp), | ||
3072 | + "Bearer " + WarplyDBHelper.getInstance(Warply.getWarplyContext()).getAuthValue("access_token") | ||
3073 | + ); | ||
3074 | + | ||
3075 | + telematicsCall.enqueue(new Callback<ResponseBody>() { | ||
3076 | + @Override | ||
3077 | + public void onResponse(@NonNull Call<ResponseBody> call, @NonNull Response<ResponseBody> response) { | ||
3078 | + callback.onResponse(call, response); | ||
3079 | + } | ||
3080 | + | ||
3081 | + @Override | ||
3082 | + public void onFailure(@NonNull Call<ResponseBody> call, @NonNull Throwable t) { | ||
3083 | + callback.onFailure(call, t); | ||
3084 | + } | ||
3085 | + }); | ||
3086 | + } | ||
3087 | + | ||
3000 | private static void getTelematicsHistory(ApiService service, Callback<ResponseBody> callback) { | 3088 | private static void getTelematicsHistory(ApiService service, Callback<ResponseBody> callback) { |
3001 | String timeStamp = DateFormat.format("yyyy-MM-dd hh:mm:ss", System.currentTimeMillis()).toString(); | 3089 | String timeStamp = DateFormat.format("yyyy-MM-dd hh:mm:ss", System.currentTimeMillis()).toString(); |
3002 | String apiKey = WarpUtils.getApiKey(Warply.getWarplyContext()); | 3090 | String apiKey = WarpUtils.getApiKey(Warply.getWarplyContext()); | ... | ... |
... | @@ -125,9 +125,9 @@ public class MarketCouponAdapter extends RecyclerView.Adapter<MarketCouponAdapte | ... | @@ -125,9 +125,9 @@ public class MarketCouponAdapter extends RecyclerView.Adapter<MarketCouponAdapte |
125 | } | 125 | } |
126 | 126 | ||
127 | if (count > 1) { | 127 | if (count > 1) { |
128 | - holder.tvCouponCount.setText(String.format(mContext.getString(R.string.cos_market_active_coupons), String.valueOf(count), String.valueOf(activeValue))); | 128 | + holder.tvCouponCount.setText(String.format(mContext.getString(R.string.cos_market_active_coupons2), String.valueOf(count))); |
129 | } else if (count == 1) { | 129 | } else if (count == 1) { |
130 | - holder.tvCouponCount.setText(String.format(mContext.getString(R.string.cos_market_active_coupons_single), String.valueOf(count), String.valueOf(activeValue))); | 130 | + holder.tvCouponCount.setText(String.format(mContext.getString(R.string.cos_market_active_coupons_single2), String.valueOf(count))); |
131 | } | 131 | } |
132 | 132 | ||
133 | 133 | ... | ... |
... | @@ -219,7 +219,7 @@ | ... | @@ -219,7 +219,7 @@ |
219 | 219 | ||
220 | <LinearLayout | 220 | <LinearLayout |
221 | android:id="@+id/ll_shops" | 221 | android:id="@+id/ll_shops" |
222 | - android:layout_width="220dp" | 222 | + android:layout_width="260dp" |
223 | android:layout_height="55dp" | 223 | android:layout_height="55dp" |
224 | android:layout_gravity="center" | 224 | android:layout_gravity="center" |
225 | android:layout_marginHorizontal="32dp" | 225 | android:layout_marginHorizontal="32dp" |
... | @@ -240,6 +240,29 @@ | ... | @@ -240,6 +240,29 @@ |
240 | android:textSize="16sp" /> | 240 | android:textSize="16sp" /> |
241 | </LinearLayout> | 241 | </LinearLayout> |
242 | 242 | ||
243 | + <LinearLayout | ||
244 | + android:id="@+id/ll_cancel_coupon" | ||
245 | + android:layout_width="260dp" | ||
246 | + android:layout_height="55dp" | ||
247 | + android:layout_gravity="center" | ||
248 | + android:layout_marginHorizontal="32dp" | ||
249 | + android:layout_marginTop="20dp" | ||
250 | + android:background="@drawable/selector_button_green_border" | ||
251 | + android:gravity="center" | ||
252 | + android:orientation="horizontal" | ||
253 | + android:paddingVertical="8dp"> | ||
254 | + | ||
255 | + <TextView | ||
256 | + fontPath="fonts/PeridotPE-SemiBold.ttf" | ||
257 | + android:layout_width="wrap_content" | ||
258 | + android:layout_height="wrap_content" | ||
259 | + android:gravity="center" | ||
260 | + android:includeFontPadding="false" | ||
261 | + android:text="@string/cos_cancel_unified_coupon" | ||
262 | + android:textColor="@color/cos_green12" | ||
263 | + android:textSize="16sp" /> | ||
264 | + </LinearLayout> | ||
265 | + | ||
243 | <RelativeLayout | 266 | <RelativeLayout |
244 | android:id="@+id/rl_terms" | 267 | android:id="@+id/rl_terms" |
245 | android:layout_width="wrap_content" | 268 | android:layout_width="wrap_content" | ... | ... |
... | @@ -156,8 +156,11 @@ | ... | @@ -156,8 +156,11 @@ |
156 | <string name="cos_market_item_title">COSMOTE\nSUPERMARKET\nDEALS</string> | 156 | <string name="cos_market_item_title">COSMOTE\nSUPERMARKET\nDEALS</string> |
157 | <string name="cos_market_active_coupons">έχεις %1$s ενεργά κουπόνια αξίας %2$s€</string> | 157 | <string name="cos_market_active_coupons">έχεις %1$s ενεργά κουπόνια αξίας %2$s€</string> |
158 | <string name="cos_market_active_coupons_single">έχεις %1$s ενεργό κουπόνι αξίας %2$s€</string> | 158 | <string name="cos_market_active_coupons_single">έχεις %1$s ενεργό κουπόνι αξίας %2$s€</string> |
159 | + <string name="cos_market_active_coupons2">έχεις %1$s ενεργά κουπόνια</string> | ||
160 | + <string name="cos_market_active_coupons_single2">έχεις %1$s ενεργό κουπόνι</string> | ||
159 | <string name="cos_unified_title">Εκπτωτικό κουπόνι COSMOTE SUPERMARKET DEALS!</string> | 161 | <string name="cos_unified_title">Εκπτωτικό κουπόνι COSMOTE SUPERMARKET DEALS!</string> |
160 | <string name="cos_unified_subtitle">Χρησιμοποίησε τον παρακάτω κωδικό και πάρε έκπτωση στα ενεργά κουπόνια προσφορών αξίας <![CDATA[<b>%1$s€</b>]]>.</string> | 162 | <string name="cos_unified_subtitle">Χρησιμοποίησε τον παρακάτω κωδικό και πάρε έκπτωση στα ενεργά κουπόνια προσφορών αξίας <![CDATA[<b>%1$s€</b>]]>.</string> |
163 | + <string name="cos_unified_subtitle2">Χρησιμοποίησε τον παρακάτω κωδικό και πάρε έκπτωση στα ενεργά κουπόνια προσφορών.</string> | ||
161 | <string name="cos_markets">Δες τα supermarket</string> | 164 | <string name="cos_markets">Δες τα supermarket</string> |
162 | <string name="cos_show_market_coupons">Εμφάνιση προσφορών</string> | 165 | <string name="cos_show_market_coupons">Εμφάνιση προσφορών</string> |
163 | <string name="cos_hide_market_coupons">Απόκρυψη προσφορών</string> | 166 | <string name="cos_hide_market_coupons">Απόκρυψη προσφορών</string> |
... | @@ -189,6 +192,12 @@ | ... | @@ -189,6 +192,12 @@ |
189 | <string name="cos_telematics_history_analysis_rate">Αξιολογήστε την ανάλυση</string> | 192 | <string name="cos_telematics_history_analysis_rate">Αξιολογήστε την ανάλυση</string> |
190 | <string name="lbl_telematics_no_location">Για να ξεκινήσετε θα πρέπει να ενεργοποιήσετε την τοποθεσία σας</string> | 193 | <string name="lbl_telematics_no_location">Για να ξεκινήσετε θα πρέπει να ενεργοποιήσετε την τοποθεσία σας</string> |
191 | <string name="lbl_telematics_generic_error">Άγνωστο σφάλμα</string> | 194 | <string name="lbl_telematics_generic_error">Άγνωστο σφάλμα</string> |
195 | + <string name="cos_cancel_unified_coupon">Ακύρωση ενιαίου κουπονιού</string> | ||
196 | + <string name="cos_dlg_cancel_unified_coupon_success_title">Ακύρωση Κουπονιού</string> | ||
197 | + <string name="cos_dlg_cancel_unified_coupon_success_subtitle">Το ενιαίο κουπόνι σου ακυρώθηκε επιτυχώς. Βρες τα μεμονωμένα κουπόνια στο καλάθι SM deals.</string> | ||
198 | + <string name="cos_dlg_cancel_unified_coupon_success_subtitle2">Είσαι σίγουρος ότι θέλεις να ακυρώσεις το κουπόνι σου;</string> | ||
199 | + <string name="cos_dlg_negative_button4">Όχι</string> | ||
200 | + <string name="cos_dlg_positive_button3">Ναι</string> | ||
192 | 201 | ||
193 | <string-array name="coupons_array"> | 202 | <string-array name="coupons_array"> |
194 | <item>Κουπόνια</item> | 203 | <item>Κουπόνια</item> | ... | ... |
-
Please register or login to post a comment