Panagiotis Triantafyllou

new version

Showing 22 changed files with 264 additions and 57 deletions
......@@ -2,7 +2,7 @@ apply plugin: 'com.android.library'
ext {
PUBLISH_GROUP_ID = 'ly.warp'
PUBLISH_VERSION = '4.5.4-cosbeta16'
PUBLISH_VERSION = '4.5.4-cosbeta17'
PUBLISH_ARTIFACT_ID = 'warply-android-sdk'
}
......
......@@ -43,17 +43,17 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener {
// Fields
// ===========================================================
private ImageView mIvBack;
private ImageView mIvBack, mIvDealsLogo;
private TextView mTvUsername, mTvDealsValue, mTvDealsValueAll,
mTvUserBadge, mTvGiftsValue, mTvGiftsValueAll, mTvActiveCode, mTvActiveDate;
private ConstraintLayout mClDealsBanner,
private ConstraintLayout mClDealsBanner, mClDealsView,
mClGiftsBanner;
private LinearLayout mLlQuestionnaire, mLlUserBadge;
float couponValue = 0.0f, couponDfyValue = 0.0f;
int couponCount = 0;
private RecyclerView mRecyclerCoupons;
private ActiveCouponAdapter mAdapterCoupons;
CouponList cpnlist = new CouponList();
private CouponList cpnlist = new CouponList();
// ===========================================================
// Methods for/from SuperClass/Interfaces
......@@ -77,6 +77,8 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener {
mTvDealsValueAll = findViewById(R.id.tv_deals_value_all);
mTvActiveCode = findViewById(R.id.tv_active_deals_text);
mTvActiveDate = findViewById(R.id.tv_active_deals_date_text);
mIvDealsLogo = findViewById(R.id.dfy_logo);
mClDealsView = findViewById(R.id.cl_mygifts);
if (WarplyManagerHelper.getActiveDFYCoupons() != null) {
Collections.sort(WarplyManagerHelper.getActiveDFYCoupons(), new Comparator<ActiveDFYCouponModel>() {
......@@ -138,7 +140,7 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener {
return;
}
if (view.getId() == R.id.cl_deals_win) {
//TODO: Loyalty history
}
}
......@@ -178,6 +180,9 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener {
} catch (ParseException e) {
e.printStackTrace();
}
} else {
mIvDealsLogo.setVisibility(View.GONE);
mClDealsView.setVisibility(View.GONE);
}
if (WarplyManagerHelper.getConsumer() != null) {
......
......@@ -25,16 +25,15 @@
package ly.warp.sdk.activities;
import static ly.warp.sdk.utils.constants.WarpConstants.RANDOM_MAX;
import static ly.warp.sdk.utils.constants.WarpConstants.RANDOM_MIN;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import androidx.annotation.NonNull;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.WebView;
......@@ -42,15 +41,20 @@ import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import java.security.SecureRandom;
import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.TimeUnit;
import androidx.annotation.NonNull;
import androidx.work.Constraints;
import androidx.work.NetworkType;
import androidx.work.OneTimeWorkRequest;
import androidx.work.WorkManager;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import java.security.SecureRandom;
import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.TimeUnit;
import ly.warp.sdk.R;
import ly.warp.sdk.Warply;
import ly.warp.sdk.services.PushEventsClickedWorkerService;
import ly.warp.sdk.utils.WarpJSONParser;
......@@ -62,12 +66,6 @@ import ly.warp.sdk.utils.managers.WarplyEventBusManager;
import ly.warp.sdk.utils.managers.WarplySessionManager;
import ly.warp.sdk.views.WarpView;
import static ly.warp.sdk.utils.constants.WarpConstants.RANDOM_MAX;
import static ly.warp.sdk.utils.constants.WarpConstants.RANDOM_MIN;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
public class WarpViewActivity extends WarpBaseActivity {
// ===========================================================
......@@ -83,6 +81,8 @@ public class WarpViewActivity extends WarpBaseActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_loyalty_wallet);
WarplySessionManager.onCreateActivity(this);
initViews();
Warply.getInitializer(this).init();
......@@ -129,6 +129,10 @@ public class WarpViewActivity extends WarpBaseActivity {
EventBus.getDefault().post(new WarplyEventBusManager(event.getQuestionnaire()));
if (event.getCoupon() != null)
EventBus.getDefault().post(new WarplyEventBusManager(event.getCoupon()));
if (event.getPacingCard() != null)
EventBus.getDefault().post(new WarplyEventBusManager(event.getPacingCard()));
if (event.getPacingService() != null)
EventBus.getDefault().post(new WarplyEventBusManager(event.getPacingService()));
finish();
}
......
......@@ -34,7 +34,7 @@ public class CouponEventModel {
private boolean success;
public CouponEventModel() {
this.success = false;
this.success = true;
}
public boolean isSuccess() {
......
/*
* Copyright 2010-2013 Warply Ltd. All rights reserved.
*
* Redistribution and use in source and binary forms, without modification, are
* permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE WARPLY LTD ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
* EVENT SHALL WARPLY LTD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package ly.warp.sdk.io.models;
/**
* Created by Panagiotis Triantafyllou on 27-June-22.
*/
public class LoyaltyBadgeModel {
private float value;
private int couponCount;
public LoyaltyBadgeModel() {
this.value = 0.0f;
this.couponCount = 0;
}
public float getValue() {
return value;
}
public void setValue(float value) {
this.value = value;
}
public int getCouponCount() {
return couponCount;
}
public void setCouponCount(int couponCount) {
this.couponCount = couponCount;
}
}
......@@ -127,7 +127,7 @@ public class PacingDetails {
return humanReadableString;
}
private class PacingInner {
public class PacingInner {
private static final String TOTAL = "total";
private static final String MONTH = "month";
private static final String WEEK = "week";
......@@ -195,7 +195,7 @@ public class PacingDetails {
}
}
private class PacingDetailsInner {
public class PacingDetailsInner {
private static final String GOAL = "goal";
private static final String VALLUE = "value";
private static final String PER_DAY = "per_day";
......@@ -256,7 +256,7 @@ public class PacingDetails {
}
}
private class PacingDetailsDay {
public class PacingDetailsDay {
private static final String DAY = "day";
private static final String VALLUE = "value";
......
......@@ -44,9 +44,11 @@ import ly.warp.sdk.io.models.ActiveDFYCouponModel;
import ly.warp.sdk.io.models.Campaign;
import ly.warp.sdk.io.models.CampaignList;
import ly.warp.sdk.io.models.Consumer;
import ly.warp.sdk.io.models.Coupon;
import ly.warp.sdk.io.models.CouponList;
import ly.warp.sdk.io.models.CouponsetsList;
import ly.warp.sdk.io.models.CustomerStateModel;
import ly.warp.sdk.io.models.LoyaltyBadgeModel;
import ly.warp.sdk.io.models.LoyaltyContextualOfferModel;
import ly.warp.sdk.io.models.LoyaltyGiftsForYouPackage;
import ly.warp.sdk.io.request.CosmoteRetrieveSharingRequest;
......@@ -78,6 +80,7 @@ public class WarplyManagerHelper {
private static ArrayList<LoyaltyContextualOfferModel> mCCMSList = new ArrayList<>();
private static AlertDialog mAlertDialogSharing, mAlertDialogAcceptSharing, mAlertDialogRejectSharing,
mAlertDialogReturnSharing, mAlertDialogErrorSharing;
private static LoyaltyBadgeModel mLoyaltyBadge = new LoyaltyBadgeModel();
// ===========================================================
// Methods for/from SuperClass/Interfaces
......@@ -117,7 +120,6 @@ public class WarplyManagerHelper {
WarplyManager.cosmoteSharing(new CosmoteSharingRequest().setSharingId(sharingId), new CallbackReceiver<JSONObject>() {
@Override
public void onSuccess(JSONObject result) {
Log.v("CosmoteSharing", "Success");
int status = result.optInt("status", 2);
if (status == 1) {
JSONObject innerResult = new JSONObject();
......@@ -140,7 +142,6 @@ public class WarplyManagerHelper {
@Override
public void onFailure(int errorCode) {
Log.v("CosmoteSharing", "Error");
errorSharingDialog(context);
}
});
......@@ -353,6 +354,17 @@ public class WarplyManagerHelper {
}
/**
* Open Pacing
*/
public static String openPacing() {
if (mUniqueCampaignList != null && mUniqueCampaignList.get("pacing") != null && mUniqueCampaignList.get("pacing").size() > 0) {
return constructCampaignUrl(mUniqueCampaignList.get("pacing").get(0));
}
return "";
}
/**
* Save if customer is nonTelco and if he/she has accepted the consents,
* And his msisdn list
*/
......@@ -437,9 +449,32 @@ public class WarplyManagerHelper {
}
public static void setCouponList(CouponList couponList) {
LoyaltyBadgeModel badge = new LoyaltyBadgeModel();
CouponList cpnlist = new CouponList();
float couponValue = 0.0f;
int couponCount = 0;
for (Coupon coupon : couponList) {
if (coupon.getStatus() == 1) {
try {
cpnlist.add(coupon);
couponCount += 1;
couponValue += Float.parseFloat(coupon.getDiscount());
} catch (NumberFormatException e) {
cpnlist.remove(coupon);
couponCount -= 1;
}
}
}
badge.setCouponCount(couponCount);
badge.setValue(couponValue);
mLoyaltyBadge = badge;
mCouponList = couponList;
}
public static LoyaltyBadgeModel getLoyaltyBadge() {
return mLoyaltyBadge;
}
public static CouponsetsList getCouponsets() {
return mCouponsetsList;
}
......
......@@ -64,6 +64,8 @@ import java.util.Map;
import ly.warp.sdk.Warply;
import ly.warp.sdk.io.models.CouponEventModel;
import ly.warp.sdk.io.models.QuestionnaireEventModel;
import ly.warp.sdk.io.models.WarplyPacingCardEventModel;
import ly.warp.sdk.io.models.WarplyPacingCardServiceEnabledModel;
import ly.warp.sdk.utils.WarpUtils;
import ly.warp.sdk.utils.WarplyProperty;
import ly.warp.sdk.utils.WarplyUrlHandler;
......@@ -384,9 +386,25 @@ public class WarpView extends WebView {
WarpUtils.setUserTag(Warply.getWarplyContext(), parts[2]);
EventBus.getDefault().post(new WarplyEventBusManager(questionnaireEvent));
} else if (parts[1].equals("event:couponRetrieved")) {
CouponEventModel couponEvent = new CouponEventModel();
couponEvent.setSuccess(true);
EventBus.getDefault().post(new WarplyEventBusManager(couponEvent));
EventBus.getDefault().post(new WarplyEventBusManager(new CouponEventModel()));
} else if (parts[2].equals("serviceDisabled")) {
WarplyPacingCardServiceEnabledModel pacingService = new WarplyPacingCardServiceEnabledModel();
pacingService.setEnabled(false);
EventBus.getDefault().post(new WarplyEventBusManager(pacingService));
} else if (parts[2].equals("serviceEnabled")) {
WarplyPacingCardServiceEnabledModel pacingService = new WarplyPacingCardServiceEnabledModel();
pacingService.setEnabled(true);
EventBus.getDefault().post(new WarplyEventBusManager(pacingService));
} else if (parts[2].equals("shortcutEnabled")) {
WarplyPacingCardEventModel pacingVisible = new WarplyPacingCardEventModel();
pacingVisible.setVisible(true);
EventBus.getDefault().post(new WarplyEventBusManager(pacingVisible));
} else if (parts[2].equals("shortcutDisabled")) {
WarplyPacingCardEventModel pacingVisible = new WarplyPacingCardEventModel();
pacingVisible.setVisible(false);
EventBus.getDefault().post(new WarplyEventBusManager(pacingVisible));
} else if (parts[1].equals("request") || parts[1].equals("response")) {
WarpUtils.verbose(parts[2]);
}
}
}
......
......@@ -36,13 +36,14 @@ public class MergedGiftsAdapter extends RecyclerView.Adapter<MergedGiftsAdapter.
}
public class MergedGiftsViewHolder extends RecyclerView.ViewHolder {
private ImageView ivMergedGiftsLogo;
private ImageView ivMergedGiftsLogo, ivIsNew;
private TextView tvMergedGiftsTitle;
public MergedGiftsViewHolder(View view) {
super(view);
ivMergedGiftsLogo = view.findViewById(R.id.iv_campaign_logo);
tvMergedGiftsTitle = view.findViewById(R.id.tv_campaign_title);
ivIsNew = view.findViewById(R.id.iv_campaign_new);
}
}
......@@ -90,6 +91,11 @@ public class MergedGiftsAdapter extends RecyclerView.Adapter<MergedGiftsAdapter.
}
holder.tvMergedGiftsTitle.setText(mergedgiftsItem.getCampaign().getTitle());
if (mergedgiftsItem.getCampaign().getIsNew())
holder.ivIsNew.setVisibility(View.VISIBLE);
else
holder.ivIsNew.setVisibility(View.GONE);
} else if (mergedgiftsItem != null && mergedgiftsItem.getDataType() == 2) {
if (!TextUtils.isEmpty(mergedgiftsItem.getSeasonalList().getImageUrl())) {
Glide.with(mContext)
......
......@@ -42,8 +42,8 @@ public class ProfileCampaignAdapter extends RecyclerView.Adapter<ProfileCampaign
}
public class ProfileCampaignViewHolder extends RecyclerView.ViewHolder {
private ImageView ivCampaignTitle;
private TextView tvCampaignTitle, tvCampaignSubtitle;
private ImageView ivCampaignTitle, ivIsNew;
private TextView tvCampaignTitle, tvCampaignSubtitle, tvCampaignMessage;
public ProfileCampaignViewHolder(View view) {
super(view);
......@@ -55,8 +55,11 @@ public class ProfileCampaignAdapter extends RecyclerView.Adapter<ProfileCampaign
super(view);
ivCampaignTitle = view.findViewById(R.id.iv_campaign_logo);
tvCampaignTitle = view.findViewById(R.id.tv_campaign_title);
if (vertical)
ivIsNew = view.findViewById(R.id.iv_campaign_new);
if (vertical) {
tvCampaignSubtitle = view.findViewById(R.id.tv_campaign_subtitle);
tvCampaignMessage = view.findViewById(R.id.tv_campaign_message);
}
}
}
......@@ -109,8 +112,14 @@ public class ProfileCampaignAdapter extends RecyclerView.Adapter<ProfileCampaign
}
holder.tvCampaignTitle.setText(campaignItem.getTitle());
if (mIsVertical)
if (mIsVertical) {
holder.tvCampaignSubtitle.setText(campaignItem.getSubtitle());
holder.tvCampaignMessage.setText(campaignItem.getMessage());
if (campaignItem.getIsNew())
holder.ivIsNew.setVisibility(View.VISIBLE);
else
holder.ivIsNew.setVisibility(View.GONE);
}
holder.itemView.setOnClickListener(v -> onClickSubject.onNext(campaignItem));
}
......
......@@ -6,5 +6,5 @@
android:endColor="@color/cos_green8"
android:type="linear"/>
<corners
android:radius="8dp"/>
android:radius="5dp"/>
</shape>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="8dp" />
<solid android:color="@color/cos_grey2" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/cl_bill_payment"
android:layout_width="match_parent"
android:layout_height="match_parent"
......@@ -52,7 +53,8 @@
android:background="@drawable/shape_cos_gradient5"
android:orientation="vertical"
android:paddingVertical="16dp"
android:visibility="gone">
android:visibility="gone"
tools:visibility="visible">
<ImageView
android:id="@+id/iv_popup_gifts_close"
......@@ -62,11 +64,11 @@
android:src="@drawable/ic_close_white" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="center"
android:scaleType="centerInside"
android:src="@drawable/ic_gifts_for_you_white" />
android:src="@drawable/ic_present" />
<TextView
android:layout_width="wrap_content"
......@@ -84,6 +86,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:layout_marginHorizontal="40dp"
android:text="@string/cos_popup_gifts_subtitle"
android:textColor="@android:color/white"
android:textSize="16sp" />
......
......@@ -122,7 +122,7 @@
android:paddingHorizontal="10dp"
android:paddingVertical="3dp"
android:visibility="gone"
tools:visibility="visible">
tools:visibility="gone">
<TextView
android:id="@+id/tv_type"
......@@ -138,16 +138,18 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:background="@drawable/shape_cos_grey5"
android:paddingHorizontal="8dp"
android:paddingVertical="4dp"
android:visibility="gone">
android:visibility="gone"
tools:visibility="visible">
<TextView
android:id="@+id/tv_questionnaire"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cos_profile_questionnaire"
android:textColor="@color/cos_dark_blue"
android:text="@string/cos_profile_preferences"
android:textColor="@color/cos_green6"
android:textFontWeight="600" />
</LinearLayout>
</LinearLayout>
......@@ -315,6 +317,7 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:id="@+id/dfy_logo"
android:layout_width="110dp"
android:layout_height="40dp"
android:layout_gravity="start"
......
......@@ -3,6 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools"
android:background="@android:color/white"
android:fillViewport="true">
......@@ -52,7 +53,8 @@
android:background="@drawable/shape_cos_gradient5"
android:orientation="vertical"
android:paddingVertical="16dp"
android:visibility="gone">
android:visibility="gone"
tools:visibility="visible">
<ImageView
android:id="@+id/iv_popup_more_close"
......@@ -62,17 +64,17 @@
android:src="@drawable/ic_close_white" />
<ImageView
android:layout_width="wrap_content"
android:layout_width="48dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:scaleType="centerInside"
android:src="@drawable/ic_more_for_you_new" />
android:src="@drawable/ic_heart" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="24dp"
android:layout_marginTop="8dp"
android:layout_marginBottom="12dp"
android:text="@string/cos_popup_more_title"
android:textColor="@android:color/white"
......@@ -84,6 +86,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:layout_marginHorizontal="40dp"
android:text="@string/cos_popup_more_subtitle"
android:textColor="@android:color/white"
android:textSize="16sp" />
......@@ -94,7 +97,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/ll_more_popup"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="4dp"
android:clipToPadding="false"
android:orientation="vertical"
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_marginBottom="24dp">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginHorizontal="16dp"
android:layout_marginBottom="24dp"
app:cardCornerRadius="4dp">
<androidx.constraintlayout.widget.ConstraintLayout
......@@ -46,6 +51,21 @@
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="-10% in all products from IKEA" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
\ No newline at end of file
</androidx.cardview.widget.CardView>
<ImageView
android:id="@+id/iv_campaign_new"
android:layout_width="56dp"
android:layout_height="24dp"
android:layout_alignParentEnd="true"
android:layout_marginTop="8dp"
android:layout_marginEnd="10dp"
android:scaleType="centerCrop"
android:src="@drawable/ic_new_icon"
android:translationZ="2dp"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible" />
</RelativeLayout>
\ No newline at end of file
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="240dp"
android:layout_marginBottom="16dp"
android:background="@android:color/transparent">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="240dp"
android:layout_marginHorizontal="16dp"
android:background="@android:color/transparent"
app:cardCornerRadius="5dp">
<androidx.constraintlayout.widget.ConstraintLayout
......@@ -53,7 +60,7 @@
android:layout_height="wrap_content"
android:layout_marginHorizontal="12dp"
android:layout_marginTop="20dp"
android:maxLines="2"
android:maxLines="4"
android:textColor="@color/blue_dark"
android:textSize="18sp"
android:textStyle="bold"
......@@ -67,7 +74,21 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="12dp"
android:layout_marginBottom="20dp"
android:layout_marginTop="6dp"
android:maxLines="4"
android:textColor="@color/blue_dark"
android:textSize="16sp"
app:layout_constraintEnd_toStartOf="@+id/gl_vertical_80_percent_inner"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_campaign_title"
tools:text="Σπάσε την πινιάτα και κέρδισε μοναδικά δώρα εσύ και το ταίρι σου!" />
<TextView
android:id="@+id/tv_campaign_message"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="12dp"
android:layout_marginBottom="16dp"
android:maxLines="4"
android:textColor="@color/blue_dark"
android:textSize="16sp"
......@@ -78,4 +99,20 @@
tools:text="Σπάσε την πινιάτα και κέρδισε μοναδικά δώρα εσύ και το ταίρι σου!" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
\ No newline at end of file
</androidx.cardview.widget.CardView>
<ImageView
android:id="@+id/iv_campaign_new"
android:layout_width="56dp"
android:layout_height="24dp"
android:layout_alignParentEnd="true"
android:layout_marginTop="8dp"
android:layout_marginEnd="12dp"
android:scaleType="centerCrop"
android:src="@drawable/ic_new_icon"
android:translationZ="2dp"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible" />
</RelativeLayout>
\ No newline at end of file
......
......@@ -61,11 +61,11 @@
<string name="cos_past_all_coupons">Παλαιότερα κουπόνια</string>
<string name="cos_coupon_expired_date">Εξαργυρώθηκε την %1$s</string>
<string name="cos_popup_gifts_title">COSMOTE GIFTS FOR YOU</string>
<string name="cos_popup_gifts_subtitle">Εδώ μπορείς να βρεις τα διαθέσιμα\nδώρα και προσφορές!</string>
<string name="cos_popup_gifts_subtitle">Σε αυτή την ενότητα βρίσκεις τα διαθέσιμα δώρα και επιβραβεύσεις αποκλειστικά για σένα!</string>
<string name="cos_mycoupon_date">Το κουπόνι ισχύει έως %1$s</string>
<string name="cos_gift_it">Κάντο δώρο!</string>
<string name="cos_popup_more_title">COSMOTE MORE FOR YOU</string>
<string name="cos_popup_more_subtitle">Εδώ μπορείς να βρεις διαγωνισμούς και\nνα σε επιβραβεύσουμε για τις αθλητικές σου\nδραστηριότητες!</string>
<string name="cos_popup_more_subtitle">Σε αυτή την ενότητα βρες έρευνες, παιχνίδια, διαγωνισμούς και επιβραβεύσεις για τις αθλητικές σου δραστηριότητες!</string>
<string name="cos_deals_win_title">Μέχρι τώρα έχεις κερδίσει %1$s€ σε προσφορές από %2$s κουπόνια!</string>
<string name="cos_deals_win_title_cos">Μέχρι τώρα έχεις κερδίσει %1$s€ με το DEALS for YOU!</string>
<string name="cos_mygifts">Τα δώρα μου</string>
......@@ -84,6 +84,7 @@
<string name="cos_dlg_reject_text">Είσαι σίγουρος ότι θέλεις να απορρίψεις το δώρο που μόλις έλαβες;</string>
<string name="cos_dlg_return_text">Έλαβες πίσω το δώρο σου, κουπόνι αξίας 100€ για τα Intersport</string>
<string name="cos_dlg_negative_button2">Άκυρο</string>
<string name="cos_profile_preferences">+Προτιμήσεις</string>
<string-array name="coupons_array">
<item>Κουπόνια</item>
......