Panagiotis Triantafyllou

new keys

...@@ -518,6 +518,10 @@ public class GiftsForYouActivity extends Activity implements View.OnClickListene ...@@ -518,6 +518,10 @@ public class GiftsForYouActivity extends Activity implements View.OnClickListene
518 } 518 }
519 519
520 mValuesList.addAll(gfyList); 520 mValuesList.addAll(gfyList);
521 +// HashSet hs = new HashSet();
522 +// hs.addAll(mValuesList);
523 +// mValuesList.clear();
524 +// mValuesList.addAll(hs);
521 } 525 }
522 } 526 }
523 527
......
...@@ -12,6 +12,7 @@ import android.view.View; ...@@ -12,6 +12,7 @@ import android.view.View;
12 import android.view.ViewGroup; 12 import android.view.ViewGroup;
13 import android.widget.ImageView; 13 import android.widget.ImageView;
14 import android.widget.LinearLayout; 14 import android.widget.LinearLayout;
15 +import android.widget.ScrollView;
15 import android.widget.TextView; 16 import android.widget.TextView;
16 17
17 import androidx.appcompat.app.AlertDialog; 18 import androidx.appcompat.app.AlertDialog;
...@@ -21,8 +22,8 @@ import androidx.recyclerview.widget.RecyclerView; ...@@ -21,8 +22,8 @@ import androidx.recyclerview.widget.RecyclerView;
21 22
22 import com.bumptech.glide.Glide; 23 import com.bumptech.glide.Glide;
23 import com.bumptech.glide.load.engine.DiskCacheStrategy; 24 import com.bumptech.glide.load.engine.DiskCacheStrategy;
24 -import com.google.android.flexbox.FlexboxLayout;
25 25
26 +import org.apmem.tools.layouts.FlowLayout;
26 import org.greenrobot.eventbus.EventBus; 27 import org.greenrobot.eventbus.EventBus;
27 import org.greenrobot.eventbus.Subscribe; 28 import org.greenrobot.eventbus.Subscribe;
28 29
...@@ -67,11 +68,12 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener { ...@@ -67,11 +68,12 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener {
67 private ConstraintLayout mClDealsBanner, mClDealsView, 68 private ConstraintLayout mClDealsBanner, mClDealsView,
68 mClGiftsBanner; 69 mClGiftsBanner;
69 private LinearLayout mLlQuestionnaire, mLlUserBadge, mLlEmptyWallet; 70 private LinearLayout mLlQuestionnaire, mLlUserBadge, mLlEmptyWallet;
70 - FlexboxLayout mLlActiveCodesView; 71 + FlowLayout mLlActiveCodesView;
71 private float couponDfyValue = 0.0f; 72 private float couponDfyValue = 0.0f;
72 private RecyclerView mRecyclerCoupons; 73 private RecyclerView mRecyclerCoupons;
73 private ActiveCouponAdapter mAdapterCoupons; 74 private ActiveCouponAdapter mAdapterCoupons;
74 private AlertDialog mAlertDialogNonTelco; 75 private AlertDialog mAlertDialogNonTelco;
76 + private ScrollView mScActiveCodes;
75 77
76 // =========================================================== 78 // ===========================================================
77 // Methods for/from SuperClass/Interfaces 79 // Methods for/from SuperClass/Interfaces
...@@ -102,6 +104,7 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener { ...@@ -102,6 +104,7 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener {
102 mTvActiveCouponsHeader = findViewById(R.id.tv_active_coupons_header); 104 mTvActiveCouponsHeader = findViewById(R.id.tv_active_coupons_header);
103 mLlEmptyWallet = findViewById(R.id.ll_empty_wallet); 105 mLlEmptyWallet = findViewById(R.id.ll_empty_wallet);
104 mLlActiveCodesView = findViewById(R.id.ll_active_deals_codes_view); 106 mLlActiveCodesView = findViewById(R.id.ll_active_deals_codes_view);
107 + mScActiveCodes = findViewById(R.id.sv_active_deals_codes_view);
105 108
106 // ArrayList<ActiveDFYCouponModel> dlist = new ArrayList<>(); 109 // ArrayList<ActiveDFYCouponModel> dlist = new ArrayList<>();
107 // ActiveDFYCouponModel model = new ActiveDFYCouponModel(); 110 // ActiveDFYCouponModel model = new ActiveDFYCouponModel();
...@@ -402,13 +405,13 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener { ...@@ -402,13 +405,13 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener {
402 mTvActiveTitle.setText(String.format(getString(R.string.cos_active_deals_plural), String.valueOf(WarplyManagerHelper.getActiveDFYCoupons().size()))); 405 mTvActiveTitle.setText(String.format(getString(R.string.cos_active_deals_plural), String.valueOf(WarplyManagerHelper.getActiveDFYCoupons().size())));
403 mTvActiveCode.setVisibility(View.GONE); 406 mTvActiveCode.setVisibility(View.GONE);
404 407
405 - //TODO fix logic 408 +// Collections.reverse(WarplyManagerHelper.getActiveDFYCoupons());
406 - for (ActiveDFYCouponModel dealsItem : WarplyManagerHelper.getActiveDFYCoupons().subList(0, 4)) { 409 + for (int i = 0; i < WarplyManagerHelper.getActiveDFYCoupons().size(); i++) {
407 LayoutInflater vi = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 410 LayoutInflater vi = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
408 LinearLayout v = (LinearLayout) vi.inflate(R.layout.item_selectable, null); 411 LinearLayout v = (LinearLayout) vi.inflate(R.layout.item_selectable, null);
409 TextView textView = (TextView) v.findViewById(R.id.tv_code_copy); 412 TextView textView = (TextView) v.findViewById(R.id.tv_code_copy);
410 TextView textViewComma = (TextView) v.findViewById(R.id.tv_code_comma); 413 TextView textViewComma = (TextView) v.findViewById(R.id.tv_code_comma);
411 - textView.setText(dealsItem.getCode()); 414 + textView.setText(WarplyManagerHelper.getActiveDFYCoupons().get(i).getCode());
412 textView.setTextIsSelectable(true); 415 textView.setTextIsSelectable(true);
413 textViewComma.setText(getString(R.string.cos_comma)); 416 textViewComma.setText(getString(R.string.cos_comma));
414 mLlActiveCodesView.addView(v, 0, new ViewGroup.LayoutParams( 417 mLlActiveCodesView.addView(v, 0, new ViewGroup.LayoutParams(
...@@ -416,6 +419,7 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener { ...@@ -416,6 +419,7 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener {
416 ViewGroup.LayoutParams.WRAP_CONTENT)); 419 ViewGroup.LayoutParams.WRAP_CONTENT));
417 } 420 }
418 421
422 + mScActiveCodes.setVisibility(View.VISIBLE);
419 mLlActiveCodesView.setVisibility(View.VISIBLE); 423 mLlActiveCodesView.setVisibility(View.VISIBLE);
420 } 424 }
421 // mTvActiveCode.setText(codes); 425 // mTvActiveCode.setText(codes);
......
...@@ -42,6 +42,7 @@ import org.json.JSONObject; ...@@ -42,6 +42,7 @@ import org.json.JSONObject;
42 import java.io.Serializable; 42 import java.io.Serializable;
43 import java.util.ArrayList; 43 import java.util.ArrayList;
44 import java.util.HashMap; 44 import java.util.HashMap;
45 +import java.util.HashSet;
45 46
46 import ly.warp.sdk.R; 47 import ly.warp.sdk.R;
47 import ly.warp.sdk.Warply; 48 import ly.warp.sdk.Warply;
...@@ -214,6 +215,9 @@ public class WarplyManagerHelper { ...@@ -214,6 +215,9 @@ public class WarplyManagerHelper {
214 } else if (status == 5) { 215 } else if (status == 5) {
215 String modalText5 = result.optString("msg", ""); 216 String modalText5 = result.optString("msg", "");
216 errorUsedDialog(context, modalText5); 217 errorUsedDialog(context, modalText5);
218 + } else if (status == 7) {
219 + String modalText7 = result.optString("msg", "");
220 + returnDialog(context, modalText7, sharingId);
217 } else 221 } else
218 errorSharingDialog(context); 222 errorSharingDialog(context);
219 } 223 }
...@@ -357,6 +361,52 @@ public class WarplyManagerHelper { ...@@ -357,6 +361,52 @@ public class WarplyManagerHelper {
357 } 361 }
358 362
359 /** 363 /**
364 + * Return dialog
365 + */
366 + private static void returnDialog(Context context, String message, String sharingId) {
367 + mAlertDialogErrorSharing = new AlertDialog.Builder(context)
368 + .setTitle(R.string.cos_dlg_return_title)
369 + .setMessage(message)
370 + .setNegativeButton(R.string.cos_dlg_negative_button, (dialogPositive, whichPositive) -> {
371 + rejectSharingDialog(context, sharingId);
372 + })
373 + .setPositiveButton(R.string.cos_dlg_positive_button, (dialogNegative, whichNegative) -> {
374 + WarplyManager.cosmoteRetrieveSharing(new CosmoteRetrieveSharingRequest()
375 + .setSharingId(sharingId)
376 + .setAccept(true),
377 + new CallbackReceiver<JSONObject>() {
378 + @Override
379 + public void onSuccess(JSONObject result) {
380 + int status = result.optInt("status", 2);
381 + if (status == 1) {
382 + WarplyManager.getUserCouponsWithCouponsets(new WarplyUserCouponsRequest(), new CallbackReceiver<CouponList>() {
383 + @Override
384 + public void onSuccess(CouponList result) {
385 + WarplyCouponsChangedEventModel couponsChanged = new WarplyCouponsChangedEventModel();
386 + couponsChanged.setChanged(true);
387 + EventBus.getDefault().post(new WarplyEventBusManager(couponsChanged));
388 + }
389 +
390 + @Override
391 + public void onFailure(int errorCode) {
392 +
393 + }
394 + });
395 + acceptSharingDialog(context);
396 + } else
397 + errorSharingDialog(context);
398 + }
399 +
400 + @Override
401 + public void onFailure(int errorCode) {
402 + errorSharingDialog(context);
403 + }
404 + });
405 + })
406 + .show();
407 + }
408 +
409 + /**
360 * Expired dialog 410 * Expired dialog
361 */ 411 */
362 private static void errorExpiredDialog(Context context, String message) { 412 private static void errorExpiredDialog(Context context, String message) {
...@@ -1005,6 +1055,10 @@ public class WarplyManagerHelper { ...@@ -1005,6 +1055,10 @@ public class WarplyManagerHelper {
1005 public static void setCarouselList(CampaignList carouselList) { 1055 public static void setCarouselList(CampaignList carouselList) {
1006 mCarouselList.clear(); 1056 mCarouselList.clear();
1007 mCarouselList = carouselList; 1057 mCarouselList = carouselList;
1058 + HashSet hs = new HashSet();
1059 + hs.addAll(mCarouselList);
1060 + mCarouselList.clear();
1061 + mCarouselList.addAll(hs);
1008 } 1062 }
1009 1063
1010 public static CampaignList getCarouselList() { 1064 public static CampaignList getCarouselList() {
......
...@@ -1369,7 +1369,7 @@ public class WarplyManager { ...@@ -1369,7 +1369,7 @@ public class WarplyManager {
1369 public void onSuccess(CampaignList result) { 1369 public void onSuccess(CampaignList result) {
1370 // receiver.onSuccess(result); 1370 // receiver.onSuccess(result);
1371 mNewCampaignList.clear(); 1371 mNewCampaignList.clear();
1372 - mNewCampaignList = result; 1372 + mNewCampaignList.addAll(result);
1373 getCampaignsPersonalized(request, new CallbackReceiver<CampaignList>() { 1373 getCampaignsPersonalized(request, new CallbackReceiver<CampaignList>() {
1374 @Override 1374 @Override
1375 public void onSuccess(CampaignList resultPersonalized) { 1375 public void onSuccess(CampaignList resultPersonalized) {
......
...@@ -335,23 +335,21 @@ ...@@ -335,23 +335,21 @@
335 tools:text="961544809" 335 tools:text="961544809"
336 tools:visibility="gone" /> 336 tools:visibility="gone" />
337 337
338 - <com.google.android.flexbox.FlexboxLayout 338 + <ScrollView
339 + android:id="@+id/sv_active_deals_codes_view"
340 + android:layout_width="match_parent"
341 + android:layout_height="48dp"
342 + android:nestedScrollingEnabled="true"
343 + android:visibility="gone">
344 +
345 + <org.apmem.tools.layouts.FlowLayout
339 android:id="@+id/ll_active_deals_codes_view" 346 android:id="@+id/ll_active_deals_codes_view"
340 android:layout_width="match_parent" 347 android:layout_width="match_parent"
341 android:layout_height="wrap_content" 348 android:layout_height="wrap_content"
342 - android:visibility="gone" 349 + android:visibility="gone">
343 - app:flexDirection="row"
344 - app:flexWrap="wrap"
345 - app:justifyContent="flex_start">
346 -
347 - </com.google.android.flexbox.FlexboxLayout>
348 -
349 - <!-- <org.apmem.tools.layouts.FlowLayout-->
350 - <!-- android:id="@+id/ll_active_deals_codes_view"-->
351 - <!-- android:layout_width="match_parent"-->
352 - <!-- android:layout_height="wrap_content">-->
353 350
354 - <!-- </org.apmem.tools.layouts.FlowLayout>--> 351 + </org.apmem.tools.layouts.FlowLayout>
352 + </ScrollView>
355 353
356 <TextView 354 <TextView
357 android:id="@+id/tv_active_deals_date_text" 355 android:id="@+id/tv_active_deals_date_text"
......
...@@ -39,6 +39,7 @@ ...@@ -39,6 +39,7 @@
39 <string name="cos_redeem_coupon">Απόκτησέ το</string> 39 <string name="cos_redeem_coupon">Απόκτησέ το</string>
40 <string name="cos_dlg_success_subtitle">Το κουπόνι εξαργυρώθηκε με επιτυχία</string> 40 <string name="cos_dlg_success_subtitle">Το κουπόνι εξαργυρώθηκε με επιτυχία</string>
41 <string name="cos_dlg_error_title">Αποτυχία</string> 41 <string name="cos_dlg_error_title">Αποτυχία</string>
42 + <string name="cos_dlg_return_title">Επιστροφή δώρου</string>
42 <string name="cos_dlg_error_subtitle">Κάτι πήγε στραβά</string> 43 <string name="cos_dlg_error_subtitle">Κάτι πήγε στραβά</string>
43 <string name="cos_dlg_error_subtitle_non_buyable">Το κουπόνι δεν είναι διαθέσιμο για αγορά</string> 44 <string name="cos_dlg_error_subtitle_non_buyable">Το κουπόνι δεν είναι διαθέσιμο για αγορά</string>
44 <string name="cos_dlg_error_subtitle_no_points">Δεν έχεις αρκετούς πόντους</string> 45 <string name="cos_dlg_error_subtitle_no_points">Δεν έχεις αρκετούς πόντους</string>
......