Showing
3 changed files
with
128 additions
and
37 deletions
... | @@ -328,19 +328,15 @@ public class ContextualActivity extends Activity implements View.OnClickListener | ... | @@ -328,19 +328,15 @@ public class ContextualActivity extends Activity implements View.OnClickListener |
328 | private CallbackReceiver<JSONObject> mSubmitCallback = new CallbackReceiver<JSONObject>() { | 328 | private CallbackReceiver<JSONObject> mSubmitCallback = new CallbackReceiver<JSONObject>() { |
329 | @Override | 329 | @Override |
330 | public void onSuccess(JSONObject result) { | 330 | public void onSuccess(JSONObject result) { |
331 | + /* New Addition start */ | ||
332 | + WarplyManager.getUserCouponsWithCouponsetsInternal(mUserCouponsReceiver); | ||
333 | + WarplyManager.getCampaignsInternal(mCampaignsCallback); | ||
334 | + /* New Addition end */ | ||
335 | + | ||
331 | int status = result.optInt("status", 2); | 336 | int status = result.optInt("status", 2); |
332 | runOnUiThread(() -> { | 337 | runOnUiThread(() -> { |
333 | if (status == 1) { | 338 | if (status == 1) { |
334 | successActivatingDialog(); | 339 | successActivatingDialog(); |
335 | - /* New Addition start */ | ||
336 | - WarplyManager.getUserCouponsWithCouponsetsInternal(mUserCouponsReceiver); | ||
337 | -// WarplyManager.getCampaigns(mCampaignsCallback); | ||
338 | - if (mLoyalty != null) { | ||
339 | - WarplyManagerHelper.removeCampaignItem(mLoyalty); | ||
340 | - OneTimeWorkRequest mywork = new OneTimeWorkRequest.Builder(EventCampaignService.class).build(); | ||
341 | - WorkManager.getInstance(ContextualActivity.this).enqueue(mywork); | ||
342 | - } | ||
343 | - /* New Addition end */ | ||
344 | } else | 340 | } else |
345 | errorActivatingDialog(); | 341 | errorActivatingDialog(); |
346 | }); | 342 | }); |
... | @@ -367,16 +363,22 @@ public class ContextualActivity extends Activity implements View.OnClickListener | ... | @@ -367,16 +363,22 @@ public class ContextualActivity extends Activity implements View.OnClickListener |
367 | } | 363 | } |
368 | }; | 364 | }; |
369 | 365 | ||
370 | -// private CallbackReceiver<ArrayList<Campaign>> mCampaignsCallback = new CallbackReceiver<ArrayList<Campaign>>() { | 366 | + private CallbackReceiver<ArrayList<Campaign>> mCampaignsCallback = new CallbackReceiver<ArrayList<Campaign>>() { |
371 | -// @Override | 367 | + @Override |
372 | -// public void onSuccess(ArrayList<Campaign> result) { | 368 | + public void onSuccess(ArrayList<Campaign> result) { |
373 | -// OneTimeWorkRequest mywork = new OneTimeWorkRequest.Builder(EventCampaignService.class).build(); | 369 | + if (mLoyalty != null) { |
374 | -// WorkManager.getInstance(ContextualActivity.this).enqueue(mywork); | 370 | + WarplyManagerHelper.removeCampaignItem(mLoyalty); |
375 | -// } | 371 | + OneTimeWorkRequest mywork = new OneTimeWorkRequest.Builder(EventCampaignService.class).build(); |
376 | -// | 372 | + WorkManager.getInstance(ContextualActivity.this).enqueue(mywork); |
377 | -// @Override | 373 | + } else { |
378 | -// public void onFailure(int errorCode) { | 374 | + OneTimeWorkRequest mywork = new OneTimeWorkRequest.Builder(EventCampaignService.class).build(); |
379 | -// | 375 | + WorkManager.getInstance(ContextualActivity.this).enqueue(mywork); |
380 | -// } | 376 | + } |
381 | -// }; | 377 | + } |
378 | + | ||
379 | + @Override | ||
380 | + public void onFailure(int errorCode) { | ||
381 | + | ||
382 | + } | ||
383 | + }; | ||
382 | } | 384 | } | ... | ... |
... | @@ -267,15 +267,13 @@ public class CouponsetInfoActivity extends Activity implements View.OnClickListe | ... | @@ -267,15 +267,13 @@ public class CouponsetInfoActivity extends Activity implements View.OnClickListe |
267 | // WarplyManager.getCampaigns(mCampaignsCallback); | 267 | // WarplyManager.getCampaigns(mCampaignsCallback); |
268 | WarplyManagerHelper.addCouponItem(mCoupon); | 268 | WarplyManagerHelper.addCouponItem(mCoupon); |
269 | WarplyManagerHelper.removeCampaignItem(mLoyalty); | 269 | WarplyManagerHelper.removeCampaignItem(mLoyalty); |
270 | + WarplyManager.getCampaignsInternal(mCampaignsCallback); | ||
270 | /* New Addition end */ | 271 | /* New Addition end */ |
271 | 272 | ||
272 | /* New Addition start */ | 273 | /* New Addition start */ |
273 | WarplyCouponsChangedEventModel couponsChanged = new WarplyCouponsChangedEventModel(); | 274 | WarplyCouponsChangedEventModel couponsChanged = new WarplyCouponsChangedEventModel(); |
274 | couponsChanged.setChanged(true); | 275 | couponsChanged.setChanged(true); |
275 | EventBus.getDefault().post(new WarplyEventBusManager(couponsChanged)); | 276 | EventBus.getDefault().post(new WarplyEventBusManager(couponsChanged)); |
276 | - | ||
277 | - OneTimeWorkRequest mywork = new OneTimeWorkRequest.Builder(EventCampaignService.class).build(); | ||
278 | - WorkManager.getInstance(CouponsetInfoActivity.this).enqueue(mywork); | ||
279 | /* New Addition end */ | 277 | /* New Addition end */ |
280 | } else { | 278 | } else { |
281 | showDialog(false, status); | 279 | showDialog(false, status); |
... | @@ -409,17 +407,16 @@ public class CouponsetInfoActivity extends Activity implements View.OnClickListe | ... | @@ -409,17 +407,16 @@ public class CouponsetInfoActivity extends Activity implements View.OnClickListe |
409 | // } | 407 | // } |
410 | // }; | 408 | // }; |
411 | 409 | ||
412 | -// private CallbackReceiver<ArrayList<Campaign>> mCampaignsCallback = new CallbackReceiver<ArrayList<Campaign>>() { | 410 | + private CallbackReceiver<ArrayList<Campaign>> mCampaignsCallback = new CallbackReceiver<ArrayList<Campaign>>() { |
413 | -// @Override | 411 | + @Override |
414 | -// public void onSuccess(ArrayList<Campaign> result) { | 412 | + public void onSuccess(ArrayList<Campaign> result) { |
415 | -// OneTimeWorkRequest mywork = new OneTimeWorkRequest.Builder(EventCampaignService.class).build(); | 413 | + OneTimeWorkRequest mywork = new OneTimeWorkRequest.Builder(EventCampaignService.class).build(); |
416 | -// WorkManager.getInstance(CouponsetInfoActivity.this).enqueue(mywork); | 414 | + WorkManager.getInstance(CouponsetInfoActivity.this).enqueue(mywork); |
417 | -// } | 415 | + } |
418 | -// | 416 | + |
419 | -// @Override | 417 | + @Override |
420 | -// public void onFailure(int errorCode) { | 418 | + public void onFailure(int errorCode) { |
421 | -// | ||
422 | -// } | ||
423 | -// }; | ||
424 | 419 | ||
420 | + } | ||
421 | + }; | ||
425 | } | 422 | } | ... | ... |
... | @@ -1908,7 +1908,7 @@ public class WarplyManager { | ... | @@ -1908,7 +1908,7 @@ public class WarplyManager { |
1908 | WarpUtils.log("**************************************************"); | 1908 | WarpUtils.log("**************************************************"); |
1909 | 1909 | ||
1910 | ApiService service = ApiClient.getRetrofitInstance().create(ApiService.class); | 1910 | ApiService service = ApiClient.getRetrofitInstance().create(ApiService.class); |
1911 | - ListeningExecutorService executorService = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(3)); | 1911 | + ListeningExecutorService executorService = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(1)); |
1912 | 1912 | ||
1913 | SettableFuture<CouponList> futureUniversal = SettableFuture.create(); | 1913 | SettableFuture<CouponList> futureUniversal = SettableFuture.create(); |
1914 | ListenableFuture<CouponList> futureCoupons = getCouponsUniversalRetro(service, 0, futureUniversal); | 1914 | ListenableFuture<CouponList> futureCoupons = getCouponsUniversalRetro(service, 0, futureUniversal); |
... | @@ -2038,6 +2038,98 @@ public class WarplyManager { | ... | @@ -2038,6 +2038,98 @@ public class WarplyManager { |
2038 | // }); | 2038 | // }); |
2039 | } | 2039 | } |
2040 | 2040 | ||
2041 | + public static void getCampaignsInternal(final CallbackReceiver<ArrayList<Campaign>> receiver) { | ||
2042 | + WarpUtils.log("************* WARPLY Get Campaigns Request ********************"); | ||
2043 | + WarpUtils.log("[WARP Trace] WARPLY Get Campaigns Request is active"); | ||
2044 | + WarpUtils.log("**************************************************"); | ||
2045 | + | ||
2046 | + ApiService service = ApiClient.getRetrofitInstance().create(ApiService.class); | ||
2047 | + ListeningExecutorService executorService = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(1)); | ||
2048 | + | ||
2049 | + ListenableFuture<JSONObject> futureCampaignAvailability = getCampaignAvailability(service); | ||
2050 | + | ||
2051 | + ListenableFuture<List<Object>> allResultsFuture = Futures.allAsList(futureCampaignAvailability); | ||
2052 | + ListenableFuture<ArrayList<Campaign>> mergedResultFuture = Futures.transformAsync( | ||
2053 | + allResultsFuture, | ||
2054 | + results -> { | ||
2055 | + JSONObject resultCampaignsAvailability = (JSONObject) results.get(0); | ||
2056 | + return executorService.submit(() -> mergeCampaignResultsInternal(resultCampaignsAvailability)); | ||
2057 | + }, | ||
2058 | + executorService | ||
2059 | + ); | ||
2060 | + | ||
2061 | + Futures.addCallback(mergedResultFuture, new FutureCallback<ArrayList<Campaign>>() { | ||
2062 | + @Override | ||
2063 | + public void onSuccess(ArrayList<Campaign> mergedResult) { | ||
2064 | + executorService.shutdownNow(); | ||
2065 | + new Handler(Looper.getMainLooper()).post(() -> receiver.onSuccess(mergedResult)); | ||
2066 | + } | ||
2067 | + | ||
2068 | + @Override | ||
2069 | + public void onFailure(Throwable throwable) { | ||
2070 | + executorService.shutdownNow(); | ||
2071 | + new Handler(Looper.getMainLooper()).post(() -> receiver.onFailure(2)); | ||
2072 | + } | ||
2073 | + }, executorService); | ||
2074 | + } | ||
2075 | + | ||
2076 | + private static ArrayList<Campaign> mergeCampaignResultsInternal(JSONObject resultCampaignsAvailability) { | ||
2077 | + ArrayList<Campaign> newCampaignList = new ArrayList<Campaign>(); | ||
2078 | + ArrayList<Campaign> campaignLoyaltyList = new ArrayList<>(); | ||
2079 | + newCampaignList.clear(); | ||
2080 | + if (WarplyManagerHelper.getCampaignListAll() != null && !WarplyManagerHelper.getCampaignListAll().isEmpty()) | ||
2081 | + newCampaignList.addAll(WarplyManagerHelper.getCampaignListAll()); | ||
2082 | + | ||
2083 | + if (newCampaignList != null && !newCampaignList.isEmpty()) { | ||
2084 | + Collections.sort(newCampaignList, (obj1, obj2) -> Integer.compare(obj1.getSorting(), obj2.getSorting())); | ||
2085 | + campaignLoyaltyList.clear(); | ||
2086 | + ArrayList<Campaign> campaignCarouselList = new ArrayList<>(); | ||
2087 | + campaignCarouselList.clear(); | ||
2088 | + for (Campaign camp : newCampaignList) { | ||
2089 | + if (resultCampaignsAvailability != null && resultCampaignsAvailability.length() > 0) { | ||
2090 | + JSONObject campaignSettings = WarpJSONParser.getJSONFromString(camp.getCampaignTypeSettings()); | ||
2091 | + if (campaignSettings != null) { | ||
2092 | + if (campaignSettings.has("couponset")) { | ||
2093 | + String cpnUuid = campaignSettings.optString("couponset"); | ||
2094 | + if (resultCampaignsAvailability.has(cpnUuid)) { | ||
2095 | + camp.setCouponAvailability(resultCampaignsAvailability.optInt(cpnUuid)); | ||
2096 | + } | ||
2097 | + } | ||
2098 | + } | ||
2099 | + } | ||
2100 | + | ||
2101 | + JSONObject campMetadata = WarpJSONParser.getJSONFromString(camp.getExtraFields()); | ||
2102 | + if (campMetadata != null) { | ||
2103 | + if (campMetadata.has("carousel")) { | ||
2104 | + if (camp.getCouponAvailability() == null || camp.getCouponAvailability() != 0) | ||
2105 | + campaignCarouselList.add(camp); | ||
2106 | + } | ||
2107 | + } | ||
2108 | + | ||
2109 | + try { | ||
2110 | + JSONObject extraFields = WarpJSONParser.getJSONFromString(camp.getExtraFields()); | ||
2111 | + if (extraFields != null) { | ||
2112 | + if (extraFields.length() == 0 || !(extraFields.has("ccms_offer") || extraFields.has("type"))) { | ||
2113 | + if (camp.getCouponAvailability() == null || camp.getCouponAvailability() != 0) | ||
2114 | + campaignLoyaltyList.add(camp); | ||
2115 | + } | ||
2116 | + } | ||
2117 | + } catch (Exception exception) { | ||
2118 | + if (camp.getCouponAvailability() == null || camp.getCouponAvailability() != 0) | ||
2119 | + campaignLoyaltyList.add(camp); | ||
2120 | + } | ||
2121 | + } | ||
2122 | + WarplyManagerHelper.setCampaignList(newCampaignList); | ||
2123 | + WarplyManagerHelper.setCarouselList(campaignCarouselList); | ||
2124 | + | ||
2125 | + Set<Campaign> set = new LinkedHashSet<>(campaignLoyaltyList); | ||
2126 | + campaignLoyaltyList.clear(); | ||
2127 | + campaignLoyaltyList.addAll(set); | ||
2128 | + } | ||
2129 | + | ||
2130 | + return campaignLoyaltyList; | ||
2131 | + } | ||
2132 | + | ||
2041 | private static /*void*/ ListenableFuture<ArrayList<Campaign>> getCampaignsRetro(ApiService service/*, final CallbackReceiver<ArrayList<Campaign>> receiver*/) { | 2133 | private static /*void*/ ListenableFuture<ArrayList<Campaign>> getCampaignsRetro(ApiService service/*, final CallbackReceiver<ArrayList<Campaign>> receiver*/) { |
2042 | SettableFuture<ArrayList<Campaign>> future = SettableFuture.create(); | 2134 | SettableFuture<ArrayList<Campaign>> future = SettableFuture.create(); |
2043 | 2135 | ... | ... |
-
Please register or login to post a comment