Panagiotis Triantafyllou

my rewards box tile part1, box tile events

...@@ -31,6 +31,7 @@ import ly.warp.sdk.activities.LoyaltyAnalysisActivity; ...@@ -31,6 +31,7 @@ import ly.warp.sdk.activities.LoyaltyAnalysisActivity;
31 import ly.warp.sdk.activities.LoyaltyHistoryActivity; 31 import ly.warp.sdk.activities.LoyaltyHistoryActivity;
32 import ly.warp.sdk.activities.LoyaltyMarketAnalysisActivity; 32 import ly.warp.sdk.activities.LoyaltyMarketAnalysisActivity;
33 import ly.warp.sdk.activities.WarpViewActivity; 33 import ly.warp.sdk.activities.WarpViewActivity;
34 +import ly.warp.sdk.io.models.ActiveBoxCouponEventModel;
34 import ly.warp.sdk.io.models.ActiveDFYCouponEventModel; 35 import ly.warp.sdk.io.models.ActiveDFYCouponEventModel;
35 import ly.warp.sdk.io.models.Coupon; 36 import ly.warp.sdk.io.models.Coupon;
36 import ly.warp.sdk.io.models.Couponset; 37 import ly.warp.sdk.io.models.Couponset;
...@@ -53,7 +54,7 @@ public class MyRewardsFragment extends Fragment implements View.OnClickListener ...@@ -53,7 +54,7 @@ public class MyRewardsFragment extends Fragment implements View.OnClickListener
53 // Fields 54 // Fields
54 // =========================================================== 55 // ===========================================================
55 56
56 - private TextView mTvUserBadge, mTvUserBadgeCentered, 57 + private TextView mTvUserBadge, mTvUserBadgeCentered, mTvBoxCountBadge,
57 mTvDealsCountBadge, mTvUnifiedCountBadge, mTvGiftsCountBadge, 58 mTvDealsCountBadge, mTvUnifiedCountBadge, mTvGiftsCountBadge,
58 mTvVouchersDisabledTitle, mTvVouchersDisabledSubtitle, mTvVouchersTitle, mTvVouchersSubtitle; 59 mTvVouchersDisabledTitle, mTvVouchersDisabledSubtitle, mTvVouchersTitle, mTvVouchersSubtitle;
59 private ConstraintLayout mLlQuestionnaireCentered, 60 private ConstraintLayout mLlQuestionnaireCentered,
...@@ -69,8 +70,8 @@ public class MyRewardsFragment extends Fragment implements View.OnClickListener ...@@ -69,8 +70,8 @@ public class MyRewardsFragment extends Fragment implements View.OnClickListener
69 private boolean mDfyPressed = false, mDealsBannerPressed = false, mQuestionnairePressed = false, 70 private boolean mDfyPressed = false, mDealsBannerPressed = false, mQuestionnairePressed = false,
70 mHistoryPressed = false, mHistoryMarketPressed = false, 71 mHistoryPressed = false, mHistoryMarketPressed = false,
71 mHistoryBadgePressed = false, mUnifiedCountPressed = false, 72 mHistoryBadgePressed = false, mUnifiedCountPressed = false,
72 - mGiftsCountPressed = false; 73 + mGiftsCountPressed = false, mBoxCountPressed = false;
73 - private RelativeLayout mRlDeals, mRlUnified, mRlGifts; 74 + private RelativeLayout mRlDeals, mRlUnified, mRlGifts, mRlBox;
74 private boolean mIsDealsEmpty = false, mIsMarketsEmpty = false, mIsCouponsEmpty = false; 75 private boolean mIsDealsEmpty = false, mIsMarketsEmpty = false, mIsCouponsEmpty = false;
75 76
76 // =========================================================== 77 // ===========================================================
...@@ -103,10 +104,12 @@ public class MyRewardsFragment extends Fragment implements View.OnClickListener ...@@ -103,10 +104,12 @@ public class MyRewardsFragment extends Fragment implements View.OnClickListener
103 mTvDealsCountBadge = view.findViewById(R.id.tv_deals_count); 104 mTvDealsCountBadge = view.findViewById(R.id.tv_deals_count);
104 mTvUnifiedCountBadge = view.findViewById(R.id.tv_sm_count); 105 mTvUnifiedCountBadge = view.findViewById(R.id.tv_sm_count);
105 mTvGiftsCountBadge = view.findViewById(R.id.tv_gifts_count); 106 mTvGiftsCountBadge = view.findViewById(R.id.tv_gifts_count);
107 + mTvBoxCountBadge = view.findViewById(R.id.tv_box_count);
106 mLlBannerInfo = view.findViewById(R.id.ll_banner_info_new); 108 mLlBannerInfo = view.findViewById(R.id.ll_banner_info_new);
107 mRlDeals = view.findViewById(R.id.rv_deals_count); 109 mRlDeals = view.findViewById(R.id.rv_deals_count);
108 mRlUnified = view.findViewById(R.id.rv_sm_count); 110 mRlUnified = view.findViewById(R.id.rv_sm_count);
109 mRlGifts = view.findViewById(R.id.rv_gifts_count); 111 mRlGifts = view.findViewById(R.id.rv_gifts_count);
112 + mRlBox = view.findViewById(R.id.rv_box_count);
110 mCvVouchers = view.findViewById(R.id.cv_vouchers); 113 mCvVouchers = view.findViewById(R.id.cv_vouchers);
111 mCvVouchersDisabled = view.findViewById(R.id.cv_vouchers_disabled); 114 mCvVouchersDisabled = view.findViewById(R.id.cv_vouchers_disabled);
112 mLlVouchers = view.findViewById(R.id.ll_vouchers); 115 mLlVouchers = view.findViewById(R.id.ll_vouchers);
...@@ -158,6 +161,7 @@ public class MyRewardsFragment extends Fragment implements View.OnClickListener ...@@ -158,6 +161,7 @@ public class MyRewardsFragment extends Fragment implements View.OnClickListener
158 mHistoryBadgePressed = false; 161 mHistoryBadgePressed = false;
159 mGiftsCountPressed = false; 162 mGiftsCountPressed = false;
160 mUnifiedCountPressed = false; 163 mUnifiedCountPressed = false;
164 + mBoxCountPressed = false;
161 initViews(); 165 initViews();
162 } 166 }
163 167
...@@ -270,6 +274,25 @@ public class MyRewardsFragment extends Fragment implements View.OnClickListener ...@@ -270,6 +274,25 @@ public class MyRewardsFragment extends Fragment implements View.OnClickListener
270 } 274 }
271 return; 275 return;
272 } 276 }
277 + /** Active Box Banner */
278 + if (view.getId() == R.id.rv_box_count) {
279 + if (!mBoxCountPressed) {
280 + mBoxCountPressed = true;
281 + WarplyAnalyticsManager.logTrackersEvent(getContext(), "click", ("LoyaltyWalletScreen")
282 + .concat(":")
283 + .concat("ActiveBoxBanner"));
284 +
285 + LoyaltySDKFirebaseEventModel analyticsEvent = new LoyaltySDKFirebaseEventModel();
286 + analyticsEvent.setEventName("did_tap_box_active_badge");
287 + analyticsEvent.setParameter("screen", "Loyalty Wallet");
288 + EventBus.getDefault().post(new WarplyEventBusManager(analyticsEvent));
289 +
290 + ActiveBoxCouponEventModel activeBoxEventModel = new ActiveBoxCouponEventModel();
291 + activeBoxEventModel.setPressed(true);
292 + EventBus.getDefault().post(new WarplyEventBusManager(activeBoxEventModel));
293 + }
294 + return;
295 + }
273 /** Unified History */ 296 /** Unified History */
274 if (view.getId() == R.id.cl_market_inner) { 297 if (view.getId() == R.id.cl_market_inner) {
275 if (!mHistoryMarketPressed) { 298 if (!mHistoryMarketPressed) {
...@@ -461,6 +484,13 @@ public class MyRewardsFragment extends Fragment implements View.OnClickListener ...@@ -461,6 +484,13 @@ public class MyRewardsFragment extends Fragment implements View.OnClickListener
461 mTvDealsCountBadge.setText("0"); 484 mTvDealsCountBadge.setText("0");
462 /** Deals Badge */ 485 /** Deals Badge */
463 486
487 + /** Box Badge */
488 + if (WarplyManagerHelper.getActiveBoxCoupons() != null)
489 + mTvBoxCountBadge.setText(String.valueOf(WarplyManagerHelper.getActiveBoxCoupons().size()));
490 + else
491 + mTvBoxCountBadge.setText("0");
492 + /** Deals Badge */
493 +
464 // if (WarplyManagerHelper.getConsumer() != null) { 494 // if (WarplyManagerHelper.getConsumer() != null) {
465 // if (!TextUtils.isEmpty(WarplyManagerHelper.getUserTag(getContext()))) { 495 // if (!TextUtils.isEmpty(WarplyManagerHelper.getUserTag(getContext()))) {
466 // mTvUserBadge.setText(WarplyManagerHelper.getUserTag(getContext())); 496 // mTvUserBadge.setText(WarplyManagerHelper.getUserTag(getContext()));
...@@ -520,6 +550,7 @@ public class MyRewardsFragment extends Fragment implements View.OnClickListener ...@@ -520,6 +550,7 @@ public class MyRewardsFragment extends Fragment implements View.OnClickListener
520 mRlDeals.setOnClickListener(this); 550 mRlDeals.setOnClickListener(this);
521 mRlUnified.setOnClickListener(this); 551 mRlUnified.setOnClickListener(this);
522 mRlGifts.setOnClickListener(this); 552 mRlGifts.setOnClickListener(this);
553 + mRlBox.setOnClickListener(this);
523 mCvVouchers.setOnClickListener(this); 554 mCvVouchers.setOnClickListener(this);
524 mCvVouchersDisabled.setOnClickListener(this); 555 mCvVouchersDisabled.setOnClickListener(this);
525 } 556 }
......
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 30-April-24.
31 + */
32 +
33 +public class ActiveBoxCouponEventModel {
34 + private boolean pressed;
35 +
36 + public ActiveBoxCouponEventModel() {
37 + this.pressed = true;
38 + }
39 +
40 + public boolean isPressed() {
41 + return pressed;
42 + }
43 +
44 + public void setPressed(boolean pressed) {
45 + this.pressed = pressed;
46 + }
47 +}
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 30-April-24.
31 + */
32 +
33 +public class ActiveBoxCouponModel {
34 + private String value;
35 + private String code;
36 +
37 + public ActiveBoxCouponModel() {
38 + this.value = "";
39 + this.code = "";
40 + }
41 +
42 + public String getValue() {
43 + return value;
44 + }
45 +
46 + public void setValue(String value) {
47 + this.value = value;
48 + }
49 +
50 + public String getCode() {
51 + return code;
52 + }
53 +
54 + public void setCode(String code) {
55 + this.code = code;
56 + }
57 +}
...@@ -57,6 +57,7 @@ import ly.warp.sdk.activities.TelcoActivity; ...@@ -57,6 +57,7 @@ import ly.warp.sdk.activities.TelcoActivity;
57 import ly.warp.sdk.activities.WarpViewActivity; 57 import ly.warp.sdk.activities.WarpViewActivity;
58 import ly.warp.sdk.db.WarplyDBHelper; 58 import ly.warp.sdk.db.WarplyDBHelper;
59 import ly.warp.sdk.io.callbacks.CallbackReceiver; 59 import ly.warp.sdk.io.callbacks.CallbackReceiver;
60 +import ly.warp.sdk.io.models.ActiveBoxCouponModel;
60 import ly.warp.sdk.io.models.ActiveDFYCouponModel; 61 import ly.warp.sdk.io.models.ActiveDFYCouponModel;
61 import ly.warp.sdk.io.models.Campaign; 62 import ly.warp.sdk.io.models.Campaign;
62 import ly.warp.sdk.io.models.CampaignList; 63 import ly.warp.sdk.io.models.CampaignList;
...@@ -111,6 +112,7 @@ public class WarplyManagerHelper { ...@@ -111,6 +112,7 @@ public class WarplyManagerHelper {
111 private static ArrayList<Campaign> mCampaignListAll = new ArrayList<Campaign>(); 112 private static ArrayList<Campaign> mCampaignListAll = new ArrayList<Campaign>();
112 private static ArrayList<Campaign> mCarouselList = new ArrayList<Campaign>(); 113 private static ArrayList<Campaign> mCarouselList = new ArrayList<Campaign>();
113 private static ArrayList<ActiveDFYCouponModel> mDfyCoupons = new ArrayList(); 114 private static ArrayList<ActiveDFYCouponModel> mDfyCoupons = new ArrayList();
115 + private static ArrayList<ActiveBoxCouponModel> mBoxCoupons = new ArrayList();
114 private static ArrayList<LoyaltyGiftsForYouPackage> mSeasonalList = new ArrayList<>(); 116 private static ArrayList<LoyaltyGiftsForYouPackage> mSeasonalList = new ArrayList<>();
115 private static ArrayList<LoyaltyContextualOfferModel> mCCMSList = new ArrayList<>(); 117 private static ArrayList<LoyaltyContextualOfferModel> mCCMSList = new ArrayList<>();
116 private static AlertDialog mAlertDialogSharing, mAlertDialogAcceptSharing, 118 private static AlertDialog mAlertDialogSharing, mAlertDialogAcceptSharing,
...@@ -1205,6 +1207,21 @@ public class WarplyManagerHelper { ...@@ -1205,6 +1207,21 @@ public class WarplyManagerHelper {
1205 return mDfyCoupons; 1207 return mDfyCoupons;
1206 } 1208 }
1207 1209
1210 + /**
1211 + * Set the List with active Box coupons
1212 + */
1213 + public static void setActiveBoxCoupons(ArrayList<ActiveBoxCouponModel> boxCoupons) {
1214 + mBoxCoupons.clear();
1215 + mBoxCoupons = boxCoupons;
1216 + }
1217 +
1218 + /**
1219 + * Get the List with active Box coupons
1220 + */
1221 + public static ArrayList<ActiveBoxCouponModel> getActiveBoxCoupons() {
1222 + return mBoxCoupons;
1223 + }
1224 +
1208 public static Consumer getConsumerInternal() { 1225 public static Consumer getConsumerInternal() {
1209 return mConsumerInternal; 1226 return mConsumerInternal;
1210 } 1227 }
......
...@@ -2,6 +2,7 @@ package ly.warp.sdk.utils.managers; ...@@ -2,6 +2,7 @@ package ly.warp.sdk.utils.managers;
2 2
3 import java.util.HashMap; 3 import java.util.HashMap;
4 4
5 +import ly.warp.sdk.io.models.ActiveBoxCouponEventModel;
5 import ly.warp.sdk.io.models.ActiveDFYCouponEventModel; 6 import ly.warp.sdk.io.models.ActiveDFYCouponEventModel;
6 import ly.warp.sdk.io.models.ContexualEventModel; 7 import ly.warp.sdk.io.models.ContexualEventModel;
7 import ly.warp.sdk.io.models.CouponEventModel; 8 import ly.warp.sdk.io.models.CouponEventModel;
...@@ -54,6 +55,7 @@ public class WarplyEventBusManager { ...@@ -54,6 +55,7 @@ public class WarplyEventBusManager {
54 private VouchersFetchedEventModel vouchersFetched; 55 private VouchersFetchedEventModel vouchersFetched;
55 private CouponEventModel coupon; 56 private CouponEventModel coupon;
56 private ActiveDFYCouponEventModel activeCoupon; 57 private ActiveDFYCouponEventModel activeCoupon;
58 + private ActiveBoxCouponEventModel activeBoxCoupon;
57 private ContexualEventModel ccmsAdded; 59 private ContexualEventModel ccmsAdded;
58 private CouponsEventModel couponsAdded; 60 private CouponsEventModel couponsAdded;
59 private RefreshVouchersEventModel vouchersRefreshed; 61 private RefreshVouchersEventModel vouchersRefreshed;
...@@ -163,6 +165,10 @@ public class WarplyEventBusManager { ...@@ -163,6 +165,10 @@ public class WarplyEventBusManager {
163 this.activeCoupon = activeCoupon; 165 this.activeCoupon = activeCoupon;
164 } 166 }
165 167
168 + public WarplyEventBusManager(ActiveBoxCouponEventModel activeBoxCoupon) {
169 + this.activeBoxCoupon = activeBoxCoupon;
170 + }
171 +
166 public WarplyEventBusManager(LoyaltySDKFirebaseEventModel fireEvent) { 172 public WarplyEventBusManager(LoyaltySDKFirebaseEventModel fireEvent) {
167 this.fireEvent = fireEvent; 173 this.fireEvent = fireEvent;
168 } 174 }
...@@ -276,6 +282,9 @@ public class WarplyEventBusManager { ...@@ -276,6 +282,9 @@ public class WarplyEventBusManager {
276 public ActiveDFYCouponEventModel getActiveCoupon() { 282 public ActiveDFYCouponEventModel getActiveCoupon() {
277 return activeCoupon; 283 return activeCoupon;
278 } 284 }
285 + public ActiveBoxCouponEventModel getActiveBoxCoupon() {
286 + return activeBoxCoupon;
287 + }
279 288
280 public WarplyPacingEventModel getPacing() { 289 public WarplyPacingEventModel getPacing() {
281 return pacing; 290 return pacing;
......
1 +<vector xmlns:android="http://schemas.android.com/apk/res/android"
2 + android:width="32dp"
3 + android:height="32dp"
4 + android:viewportWidth="32"
5 + android:viewportHeight="32">
6 + <path
7 + android:pathData="M5.704,27.89V23.636H1.002V18.815H5.711V4.076H31.054V18.562H30.932L30.524,18.559H26.426V24.337H17.337V27.89H5.704Z"
8 + android:fillColor="#F87A1D"
9 + android:fillType="evenOdd"/>
10 + <path
11 + android:pathData="M11.682,11.773C11.677,11.811 11.703,11.846 11.741,11.851C11.748,11.852 11.754,11.852 11.761,11.851H12.591C12.749,11.857 12.901,11.789 13.001,11.667C13.203,11.424 13.203,11.072 13.001,10.828C12.902,10.704 12.75,10.634 12.591,10.64H11.761C11.708,10.64 11.682,10.667 11.682,10.723V11.773ZM11.682,9.442C11.676,9.479 11.703,9.514 11.74,9.519C11.747,9.52 11.754,9.52 11.761,9.519H12.591C12.73,9.519 12.862,9.462 12.958,9.363C13.06,9.269 13.118,9.137 13.118,8.998C13.119,8.861 13.06,8.731 12.958,8.639C12.861,8.541 12.729,8.486 12.591,8.486H11.761C11.708,8.486 11.682,8.514 11.682,8.569V9.442ZM10.574,12.814V7.527C10.575,7.485 10.593,7.444 10.624,7.415C10.654,7.385 10.694,7.368 10.737,7.367H12.653C12.872,7.365 13.088,7.409 13.288,7.495C13.479,7.579 13.651,7.698 13.797,7.846C13.942,7.996 14.057,8.173 14.134,8.366C14.217,8.568 14.259,8.784 14.257,9.002C14.255,9.192 14.213,9.379 14.135,9.552C14.064,9.724 13.96,9.88 13.827,10.012C13.773,10.064 13.773,10.112 13.827,10.157C13.896,10.218 13.957,10.288 14.006,10.366C14.06,10.449 14.104,10.538 14.14,10.63C14.178,10.729 14.207,10.831 14.227,10.935C14.247,11.039 14.257,11.144 14.257,11.249C14.261,11.491 14.222,11.731 14.142,11.96C14.072,12.164 13.959,12.35 13.81,12.507C13.664,12.658 13.487,12.777 13.291,12.855C13.077,12.939 12.848,12.981 12.618,12.978H10.734C10.692,12.978 10.652,12.96 10.623,12.929C10.592,12.899 10.574,12.858 10.574,12.814Z"
12 + android:fillColor="#2A292E"
13 + android:fillType="evenOdd"/>
14 + <path
15 + android:pathData="M19.351,9.585C19.338,9.773 19.333,9.97 19.333,10.168C19.333,10.367 19.333,10.564 19.348,10.757C19.363,10.95 19.375,11.134 19.4,11.297C19.417,11.47 19.495,11.631 19.619,11.753C19.745,11.879 19.93,11.941 20.176,11.941C20.421,11.941 20.608,11.879 20.735,11.753C20.86,11.632 20.938,11.47 20.957,11.297C20.977,11.132 20.991,10.952 21,10.758C21.008,10.564 21.011,10.369 21.01,10.168C21.009,9.968 21.01,9.776 20.999,9.585C20.988,9.394 20.977,9.214 20.957,9.041C20.939,8.869 20.86,8.708 20.735,8.588C20.609,8.462 20.423,8.4 20.176,8.4C19.972,8.385 19.772,8.453 19.619,8.588C19.496,8.709 19.418,8.869 19.4,9.04C19.378,9.214 19.362,9.396 19.351,9.585ZM18.243,10.757C18.231,10.564 18.226,10.369 18.226,10.168C18.226,9.968 18.231,9.776 18.243,9.586C18.254,9.396 18.27,9.217 18.291,9.045C18.316,8.81 18.38,8.58 18.479,8.365C18.574,8.155 18.705,7.964 18.867,7.8C19.031,7.638 19.225,7.508 19.438,7.417C19.914,7.231 20.443,7.231 20.919,7.417C21.132,7.507 21.327,7.637 21.491,7.8C21.653,7.964 21.784,8.155 21.878,8.365C21.976,8.581 22.039,8.81 22.067,9.045C22.087,9.217 22.101,9.398 22.109,9.586C22.117,9.774 22.12,9.968 22.12,10.168C22.12,10.368 22.117,10.564 22.109,10.756C22.101,10.944 22.087,11.126 22.067,11.293C22.042,11.529 21.978,11.759 21.878,11.974C21.784,12.183 21.652,12.375 21.49,12.538C21.327,12.703 21.133,12.834 20.92,12.924C20.443,13.111 19.914,13.111 19.437,12.924C19.224,12.833 19.03,12.703 18.866,12.538C18.704,12.375 18.572,12.183 18.478,11.974C18.379,11.758 18.315,11.529 18.289,11.293C18.27,11.129 18.254,10.95 18.243,10.757Z"
16 + android:fillColor="#2A292E"
17 + android:fillType="evenOdd"/>
18 + <path
19 + android:pathData="M10.384,21.184L11.562,18.516C11.575,18.49 11.583,18.461 11.586,18.432C11.583,18.399 11.575,18.368 11.562,18.338L10.522,16.022C10.494,15.972 10.494,15.912 10.522,15.863C10.547,15.818 10.595,15.792 10.647,15.794H11.551C11.614,15.794 11.664,15.835 11.703,15.915L12.368,17.575C12.379,17.596 12.392,17.606 12.407,17.606H12.423C12.439,17.606 12.452,17.596 12.463,17.575L13.127,15.915C13.148,15.847 13.209,15.798 13.28,15.794H14.188C14.238,15.793 14.285,15.819 14.311,15.863C14.342,15.911 14.344,15.972 14.317,16.022L13.272,18.345C13.259,18.375 13.252,18.407 13.249,18.44C13.252,18.469 13.26,18.498 13.272,18.525L14.45,21.186C14.462,21.211 14.468,21.239 14.469,21.267C14.47,21.294 14.462,21.32 14.446,21.342C14.421,21.385 14.375,21.411 14.325,21.409H13.378C13.3,21.415 13.229,21.364 13.21,21.288L12.463,19.39C12.452,19.369 12.439,19.358 12.423,19.358H12.407C12.392,19.358 12.379,19.369 12.368,19.39L11.62,21.288C11.601,21.364 11.53,21.415 11.452,21.409H10.511C10.46,21.41 10.412,21.382 10.386,21.338C10.371,21.315 10.362,21.288 10.363,21.261C10.364,21.234 10.371,21.207 10.384,21.184Z"
20 + android:fillColor="#2A292E"
21 + android:fillType="evenOdd"/>
22 + <path
23 + android:pathData="M18.919,19.004V18.202C18.919,18.16 18.936,18.119 18.966,18.089C18.995,18.057 19.036,18.039 19.079,18.04H21.266C21.354,18.043 21.425,18.114 21.427,18.202V19.004C21.427,19.047 21.409,19.087 21.378,19.115C21.349,19.146 21.309,19.163 21.266,19.163H19.079C19.037,19.163 18.997,19.146 18.968,19.115C18.936,19.087 18.919,19.047 18.919,19.004Z"
24 + android:fillColor="#2A292E"
25 + android:fillType="evenOdd"/>
26 + <path
27 + android:pathData="M26.585,17.535V16.183L26.622,16.221L28.328,17.989L28.585,18.256H27.282L27.024,17.989L26.622,17.573L26.585,17.535ZM25.705,23.656H6.43V4.826H25.428V4.829H25.705V23.656ZM6.423,27.139H16.794V24.623H6.423V27.139ZM26.585,13.737L26.622,13.775L30.24,17.525L30.339,17.627V18.256H29.643L29.385,17.989L26.622,15.126L26.585,15.088V13.737ZM26.585,11.291L26.622,11.329L30.24,15.079L30.339,15.181V16.531L30.24,16.428L26.622,12.681L26.585,12.642V11.291ZM26.585,8.845L26.622,8.883L30.24,12.632L30.339,12.735V14.084L30.24,13.982L26.622,10.234L26.585,10.196V8.845ZM26.585,6.398L26.622,6.437L30.24,10.186L30.339,10.288V11.638L30.24,11.536L26.622,7.788L26.585,7.75V6.398ZM26.585,4.74H27.346L27.431,4.829L30.24,7.74L30.339,7.842V9.192L30.24,9.09L26.622,5.341L26.585,5.303V4.74ZM28.404,4.74H29.706L29.791,4.829L30.24,5.294L30.339,5.396V6.745L30.24,6.643L28.49,4.829L28.404,4.74ZM1.813,22.969H5.506V19.276H1.813V22.969ZM26.622,3.909H26.568H5.513V18.359H0.896V23.886H5.506V28.056H17.712V24.574H26.622V18.908H30.24V18.912H31.158V18.908H31.16V3.909H26.622Z"
28 + android:fillColor="#2A292E"
29 + android:fillType="evenOdd"/>
30 +</vector>
...@@ -147,7 +147,6 @@ ...@@ -147,7 +147,6 @@
147 android:id="@+id/rv_sm_count" 147 android:id="@+id/rv_sm_count"
148 android:layout_width="0dp" 148 android:layout_width="0dp"
149 android:layout_height="104dp" 149 android:layout_height="104dp"
150 - android:layout_marginHorizontal="12dp"
151 app:layout_constraintBottom_toBottomOf="parent" 150 app:layout_constraintBottom_toBottomOf="parent"
152 app:layout_constraintEnd_toStartOf="@+id/rv_gifts_count" 151 app:layout_constraintEnd_toStartOf="@+id/rv_gifts_count"
153 app:layout_constraintStart_toEndOf="@+id/rv_deals_count" 152 app:layout_constraintStart_toEndOf="@+id/rv_deals_count"
...@@ -237,7 +236,7 @@ ...@@ -237,7 +236,7 @@
237 android:layout_width="0dp" 236 android:layout_width="0dp"
238 android:layout_height="104dp" 237 android:layout_height="104dp"
239 app:layout_constraintBottom_toBottomOf="parent" 238 app:layout_constraintBottom_toBottomOf="parent"
240 - app:layout_constraintEnd_toEndOf="parent" 239 + app:layout_constraintEnd_toStartOf="@+id/rv_box_count"
241 app:layout_constraintStart_toEndOf="@+id/rv_sm_count" 240 app:layout_constraintStart_toEndOf="@+id/rv_sm_count"
242 app:layout_constraintTop_toTopOf="parent"> 241 app:layout_constraintTop_toTopOf="parent">
243 242
...@@ -319,6 +318,94 @@ ...@@ -319,6 +318,94 @@
319 tools:text="6" /> 318 tools:text="6" />
320 </LinearLayout> 319 </LinearLayout>
321 </RelativeLayout> 320 </RelativeLayout>
321 +
322 + <RelativeLayout
323 + android:id="@+id/rv_box_count"
324 + android:layout_width="0dp"
325 + android:layout_height="104dp"
326 + app:layout_constraintBottom_toBottomOf="parent"
327 + app:layout_constraintEnd_toEndOf="parent"
328 + app:layout_constraintStart_toEndOf="@+id/rv_gifts_count"
329 + app:layout_constraintTop_toTopOf="parent">
330 +
331 + <androidx.cardview.widget.CardView
332 + android:id="@+id/cv_box_count"
333 + android:layout_width="match_parent"
334 + android:layout_height="match_parent"
335 + android:layout_marginHorizontal="2dp"
336 + android:layout_marginVertical="4dp"
337 + app:cardCornerRadius="16dp"
338 + app:cardElevation="2dp">
339 +
340 + <androidx.constraintlayout.widget.ConstraintLayout
341 + android:layout_width="match_parent"
342 + android:layout_height="match_parent"
343 + android:background="@color/white">
344 +
345 + <ImageView
346 + android:id="@+id/iv_box_logo_count"
347 + android:layout_width="34dp"
348 + android:layout_height="34dp"
349 + android:src="@drawable/sv_box_logo"
350 + app:layout_constraintBottom_toTopOf="@+id/v_separator_box_count"
351 + app:layout_constraintEnd_toEndOf="parent"
352 + app:layout_constraintStart_toStartOf="parent"
353 + app:layout_constraintTop_toTopOf="parent" />
354 +
355 + <View
356 + android:id="@+id/v_separator_box_count"
357 + android:layout_width="match_parent"
358 + android:layout_height="1dp"
359 + android:layout_marginHorizontal="8dp"
360 + android:background="@color/cos_grey2"
361 + app:layout_constraintBottom_toBottomOf="parent"
362 + app:layout_constraintEnd_toEndOf="parent"
363 + app:layout_constraintStart_toStartOf="parent"
364 + app:layout_constraintTop_toTopOf="parent" />
365 +
366 + <TextView
367 + android:id="@+id/tv_box_count_title"
368 + fontPath="fonts/PeridotPE-SemiBold.ttf"
369 + android:layout_width="0dp"
370 + android:layout_height="wrap_content"
371 + android:layout_marginHorizontal="8dp"
372 + android:gravity="center"
373 + android:includeFontPadding="false"
374 + android:text="@string/cos_box"
375 + android:textColor="@color/cos_light_black"
376 + android:textSize="10sp"
377 + app:layout_constraintBottom_toBottomOf="parent"
378 + app:layout_constraintEnd_toEndOf="parent"
379 + app:layout_constraintStart_toStartOf="parent"
380 + app:layout_constraintTop_toBottomOf="@+id/v_separator_box_count" />
381 + </androidx.constraintlayout.widget.ConstraintLayout>
382 + </androidx.cardview.widget.CardView>
383 +
384 + <LinearLayout
385 + android:layout_width="16dp"
386 + android:layout_height="16dp"
387 + android:layout_alignParentEnd="true"
388 + android:layout_marginTop="4dp"
389 + android:layout_marginEnd="1dp"
390 + android:background="@drawable/shape_cos_counter_orange"
391 + android:gravity="center"
392 + android:orientation="vertical"
393 + android:translationZ="2dp"
394 + app:layout_constraintEnd_toEndOf="parent"
395 + app:layout_constraintTop_toTopOf="parent">
396 +
397 + <TextView
398 + android:id="@+id/tv_box_count"
399 + fontPath="fonts/PeridotPE-SemiBold.ttf"
400 + android:layout_width="wrap_content"
401 + android:layout_height="16dp"
402 + android:includeFontPadding="false"
403 + android:maxLines="1"
404 + android:textColor="@color/cos_light_black"
405 + android:textSize="12sp"
406 + tools:text="6" />
407 + </LinearLayout>
408 + </RelativeLayout>
322 </androidx.constraintlayout.widget.ConstraintLayout> 409 </androidx.constraintlayout.widget.ConstraintLayout>
323 </LinearLayout> 410 </LinearLayout>
324 411
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
20 <string name="cos_gifts_title">GIFTS FOR YOU</string> 20 <string name="cos_gifts_title">GIFTS FOR YOU</string>
21 <string name="cos_more_title">MORE FOR YOU</string> 21 <string name="cos_more_title">MORE FOR YOU</string>
22 <string name="cos_free_coupons">FREE COUPONS</string> 22 <string name="cos_free_coupons">FREE COUPONS</string>
23 + <string name="cos_box">BOX</string>
23 <string name="menu_home">Αρχική</string> 24 <string name="menu_home">Αρχική</string>
24 <string name="menu_explore">Ανακάλυψε</string> 25 <string name="menu_explore">Ανακάλυψε</string>
25 <string name="menu_shop">Shop</string> 26 <string name="menu_shop">Shop</string>
......