Panagiotis Triantafyllou

changes for cosmote pass part2

Showing 22 changed files with 499 additions and 40 deletions
......@@ -53,6 +53,12 @@
android:theme="@style/SDKAppTheme" />
<activity
android:name=".activities.MarketPassInfoActivity"
android:exported="false"
android:screenOrientation="portrait"
android:theme="@style/SDKAppTheme" />
<activity
android:name=".activities.LoyaltyHistoryActivity"
android:exported="false"
android:screenOrientation="portrait"
......
package ly.warp.sdk.activities;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.graphics.Typeface;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.core.content.res.ResourcesCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.oned.EAN13Writer;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
import org.json.JSONArray;
import org.json.JSONObject;
import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.Locale;
import java.util.Set;
import ly.warp.sdk.R;
import ly.warp.sdk.io.callbacks.CallbackReceiver;
import ly.warp.sdk.io.models.Coupon;
import ly.warp.sdk.io.models.CustomTypefaceSpan;
import ly.warp.sdk.io.models.UnifiedCoupon;
import ly.warp.sdk.io.models.LoyaltySDKFirebaseEventModel;
import ly.warp.sdk.utils.WarpUtils;
import ly.warp.sdk.utils.WarplyManagerHelper;
import ly.warp.sdk.utils.managers.WarplyAnalyticsManager;
import ly.warp.sdk.utils.managers.WarplyEventBusManager;
import ly.warp.sdk.utils.managers.WarplyManager;
import ly.warp.sdk.views.adapters.ActiveCouponAdapter;
import ly.warp.sdk.views.adapters.MarketCouponAdapter;
public class MarketPassActivity extends Activity implements View.OnClickListener {
......@@ -66,7 +47,9 @@ public class MarketPassActivity extends Activity implements View.OnClickListener
// ===========================================================
private ImageView mIvBack, mIvInfo, mIvBarcode;
private TextView mFontHeader, mPassHeader, mPassSubtitle, mTvBarcode, mTvPassCount;
private TextView mFontHeader, mPassHeader, mPassSubtitle, mTvBarcode, mTvPassCount, mTvButtonMap;
private LinearLayout mLlMap, mLlParentLogosView;
private boolean mMapPressed = false, mPassInfoPressed = false;
// ===========================================================
// Methods for/from SuperClass/Interfaces
......@@ -85,21 +68,13 @@ public class MarketPassActivity extends Activity implements View.OnClickListener
mTvBarcode = findViewById(R.id.tv_barcode_value);
mIvBarcode = findViewById(R.id.iv_barcode);
mTvPassCount = findViewById(R.id.tv_total_pass_title);
//TODO: replace with actual value
String passValue = String.format(Locale.GERMAN, "%.00f", 30f);
SpannableStringBuilder sBuilder = new SpannableStringBuilder();
sBuilder.append(String.format(getString(R.string.cos_market_pass_coupons_title), "30"));
Typeface typefaceBold = ResourcesCompat.getFont(this, R.font.peridot_bold);
CustomTypefaceSpan typefaceBoldSpan = new CustomTypefaceSpan(typefaceBold);
sBuilder.setSpan(typefaceBoldSpan, 31, 31 + passValue.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mTvPassCount.setText(sBuilder, TextView.BufferType.SPANNABLE);
//TODO: replace with dynmamic barcode
createBarcodeBitmap("4006381333931");
mTvButtonMap = findViewById(R.id.tv_button_map);
mLlMap = findViewById(R.id.ll_map);
mLlParentLogosView = findViewById(R.id.ll_sm_logos);
WarpUtils.renderCustomFont(this, R.font.bt_cosmo_bold, mFontHeader, mPassHeader);
WarpUtils.renderCustomFont(this, R.font.peridot_regular, mPassSubtitle, mTvBarcode, mTvPassCount);
WarpUtils.renderCustomFont(this, R.font.peridot_semi_bold, mTvButtonMap);
initViews();
}
......@@ -108,6 +83,8 @@ public class MarketPassActivity extends Activity implements View.OnClickListener
public void onResume() {
super.onResume();
WarplyAnalyticsManager.logTrackersEvent(this, "screen", "MarketPassScreen");
mMapPressed = false;
mPassInfoPressed = false;
}
@Override
......@@ -116,8 +93,33 @@ public class MarketPassActivity extends Activity implements View.OnClickListener
onBackPressed();
return;
}
if (view.getId() == R.id.ll_map) {
if (!mMapPressed) {
mMapPressed = true;
if (!WarplyManagerHelper.noInternetDialog(this, true)) {
WarplyManagerHelper.noInternetDialog(this);
return;
}
WarplyAnalyticsManager.logTrackersEvent(this, "click", "MarketPassInfoScreen");
startActivity(WarpViewActivity.createIntentFromURL(this, WarplyManagerHelper.getMarketPassMapUrl(MarketPassActivity.this)));
}
}
if (view.getId() == R.id.iv_coupons_info) {
//TODO
if (!mPassInfoPressed) {
mPassInfoPressed = true;
WarplyAnalyticsManager.logTrackersEvent(MarketPassActivity.this, "click", ("MarketPassScreen")
.concat(":")
.concat("MarketPassInfo"));
LoyaltySDKFirebaseEventModel analyticsEvent = new LoyaltySDKFirebaseEventModel();
analyticsEvent.setEventName("did_tap_market_pass_info");
analyticsEvent.setParameter("screen", "Market Pass Screen");
EventBus.getDefault().post(new WarplyEventBusManager(analyticsEvent));
Intent intent = new Intent(MarketPassActivity.this, MarketPassInfoActivity.class);
startActivity(intent);
}
}
}
......@@ -128,6 +130,33 @@ public class MarketPassActivity extends Activity implements View.OnClickListener
private void initViews() {
mIvBack.setOnClickListener(this);
mIvInfo.setOnClickListener(this);
mLlMap.setOnClickListener(this);
//TODO: replace with dynmamic barcode
createBarcodeBitmap("4006381333931");
//TODO: replace with actual value
String passValue = String.format(Locale.GERMAN, "%.00f", 30f);
SpannableStringBuilder sBuilder = new SpannableStringBuilder();
sBuilder.append(String.format(getString(R.string.cos_market_pass_coupons_title), "30"));
Typeface typefaceBold = ResourcesCompat.getFont(this, R.font.peridot_bold);
CustomTypefaceSpan typefaceBoldSpan = new CustomTypefaceSpan(typefaceBold);
sBuilder.setSpan(typefaceBoldSpan, 31, 31 + passValue.length() + 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
mTvPassCount.setText(sBuilder, TextView.BufferType.SPANNABLE);
//TODO: replace with dynamic size of logos
for (int i = 0; i < 3; i++) {
int tempIndex = i;
LayoutInflater vi = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
RelativeLayout v = (RelativeLayout) vi.inflate(R.layout.item_sheet_image, null);
ImageView merchantLogo = (ImageView) v.findViewById(R.id.iv_market_logo);
merchantLogo.setImageResource(R.drawable.ic_ab_logo);
mLlParentLogosView.addView(v, tempIndex, new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
}
}
private void createBarcodeBitmap(String barcodeString) {
......
package ly.warp.sdk.activities;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import ly.warp.sdk.R;
import ly.warp.sdk.utils.WarpUtils;
import ly.warp.sdk.utils.managers.WarplyAnalyticsManager;
public class MarketPassInfoActivity extends Activity implements View.OnClickListener {
// ===========================================================
// Constants
// ===========================================================
// ===========================================================
// Fields
// ===========================================================
private ImageView mIvBack;
private TextView mFontHeader, mTvPassInfoHeader, mTvBasketTitle, mTvBasketSubtitle,
mTvEshopTitle, mTvEshopSubtitle, mTvAbTitle, mTvAbSubtitle, mTvPassBack;
private LinearLayout mLlPassReturn;
// ===========================================================
// Methods for/from SuperClass/Interfaces
// ===========================================================
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_market_pass_info);
mIvBack = findViewById(R.id.iv_coupons_close);
mFontHeader = findViewById(R.id.textView3);
mTvPassInfoHeader = findViewById(R.id.tv_pass_info_header);
mTvBasketTitle = findViewById(R.id.tv_pass_info_basket_title);
mTvBasketSubtitle = findViewById(R.id.tv_pass_info_basket_subtitle);
mTvEshopTitle = findViewById(R.id.tv_pass_info_eshop_title);
mTvEshopSubtitle = findViewById(R.id.tv_pass_info_eshop_subtitle);
mTvAbTitle = findViewById(R.id.tv_pass_info_ab_title);
mTvAbSubtitle = findViewById(R.id.tv_pass_info_ab_subtitle);
mTvPassBack = findViewById(R.id.tv_button_back);
mLlPassReturn = findViewById(R.id.ll_return_back);
WarpUtils.renderCustomFont(this, R.font.bt_cosmo_bold, mFontHeader, mTvPassInfoHeader);
WarpUtils.renderCustomFont(this, R.font.peridot_bold, mTvBasketTitle, mTvEshopTitle,
mTvAbTitle, mTvPassBack);
WarpUtils.renderCustomFont(this, R.font.peridot_regular, mTvBasketSubtitle,
mTvEshopSubtitle, mTvAbSubtitle);
initViews();
}
@Override
public void onResume() {
super.onResume();
WarplyAnalyticsManager.logTrackersEvent(this, "screen", "MarketPassInfoScreen");
}
@Override
public void onClick(View view) {
if (view.getId() == R.id.iv_coupons_close) {
onBackPressed();
return;
}
if (view.getId() == R.id.ll_return_back) {
onBackPressed();
}
}
// ===========================================================
// Methods
// ===========================================================
private void initViews() {
mIvBack.setOnClickListener(this);
mLlPassReturn.setOnClickListener(this);
}
// ===========================================================
// Inner and Anonymous Classes
// ===========================================================
}
......@@ -140,6 +140,14 @@ public class WarplyManagerHelper {
// Methods
// ===========================================================
public static String getMarketPassMapUrl(Context context) {
if (WarplyProperty.getAppUuid(context).equals("f83dfde1145e4c2da69793abb2f579af")) {
return "https://dev.supermarketdeals.eu/map";
}
return "https://supermarketdeals.eu/map";
}
/**
* Open Warply campaign
*/
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white"/>
<stroke android:width="2dp" android:color="@color/cos_green14" />
<corners android:radius="10dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/white"/>
<stroke android:width="2dp" android:color="@color/cos_green14_tr" />
<corners android:radius="10dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_cos_green3_tr" android:state_pressed="true" />
<item android:drawable="@drawable/shape_cos_green3" android:state_pressed="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/round_border_green4_tr" android:state_pressed="true" />
<item android:drawable="@drawable/round_border_green4" android:state_pressed="false" />
</selector>
\ 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="10dp" />
<solid
android:width="2dp"
android:color="@color/cos_green12" />
</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="10dp" />
<solid
android:width="2dp"
android:color="@color/cos_green6_tr" />
</shape>
\ No newline at end of file
......@@ -72,7 +72,7 @@
android:layout_marginVertical="24dp"
app:cardBackgroundColor="@android:color/white"
app:cardCornerRadius="16dp"
app:cardElevation="3dp">
app:cardElevation="2dp">
<RelativeLayout
android:layout_width="match_parent"
......@@ -141,6 +141,7 @@
</RelativeLayout>
<LinearLayout
android:id="@+id/ll_total_coupons_value"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/rl_parent_pass"
......@@ -152,12 +153,58 @@
android:id="@+id/tv_total_pass_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:letterSpacing="0.04"
android:includeFontPadding="false"
android:letterSpacing="0.04"
android:textColor="@color/white"
android:textSize="16sp"
app:lineHeight="22dp" />
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/ll_total_coupons_value"
android:background="@color/white"
android:orientation="horizontal"
android:paddingVertical="24dp">
<LinearLayout
android:id="@+id/ll_sm_logos"
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="horizontal"
android:gravity="center"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@+id/ll_map">
</LinearLayout>
<LinearLayout
android:id="@+id/ll_map"
android:layout_width="148dp"
android:layout_height="48dp"
android:layout_gravity="center"
android:background="@drawable/selector_button_green_border3"
android:gravity="center"
android:orientation="horizontal"
android:layout_marginEnd="12dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_button_map"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:includeFontPadding="false"
android:text="@string/cos_pass_map"
android:textColor="@color/cos_green14"
android:textSize="16sp" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</RelativeLayout>
</androidx.cardview.widget.CardView>
</RelativeLayout>
......
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/cl_bill_payment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_bill_header"
android:layout_width="match_parent"
android:layout_height="64dp"
android:background="@color/white"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/iv_coupons_close"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginStart="16dp"
android:scaleType="centerInside"
android:src="@drawable/ic_back"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/cos_market_Pass_info_title"
android:textColor="@color/cos_light_black"
android:textSize="19sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/cl_bill_header"
android:scrollbars="none">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="40dp">
<ImageView
android:id="@+id/iv_pass_info_logo"
android:layout_width="240dp"
android:layout_height="240dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="12dp"
android:src="@drawable/ic_market_pass_info_logo" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/iv_pass_info_logo"
android:layout_marginHorizontal="32dp"
android:layout_marginTop="8dp"
android:orientation="vertical">
<TextView
android:id="@+id/tv_pass_info_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cos_market_pass_info_header"
android:textColor="@color/cos_light_black"
android:textSize="23sp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:orientation="horizontal">
<ImageView
android:layout_width="38dp"
android:layout_height="38dp"
android:src="@drawable/ic_pass_info_basket" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingHorizontal="10dp">
<TextView
android:id="@+id/tv_pass_info_basket_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:letterSpacing="0.028"
android:text="@string/cos_market_basket_title"
android:textColor="@color/cos_light_black"
android:textSize="19sp" />
<TextView
android:id="@+id/tv_pass_info_basket_subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:letterSpacing="0.00282"
android:text="@string/cos_market_basket_subtitle"
android:textColor="@color/cos_light_black"
android:textSize="17sp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:orientation="horizontal">
<ImageView
android:layout_width="38dp"
android:layout_height="38dp"
android:src="@drawable/ic_pass_info_eshop" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingHorizontal="10dp">
<TextView
android:id="@+id/tv_pass_info_eshop_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:letterSpacing="0.028"
android:text="@string/cos_market_eshop_title"
android:textColor="@color/cos_light_black"
android:textSize="19sp" />
<TextView
android:id="@+id/tv_pass_info_eshop_subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:letterSpacing="0.00282"
android:text="@string/cos_market_eshop_subtitle"
android:textColor="@color/cos_light_black"
android:textSize="17sp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:orientation="horizontal">
<ImageView
android:layout_width="38dp"
android:layout_height="38dp"
android:src="@drawable/ic_pass_info_ab" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingHorizontal="10dp">
<TextView
android:id="@+id/tv_pass_info_ab_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:letterSpacing="0.028"
android:text="@string/cos_market_ab_title"
android:textColor="@color/cos_light_black"
android:textSize="19sp" />
<TextView
android:id="@+id/tv_pass_info_ab_subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:letterSpacing="0.00282"
android:text="@string/cos_market_ab_subtitle"
android:textColor="@color/cos_light_black"
android:textSize="17sp" />
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/ll_return_back"
android:layout_width="match_parent"
android:layout_height="55dp"
android:layout_marginTop="32dp"
android:background="@drawable/selector_button_green3"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_button_back"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:includeFontPadding="false"
android:text="@string/cos_market_pass_return"
android:textColor="@color/white"
android:textSize="16sp" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/white">
<ImageView
android:id="@+id/iv_market_logo"
android:layout_width="56dp"
android:layout_height="56dp"
android:layout_marginStart="8dp" />
</RelativeLayout>
\ No newline at end of file
......@@ -84,4 +84,5 @@
<color name="cos_green13">#36B32B</color>
<color name="cos_light_grey4">#DADDE4</color>
<color name="cos_green14">#006D26</color>
<color name="cos_green14_tr">#66006D26</color>
</resources>
\ No newline at end of file
......
......@@ -119,6 +119,7 @@
<string name="cos_profile_preferences">Πρόσθεσε τις προτιμήσεις σου</string>
<string name="cos_profile_history">Δες το ιστορικό σου</string>
<string name="cos_shops">Δες τα καταστήματα</string>
<string name="cos_pass_map">Δες στο χάρτη</string>
<string name="cos_website">Δες το eshop</string>
<string name="cos_coupon_shops_title">Καταστήματα</string>
<string name="cos_coupon_gift">Δώρισέ το</string>
......@@ -180,8 +181,17 @@
<string name="cos_dlg_no_shops_positive">Δες το eshop</string>
<string name="cos_profile_preferences_placeholder">Οι προτιμήσεις μου</string>
<string name="cos_market_title">SUPERMARKET DEALS</string>
<string name="cos_market_Pass_info_title">Οδηγίες χρήσης</string>
<string name="cos_market_pass_info_header">Πως λειτουργεί:</string>
<string name="cos_market_basket_title">Εξαργύρωση σε φυσικά καταστήματα</string>
<string name="cos_market_basket_subtitle">Σκάναρε το barcode από το κινητό σου στο ταμείο του καταστήματος και κέρδισε απευθείας έκπτωση από τα διαθέσιμα κουπόνια.</string>
<string name="cos_market_eshop_title">Εξαργύρωση στο eshop</string>
<string name="cos_market_eshop_subtitle">Πληκτρολόγησε τον κωδικό σου στο αντίστοιχο πεδίο κατά το checkout στο eshop και κέρδισε απευθείας έκπτωση από τα διαθέσιμα κουπόνια.</string>
<string name="cos_market_ab_title">Ειδικά για τον ΑΒ</string>
<string name="cos_market_ab_subtitle">1. Eνεργοποίησε τον κωδικό στην κάρτα ΑΒ PLUS στο kiosk του καταστήματος ή μέσω eshop / app στην ενοτητα στην ενότητα Συνεργασίες – SUPERMARKET DEALS.\n\n2. Κάνε τις αγορές σου και κέρδισε απευθείας έκπτωση με χρήση της AB PLUS από τα διαθέσιμα κουπόνια.</string>
<string name="cos_market_pass_title">SUPERMARKET DEALS CARD</string>
<string name="cos_market_pass_subtitle">Χρησιμοποίησε τον κωδικό σου και κέρδισε έκπτωση στις αγορές σου!</string>
<string name="cos_market_pass_return">Επιστροφή στο Supermarket Deals</string>
<string name="cos_market_pass_coupons_title">Έχεις κουπόνια συνολικής αξίας %1$s€</string>
<string name="cos_market_subtitle">Δημιούργησε το δικό σου ενιαίο κουπόνι προσφορών, και εξαργύρωσέ το στα supermarket της επιλογής σου γρήγορα και εύκολα με ένα μόνο κωδικό κουπονιού!</string>
<string name="cos_market_close">Τέλος</string>
......