Panagiotis Triantafyllou

new questionnaire flow

...@@ -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-cosbeta41' 5 + PUBLISH_VERSION = '4.5.4-cosbeta42'
6 PUBLISH_ARTIFACT_ID = 'warply-android-sdk' 6 PUBLISH_ARTIFACT_ID = 'warply-android-sdk'
7 } 7 }
8 8
......
...@@ -152,6 +152,11 @@ ...@@ -152,6 +152,11 @@
152 android:permission="android.permission.BIND_JOB_SERVICE" /> 152 android:permission="android.permission.BIND_JOB_SERVICE" />
153 153
154 <service 154 <service
155 + android:name="ly.warp.sdk.services.EventQuestionnaireService"
156 + android:exported="false"
157 + android:permission="android.permission.BIND_JOB_SERVICE" />
158 +
159 + <service
155 android:name="ly.warp.sdk.services.WarplyBeaconsRangingService" 160 android:name="ly.warp.sdk.services.WarplyBeaconsRangingService"
156 android:exported="false" /> 161 android:exported="false" />
157 162
......
...@@ -33,8 +33,6 @@ import android.content.Intent; ...@@ -33,8 +33,6 @@ import android.content.Intent;
33 import android.graphics.Color; 33 import android.graphics.Color;
34 import android.os.Build; 34 import android.os.Build;
35 import android.os.Bundle; 35 import android.os.Bundle;
36 -import android.os.Handler;
37 -import android.os.Looper;
38 import android.text.TextUtils; 36 import android.text.TextUtils;
39 import android.view.KeyEvent; 37 import android.view.KeyEvent;
40 import android.view.View; 38 import android.view.View;
...@@ -56,11 +54,11 @@ import java.security.SecureRandom; ...@@ -56,11 +54,11 @@ import java.security.SecureRandom;
56 import java.util.concurrent.ThreadLocalRandom; 54 import java.util.concurrent.ThreadLocalRandom;
57 import java.util.concurrent.TimeUnit; 55 import java.util.concurrent.TimeUnit;
58 56
59 -import ly.warp.sdk.R;
60 import ly.warp.sdk.Warply; 57 import ly.warp.sdk.Warply;
61 import ly.warp.sdk.io.callbacks.CallbackReceiver; 58 import ly.warp.sdk.io.callbacks.CallbackReceiver;
62 import ly.warp.sdk.io.models.CouponList; 59 import ly.warp.sdk.io.models.CouponList;
63 import ly.warp.sdk.io.request.WarplyUserCouponsRequest; 60 import ly.warp.sdk.io.request.WarplyUserCouponsRequest;
61 +import ly.warp.sdk.services.EventQuestionnaireService;
64 import ly.warp.sdk.services.PushEventsClickedWorkerService; 62 import ly.warp.sdk.services.PushEventsClickedWorkerService;
65 import ly.warp.sdk.utils.WarpJSONParser; 63 import ly.warp.sdk.utils.WarpJSONParser;
66 import ly.warp.sdk.utils.WarpUtils; 64 import ly.warp.sdk.utils.WarpUtils;
...@@ -130,6 +128,8 @@ public class WarpViewActivity extends WarpBaseActivity { ...@@ -130,6 +128,8 @@ public class WarpViewActivity extends WarpBaseActivity {
130 public void onMessageEvent(WarplyEventBusManager event) { 128 public void onMessageEvent(WarplyEventBusManager event) {
131 // EventBus.getDefault().unregister(this); 129 // EventBus.getDefault().unregister(this);
132 if (event.getQuestionnaire() != null) { 130 if (event.getQuestionnaire() != null) {
131 + OneTimeWorkRequest mywork = new OneTimeWorkRequest.Builder(EventQuestionnaireService.class).build();
132 + WorkManager.getInstance(WarpViewActivity.this).enqueue(mywork);
133 setResult(RESULT_OK, new Intent()); 133 setResult(RESULT_OK, new Intent());
134 finish(); 134 finish();
135 } 135 }
......
1 +package ly.warp.sdk.services;
2 +
3 +import android.content.Context;
4 +
5 +import androidx.annotation.NonNull;
6 +import androidx.work.Worker;
7 +import androidx.work.WorkerParameters;
8 +
9 +import ly.warp.sdk.io.callbacks.CallbackReceiver;
10 +import ly.warp.sdk.io.models.CampaignList;
11 +import ly.warp.sdk.io.models.Consumer;
12 +import ly.warp.sdk.io.request.WarplyConsumerRequest;
13 +import ly.warp.sdk.io.request.WarplyGetCampaignsRequest;
14 +import ly.warp.sdk.utils.WarpUtils;
15 +import ly.warp.sdk.utils.WarplyManagerHelper;
16 +import ly.warp.sdk.utils.managers.WarplyManager;
17 +
18 +/**
19 + * Created by Panagiotis Triantafyllou on 22/Ιουλ/2022.
20 + */
21 +public class EventQuestionnaireService extends Worker {
22 +
23 + public EventQuestionnaireService(@NonNull Context context, @NonNull WorkerParameters workerParams) {
24 + super(context, workerParams);
25 + }
26 +
27 + @NonNull
28 + @Override
29 + public Result doWork() {
30 + WarplyManager.getConsumer(new WarplyConsumerRequest(), new CallbackReceiver<Consumer>() {
31 + @Override
32 + public void onSuccess(Consumer result) {
33 + WarplyManagerHelper.setConsumer(result);
34 +
35 + WarplyManager.getCampaigns(new WarplyGetCampaignsRequest().setLanguage("en"), new CallbackReceiver<CampaignList>() {
36 + @Override
37 + public void onSuccess(CampaignList result) {
38 + WarpUtils.log("SUCCESS_QUESTIONNAIRE_EVENT");
39 + }
40 +
41 + @Override
42 + public void onFailure(int errorCode) {
43 + WarpUtils.log("ERROR_QUESTIONNAIRE_EVENT " + String.valueOf(errorCode));
44 + }
45 + });
46 + }
47 +
48 + @Override
49 + public void onFailure(int errorCode) {
50 + WarpUtils.log("ERROR_QUESTIONNAIRE_CONSUMER_EVENT " + String.valueOf(errorCode));
51 + }
52 + });
53 +
54 + return Result.success();
55 + }
56 +}
...@@ -1374,15 +1374,57 @@ public class WarplyManager { ...@@ -1374,15 +1374,57 @@ public class WarplyManager {
1374 CampaignList campaignLoyaltyList = new CampaignList(); 1374 CampaignList campaignLoyaltyList = new CampaignList();
1375 campaignLoyaltyList.clear(); 1375 campaignLoyaltyList.clear();
1376 for (Campaign camp : mNewCampaignList) { 1376 for (Campaign camp : mNewCampaignList) {
1377 - try { 1377 + if (camp.getOfferCategory().equals("questionnaire")) {
1378 - JSONObject extraFields = WarpJSONParser.getJSONFromString(camp.getExtraFields()); 1378 + if (WarplyManagerHelper.getConsumer() != null) {
1379 - if (extraFields != null) { 1379 + JSONObject profMetadata = WarpJSONParser.getJSONFromString(WarplyManagerHelper.getConsumer().getProfileMetadata());
1380 - if (extraFields.length() == 0 || !(extraFields.has("ccms_offer") || extraFields.has("type"))) { 1380 + if (profMetadata != null) {
1381 + if (!profMetadata.has("answered")) {
1382 + try {
1383 + JSONObject extraFields = WarpJSONParser.getJSONFromString(camp.getExtraFields());
1384 + if (extraFields != null) {
1385 + if (extraFields.length() == 0 || !(extraFields.has("ccms_offer") || extraFields.has("type"))) {
1386 + campaignLoyaltyList.add(camp);
1387 + }
1388 + }
1389 + } catch (Exception exception) {
1390 + campaignLoyaltyList.add(camp);
1391 + }
1392 + }
1393 + } else {
1394 + try {
1395 + JSONObject extraFields = WarpJSONParser.getJSONFromString(camp.getExtraFields());
1396 + if (extraFields != null) {
1397 + if (extraFields.length() == 0 || !(extraFields.has("ccms_offer") || extraFields.has("type"))) {
1398 + campaignLoyaltyList.add(camp);
1399 + }
1400 + }
1401 + } catch (Exception exception) {
1402 + campaignLoyaltyList.add(camp);
1403 + }
1404 + }
1405 + } else {
1406 + try {
1407 + JSONObject extraFields = WarpJSONParser.getJSONFromString(camp.getExtraFields());
1408 + if (extraFields != null) {
1409 + if (extraFields.length() == 0 || !(extraFields.has("ccms_offer") || extraFields.has("type"))) {
1410 + campaignLoyaltyList.add(camp);
1411 + }
1412 + }
1413 + } catch (Exception exception) {
1381 campaignLoyaltyList.add(camp); 1414 campaignLoyaltyList.add(camp);
1382 } 1415 }
1383 } 1416 }
1384 - } catch (Exception exception) { 1417 + } else {
1385 - campaignLoyaltyList.add(camp); 1418 + try {
1419 + JSONObject extraFields = WarpJSONParser.getJSONFromString(camp.getExtraFields());
1420 + if (extraFields != null) {
1421 + if (extraFields.length() == 0 || !(extraFields.has("ccms_offer") || extraFields.has("type"))) {
1422 + campaignLoyaltyList.add(camp);
1423 + }
1424 + }
1425 + } catch (Exception exception) {
1426 + campaignLoyaltyList.add(camp);
1427 + }
1386 } 1428 }
1387 } 1429 }
1388 WarplyManagerHelper.setCampaignList(mNewCampaignList); 1430 WarplyManagerHelper.setCampaignList(mNewCampaignList);
......