Showing
54 changed files
with
1109 additions
and
102 deletions

1.73 KB
No preview for this file type

3.47 KB
No preview for this file type

3.68 KB
No preview for this file type

1.1 KB
No preview for this file type

1.99 KB
No preview for this file type

2.19 KB
No preview for this file type

2.57 KB
No preview for this file type

5.42 KB
No preview for this file type

5.62 KB
No preview for this file type

4.53 KB
No preview for this file type

9.86 KB
No preview for this file type

9.57 KB
No preview for this file type

6.88 KB
No preview for this file type

16.3 KB
No preview for this file type

14.5 KB
No preview for this file type
... | @@ -39,6 +39,12 @@ | ... | @@ -39,6 +39,12 @@ |
39 | android:theme="@style/SDKAppTheme" /> | 39 | android:theme="@style/SDKAppTheme" /> |
40 | 40 | ||
41 | <activity | 41 | <activity |
42 | + android:name=".activities.SingleCouponActivity" | ||
43 | + android:exported="false" | ||
44 | + android:screenOrientation="portrait" | ||
45 | + android:theme="@style/SDKAppTheme" /> | ||
46 | + | ||
47 | + <activity | ||
42 | android:name=".dexter.PermissionsActivity" | 48 | android:name=".dexter.PermissionsActivity" |
43 | android:exported="false" | 49 | android:exported="false" |
44 | android:launchMode="singleInstance" | 50 | android:launchMode="singleInstance" | ... | ... |
1 | package ly.warp.sdk.activities; | 1 | package ly.warp.sdk.activities; |
2 | 2 | ||
3 | import android.app.Activity; | 3 | import android.app.Activity; |
4 | +import android.content.Intent; | ||
4 | import android.os.Bundle; | 5 | import android.os.Bundle; |
5 | import android.util.TypedValue; | 6 | import android.util.TypedValue; |
6 | import android.view.View; | 7 | import android.view.View; |
7 | import android.widget.ImageView; | 8 | import android.widget.ImageView; |
8 | import android.widget.TextView; | 9 | import android.widget.TextView; |
9 | -import android.widget.Toast; | ||
10 | 10 | ||
11 | import androidx.recyclerview.widget.LinearLayoutManager; | 11 | import androidx.recyclerview.widget.LinearLayoutManager; |
12 | import androidx.recyclerview.widget.RecyclerView; | 12 | import androidx.recyclerview.widget.RecyclerView; |
... | @@ -17,7 +17,6 @@ import ly.warp.sdk.io.models.DummyDataProvider; | ... | @@ -17,7 +17,6 @@ import ly.warp.sdk.io.models.DummyDataProvider; |
17 | import ly.warp.sdk.io.models.OfferCategory; | 17 | import ly.warp.sdk.io.models.OfferCategory; |
18 | import ly.warp.sdk.io.models.OfferItem; | 18 | import ly.warp.sdk.io.models.OfferItem; |
19 | import ly.warp.sdk.utils.WarplyManagerHelper; | 19 | import ly.warp.sdk.utils.WarplyManagerHelper; |
20 | -import ly.warp.sdk.utils.managers.WarplyManager; | ||
21 | import ly.warp.sdk.views.HorizontalSpaceItemDecoration; | 20 | import ly.warp.sdk.views.HorizontalSpaceItemDecoration; |
22 | 21 | ||
23 | public class HomeActivity extends Activity implements View.OnClickListener, OfferAdapter.OnOfferClickListener { | 22 | public class HomeActivity extends Activity implements View.OnClickListener, OfferAdapter.OnOfferClickListener { |
... | @@ -72,8 +71,6 @@ public class HomeActivity extends Activity implements View.OnClickListener, Offe | ... | @@ -72,8 +71,6 @@ public class HomeActivity extends Activity implements View.OnClickListener, Offe |
72 | super.onCreate(savedInstanceState); | 71 | super.onCreate(savedInstanceState); |
73 | setContentView(R.layout.activity_home); | 72 | setContentView(R.layout.activity_home); |
74 | 73 | ||
75 | - mIvBanner = findViewById(R.id.banner_icon); | ||
76 | - | ||
77 | initViews(); | 74 | initViews(); |
78 | 75 | ||
79 | // Setup all category sections | 76 | // Setup all category sections |
... | @@ -92,12 +89,32 @@ public class HomeActivity extends Activity implements View.OnClickListener, Offe | ... | @@ -92,12 +89,32 @@ public class HomeActivity extends Activity implements View.OnClickListener, Offe |
92 | super.onResume(); | 89 | super.onResume(); |
93 | } | 90 | } |
94 | 91 | ||
92 | + @Override | ||
93 | + public void onClick(View v) { | ||
94 | + if (v.getId() == R.id.banner_icon) { | ||
95 | + WarplyManagerHelper.openContest(this); | ||
96 | + } | ||
97 | + } | ||
98 | + | ||
99 | + @Override | ||
100 | + public void onOfferClick(OfferItem offerItem, int position) { | ||
101 | + Intent myIntent = new Intent(HomeActivity.this, SingleCouponActivity.class); | ||
102 | + myIntent.putExtra(SingleCouponActivity.EXTRA_OFFER_ITEM, offerItem); | ||
103 | + startActivity(myIntent); | ||
104 | + } | ||
105 | + | ||
106 | + @Override | ||
107 | + public void onFavoriteClick(OfferItem offerItem, int position) { | ||
108 | +// Toast.makeText(this, "Favorite clicked for: " + offerItem.getTitle(), Toast.LENGTH_SHORT).show(); | ||
109 | + } | ||
110 | + | ||
95 | // =========================================================== | 111 | // =========================================================== |
96 | // Methods | 112 | // Methods |
97 | // =========================================================== | 113 | // =========================================================== |
98 | 114 | ||
99 | private void initViews() { | 115 | private void initViews() { |
100 | // Initialize banner | 116 | // Initialize banner |
117 | + mIvBanner = findViewById(R.id.banner_icon); | ||
101 | mIvBanner.setOnClickListener(this); | 118 | mIvBanner.setOnClickListener(this); |
102 | 119 | ||
103 | // Initialize Top Offers section | 120 | // Initialize Top Offers section |
... | @@ -341,23 +358,6 @@ public class HomeActivity extends Activity implements View.OnClickListener, Offe | ... | @@ -341,23 +358,6 @@ public class HomeActivity extends Activity implements View.OnClickListener, Offe |
341 | mRvPurchases.setAdapter(mPurchasesAdapter); | 358 | mRvPurchases.setAdapter(mPurchasesAdapter); |
342 | } | 359 | } |
343 | 360 | ||
344 | - @Override | ||
345 | - public void onClick(View v) { | ||
346 | - if (v.getId() == R.id.banner_icon) { | ||
347 | - WarplyManagerHelper.openContest(this); | ||
348 | - } | ||
349 | - } | ||
350 | - | ||
351 | - @Override | ||
352 | - public void onOfferClick(OfferItem offerItem, int position) { | ||
353 | -// Toast.makeText(this, "Offer clicked: " + offerItem.getTitle(), Toast.LENGTH_SHORT).show(); | ||
354 | - } | ||
355 | - | ||
356 | - @Override | ||
357 | - public void onFavoriteClick(OfferItem offerItem, int position) { | ||
358 | -// Toast.makeText(this, "Favorite clicked for: " + offerItem.getTitle(), Toast.LENGTH_SHORT).show(); | ||
359 | - } | ||
360 | - | ||
361 | // =========================================================== | 361 | // =========================================================== |
362 | // Inner and Anonymous Classes | 362 | // Inner and Anonymous Classes |
363 | // =========================================================== | 363 | // =========================================================== | ... | ... |
1 | +package ly.warp.sdk.activities; | ||
2 | + | ||
3 | +import android.app.Activity; | ||
4 | +import android.content.ClipData; | ||
5 | +import android.content.ClipboardManager; | ||
6 | +import android.content.Context; | ||
7 | +import android.content.Intent; | ||
8 | +import android.os.Bundle; | ||
9 | +import android.view.View; | ||
10 | +import android.widget.ImageView; | ||
11 | +import android.widget.LinearLayout; | ||
12 | +import android.widget.TextView; | ||
13 | +import android.widget.Toast; | ||
14 | + | ||
15 | +import ly.warp.sdk.R; | ||
16 | +import ly.warp.sdk.io.models.OfferItem; | ||
17 | + | ||
18 | +public class SingleCouponActivity extends Activity implements View.OnClickListener { | ||
19 | + // =========================================================== | ||
20 | + // Constants | ||
21 | + // =========================================================== | ||
22 | + public static final String EXTRA_OFFER_ITEM = "offer_item"; | ||
23 | + | ||
24 | + // =========================================================== | ||
25 | + // Fields | ||
26 | + // =========================================================== | ||
27 | + | ||
28 | + private ImageView mIvBack; | ||
29 | + private OfferItem mOfferItem; | ||
30 | + private TextView mTvTitle, mTvSmallDescription; | ||
31 | + private TextView mTvDescription; | ||
32 | + private TextView mTvFullDescription; | ||
33 | + private TextView mTvEndDate; | ||
34 | + private TextView mTvValue; | ||
35 | + private TextView mTvMoreButton; | ||
36 | + private ImageView mIvImage; | ||
37 | + | ||
38 | + private String mFullDescriptionText; | ||
39 | + private boolean mIsDescriptionExpanded = false; | ||
40 | + | ||
41 | + // Coupon code section | ||
42 | + private LinearLayout mCouponCodeContainer; | ||
43 | + private LinearLayout mCouponCodeHeader; | ||
44 | + private LinearLayout mCouponCodeContent; | ||
45 | + private ImageView mIvCouponArrow; | ||
46 | + private ImageView mIvCopyCode; | ||
47 | + private TextView mTvCouponCode; | ||
48 | + private boolean mIsCouponCodeExpanded = false; | ||
49 | + | ||
50 | + // QR code section | ||
51 | + private LinearLayout mQrCodeContainer; | ||
52 | + private LinearLayout mQrCodeHeader; | ||
53 | + private LinearLayout mQrCodeContent; | ||
54 | + private ImageView mIvQrArrow; | ||
55 | + private ImageView mIvQrCode; | ||
56 | + private boolean mIsQrCodeExpanded = false; | ||
57 | + | ||
58 | + // Terms of Use section | ||
59 | + private LinearLayout mTermsContainer; | ||
60 | + private LinearLayout mTermsHeader; | ||
61 | + private LinearLayout mTermsContent; | ||
62 | + private ImageView mIvTermsArrow; | ||
63 | + private TextView mTvTermsText; | ||
64 | + private boolean mIsTermsExpanded = false; | ||
65 | + | ||
66 | + | ||
67 | + // =========================================================== | ||
68 | + // Methods for/from SuperClass/Interfaces | ||
69 | + // =========================================================== | ||
70 | + | ||
71 | + @Override | ||
72 | + public void onCreate(Bundle savedInstanceState) { | ||
73 | + super.onCreate(savedInstanceState); | ||
74 | + setContentView(R.layout.activity_single_coupon); | ||
75 | + | ||
76 | + // Get offer item from intent | ||
77 | + Intent intent = getIntent(); | ||
78 | + if (intent != null && intent.hasExtra(EXTRA_OFFER_ITEM)) { | ||
79 | + mOfferItem = (OfferItem) intent.getSerializableExtra(EXTRA_OFFER_ITEM); | ||
80 | + } | ||
81 | + | ||
82 | + initViews(); | ||
83 | + } | ||
84 | + | ||
85 | + @Override | ||
86 | + public void onResume() { | ||
87 | + super.onResume(); | ||
88 | + } | ||
89 | + | ||
90 | + // =========================================================== | ||
91 | + // Methods | ||
92 | + // =========================================================== | ||
93 | + | ||
94 | + private void initViews() { | ||
95 | + mIvBack = findViewById(R.id.iv_back); | ||
96 | + mIvBack.setOnClickListener(this); | ||
97 | + | ||
98 | + // Initialize views | ||
99 | + mTvSmallDescription = findViewById(R.id.tv_coupon_small_description); | ||
100 | + mTvFullDescription = findViewById(R.id.tv_coupon_full_description); | ||
101 | + mTvEndDate = findViewById(R.id.tv_coupon_end_date); | ||
102 | + mTvValue = findViewById(R.id.tv_coupon_value); | ||
103 | + mIvImage = findViewById(R.id.iv_coupon_image); | ||
104 | + mTvMoreButton = findViewById(R.id.tv_more_button); | ||
105 | + | ||
106 | + // Initialize coupon code section | ||
107 | + mCouponCodeContainer = findViewById(R.id.coupon_code_container); | ||
108 | + mCouponCodeHeader = findViewById(R.id.coupon_code_header); | ||
109 | + mCouponCodeContent = findViewById(R.id.coupon_code_content); | ||
110 | + mIvCouponArrow = findViewById(R.id.iv_coupon_arrow); | ||
111 | + mIvCopyCode = findViewById(R.id.iv_copy_code); | ||
112 | + mTvCouponCode = findViewById(R.id.tv_coupon_code); | ||
113 | + | ||
114 | + // Initialize QR code section | ||
115 | + mQrCodeContainer = findViewById(R.id.qr_code_container); | ||
116 | + mQrCodeHeader = findViewById(R.id.qr_code_header); | ||
117 | + mQrCodeContent = findViewById(R.id.qr_code_content); | ||
118 | + mIvQrArrow = findViewById(R.id.iv_qr_arrow); | ||
119 | + mIvQrCode = findViewById(R.id.iv_qr_code); | ||
120 | + | ||
121 | + // Initialize Terms of Use section | ||
122 | + mTermsContainer = findViewById(R.id.terms_container); | ||
123 | + mTermsHeader = findViewById(R.id.terms_header); | ||
124 | + mTermsContent = findViewById(R.id.terms_content); | ||
125 | + mIvTermsArrow = findViewById(R.id.iv_terms_arrow); | ||
126 | + mTvTermsText = findViewById(R.id.tv_terms_text); | ||
127 | + | ||
128 | + // Populate views with offer data | ||
129 | + if (mOfferItem != null) { | ||
130 | + mTvValue.setText(mOfferItem.getValue()); | ||
131 | + mTvSmallDescription.setText(mOfferItem.getDescription()); | ||
132 | + | ||
133 | + // Store the full description text | ||
134 | + mFullDescriptionText = mOfferItem.getFullDescription(); | ||
135 | + mTvFullDescription.setText(mFullDescriptionText); | ||
136 | + | ||
137 | + // Format and set the end date | ||
138 | + String endDate = mOfferItem.getEndDate(); | ||
139 | + if (endDate != null && !endDate.isEmpty()) { | ||
140 | + // Convert from DD/MM/YYYY to DD-MM-YYYY | ||
141 | + String formattedDate = endDate.replace("/", "-"); | ||
142 | + mTvEndDate.setText(getString(R.string.demo_valid_until, formattedDate)); | ||
143 | + } | ||
144 | + | ||
145 | + // Load image (in a real app, you would use an image loading library) | ||
146 | + // For demo purposes, we'll use a placeholder | ||
147 | + int imageResId = getResources().getIdentifier( | ||
148 | + mOfferItem.getImageUrl().replace(".png", ""), | ||
149 | + "drawable", | ||
150 | + getPackageName()); | ||
151 | + | ||
152 | + if (imageResId != 0) { | ||
153 | + mIvImage.setImageResource(imageResId); | ||
154 | + } | ||
155 | + | ||
156 | + // Setup the More button | ||
157 | + setupMoreButton(); | ||
158 | + | ||
159 | + // Setup coupon code section | ||
160 | + setupCouponCodeSection(); | ||
161 | + | ||
162 | + // Setup QR code section | ||
163 | + setupQrCodeSection(); | ||
164 | + | ||
165 | + // Setup Terms of Use section | ||
166 | + setupTermsSection(); | ||
167 | + } | ||
168 | + } | ||
169 | + | ||
170 | + /** | ||
171 | + * Sets up the coupon code expandable section | ||
172 | + */ | ||
173 | + private void setupCouponCodeSection() { | ||
174 | + // Set coupon code - using a hardcoded value for demo purposes | ||
175 | + // In a real app, this would come from the offer item | ||
176 | + String couponCode = "coupons_ab"; | ||
177 | + if (mOfferItem != null && mOfferItem.getId() != null) { | ||
178 | + // Use offer ID as part of the coupon code for demo purposes | ||
179 | + couponCode = "coupon_" + mOfferItem.getId().toLowerCase(); | ||
180 | + } | ||
181 | + mTvCouponCode.setText(couponCode); | ||
182 | + | ||
183 | + // Set click listener for the header to expand/collapse | ||
184 | + mCouponCodeHeader.setOnClickListener(new View.OnClickListener() { | ||
185 | + @Override | ||
186 | + public void onClick(View v) { | ||
187 | + toggleCouponCodeExpansion(); | ||
188 | + } | ||
189 | + }); | ||
190 | + | ||
191 | + // Set click listener for the entire container as well | ||
192 | + mCouponCodeContainer.setOnClickListener(new View.OnClickListener() { | ||
193 | + @Override | ||
194 | + public void onClick(View v) { | ||
195 | + toggleCouponCodeExpansion(); | ||
196 | + } | ||
197 | + }); | ||
198 | + | ||
199 | + // Set click listener for the copy button | ||
200 | + mIvCopyCode.setOnClickListener(new View.OnClickListener() { | ||
201 | + @Override | ||
202 | + public void onClick(View v) { | ||
203 | + copyCouponCodeToClipboard(); | ||
204 | + } | ||
205 | + }); | ||
206 | + } | ||
207 | + | ||
208 | + /** | ||
209 | + * Toggles between expanded and collapsed states for the coupon code section | ||
210 | + */ | ||
211 | + private void toggleCouponCodeExpansion() { | ||
212 | + if (mIsCouponCodeExpanded) { | ||
213 | + // Collapse the content | ||
214 | + mCouponCodeContent.setVisibility(View.GONE); | ||
215 | + mIvCouponArrow.setImageResource(R.drawable.ic_arrow_down); | ||
216 | + mIsCouponCodeExpanded = false; | ||
217 | + } else { | ||
218 | + // Expand the content | ||
219 | + mCouponCodeContent.setVisibility(View.VISIBLE); | ||
220 | + mIvCouponArrow.setImageResource(R.drawable.ic_arrow_up); | ||
221 | + mIsCouponCodeExpanded = true; | ||
222 | + } | ||
223 | + } | ||
224 | + | ||
225 | + /** | ||
226 | + * Copies the coupon code to the clipboard | ||
227 | + */ | ||
228 | + private void copyCouponCodeToClipboard() { | ||
229 | + String couponCode = mTvCouponCode.getText().toString(); | ||
230 | + | ||
231 | + // Get clipboard manager | ||
232 | + ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); | ||
233 | + | ||
234 | + // Create clip | ||
235 | + ClipData clip = ClipData.newPlainText("Coupon Code", couponCode); | ||
236 | + | ||
237 | + // Set the clipboard's primary clip | ||
238 | + clipboard.setPrimaryClip(clip); | ||
239 | + | ||
240 | + // Show toast message | ||
241 | + Toast.makeText(this, R.string.demo_copy_success, Toast.LENGTH_SHORT).show(); | ||
242 | + } | ||
243 | + | ||
244 | + /** | ||
245 | + * Sets up the "More" button for expanding/collapsing the description text | ||
246 | + */ | ||
247 | + private void setupMoreButton() { | ||
248 | + // Wait for layout to be ready to check if text is truncated | ||
249 | + mTvFullDescription.post(new Runnable() { | ||
250 | + @Override | ||
251 | + public void run() { | ||
252 | + // Check if text is truncated (more than 4 lines) | ||
253 | + if (mTvFullDescription.getLineCount() > 3) { | ||
254 | + // Show the More button | ||
255 | + mTvMoreButton.setVisibility(View.VISIBLE); | ||
256 | + | ||
257 | + // Set click listener for the More button | ||
258 | + mTvMoreButton.setOnClickListener(new View.OnClickListener() { | ||
259 | + @Override | ||
260 | + public void onClick(View v) { | ||
261 | + toggleDescriptionExpansion(); | ||
262 | + } | ||
263 | + }); | ||
264 | + } | ||
265 | + } | ||
266 | + }); | ||
267 | + } | ||
268 | + | ||
269 | + /** | ||
270 | + * Toggles between expanded and collapsed states for the description text | ||
271 | + */ | ||
272 | + private void toggleDescriptionExpansion() { | ||
273 | + if (mIsDescriptionExpanded) { | ||
274 | + // Collapse the text | ||
275 | + mTvFullDescription.setMaxLines(4); | ||
276 | + mTvMoreButton.setText(R.string.demo_more); | ||
277 | + mIsDescriptionExpanded = false; | ||
278 | + } else { | ||
279 | + // Expand the text | ||
280 | + mTvFullDescription.setMaxLines(Integer.MAX_VALUE); | ||
281 | + mTvMoreButton.setText(R.string.demo_less); | ||
282 | + mIsDescriptionExpanded = true; | ||
283 | + } | ||
284 | + } | ||
285 | + | ||
286 | + /** | ||
287 | + * Sets up the QR code expandable section | ||
288 | + */ | ||
289 | + private void setupQrCodeSection() { | ||
290 | + // Set click listener for the header to expand/collapse | ||
291 | + mQrCodeHeader.setOnClickListener(new View.OnClickListener() { | ||
292 | + @Override | ||
293 | + public void onClick(View v) { | ||
294 | + toggleQrCodeExpansion(); | ||
295 | + } | ||
296 | + }); | ||
297 | + | ||
298 | + // Set click listener for the entire container as well | ||
299 | + mQrCodeContainer.setOnClickListener(new View.OnClickListener() { | ||
300 | + @Override | ||
301 | + public void onClick(View v) { | ||
302 | + toggleQrCodeExpansion(); | ||
303 | + } | ||
304 | + }); | ||
305 | + } | ||
306 | + | ||
307 | + /** | ||
308 | + * Toggles between expanded and collapsed states for the QR code section | ||
309 | + */ | ||
310 | + private void toggleQrCodeExpansion() { | ||
311 | + if (mIsQrCodeExpanded) { | ||
312 | + // Collapse the content | ||
313 | + mQrCodeContent.setVisibility(View.GONE); | ||
314 | + mIvQrArrow.setImageResource(R.drawable.ic_arrow_down); | ||
315 | + mIsQrCodeExpanded = false; | ||
316 | + } else { | ||
317 | + // Expand the content | ||
318 | + mQrCodeContent.setVisibility(View.VISIBLE); | ||
319 | + mIvQrArrow.setImageResource(R.drawable.ic_arrow_up); | ||
320 | + mIsQrCodeExpanded = true; | ||
321 | + } | ||
322 | + } | ||
323 | + | ||
324 | + /** | ||
325 | + * Sets up the Terms of Use expandable section | ||
326 | + */ | ||
327 | + private void setupTermsSection() { | ||
328 | + // Set click listener for the header to expand/collapse | ||
329 | + mTermsHeader.setOnClickListener(new View.OnClickListener() { | ||
330 | + @Override | ||
331 | + public void onClick(View v) { | ||
332 | + toggleTermsExpansion(); | ||
333 | + } | ||
334 | + }); | ||
335 | + | ||
336 | + // Set click listener for the entire container as well | ||
337 | + mTermsContainer.setOnClickListener(new View.OnClickListener() { | ||
338 | + @Override | ||
339 | + public void onClick(View v) { | ||
340 | + toggleTermsExpansion(); | ||
341 | + } | ||
342 | + }); | ||
343 | + } | ||
344 | + | ||
345 | + /** | ||
346 | + * Toggles between expanded and collapsed states for the Terms of Use section | ||
347 | + */ | ||
348 | + private void toggleTermsExpansion() { | ||
349 | + if (mIsTermsExpanded) { | ||
350 | + // Collapse the content | ||
351 | + mTermsContent.setVisibility(View.GONE); | ||
352 | + mIvTermsArrow.setImageResource(R.drawable.ic_arrow_down); | ||
353 | + mIsTermsExpanded = false; | ||
354 | + } else { | ||
355 | + // Expand the content | ||
356 | + mTermsContent.setVisibility(View.VISIBLE); | ||
357 | + mIvTermsArrow.setImageResource(R.drawable.ic_arrow_up); | ||
358 | + mIsTermsExpanded = true; | ||
359 | + } | ||
360 | + } | ||
361 | + | ||
362 | + @Override | ||
363 | + public void onClick(View v) { | ||
364 | + if (v.getId() == R.id.iv_back) { | ||
365 | + onBackPressed(); | ||
366 | + } | ||
367 | + } | ||
368 | + | ||
369 | + // =========================================================== | ||
370 | + // Inner and Anonymous Classes | ||
371 | + // =========================================================== | ||
372 | +} |
... | @@ -14,7 +14,11 @@ import androidx.recyclerview.widget.RecyclerView; | ... | @@ -14,7 +14,11 @@ import androidx.recyclerview.widget.RecyclerView; |
14 | import com.bumptech.glide.Glide; | 14 | import com.bumptech.glide.Glide; |
15 | import com.bumptech.glide.load.resource.bitmap.CenterCrop; | 15 | import com.bumptech.glide.load.resource.bitmap.CenterCrop; |
16 | 16 | ||
17 | +import java.text.ParseException; | ||
18 | +import java.text.SimpleDateFormat; | ||
19 | +import java.util.Date; | ||
17 | import java.util.List; | 20 | import java.util.List; |
21 | +import java.util.Locale; | ||
18 | 22 | ||
19 | import ly.warp.sdk.R; | 23 | import ly.warp.sdk.R; |
20 | import ly.warp.sdk.io.models.DummyDataProvider; | 24 | import ly.warp.sdk.io.models.DummyDataProvider; |
... | @@ -99,12 +103,12 @@ public class OfferAdapter extends RecyclerView.Adapter<OfferAdapter.OfferViewHol | ... | @@ -99,12 +103,12 @@ public class OfferAdapter extends RecyclerView.Adapter<OfferAdapter.OfferViewHol |
99 | tvValidity = itemView.findViewById(R.id.tv_validity); | 103 | tvValidity = itemView.findViewById(R.id.tv_validity); |
100 | 104 | ||
101 | // Set click listeners | 105 | // Set click listeners |
102 | -// itemView.setOnClickListener(v -> { | 106 | + itemView.setOnClickListener(v -> { |
103 | -// int position = getAdapterPosition(); | 107 | + int position = getAdapterPosition(); |
104 | -// if (listener != null && position != RecyclerView.NO_POSITION) { | 108 | + if (listener != null && position != RecyclerView.NO_POSITION) { |
105 | -// listener.onOfferClick(offerItems.get(position), position); | 109 | + listener.onOfferClick(offerItems.get(position), position); |
106 | -// } | 110 | + } |
107 | -// }); | 111 | + }); |
108 | 112 | ||
109 | // ivFavorite.setOnClickListener(v -> { | 113 | // ivFavorite.setOnClickListener(v -> { |
110 | // int position = getAdapterPosition(); | 114 | // int position = getAdapterPosition(); |
... | @@ -119,7 +123,7 @@ public class OfferAdapter extends RecyclerView.Adapter<OfferAdapter.OfferViewHol | ... | @@ -119,7 +123,7 @@ public class OfferAdapter extends RecyclerView.Adapter<OfferAdapter.OfferViewHol |
119 | tvTitle.setText(offerItem.getTitle()); | 123 | tvTitle.setText(offerItem.getTitle()); |
120 | tvDescription.setText(offerItem.getDescription()); | 124 | tvDescription.setText(offerItem.getDescription()); |
121 | tvPrice.setText(offerItem.getValue()); | 125 | tvPrice.setText(offerItem.getValue()); |
122 | - tvValidity.setText(offerItem.getEndDate()); | 126 | + tvValidity.setText(formatValidityDate(offerItem.getEndDate())); |
123 | 127 | ||
124 | // Set heart icon based on category | 128 | // Set heart icon based on category |
125 | if (DummyDataProvider.CATEGORY_FAVORITES.equals(offerItem.getCategory())) { | 129 | if (DummyDataProvider.CATEGORY_FAVORITES.equals(offerItem.getCategory())) { |
... | @@ -136,6 +140,26 @@ public class OfferAdapter extends RecyclerView.Adapter<OfferAdapter.OfferViewHol | ... | @@ -136,6 +140,26 @@ public class OfferAdapter extends RecyclerView.Adapter<OfferAdapter.OfferViewHol |
136 | } | 140 | } |
137 | 141 | ||
138 | /** | 142 | /** |
143 | + * Format the end date to "έως dd-MM" format | ||
144 | + * | ||
145 | + * @param endDate The end date in "dd/MM/yyyy" format | ||
146 | + * @return Formatted date string | ||
147 | + */ | ||
148 | + private String formatValidityDate(String endDate) { | ||
149 | + try { | ||
150 | + SimpleDateFormat inputFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault()); | ||
151 | + Date date = inputFormat.parse(endDate); | ||
152 | + | ||
153 | + SimpleDateFormat outputFormat = new SimpleDateFormat("dd-MM", Locale.getDefault()); | ||
154 | + return "έως " + outputFormat.format(date); | ||
155 | + | ||
156 | + } catch (ParseException e) { | ||
157 | + // Fallback to original if parsing fails | ||
158 | + return endDate; | ||
159 | + } | ||
160 | + } | ||
161 | + | ||
162 | + /** | ||
139 | * Load offer image with rounded top corners using Glide | 163 | * Load offer image with rounded top corners using Glide |
140 | * | 164 | * |
141 | * @param imageName The image resource name | 165 | * @param imageName The image resource name | ... | ... |
... | @@ -98,42 +98,52 @@ public class DummyDataProvider { | ... | @@ -98,42 +98,52 @@ public class DummyDataProvider { |
98 | 98 | ||
99 | category.addItem(new OfferItem("to1", "50% Έκπτωση σε Πακέτα Κινητής", | 99 | category.addItem(new OfferItem("to1", "50% Έκπτωση σε Πακέτα Κινητής", |
100 | "Πάρτε τα πακέτα κινητής στη μισή τιμή μόνο αυτό το μήνα", | 100 | "Πάρτε τα πακέτα κινητής στη μισή τιμή μόνο αυτό το μήνα", |
101 | + "Πάρτε τα πακέτα κινητής στη μισή τιμή μόνο αυτό το μήνα. Απεριόριστα λεπτά προς όλα τα δίκτυα, SMS και 50GB δεδομένα υψηλής ταχύτητας. Ισχύει για νέους συνδρομητές και ανανεώσεις συμβολαίων. Δωρεάν ενεργοποίηση και τεχνική υποστήριξη.", | ||
101 | "30/06/2025", "50%", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); | 102 | "30/06/2025", "50%", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); |
102 | 103 | ||
103 | category.addItem(new OfferItem("to2", "Δωρεάν Εγκατάσταση Τηλεόρασης", | 104 | category.addItem(new OfferItem("to2", "Δωρεάν Εγκατάσταση Τηλεόρασης", |
104 | "Επαγγελματική εγκατάσταση με κάθε αγορά νέας τηλεόρασης", | 105 | "Επαγγελματική εγκατάσταση με κάθε αγορά νέας τηλεόρασης", |
106 | + "Επαγγελματική εγκατάσταση τηλεόρασης με πλήρη ρύθμιση και παραμετροποίηση. Περιλαμβάνει ασφαλή τοποθέτηση σε τοίχο, σύνδεση όλων των καλωδίων, ρύθμιση καναλιών και εκπαίδευση χρήσης. Εγγύηση 2 ετών για την εγκατάσταση.", | ||
105 | "15/07/2025", "€0", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); | 107 | "15/07/2025", "€0", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); |
106 | 108 | ||
107 | category.addItem(new OfferItem("to3", "Αγοράζεις 1 Παίρνεις 1 Δώρο", | 109 | category.addItem(new OfferItem("to3", "Αγοράζεις 1 Παίρνεις 1 Δώρο", |
108 | "Σε όλα τα είδη ρουχισμού της καλοκαιρινής μας συλλογής", | 110 | "Σε όλα τα είδη ρουχισμού της καλοκαιρινής μας συλλογής", |
111 | + "Αποκτήστε διπλάσια ρούχα με την ίδια τιμή! Αγοράστε οποιοδήποτε είδος από την καλοκαιρινή μας συλλογή και πάρτε ένα δεύτερο δωρεάν. Ισχύει για μπλούζες, παντελόνια, φορέματα και αξεσουάρ. Συνδυάστε χρώματα και σχέδια για το τέλειο καλοκαιρινό στυλ.", | ||
109 | "31/08/2025", "100%", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); | 112 | "31/08/2025", "100%", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); |
110 | 113 | ||
111 | category.addItem(new OfferItem("to4", "30% Έκπτωση στα Τρόφιμα", | 114 | category.addItem(new OfferItem("to4", "30% Έκπτωση στα Τρόφιμα", |
112 | "Έκπτωση στην πρώτη σας online παραγγελία τροφίμων", | 115 | "Έκπτωση στην πρώτη σας online παραγγελία τροφίμων", |
116 | + "Εξοικονομήστε 30% στην πρώτη σας online παραγγελία τροφίμων. Η προσφορά περιλαμβάνει όλες τις κατηγορίες προϊόντων: φρέσκα φρούτα και λαχανικά, γαλακτοκομικά, κρέατα, κατεψυγμένα και είδη παντοπωλείου. Ελάχιστη παραγγελία €40. Δωρεάν παράδοση.", | ||
113 | "10/06/2025", "30%", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); | 117 | "10/06/2025", "30%", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); |
114 | 118 | ||
115 | category.addItem(new OfferItem("to5", "Κουπόνι Εστιατορίου €20", | 119 | category.addItem(new OfferItem("to5", "Κουπόνι Εστιατορίου €20", |
116 | "Με ελάχιστη κατανάλωση €50 σε συνεργαζόμενα εστιατόρια", | 120 | "Με ελάχιστη κατανάλωση €50 σε συνεργαζόμενα εστιατόρια", |
121 | + "Απολαύστε εξαιρετικά γεύματα με έκπτωση €20 σε κάθε λογαριασμό άνω των €50. Το κουπόνι ισχύει σε όλα τα συνεργαζόμενα εστιατόρια της πόλης. Περιλαμβάνει πρωτοποριακή κουζίνα, φρέσκα υλικά και εξαιρετική εξυπηρέτηση. Κράτηση απαραίτητη.", | ||
117 | "31/07/2025", "€20", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); | 122 | "31/07/2025", "€20", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); |
118 | 123 | ||
119 | category.addItem(new OfferItem("to6", "25% Έκπτωση σε Κρατήσεις Ξενοδοχείων", | 124 | category.addItem(new OfferItem("to6", "25% Έκπτωση σε Κρατήσεις Ξενοδοχείων", |
120 | "Για διαμονές Σαββατοκύριακου κατά τους καλοκαιρινούς μήνες", | 125 | "Για διαμονές Σαββατοκύριακου κατά τους καλοκαιρινούς μήνες", |
126 | + "Εξασφαλίστε 25% έκπτωση σε κρατήσεις ξενοδοχείων για διαμονές Σαββατοκύριακου κατά τους καλοκαιρινούς μήνες. Η προσφορά ισχύει για όλα τα συνεργαζόμενα ξενοδοχεία και περιλαμβάνει δωρεάν πρωινό και late check-out. Απαραίτητη η κράτηση 14 ημέρες νωρίτερα.", | ||
121 | "30/09/2025", "25%", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); | 127 | "30/09/2025", "25%", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); |
122 | 128 | ||
123 | category.addItem(new OfferItem("to7", "Δωρεάν Παράδοση", | 129 | category.addItem(new OfferItem("to7", "Δωρεάν Παράδοση", |
124 | "Σε όλες τις online παραγγελίες άνω των €30", | 130 | "Σε όλες τις online παραγγελίες άνω των €30", |
125 | - "Ongoing", "€0", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); | 131 | + "Απολαύστε δωρεάν παράδοση σε όλες τις online παραγγελίες άνω των €30. Η προσφορά ισχύει για παραδόσεις εντός πόλης και περιλαμβάνει όλες τις κατηγορίες προϊόντων. Επιλέξτε από χιλιάδες προϊόντα και παραλάβετε την παραγγελία σας στην πόρτα σας χωρίς επιπλέον χρέωση.", |
132 | + "31/12/2025", "€0", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); | ||
126 | 133 | ||
127 | category.addItem(new OfferItem("to8", "40% Έκπτωση σε Συνδρομή Γυμναστηρίου", | 134 | category.addItem(new OfferItem("to8", "40% Έκπτωση σε Συνδρομή Γυμναστηρίου", |
128 | "Πρώτοι 3 μήνες με μειωμένη τιμή για νέα μέλη", | 135 | "Πρώτοι 3 μήνες με μειωμένη τιμή για νέα μέλη", |
136 | + "Ξεκινήστε τη γυμναστική σας με 40% έκπτωση στη συνδρομή για τους πρώτους 3 μήνες. Η προσφορά ισχύει για νέα μέλη και περιλαμβάνει πλήρη πρόσβαση σε όλες τις εγκαταστάσεις, ομαδικά προγράμματα και μία δωρεάν συνεδρία με προσωπικό γυμναστή.", | ||
129 | "31/08/2025", "40%", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); | 137 | "31/08/2025", "40%", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); |
130 | 138 | ||
131 | category.addItem(new OfferItem("to9", "Εισιτήρια Κινηματογράφου €10", | 139 | category.addItem(new OfferItem("to9", "Εισιτήρια Κινηματογράφου €10", |
132 | "Ειδική τιμή για όλες τις προβολές Δευτέρα έως Πέμπτη", | 140 | "Ειδική τιμή για όλες τις προβολές Δευτέρα έως Πέμπτη", |
141 | + "Απολαύστε τις αγαπημένες σας ταινίες με μειωμένη τιμή εισιτηρίου στα €10 για όλες τις προβολές από Δευτέρα έως Πέμπτη. Η προσφορά ισχύει για όλες τις αίθουσες, συμπεριλαμβανομένων των προβολών 3D και IMAX. Δεν ισχύει για πρεμιέρες και ειδικές προβολές.", | ||
133 | "31/12/2025", "€10", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); | 142 | "31/12/2025", "€10", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); |
134 | 143 | ||
135 | category.addItem(new OfferItem("to10", "75% Έκπτωση στο Δεύτερο Είδος", | 144 | category.addItem(new OfferItem("to10", "75% Έκπτωση στο Δεύτερο Είδος", |
136 | "Αγοράστε ένα είδος σε πλήρη τιμή, πάρτε το δεύτερο με 75% έκπτωση", | 145 | "Αγοράστε ένα είδος σε πλήρη τιμή, πάρτε το δεύτερο με 75% έκπτωση", |
146 | + "Μοναδική προσφορά! Αγοράστε οποιοδήποτε είδος σε πλήρη τιμή και αποκτήστε ένα δεύτερο με έκπτωση 75%. Η προσφορά ισχύει για όλες τις κατηγορίες προϊόντων και μπορείτε να συνδυάσετε διαφορετικά είδη. Το είδος με τη χαμηλότερη τιμή θα λάβει την έκπτωση.", | ||
137 | "15/06/2025", "75%", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); | 147 | "15/06/2025", "75%", "demo_image_dominos.png", "demo_dominos.png", CATEGORY_TOP_OFFERS)); |
138 | 148 | ||
139 | return category; | 149 | return category; |
... | @@ -149,23 +159,28 @@ public class DummyDataProvider { | ... | @@ -149,23 +159,28 @@ public class DummyDataProvider { |
149 | 159 | ||
150 | category.addItem(new OfferItem("fav1", "Αγαπημένο Καφέ", | 160 | category.addItem(new OfferItem("fav1", "Αγαπημένο Καφέ", |
151 | "15% έκπτωση στον αγαπημένο σας καφέ κάθε μέρα", | 161 | "15% έκπτωση στον αγαπημένο σας καφέ κάθε μέρα", |
152 | - "Ongoing", "15%", "demo_image_avis.png", "demo_avis.png", CATEGORY_FAVORITES)); | 162 | + "Απολαύστε τον αγαπημένο σας καφέ με 15% έκπτωση κάθε μέρα. Η προσφορά ισχύει για όλα τα είδη καφέ, ζεστά και κρύα ροφήματα. Μπορείτε να χρησιμοποιήσετε την έκπτωση απεριόριστες φορές μέσα στην ημέρα. Απλά δείξτε την εφαρμογή στο ταμείο.", |
163 | + "31/12/2025", "15%", "demo_image_avis.png", "demo_avis.png", CATEGORY_FAVORITES)); | ||
153 | 164 | ||
154 | category.addItem(new OfferItem("fav2", "Εβδομαδιαία Έκπτωση Σούπερ Μάρκετ", | 165 | category.addItem(new OfferItem("fav2", "Εβδομαδιαία Έκπτωση Σούπερ Μάρκετ", |
155 | "10% έκπτωση στα εβδομαδιαία ψώνια σας", | 166 | "10% έκπτωση στα εβδομαδιαία ψώνια σας", |
156 | - "Recurring", "10%", "demo_image_avis.png", "demo_avis.png", CATEGORY_FAVORITES)); | 167 | + "Εξοικονομήστε 10% στα εβδομαδιαία ψώνια σας στο σούπερ μάρκετ. Η προσφορά ισχύει για αγορές άνω των €50 και μπορεί να χρησιμοποιηθεί μία φορά την εβδομάδα. Περιλαμβάνει όλες τις κατηγορίες προϊόντων εκτός από αλκοολούχα ποτά και προϊόντα καπνού.", |
168 | + "31/12/2025", "10%", "demo_image_avis.png", "demo_avis.png", CATEGORY_FAVORITES)); | ||
157 | 169 | ||
158 | category.addItem(new OfferItem("fav3", "Αγαπημένο Εστιατόριο", | 170 | category.addItem(new OfferItem("fav3", "Αγαπημένο Εστιατόριο", |
159 | "Δωρεάν επιδόρπιο με κάθε κυρίως πιάτο", | 171 | "Δωρεάν επιδόρπιο με κάθε κυρίως πιάτο", |
172 | + "Απολαύστε ένα δωρεάν επιδόρπιο της επιλογής σας με κάθε κυρίως πιάτο στο αγαπημένο σας εστιατόριο. Η προσφορά ισχύει για όλα τα επιδόρπια του μενού, συμπεριλαμβανομένων των ειδικών επιλογών του σεφ. Ισχύει για γεύμα ή δείπνο, όλες τις ημέρες της εβδομάδας.", | ||
160 | "31/12/2025", "€0", "demo_image_avis.png", "demo_avis.png", CATEGORY_FAVORITES)); | 173 | "31/12/2025", "€0", "demo_image_avis.png", "demo_avis.png", CATEGORY_FAVORITES)); |
161 | 174 | ||
162 | category.addItem(new OfferItem("fav4", "Συνδρομή Βιβλιοπωλείου", | 175 | category.addItem(new OfferItem("fav4", "Συνδρομή Βιβλιοπωλείου", |
163 | "20% έκπτωση σε όλες τις αγορές με την κάρτα μέλους", | 176 | "20% έκπτωση σε όλες τις αγορές με την κάρτα μέλους", |
164 | - "Ongoing", "20%", "demo_image_avis.png", "demo_avis.png", CATEGORY_FAVORITES)); | 177 | + "Αποκτήστε την κάρτα μέλους του βιβλιοπωλείου και απολαύστε 20% έκπτωση σε όλες σας τις αγορές. Η έκπτωση ισχύει για βιβλία, χαρτικά, είδη γραφείου και δώρα. Επιπλέον, ως μέλος θα έχετε πρόσβαση σε αποκλειστικές εκδηλώσεις και προσφορές καθ' όλη τη διάρκεια του έτους.", |
178 | + "31/12/2025", "20%", "demo_image_avis.png", "demo_avis.png", CATEGORY_FAVORITES)); | ||
165 | 179 | ||
166 | category.addItem(new OfferItem("fav5", "Συνδρομή Γυμναστηρίου", | 180 | category.addItem(new OfferItem("fav5", "Συνδρομή Γυμναστηρίου", |
167 | "€45 μηνιαίως για απεριόριστη πρόσβαση", | 181 | "€45 μηνιαίως για απεριόριστη πρόσβαση", |
168 | - "Auto-renews", "€45", "demo_image_avis.png", "demo_avis.png", CATEGORY_FAVORITES)); | 182 | + "Αποκτήστε απεριόριστη πρόσβαση στο γυμναστήριο για μόνο €45 το μήνα. Η συνδρομή περιλαμβάνει χρήση όλων των οργάνων, συμμετοχή σε ομαδικά προγράμματα και πρόσβαση στις εγκαταστάσεις σάουνας και χαμάμ. Δεν απαιτείται μακροχρόνια δέσμευση, ακυρώστε οποιαδήποτε στιγμή.", |
183 | + "31/12/2025", "€45", "demo_image_avis.png", "demo_avis.png", CATEGORY_FAVORITES)); | ||
169 | 184 | ||
170 | // Only keeping 5 items for Favorites category | 185 | // Only keeping 5 items for Favorites category |
171 | 186 | ||
... | @@ -182,30 +197,37 @@ public class DummyDataProvider { | ... | @@ -182,30 +197,37 @@ public class DummyDataProvider { |
182 | 197 | ||
183 | category.addItem(new OfferItem("via1", "Έκπτωση Ανανεώσιμης Ενέργειας", | 198 | category.addItem(new OfferItem("via1", "Έκπτωση Ανανεώσιμης Ενέργειας", |
184 | "20% έκπτωση όταν αλλάζετε σε πράσινα ενεργειακά προγράμματα", | 199 | "20% έκπτωση όταν αλλάζετε σε πράσινα ενεργειακά προγράμματα", |
200 | + "Εξοικονομήστε 20% στους λογαριασμούς ενέργειας όταν μεταβείτε σε πράσινα ενεργειακά προγράμματα. Η προσφορά περιλαμβάνει ηλιακή, αιολική και άλλες ανανεώσιμες πηγές ενέργειας. Επιπλέον, λάβετε δωρεάν ενεργειακή αξιολόγηση του σπιτιού σας και εξατομικευμένες συμβουλές εξοικονόμησης.", | ||
185 | "31/12/2025", "20%", "demo_image_musa.png", "demo_musa.png", CATEGORY_VIABILITY)); | 201 | "31/12/2025", "20%", "demo_image_musa.png", "demo_musa.png", CATEGORY_VIABILITY)); |
186 | 202 | ||
187 | category.addItem(new OfferItem("via2", "Φόρτιση Ηλεκτρικών Οχημάτων", | 203 | category.addItem(new OfferItem("via2", "Φόρτιση Ηλεκτρικών Οχημάτων", |
188 | "50% έκπτωση στη φόρτιση σε συνεργαζόμενους σταθμούς", | 204 | "50% έκπτωση στη φόρτιση σε συνεργαζόμενους σταθμούς", |
205 | + "Φορτίστε το ηλεκτρικό σας όχημα με 50% έκπτωση σε όλους τους συνεργαζόμενους σταθμούς φόρτισης. Η προσφορά ισχύει για όλους τους τύπους ηλεκτρικών οχημάτων και περιλαμβάνει τόσο γρήγορη όσο και κανονική φόρτιση. Αποκτήστε πρόσβαση μέσω της εφαρμογής ή με την κάρτα μέλους.", | ||
189 | "30/06/2026", "50%", "demo_image_musa.png", "demo_musa.png", CATEGORY_VIABILITY)); | 206 | "30/06/2026", "50%", "demo_image_musa.png", "demo_musa.png", CATEGORY_VIABILITY)); |
190 | 207 | ||
191 | category.addItem(new OfferItem("via3", "Οικολογικά Προϊόντα", | 208 | category.addItem(new OfferItem("via3", "Οικολογικά Προϊόντα", |
192 | "Αγοράστε βιώσιμα προϊόντα και κερδίστε €10 έκπτωση", | 209 | "Αγοράστε βιώσιμα προϊόντα και κερδίστε €10 έκπτωση", |
193 | - "Ongoing", "€10", "demo_image_musa.png", "demo_musa.png", CATEGORY_VIABILITY)); | 210 | + "Στηρίξτε το περιβάλλον αγοράζοντας βιώσιμα προϊόντα και κερδίστε €10 έκπτωση σε αγορές άνω των €50. Η προσφορά ισχύει για προϊόντα με πιστοποίηση βιωσιμότητας, συμπεριλαμβανομένων οργανικών τροφίμων, οικολογικών καθαριστικών και ανακυκλώσιμων ειδών οικιακής χρήσης.", |
211 | + "31/12/2025", "€10", "demo_image_musa.png", "demo_musa.png", CATEGORY_VIABILITY)); | ||
194 | 212 | ||
195 | category.addItem(new OfferItem("via4", "Κάρτα Μέσων Μαζικής Μεταφοράς", | 213 | category.addItem(new OfferItem("via4", "Κάρτα Μέσων Μαζικής Μεταφοράς", |
196 | "Μηνιαία κάρτα σε μειωμένη τιμή €30", | 214 | "Μηνιαία κάρτα σε μειωμένη τιμή €30", |
197 | - "Monthly", "€30", "demo_image_musa.png", "demo_musa.png", CATEGORY_VIABILITY)); | 215 | + "Μετακινηθείτε οικολογικά με τη μηνιαία κάρτα μέσων μαζικής μεταφοράς σε μειωμένη τιμή €30. Η κάρτα παρέχει απεριόριστες διαδρομές με λεωφορεία, τραμ, μετρό και προαστιακό σιδηρόδρομο. Συμβάλλετε στη μείωση των εκπομπών άνθρακα και απολαύστε άνετες μετακινήσεις.", |
216 | + "31/12/2025", "€30", "demo_image_musa.png", "demo_musa.png", CATEGORY_VIABILITY)); | ||
198 | 217 | ||
199 | category.addItem(new OfferItem("via5", "Ανταμοιβές Ανακύκλωσης", | 218 | category.addItem(new OfferItem("via5", "Ανταμοιβές Ανακύκλωσης", |
200 | "Κερδίστε πόντους για ανακύκλωση που μετατρέπονται σε εκπτώσεις", | 219 | "Κερδίστε πόντους για ανακύκλωση που μετατρέπονται σε εκπτώσεις", |
201 | - "Ongoing", "5%", "demo_image_musa.png", "demo_musa.png", CATEGORY_VIABILITY)); | 220 | + "Ανακυκλώστε και ανταμειφθείτε! Κερδίστε πόντους για κάθε κιλό ανακυκλώσιμων υλικών που παραδίδετε στα συνεργαζόμενα σημεία. Οι πόντοι μετατρέπονται σε εκπτώσεις έως και 5% σε συνεργαζόμενα καταστήματα. Συμβάλλετε στην προστασία του περιβάλλοντος και εξοικονομήστε χρήματα.", |
221 | + "31/12/2025", "5%", "demo_image_musa.png", "demo_musa.png", CATEGORY_VIABILITY)); | ||
202 | 222 | ||
203 | category.addItem(new OfferItem("via6", "Συνδρομή Κοινόχρηστων Ποδηλάτων", | 223 | category.addItem(new OfferItem("via6", "Συνδρομή Κοινόχρηστων Ποδηλάτων", |
204 | "Ετήσια συνδρομή με 40% έκπτωση", | 224 | "Ετήσια συνδρομή με 40% έκπτωση", |
225 | + "Μετακινηθείτε οικολογικά με την ετήσια συνδρομή κοινόχρηστων ποδηλάτων με 40% έκπτωση. Η συνδρομή παρέχει απεριόριστες διαδρομές 30 λεπτών σε όλο το δίκτυο της πόλης. Συμβάλλετε στη μείωση της κυκλοφοριακής συμφόρησης και των εκπομπών ρύπων, ενώ βελτιώνετε την υγεία σας.", | ||
205 | "31/08/2025", "40%", "demo_image_musa.png", "demo_musa.png", CATEGORY_VIABILITY)); | 226 | "31/08/2025", "40%", "demo_image_musa.png", "demo_musa.png", CATEGORY_VIABILITY)); |
206 | 227 | ||
207 | category.addItem(new OfferItem("via7", "Ενεργειακά Αποδοτικές Συσκευές", | 228 | category.addItem(new OfferItem("via7", "Ενεργειακά Αποδοτικές Συσκευές", |
208 | "€50 επιστροφή χρημάτων σε συσκευές με βαθμολογία A+++", | 229 | "€50 επιστροφή χρημάτων σε συσκευές με βαθμολογία A+++", |
230 | + "Αναβαθμίστε το σπίτι σας με ενεργειακά αποδοτικές συσκευές και λάβετε €50 επιστροφή χρημάτων για κάθε συσκευή με βαθμολογία A+++. Η προσφορά ισχύει για ψυγεία, πλυντήρια, κλιματιστικά και άλλες μεγάλες οικιακές συσκευές. Εξοικονομήστε ενέργεια και χρήματα μακροπρόθεσμα.", | ||
209 | "31/07/2025", "€50", "demo_image_musa.png", "demo_musa.png", CATEGORY_VIABILITY)); | 231 | "31/07/2025", "€50", "demo_image_musa.png", "demo_musa.png", CATEGORY_VIABILITY)); |
210 | 232 | ||
211 | // Only keeping 7 items for Viability category | 233 | // Only keeping 7 items for Viability category |
... | @@ -223,52 +245,64 @@ public class DummyDataProvider { | ... | @@ -223,52 +245,64 @@ public class DummyDataProvider { |
223 | 245 | ||
224 | category.addItem(new OfferItem("fam1", "Οικογενειακό Πακέτο Κινητής", | 246 | category.addItem(new OfferItem("fam1", "Οικογενειακό Πακέτο Κινητής", |
225 | "Μοιραστείτε δεδομένα σε 4 γραμμές για €60/μήνα", | 247 | "Μοιραστείτε δεδομένα σε 4 γραμμές για €60/μήνα", |
226 | - "Ongoing", "€60", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | 248 | + "Συνδέστε όλη την οικογένεια με το οικογενειακό πακέτο κινητής για μόνο €60/μήνα. Το πακέτο περιλαμβάνει 4 γραμμές με κοινόχρηστα δεδομένα 100GB, απεριόριστες κλήσεις και μηνύματα. Προσθέστε επιπλέον γραμμές με €10/μήνα η καθεμία. Δωρεάν αναβάθμιση συσκευής κάθε 2 χρόνια για όλα τα μέλη.", |
249 | + "31/12/2025", "€60", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | ||
227 | 250 | ||
228 | category.addItem(new OfferItem("fam2", "Εισιτήρια Οικογενειακού Πάρκου", | 251 | category.addItem(new OfferItem("fam2", "Εισιτήρια Οικογενειακού Πάρκου", |
229 | "30% έκπτωση όταν αγοράζετε 4+ εισιτήρια", | 252 | "30% έκπτωση όταν αγοράζετε 4+ εισιτήρια", |
253 | + "Απολαύστε μια οικογενειακή μέρα στο πάρκο ψυχαγωγίας με 30% έκπτωση όταν αγοράζετε 4 ή περισσότερα εισιτήρια. Η προσφορά περιλαμβάνει απεριόριστη πρόσβαση σε όλα τα παιχνίδια και τις εκδηλώσεις του πάρκου. Δωρεάν στάθμευση και 10% έκπτωση στα καταστήματα φαγητού εντός του πάρκου.", | ||
230 | "31/08/2025", "30%", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | 254 | "31/08/2025", "30%", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); |
231 | 255 | ||
232 | category.addItem(new OfferItem("fam3", "Παιδιά Τρώνε Δωρεάν", | 256 | category.addItem(new OfferItem("fam3", "Παιδιά Τρώνε Δωρεάν", |
233 | "Ένα δωρεάν παιδικό γεύμα με κάθε κυρίως πιάτο ενηλίκου", | 257 | "Ένα δωρεάν παιδικό γεύμα με κάθε κυρίως πιάτο ενηλίκου", |
234 | - "Weekdays only", "€0", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | 258 | + "Απολαύστε οικογενειακά γεύματα με την προσφορά «Παιδιά Τρώνε Δωρεάν». Λάβετε ένα δωρεάν παιδικό γεύμα με κάθε κυρίως πιάτο ενηλίκου που αγοράζετε. Η προσφορά ισχύει για παιδιά έως 12 ετών και περιλαμβάνει κυρίως πιάτο, επιδόρπιο και αναψυκτικό από το παιδικό μενού.", |
259 | + "31/07/2025", "€0", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | ||
235 | 260 | ||
236 | category.addItem(new OfferItem("fam4", "Οικογενειακό Πακέτο Σινεμά", | 261 | category.addItem(new OfferItem("fam4", "Οικογενειακό Πακέτο Σινεμά", |
237 | "4 εισιτήρια + ποπκόρν + αναψυκτικά για €35", | 262 | "4 εισιτήρια + ποπκόρν + αναψυκτικά για €35", |
238 | - "Weekends", "€35", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | 263 | + "Απολαύστε μια οικογενειακή έξοδο στον κινηματογράφο με το ειδικό πακέτο των €35. Περιλαμβάνει 4 εισιτήρια για οποιαδήποτε προβολή, 2 μεγάλα ποπκόρν και 4 αναψυκτικά. Ισχύει για όλες τις ημέρες της εβδομάδας, συμπεριλαμβανομένων των Σαββατοκύριακων και των αργιών.", |
264 | + "31/08/2025", "€35", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | ||
239 | 265 | ||
240 | category.addItem(new OfferItem("fam5", "Οικογενειακή Συνδρομή Γυμναστηρίου", | 266 | category.addItem(new OfferItem("fam5", "Οικογενειακή Συνδρομή Γυμναστηρίου", |
241 | "50% έκπτωση για επιπλέον μέλη της οικογένειας", | 267 | "50% έκπτωση για επιπλέον μέλη της οικογένειας", |
242 | - "Annual", "50%", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | 268 | + "Διατηρήστε την οικογένειά σας σε φόρμα με την οικογενειακή συνδρομή γυμναστηρίου. Το πρώτο μέλος πληρώνει κανονική τιμή και όλα τα επιπλέον μέλη λαμβάνουν 50% έκπτωση. Η συνδρομή περιλαμβάνει πλήρη πρόσβαση σε όλες τις εγκαταστάσεις και τα ομαδικά προγράμματα.", |
269 | + "31/12/2025", "50%", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | ||
243 | 270 | ||
244 | category.addItem(new OfferItem("fam6", "Οικογενειακή Φωτογράφιση", | 271 | category.addItem(new OfferItem("fam6", "Οικογενειακή Φωτογράφιση", |
245 | "Επαγγελματική φωτογράφιση για €75", | 272 | "Επαγγελματική φωτογράφιση για €75", |
273 | + "Απαθανατίστε τις οικογενειακές σας στιγμές με επαγγελματική φωτογράφιση για μόνο €75. Η συνεδρία διαρκεί 1 ώρα και περιλαμβάνει απεριόριστες λήψεις, 10 επεξεργασμένες ψηφιακές φωτογραφίες και 5 εκτυπώσεις μεγέθους 20x30cm. Επιλέξτε μεταξύ στούντιο ή εξωτερικού χώρου.", | ||
246 | "31/07/2025", "€75", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | 274 | "31/07/2025", "€75", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); |
247 | 275 | ||
248 | category.addItem(new OfferItem("fam7", "Οικογενειακό Πακέτο Ασφάλισης", | 276 | category.addItem(new OfferItem("fam7", "Οικογενειακό Πακέτο Ασφάλισης", |
249 | "Εξοικονομήστε 25% συνδυάζοντας ασφάλεια σπιτιού και αυτοκινήτου", | 277 | "Εξοικονομήστε 25% συνδυάζοντας ασφάλεια σπιτιού και αυτοκινήτου", |
278 | + "Προστατέψτε την οικογένεια και την περιουσία σας εξοικονομώντας 25% στα ασφάλιστρα όταν συνδυάζετε ασφάλεια σπιτιού και αυτοκινήτου. Το πακέτο περιλαμβάνει πλήρη κάλυψη για το σπίτι σας, τα περιεχόμενά του και έως 2 οχήματα. Επιπλέον, λάβετε δωρεάν οδική βοήθεια.", | ||
250 | "31/12/2025", "25%", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | 279 | "31/12/2025", "25%", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); |
251 | 280 | ||
252 | category.addItem(new OfferItem("fam8", "Οικογενειακό Πακέτο Διακοπών", | 281 | category.addItem(new OfferItem("fam8", "Οικογενειακό Πακέτο Διακοπών", |
253 | "All-inclusive διαμονή με δωρεάν διαμονή για παιδιά", | 282 | "All-inclusive διαμονή με δωρεάν διαμονή για παιδιά", |
283 | + "Απολαύστε οικογενειακές διακοπές με το all-inclusive πακέτο που προσφέρει δωρεάν διαμονή για παιδιά έως 12 ετών. Το πακέτο περιλαμβάνει διαμονή, όλα τα γεύματα, ποτά, σνακ και πρόσβαση σε όλες τις εγκαταστάσεις του ξενοδοχείου. Επιπλέον, δωρεάν συμμετοχή στο παιδικό κλαμπ.", | ||
254 | "30/09/2025", "€0", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | 284 | "30/09/2025", "€0", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); |
255 | 285 | ||
256 | category.addItem(new OfferItem("fam9", "Οικογενειακό Πακέτο Streaming", | 286 | category.addItem(new OfferItem("fam9", "Οικογενειακό Πακέτο Streaming", |
257 | "Πολλαπλές υπηρεσίες streaming για €20/μήνα", | 287 | "Πολλαπλές υπηρεσίες streaming για €20/μήνα", |
258 | - "12-month contract", "€20", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | 288 | + "Αποκτήστε πρόσβαση σε πολλαπλές υπηρεσίες streaming για όλη την οικογένεια με μόνο €20/μήνα. Το πακέτο περιλαμβάνει 4 δημοφιλείς πλατφόρμες με ταινίες, σειρές, ντοκιμαντέρ και παιδικό περιεχόμενο. Δημιουργήστε έως 5 προφίλ και παρακολουθήστε ταυτόχρονα σε 4 συσκευές.", |
289 | + "31/12/2025", "€20", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | ||
259 | 290 | ||
260 | category.addItem(new OfferItem("fam10", "Πακέτο Επιστροφής στο Σχολείο", | 291 | category.addItem(new OfferItem("fam10", "Πακέτο Επιστροφής στο Σχολείο", |
261 | "40% έκπτωση σε σχολικά είδη με αγορές άνω των €100", | 292 | "40% έκπτωση σε σχολικά είδη με αγορές άνω των €100", |
293 | + "Προετοιμαστείτε για τη νέα σχολική χρονιά με 40% έκπτωση σε σχολικά είδη όταν ξοδεύετε πάνω από €100. Η προσφορά περιλαμβάνει τσάντες, γραφική ύλη, τετράδια, βιβλία και ρούχα. Επιπλέον, λάβετε δωρεάν εξατομικευμένες ετικέτες για όλα τα σχολικά είδη του παιδιού σας.", | ||
262 | "31/08/2025", "40%", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | 294 | "31/08/2025", "40%", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); |
263 | 295 | ||
264 | // Adding 2 more items for Family category (12 total) | 296 | // Adding 2 more items for Family category (12 total) |
265 | category.addItem(new OfferItem("fam11", "Οικογενειακό Οδοντιατρικό Πρόγραμμα", | 297 | category.addItem(new OfferItem("fam11", "Οικογενειακό Οδοντιατρικό Πρόγραμμα", |
266 | "Ετήσιοι έλεγχοι για όλη την οικογένεια με 30% έκπτωση", | 298 | "Ετήσιοι έλεγχοι για όλη την οικογένεια με 30% έκπτωση", |
299 | + "Φροντίστε την οδοντική υγεία όλης της οικογένειας με το ειδικό πρόγραμμα που προσφέρει 30% έκπτωση σε ετήσιους ελέγχους. Το πρόγραμμα περιλαμβάνει καθαρισμό, ακτινογραφίες και συμβουλές στοματικής υγιεινής για όλα τα μέλη της οικογένειας. Επιπλέον 15% έκπτωση σε θεραπείες.", | ||
267 | "31/12/2025", "30%", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | 300 | "31/12/2025", "30%", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); |
268 | 301 | ||
269 | category.addItem(new OfferItem("fam12", "Οικογενειακή Βραδιά Παιχνιδιών", | 302 | category.addItem(new OfferItem("fam12", "Οικογενειακή Βραδιά Παιχνιδιών", |
270 | "Αγοράστε 2 επιτραπέζια παιχνίδια και πάρτε 1 δωρεάν", | 303 | "Αγοράστε 2 επιτραπέζια παιχνίδια και πάρτε 1 δωρεάν", |
271 | - "Weekend offer", "100%", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | 304 | + "Διασκεδάστε με την οικογένειά σας με την προσφορά επιτραπέζιων παιχνιδιών. Αγοράστε 2 επιτραπέζια παιχνίδια και πάρτε 1 δωρεάν. Επιλέξτε από μεγάλη ποικιλία παιχνιδιών για όλες τις ηλικίες, από κλασικά παιχνίδια μέχρι τις τελευταίες κυκλοφορίες. Ιδανικό για οικογενειακές βραδιές.", |
305 | + "31/07/2025", "100%", "demo_image_ranch.png", "demo_ranch.png", CATEGORY_FAMILY)); | ||
272 | 306 | ||
273 | return category; | 307 | return category; |
274 | } | 308 | } |
... | @@ -283,100 +317,124 @@ public class DummyDataProvider { | ... | @@ -283,100 +317,124 @@ public class DummyDataProvider { |
283 | 317 | ||
284 | category.addItem(new OfferItem("fc1", "Συνδρομή Καφέ", | 318 | category.addItem(new OfferItem("fc1", "Συνδρομή Καφέ", |
285 | "Καθημερινός καφές για €2 με μηνιαία συνδρομή", | 319 | "Καθημερινός καφές για €2 με μηνιαία συνδρομή", |
286 | - "Monthly", "€2", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 320 | + "Απολαύστε τον αγαπημένο σας καφέ κάθε μέρα με μόνο €2 με την ειδική μηνιαία συνδρομή. Η προσφορά περιλαμβάνει έναν καφέ της επιλογής σας (espresso, cappuccino, latte ή φίλτρου) ημερησίως σε οποιοδήποτε από τα συνεργαζόμενα καταστήματα. Η συνδρομή ανανεώνεται αυτόματα κάθε μήνα.", |
321 | + "31/12/2025", "€2", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
287 | 322 | ||
288 | category.addItem(new OfferItem("fc2", "Προσφορά Μεσημεριανού", | 323 | category.addItem(new OfferItem("fc2", "Προσφορά Μεσημεριανού", |
289 | "25% έκπτωση στο μενού μεσημεριανού μεταξύ 12-3μμ", | 324 | "25% έκπτωση στο μενού μεσημεριανού μεταξύ 12-3μμ", |
290 | - "Weekdays", "25%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 325 | + "Απολαύστε το μεσημεριανό σας γεύμα με 25% έκπτωση στο πλήρες μενού καθημερινά μεταξύ 12-3μμ. Η προσφορά ισχύει για όλα τα πιάτα, συμπεριλαμβανομένων των ημερήσιων προτάσεων του σεφ και των σπεσιαλιτέ του καταστήματος. Δεν συνδυάζεται με άλλες προσφορές ή εκπτώσεις.", |
326 | + "31/07/2025", "25%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
291 | 327 | ||
292 | category.addItem(new OfferItem("fc3", "Κάρτα Επιβράβευσης Φούρνου", | 328 | category.addItem(new OfferItem("fc3", "Κάρτα Επιβράβευσης Φούρνου", |
293 | "10ο γλυκό δωρεάν με την κάρτα επιβράβευσης", | 329 | "10ο γλυκό δωρεάν με την κάρτα επιβράβευσης", |
294 | - "Ongoing", "100%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 330 | + "Αποκτήστε την κάρτα επιβράβευσης του φούρνου μας και κερδίστε το 10ο γλυκό εντελώς δωρεάν. Με κάθε αγορά γλυκού, συλλέγετε μία σφραγίδα στην κάρτα σας. Συμπληρώστε 9 σφραγίδες και απολαύστε οποιοδήποτε γλυκό της επιλογής σας δωρεάν, ανεξαρτήτως τιμής.", |
331 | + "31/12/2025", "100%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
295 | 332 | ||
296 | category.addItem(new OfferItem("fc4", "Δείπνο για Δύο", | 333 | category.addItem(new OfferItem("fc4", "Δείπνο για Δύο", |
297 | "Γεύμα 3 πιάτων με κρασί για €60", | 334 | "Γεύμα 3 πιάτων με κρασί για €60", |
335 | + "Απολαύστε ένα ρομαντικό δείπνο για δύο με μόνο €60. Το πακέτο περιλαμβάνει ορεκτικό, κυρίως πιάτο και επιδόρπιο για δύο άτομα, συνοδευόμενα από ένα μπουκάλι εκλεκτό κρασί. Επιλέξτε από το ειδικό μενού με πιάτα εμπνευσμένα από τη μεσογειακή και διεθνή κουζίνα.", | ||
298 | "31/07/2025", "€60", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 336 | "31/07/2025", "€60", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); |
299 | 337 | ||
300 | category.addItem(new OfferItem("fc5", "Παράδοση Φαγητού", | 338 | category.addItem(new OfferItem("fc5", "Παράδοση Φαγητού", |
301 | "Δωρεάν παράδοση για παραγγελίες άνω των €20", | 339 | "Δωρεάν παράδοση για παραγγελίες άνω των €20", |
302 | - "Ongoing", "€0", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 340 | + "Απολαύστε το αγαπημένο σας φαγητό στο σπίτι ή το γραφείο με δωρεάν παράδοση για παραγγελίες άνω των €20. Η προσφορά ισχύει για όλο το μενού, συμπεριλαμβανομένων των ειδικών προσφορών και των νέων πιάτων. Ο μέσος χρόνος παράδοσης είναι 30-45 λεπτά, ανάλογα με την απόσταση.", |
341 | + "31/12/2025", "€0", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
303 | 342 | ||
304 | category.addItem(new OfferItem("fc6", "Εκλεκτοί Κόκκοι Καφέ", | 343 | category.addItem(new OfferItem("fc6", "Εκλεκτοί Κόκκοι Καφέ", |
305 | "20% έκπτωση σε premium κόκκους καφέ", | 344 | "20% έκπτωση σε premium κόκκους καφέ", |
345 | + "Απολαύστε την πλούσια γεύση των premium κόκκων καφέ με 20% έκπτωση. Η προσφορά περιλαμβάνει μοναδικές ποικιλίες από όλο τον κόσμο, φρεσκοκομμένες ή ολόκληρες. Ιδανικοί για espresso, φίλτρου ή cold brew. Επωφεληθείτε της έκπτωσης για να ανακαλύψετε νέες γεύσεις και αρώματα.", | ||
306 | "30/06/2025", "20%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 346 | "30/06/2025", "20%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); |
307 | 347 | ||
308 | category.addItem(new OfferItem("fc7", "Προσφορά Πρωινού", | 348 | category.addItem(new OfferItem("fc7", "Προσφορά Πρωινού", |
309 | "Καφές και γλυκό για €5", | 349 | "Καφές και γλυκό για €5", |
310 | - "Daily until 11am", "€5", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 350 | + "Ξεκινήστε τη μέρα σας με ενέργεια με την προσφορά πρωινού μας. Μόνο €5 για έναν καφέ της επιλογής σας (espresso, cappuccino, latte ή φίλτρου) και ένα γλυκό από την ημερήσια επιλογή μας. Η προσφορά ισχύει καθημερινά έως τις 11:00 π.μ. Ιδανικό για γρήγορο πρωινό στο δρόμο για τη δουλειά.", |
351 | + "31/12/2025", "€5", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
311 | 352 | ||
312 | category.addItem(new OfferItem("fc8", "Gourmet Burger Γεύμα", | 353 | category.addItem(new OfferItem("fc8", "Gourmet Burger Γεύμα", |
313 | "Burger, πατάτες και αναψυκτικό για €12", | 354 | "Burger, πατάτες και αναψυκτικό για €12", |
314 | - "Ongoing", "€12", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 355 | + "Απολαύστε ένα πλήρες gourmet burger γεύμα για μόνο €12. Το πακέτο περιλαμβάνει ένα χειροποίητο burger 200γρ με μοσχαρίσιο κιμά Black Angus, φρέσκιες τηγανητές πατάτες και αναψυκτικό της επιλογής σας. Επιλέξτε ανάμεσα σε 5 διαφορετικά είδη burger με μοναδικούς συνδυασμούς υλικών.", |
356 | + "31/12/2025", "€12", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
315 | 357 | ||
316 | category.addItem(new OfferItem("fc9", "Γευσιγνωσία Κρασιού", | 358 | category.addItem(new OfferItem("fc9", "Γευσιγνωσία Κρασιού", |
317 | "50% έκπτωση σε συνεδρίες γευσιγνωσίας κρασιού", | 359 | "50% έκπτωση σε συνεδρίες γευσιγνωσίας κρασιού", |
318 | - "Thursdays", "50%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 360 | + "Ανακαλύψτε τον κόσμο του κρασιού με 50% έκπτωση σε συνεδρίες γευσιγνωσίας. Κάθε συνεδρία περιλαμβάνει δοκιμή 6 διαφορετικών κρασιών, συνοδευόμενα από πλατό τυριών και αλλαντικών. Ο έμπειρος οινολόγος μας θα σας μυήσει στα μυστικά της γευσιγνωσίας και θα απαντήσει σε όλες τις ερωτήσεις σας.", |
361 | + "31/12/2025", "50%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
319 | 362 | ||
320 | category.addItem(new OfferItem("fc10", "Πακέτο Παγωτού", | 363 | category.addItem(new OfferItem("fc10", "Πακέτο Παγωτού", |
321 | "Αγοράστε 2 μπάλες και πάρτε 1 δωρεάν", | 364 | "Αγοράστε 2 μπάλες και πάρτε 1 δωρεάν", |
322 | - "Summer offer", "100%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 365 | + "Δροσιστείτε με την προσφορά παγωτού μας! Αγοράστε 2 μπάλες παγωτού και πάρτε την 3η εντελώς δωρεάν. Επιλέξτε από 24 διαφορετικές γεύσεις, από κλασικές όπως βανίλια και σοκολάτα, μέχρι πιο εξωτικές όπως λεμόνι-βασιλικός και σοκολάτα-τσίλι. Όλα τα παγωτά μας είναι χειροποίητα με αγνά υλικά.", |
366 | + "31/08/2025", "100%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
323 | 367 | ||
324 | // Adding 14 more items for Food & Coffee category (24 total) | 368 | // Adding 14 more items for Food & Coffee category (24 total) |
325 | category.addItem(new OfferItem("fc11", "Εστιατόριο Sushi", | 369 | category.addItem(new OfferItem("fc11", "Εστιατόριο Sushi", |
326 | "Φάτε όσο sushi θέλετε για €25", | 370 | "Φάτε όσο sushi θέλετε για €25", |
327 | - "Tuesday & Thursday", "€25", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 371 | + "Απολαύστε απεριόριστο sushi για μόνο €25 ανά άτομο. Η προσφορά περιλαμβάνει όλους τους τύπους sushi του μενού μας: maki, nigiri, sashimi, temaki και ειδικά rolls. Κάθε παραγγελία ετοιμάζεται τη στιγμή που τη ζητάτε από τους έμπειρους σεφ μας, εξασφαλίζοντας φρεσκάδα και ποιότητα.", |
372 | + "31/12/2025", "€25", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
328 | 373 | ||
329 | category.addItem(new OfferItem("fc12", "Χειροποίητο Ψωμί", | 374 | category.addItem(new OfferItem("fc12", "Χειροποίητο Ψωμί", |
330 | "Αγοράστε ένα καρβέλι και πάρτε το δεύτερο στη μισή τιμή", | 375 | "Αγοράστε ένα καρβέλι και πάρτε το δεύτερο στη μισή τιμή", |
331 | - "Weekends", "50%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 376 | + "Απολαύστε το αρωματικό, χειροποίητο ψωμί μας με ειδική προσφορά: αγοράστε ένα καρβέλι και πάρτε το δεύτερο στη μισή τιμή. Το ψωμί μας παρασκευάζεται καθημερινά με παραδοσιακές μεθόδους και προζύμι, χωρίς πρόσθετα ή συντηρητικά. Επιλέξτε ανάμεσα σε διάφορες γεύσεις όπως χωριάτικο, ολικής άλεσης και πολύσπορο.", |
377 | + "31/08/2025", "50%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
332 | 378 | ||
333 | category.addItem(new OfferItem("fc13", "Κόκκοι Καφέ", | 379 | category.addItem(new OfferItem("fc13", "Κόκκοι Καφέ", |
334 | "15% έκπτωση σε premium κόκκους μονής προέλευσης", | 380 | "15% έκπτωση σε premium κόκκους μονής προέλευσης", |
335 | - "Limited stock", "15%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 381 | + "Ανακαλύψτε τον πλούτο των γεύσεων με 15% έκπτωση σε premium κόκκους καφέ μονής προέλευσης. Κάθε ποικιλία προέρχεται από συγκεκριμένη περιοχή και φάρμα, εξασφαλίζοντας μοναδικά χαρακτηριστικά και γευστικό προφίλ. Διαθέσιμες ποικιλίες από Αιθιοπία, Κολομβία, Γουατεμάλα, Κένυα και άλλες χώρες.", |
382 | + "30/08/2025", "15%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
336 | 383 | ||
337 | category.addItem(new OfferItem("fc14", "Βραδιά Πίτσας", | 384 | category.addItem(new OfferItem("fc14", "Βραδιά Πίτσας", |
338 | "Οικογενειακή πίτσα με 2 υλικά για €12", | 385 | "Οικογενειακή πίτσα με 2 υλικά για €12", |
339 | - "Every Wednesday", "€12", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 386 | + "Απολαύστε μια γευστική βραδιά με την οικογένεια με την προσφορά μας: οικογενειακή πίτσα (40cm) με 2 υλικά της επιλογής σας για μόνο €12. Η πίτσα μας παρασκευάζεται με φρέσκια ζύμη που ωριμάζει για 24 ώρες, σάλτσα από ιταλικές τομάτες και 100% mozzarella. Προσθέστε επιπλέον υλικά με €1 το καθένα.", |
387 | + "31/12/2025", "€12", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
340 | 388 | ||
341 | category.addItem(new OfferItem("fc15", "Μπαρ με Smoothies", | 389 | category.addItem(new OfferItem("fc15", "Μπαρ με Smoothies", |
342 | "Αγοράστε ένα smoothie και πάρτε το δεύτερο στη μισή τιμή", | 390 | "Αγοράστε ένα smoothie και πάρτε το δεύτερο στη μισή τιμή", |
343 | - "Morning hours", "50%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 391 | + "Δροσιστείτε με τα φρέσκα και υγιεινά smoothies μας! Αγοράστε ένα smoothie και πάρτε το δεύτερο με 50% έκπτωση. Όλα τα smoothies μας παρασκευάζονται με φρέσκα φρούτα, χωρίς πρόσθετη ζάχαρη ή συντηρητικά. Επιλέξτε από 15 διαφορετικούς συνδυασμούς ή δημιουργήστε το δικό σας με τα αγαπημένα σας συστατικά.", |
392 | + "31/12/2025", "50%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
344 | 393 | ||
345 | category.addItem(new OfferItem("fc16", "Προσφορά Ζυμαρικών", | 394 | category.addItem(new OfferItem("fc16", "Προσφορά Ζυμαρικών", |
346 | "Όλα τα πιάτα ζυμαρικών €10 με δωρεάν ψωμί", | 395 | "Όλα τα πιάτα ζυμαρικών €10 με δωρεάν ψωμί", |
347 | - "Monday-Thursday", "€10", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 396 | + "Απολαύστε τα αγαπημένα σας ζυμαρικά σε ειδική τιμή! Όλα τα πιάτα ζυμαρικών μόνο €10, συνοδευόμενα από δωρεάν φρεσκοψημένο ψωμί με σκορδοβούτυρο. Επιλέξτε ανάμεσα σε 12 διαφορετικές συνταγές, από κλασικά carbonara και bolognese μέχρι gourmet επιλογές με θαλασσινά και τρούφα.", |
397 | + "31/12/2025", "€10", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
348 | 398 | ||
349 | category.addItem(new OfferItem("fc17", "Πιατέλα Επιδορπίων", | 399 | category.addItem(new OfferItem("fc17", "Πιατέλα Επιδορπίων", |
350 | "Επιλογή από 5 επιδόρπια για μοίρασμα για €15", | 400 | "Επιλογή από 5 επιδόρπια για μοίρασμα για €15", |
351 | - "After 8pm", "€15", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 401 | + "Ικανοποιήστε τη γλυκιά σας επιθυμία με την πιατέλα επιδορπίων μας! Μόνο €15 για μια επιλογή 5 διαφορετικών επιδορπίων ιδανικά για μοίρασμα. Περιλαμβάνει μικρές μερίδες από σοκολατόπιτα, cheesecake, τιραμισού, παγωτό και φρέσκα φρούτα. Ιδανικό για παρέες 2-4 ατόμων.", |
402 | + "31/12/2025", "€15", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
352 | 403 | ||
353 | category.addItem(new OfferItem("fc18", "Μπουφές Πρωινού", | 404 | category.addItem(new OfferItem("fc18", "Μπουφές Πρωινού", |
354 | "Πρωινό όσο θέλετε για €12.99", | 405 | "Πρωινό όσο θέλετε για €12.99", |
355 | - "7am-10am daily", "€12.99", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 406 | + "Ξεκινήστε τη μέρα σας με τον πλούσιο μπουφέ πρωινού μας για μόνο €12.99 ανά άτομο. Απολαύστε απεριόριστες επιλογές από φρέσκα αρτοσκευάσματα, αυγά μαγειρεμένα κατά παραγγελία, φρέσκα φρούτα, γιαούρτι, δημητριακά, κρύα κρεατικά και τυριά. Περιλαμβάνει απεριόριστο καφέ, τσάι και χυμούς.", |
407 | + "31/12/2025", "€12.99", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
356 | 408 | ||
357 | category.addItem(new OfferItem("fc19", "Εξειδικευμένα Τσάγια", | 409 | category.addItem(new OfferItem("fc19", "Εξειδικευμένα Τσάγια", |
358 | "Αγοράστε οποιοδήποτε τσάι και πάρτε ένα γλυκό δωρεάν", | 410 | "Αγοράστε οποιοδήποτε τσάι και πάρτε ένα γλυκό δωρεάν", |
359 | - "Afternoon tea time", "€0", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 411 | + "Ανακαλύψτε τον κόσμο των εξειδικευμένων τσαγιών και απολαύστε ένα δωρεάν γλυκό με κάθε παραγγελία. Επιλέξτε από περισσότερες από 30 ποικιλίες τσαγιού από όλο τον κόσμο, συμπεριλαμβανομένων βοτανικών, πράσινων, μαύρων και αρωματικών τσαγιών. Το δωρεάν γλυκό περιλαμβάνει επιλογές όπως μπισκότα, κέικ ή μάφιν.", |
412 | + "31/12/2025", "€0", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
360 | 413 | ||
361 | category.addItem(new OfferItem("fc20", "Χορτοφαγικό Μενού", | 414 | category.addItem(new OfferItem("fc20", "Χορτοφαγικό Μενού", |
362 | "20% έκπτωση σε όλα τα χορτοφαγικά κυρίως πιάτα", | 415 | "20% έκπτωση σε όλα τα χορτοφαγικά κυρίως πιάτα", |
363 | - "All week", "20%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 416 | + "Απολαύστε υγιεινά και νόστιμα χορτοφαγικά πιάτα με 20% έκπτωση. Το μενού μας περιλαμβάνει μια ποικιλία από δημιουργικά πιάτα με φρέσκα, εποχιακά υλικά και μοναδικούς συνδυασμούς γεύσεων. Από πλούσιες σαλάτες και σούπες μέχρι κυρίως πιάτα εμπνευσμένα από διεθνείς κουζίνες. Κατάλληλο για χορτοφάγους και vegan.", |
417 | + "31/12/2025", "20%", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
364 | 418 | ||
365 | category.addItem(new OfferItem("fc21", "Γευσιγνωσία Μπύρας", | 419 | category.addItem(new OfferItem("fc21", "Γευσιγνωσία Μπύρας", |
366 | "Δοκιμή 4 χειροποίητων μπυρών για €8", | 420 | "Δοκιμή 4 χειροποίητων μπυρών για €8", |
367 | - "Happy hour", "€8", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 421 | + "Ανακαλύψτε τον κόσμο της χειροποίητης μπύρας με τη γευσιγνωσία μας για μόνο €8. Δοκιμάστε 4 διαφορετικές μπύρες από τοπικά ζυθοποιεία, συνοδευόμενες από ένα πιάτο με αλμυρά σνακ. Ο έμπειρος ζυθοποιός μας θα σας εξηγήσει τη διαδικασία παρασκευής και τα ιδιαίτερα χαρακτηριστικά κάθε μπύρας.", |
422 | + "31/12/2025", "€8", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
368 | 423 | ||
369 | category.addItem(new OfferItem("fc22", "Πιατέλα Θαλασσινών", | 424 | category.addItem(new OfferItem("fc22", "Πιατέλα Θαλασσινών", |
370 | "Πιατέλα θαλασσινών για δύο με κρασί €45", | 425 | "Πιατέλα θαλασσινών για δύο με κρασί €45", |
371 | - "Friday & Saturday", "€45", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 426 | + "Απολαύστε μια πλούσια πιατέλα θαλασσινών για δύο άτομα με ένα μπουκάλι λευκό κρασί για μόνο €45. Η πιατέλα περιλαμβάνει φρέσκα στρείδια, γαρίδες, μύδια, καλαμάρι και ψάρι ημέρας, όλα μαγειρεμένα με παραδοσιακές μεσογειακές συνταγές. Συνοδεύεται από φρέσκο ψωμί και σάλτσες.", |
427 | + "31/12/2025", "€45", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
372 | 428 | ||
373 | category.addItem(new OfferItem("fc23", "Προσφορά Brunch", | 429 | category.addItem(new OfferItem("fc23", "Προσφορά Brunch", |
374 | "Brunch με mimosa για €18", | 430 | "Brunch με mimosa για €18", |
375 | - "Weekends 11am-3pm", "€18", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 431 | + "Απολαύστε ένα πλούσιο brunch με ένα ποτήρι mimosa για μόνο €18. Το μενού περιλαμβάνει αυγά μαγειρεμένα κατά προτίμηση, φρέσκα αρτοσκευάσματα, φρούτα εποχής, γιαούρτι με μέλι και ξηρούς καρπούς, και μια επιλογή από τυριά και αλλαντικά. Διαθέσιμο κάθε Σαββατοκύριακο από τις 10:00 έως τις 15:00.", |
432 | + "31/12/2025", "€18", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
376 | 433 | ||
377 | category.addItem(new OfferItem("fc24", "Gourmet Σάντουιτς", | 434 | category.addItem(new OfferItem("fc24", "Gourmet Σάντουιτς", |
378 | "Gourmet σάντουιτς με συνδυασμό σούπας €9.50", | 435 | "Gourmet σάντουιτς με συνδυασμό σούπας €9.50", |
379 | - "Lunch special", "€9.50", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | 436 | + "Απολαύστε ένα χειροποίητο gourmet σάντουιτς με μια μικρή σούπα της ημέρας για μόνο €9.50. Επιλέξτε ανάμεσα σε 8 διαφορετικά σάντουιτς με premium υλικά όπως προσούτο, καπνιστό σολομό, ψητά λαχανικά και χειροποίητες σάλτσες. Όλα τα σάντουιτς σερβίρονται σε φρεσκοψημένο ψωμί από το φούρνο μας.", |
437 | + "31/12/2025", "€9.50", "demo_image_coffee.png", "demo_coffee.png", CATEGORY_FOOD_COFFEE)); | ||
380 | 438 | ||
381 | return category; | 439 | return category; |
382 | } | 440 | } |
... | @@ -391,38 +449,47 @@ public class DummyDataProvider { | ... | @@ -391,38 +449,47 @@ public class DummyDataProvider { |
391 | 449 | ||
392 | category.addItem(new OfferItem("tr1", "Έκπτωση Αεροπορικών", | 450 | category.addItem(new OfferItem("tr1", "Έκπτωση Αεροπορικών", |
393 | "15% έκπτωση σε διεθνείς πτήσεις", | 451 | "15% έκπτωση σε διεθνείς πτήσεις", |
452 | + "Εξοικονομήστε 15% σε διεθνείς πτήσεις με κορυφαίες αεροπορικές εταιρείες. Η προσφορά ισχύει για απευθείας κρατήσεις και περιλαμβάνει όλες τις κατηγορίες θέσεων. Δεν υπάρχουν περιορισμοί στους προορισμούς ή στις ημερομηνίες, εκτός από περιόδους αιχμής. Απαιτείται κράτηση τουλάχιστον 21 ημέρες πριν την αναχώρηση.", | ||
394 | "31/08/2025", "15%", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); | 453 | "31/08/2025", "15%", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); |
395 | 454 | ||
396 | category.addItem(new OfferItem("tr2", "Διαμονή σε Ξενοδοχείο", | 455 | category.addItem(new OfferItem("tr2", "Διαμονή σε Ξενοδοχείο", |
397 | "3 νύχτες στην τιμή των 2 σε συνεργαζόμενα ξενοδοχεία", | 456 | "3 νύχτες στην τιμή των 2 σε συνεργαζόμενα ξενοδοχεία", |
457 | + "Απολαύστε μια επιπλέον νύχτα διαμονής εντελώς δωρεάν όταν κάνετε κράτηση για 2 νύχτες σε οποιοδήποτε από τα συνεργαζόμενα ξενοδοχεία μας. Η προσφορά ισχύει για όλους τους τύπους δωματίων και περιλαμβάνει πρωινό. Ιδανικό για μεγαλύτερες αποδράσεις Σαββατοκύριακου ή μίνι διακοπές.", | ||
398 | "30/09/2025", "33%", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); | 458 | "30/09/2025", "33%", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); |
399 | 459 | ||
400 | category.addItem(new OfferItem("tr3", "Ενοικίαση Αυτοκινήτου", | 460 | category.addItem(new OfferItem("tr3", "Ενοικίαση Αυτοκινήτου", |
401 | "€25 έκπτωση σε εβδομαδιαίες ενοικιάσεις αυτοκινήτων", | 461 | "€25 έκπτωση σε εβδομαδιαίες ενοικιάσεις αυτοκινήτων", |
462 | + "Εξοικονομήστε €25 σε εβδομαδιαίες ενοικιάσεις αυτοκινήτων σε όλους τους προορισμούς. Η προσφορά ισχύει για όλες τις κατηγορίες οχημάτων, από οικονομικά μέχρι πολυτελή. Περιλαμβάνει απεριόριστα χιλιόμετρα και βασική ασφάλεια. Δωρεάν ακύρωση έως 48 ώρες πριν την παραλαβή.", | ||
402 | "31/12/2025", "€25", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); | 463 | "31/12/2025", "€25", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); |
403 | 464 | ||
404 | category.addItem(new OfferItem("tr4", "Ταξιδιωτική Ασφάλεια", | 465 | category.addItem(new OfferItem("tr4", "Ταξιδιωτική Ασφάλεια", |
405 | "20% έκπτωση σε ετήσια ταξιδιωτική ασφάλεια", | 466 | "20% έκπτωση σε ετήσια ταξιδιωτική ασφάλεια", |
467 | + "Ταξιδέψτε με ασφάλεια και εξοικονομήστε 20% σε ετήσια ταξιδιωτική ασφάλεια. Το πακέτο περιλαμβάνει ιατρική κάλυψη, ακύρωση ταξιδιού, απώλεια αποσκευών και προσωπικών αντικειμένων, καθυστέρηση πτήσης και 24ωρη βοήθεια. Ισχύει για απεριόριστο αριθμό ταξιδιών εντός ενός έτους.", | ||
406 | "30/06/2025", "20%", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); | 468 | "30/06/2025", "20%", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); |
407 | 469 | ||
408 | category.addItem(new OfferItem("tr5", "Ξενάγηση Πόλης", | 470 | category.addItem(new OfferItem("tr5", "Ξενάγηση Πόλης", |
409 | "Αγοράστε ένα εισιτήριο και πάρτε ένα δωρεάν", | 471 | "Αγοράστε ένα εισιτήριο και πάρτε ένα δωρεάν", |
472 | + "Ανακαλύψτε τα αξιοθέατα της πόλης με την προσφορά 1+1 σε ξεναγήσεις. Αγοράστε ένα εισιτήριο και φέρτε έναν φίλο δωρεάν. Οι ξεναγήσεις διαρκούν 2-3 ώρες και καλύπτουν τα σημαντικότερα αξιοθέατα με έμπειρους, πολύγλωσσους ξεναγούς. Διαθέσιμες καθημερινά σε διάφορες ώρες.", | ||
410 | "31/07/2025", "100%", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); | 473 | "31/07/2025", "100%", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); |
411 | 474 | ||
412 | category.addItem(new OfferItem("tr6", "Πρόσβαση σε Lounge Αεροδρομίου", | 475 | category.addItem(new OfferItem("tr6", "Πρόσβαση σε Lounge Αεροδρομίου", |
413 | "€15 για πρόσβαση σε lounge ανεξαρτήτως κατηγορίας εισιτηρίου", | 476 | "€15 για πρόσβαση σε lounge ανεξαρτήτως κατηγορίας εισιτηρίου", |
414 | - "Ongoing", "€15", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); | 477 | + "Απολαύστε πολυτελή άνεση πριν την πτήση σας με πρόσβαση σε VIP lounge αεροδρομίου για μόνο €15, ανεξάρτητα από την κατηγορία του εισιτηρίου σας. Η προσφορά περιλαμβάνει απεριόριστα ποτά και σνακ, δωρεάν Wi-Fi, άνετους χώρους καθιστικού και ντους. Ιδανικό για επαγγελματίες και ταξιδιώτες αναψυχής.", |
478 | + "31/12/2025", "€15", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); | ||
415 | 479 | ||
416 | category.addItem(new OfferItem("tr7", "Έκπτωση Κρουαζιέρας", | 480 | category.addItem(new OfferItem("tr7", "Έκπτωση Κρουαζιέρας", |
417 | "30% έκπτωση σε επιλεγμένα πακέτα κρουαζιέρας", | 481 | "30% έκπτωση σε επιλεγμένα πακέτα κρουαζιέρας", |
482 | + "Εξερευνήστε εξωτικούς προορισμούς με 30% έκπτωση σε επιλεγμένα πακέτα κρουαζιέρας. Η προσφορά περιλαμβάνει διαμονή σε καμπίνα της επιλογής σας, πλήρη διατροφή, ψυχαγωγία εν πλω και επισκέψεις σε πολλαπλούς προορισμούς. Ιδανικό για ζευγάρια, οικογένειες ή παρέες φίλων που αναζητούν μια αξέχαστη ταξιδιωτική εμπειρία.", | ||
418 | "31/08/2025", "30%", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); | 483 | "31/08/2025", "30%", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); |
419 | 484 | ||
420 | category.addItem(new OfferItem("tr8", "Αξεσουάρ Ταξιδιού", | 485 | category.addItem(new OfferItem("tr8", "Αξεσουάρ Ταξιδιού", |
421 | "Αγοράστε 2 και πάρτε 1 δωρεάν σε είδη ταξιδιού", | 486 | "Αγοράστε 2 και πάρτε 1 δωρεάν σε είδη ταξιδιού", |
422 | - "While stocks last", "100%", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); | 487 | + "Εξοπλιστείτε για το επόμενο ταξίδι σας με την προσφορά 2+1 σε αξεσουάρ ταξιδιού. Αγοράστε 2 είδη και πάρτε ένα τρίτο εντελώς δωρεάν. Η προσφορά ισχύει για βαλίτσες, τσάντες, αντάπτορες, οργανωτές αποσκευών, μαξιλάρια αυχένα και άλλα χρήσιμα αξεσουάρ που θα κάνουν το ταξίδι σας πιο άνετο.", |
488 | + "30/09/2025", "100%", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); | ||
423 | 489 | ||
424 | category.addItem(new OfferItem("tr9", "Μεταφορά από/προς Αεροδρόμιο", | 490 | category.addItem(new OfferItem("tr9", "Μεταφορά από/προς Αεροδρόμιο", |
425 | "€10 έκπτωση σε ιδιωτικές μεταφορές από/προς αεροδρόμιο", | 491 | "€10 έκπτωση σε ιδιωτικές μεταφορές από/προς αεροδρόμιο", |
492 | + "Ξεκινήστε και ολοκληρώστε το ταξίδι σας με άνεση εξοικονομώντας €10 σε ιδιωτικές μεταφορές από και προς το αεροδρόμιο. Η υπηρεσία περιλαμβάνει παρακολούθηση πτήσεων, αναμονή σε περίπτωση καθυστερήσεων και βοήθεια με τις αποσκευές. Διαθέσιμα οχήματα από οικονομικά αυτοκίνητα μέχρι πολυτελή minivan.", | ||
426 | "31/12/2025", "€10", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); | 493 | "31/12/2025", "€10", "demo_image_ninemia.png", "demo_ninemia.png", CATEGORY_TRAVELLING)); |
427 | 494 | ||
428 | // Only keeping 9 items for Travelling category | 495 | // Only keeping 9 items for Travelling category |
... | @@ -440,48 +507,59 @@ public class DummyDataProvider { | ... | @@ -440,48 +507,59 @@ public class DummyDataProvider { |
440 | 507 | ||
441 | category.addItem(new OfferItem("kid1", "Έκπτωση σε Κατάστημα Παιχνιδιών", | 508 | category.addItem(new OfferItem("kid1", "Έκπτωση σε Κατάστημα Παιχνιδιών", |
442 | "25% έκπτωση σε όλα τα παιχνίδια αυτό το Σαββατοκύριακο", | 509 | "25% έκπτωση σε όλα τα παιχνίδια αυτό το Σαββατοκύριακο", |
443 | - "Sunday", "25%", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | 510 | + "Εξοικονομήστε 25% σε όλα τα παιχνίδια αυτό το Σαββατοκύριακο! Η προσφορά ισχύει για όλες τις κατηγορίες παιχνιδιών, συμπεριλαμβανομένων επιτραπέζιων, κατασκευών, κούκλων, αυτοκινήτων, παιχνιδιών STEM και ηλεκτρονικών παιχνιδιών. Ιδανική ευκαιρία για δώρα γενεθλίων ή απλά για να επιβραβεύσετε τα παιδιά σας.", |
511 | + "31/12/2025", "25%", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | ||
444 | 512 | ||
445 | category.addItem(new OfferItem("kid2", "Παιδικά Ρούχα", | 513 | category.addItem(new OfferItem("kid2", "Παιδικά Ρούχα", |
446 | "Αγοράστε 2 και πάρτε 1 δωρεάν σε παιδικά ρούχα", | 514 | "Αγοράστε 2 και πάρτε 1 δωρεάν σε παιδικά ρούχα", |
515 | + "Ανανεώστε τη γκαρνταρόμπα των παιδιών σας με την προσφορά 2+1 σε όλα τα παιδικά ρούχα. Αγοράστε 2 είδη και πάρτε ένα τρίτο εντελώς δωρεάν. Η προσφορά ισχύει για όλες τις ηλικίες από 0-14 ετών και περιλαμβάνει μπλούζες, παντελόνια, φορέματα, εσώρουχα και αξεσουάρ. Το είδος με τη χαμηλότερη τιμή προσφέρεται δωρεάν.", | ||
447 | "31/07/2025", "100%", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | 516 | "31/07/2025", "100%", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); |
448 | 517 | ||
449 | category.addItem(new OfferItem("kid3", "Εσωτερική Παιδική Χαρά", | 518 | category.addItem(new OfferItem("kid3", "Εσωτερική Παιδική Χαρά", |
450 | "€5 είσοδος για απεριόριστο παιχνίδι", | 519 | "€5 είσοδος για απεριόριστο παιχνίδι", |
451 | - "Weekdays", "€5", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | 520 | + "Προσφέρετε στα παιδιά σας ώρες διασκέδασης με μόνο €5 για απεριόριστο παιχνίδι στην εσωτερική παιδική χαρά μας. Ο χώρος περιλαμβάνει τραμπολίνο, πισίνες με μπαλάκια, τοίχο αναρρίχησης, τσουλήθρες, λαβύρινθους και πολλά ακόμα. Οι γονείς μπορούν να απολαύσουν δωρεάν καφέ στον ειδικό χώρο αναμονής με Wi-Fi.", |
521 | + "31/07/2025", "€5", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | ||
452 | 522 | ||
453 | category.addItem(new OfferItem("kid4", "Παιδικά Βιβλία", | 523 | category.addItem(new OfferItem("kid4", "Παιδικά Βιβλία", |
454 | "30% έκπτωση σε εκπαιδευτικά βιβλία", | 524 | "30% έκπτωση σε εκπαιδευτικά βιβλία", |
525 | + "Ενισχύστε τη μάθηση των παιδιών σας με 30% έκπτωση σε όλα τα εκπαιδευτικά βιβλία. Η προσφορά περιλαμβάνει βιβλία για όλες τις ηλικίες, από προσχολική έως εφηβική, σε θέματα όπως μαθηματικά, επιστήμες, γλώσσες, ιστορία και τέχνες. Επιπλέον, λάβετε δωρεάν πρόσβαση στο online εκπαιδευτικό υλικό για 3 μήνες.", | ||
455 | "30/06/2025", "30%", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | 526 | "30/06/2025", "30%", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); |
456 | 527 | ||
457 | category.addItem(new OfferItem("kid5", "Μαθήματα Κολύμβησης", | 528 | category.addItem(new OfferItem("kid5", "Μαθήματα Κολύμβησης", |
458 | "Πρώτο μάθημα δωρεάν, μετά €10 ανά μάθημα", | 529 | "Πρώτο μάθημα δωρεάν, μετά €10 ανά μάθημα", |
459 | - "Summer offer", "€0", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | 530 | + "Δώστε στο παιδί σας την ευκαιρία να μάθει κολύμβηση με το πρώτο μάθημα εντελώς δωρεάν και στη συνέχεια μόνο €10 ανά μάθημα. Τα μαθήματα διεξάγονται από πιστοποιημένους προπονητές σε θερμαινόμενη πισίνα, με μικρά γκρουπ έως 5 παιδιών ανά προπονητή. Διαθέσιμα τμήματα για ηλικίες 3-15 ετών, όλα τα επίπεδα.", |
531 | + "31/08/2025", "€0", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | ||
460 | 532 | ||
461 | category.addItem(new OfferItem("kid6", "Παιδικό Κούρεμα", | 533 | category.addItem(new OfferItem("kid6", "Παιδικό Κούρεμα", |
462 | "Ειδική τιμή €8 για παιδιά κάτω των 12 ετών", | 534 | "Ειδική τιμή €8 για παιδιά κάτω των 12 ετών", |
463 | - "Ongoing", "€8", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | 535 | + "Προσφέρετε στο παιδί σας ένα στυλάτο κούρεμα με μόνο €8 για παιδιά κάτω των 12 ετών. Οι έμπειροι κομμωτές μας είναι εξειδικευμένοι στο παιδικό κούρεμα και δημιουργούν μια ευχάριστη εμπειρία για τα παιδιά. Περιλαμβάνει λούσιμο, κούρεμα και απλό στάιλινγκ. Δωρεάν αυτοκόλλητο ή μικρό παιχνίδι μετά το κούρεμα.", |
536 | + "31/12/2025", "€8", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | ||
464 | 537 | ||
465 | category.addItem(new OfferItem("kid7", "Παιδικό Μουσείο", | 538 | category.addItem(new OfferItem("kid7", "Παιδικό Μουσείο", |
466 | "Οικογενειακό εισιτήριο για €25 (έως 4 άτομα)", | 539 | "Οικογενειακό εισιτήριο για €25 (έως 4 άτομα)", |
540 | + "Απολαύστε μια εκπαιδευτική και διασκεδαστική οικογενειακή έξοδο στο Παιδικό Μουσείο με το ειδικό οικογενειακό εισιτήριο των €25 για έως 4 άτομα. Το μουσείο προσφέρει διαδραστικές εκθέσεις, εργαστήρια και παιχνίδια που ενθαρρύνουν τη μάθηση μέσω της εξερεύνησης. Ιδανικό για παιδιά 2-12 ετών.", | ||
467 | "31/12/2025", "€25", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | 541 | "31/12/2025", "€25", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); |
468 | 542 | ||
469 | category.addItem(new OfferItem("kid8", "Παιδικό Κουτί Γεύματος", | 543 | category.addItem(new OfferItem("kid8", "Παιδικό Κουτί Γεύματος", |
470 | "20% έκπτωση σε συνδρομή υγιεινών γευμάτων", | 544 | "20% έκπτωση σε συνδρομή υγιεινών γευμάτων", |
471 | - "First 3 months", "20%", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | 545 | + "Εξασφαλίστε υγιεινή διατροφή για το παιδί σας με 20% έκπτωση σε μηνιαία συνδρομή παιδικών γευμάτων. Κάθε εβδομάδα λαμβάνετε 5 πλήρη, ισορροπημένα γεύματα, ειδικά σχεδιασμένα για παιδιά. Όλα τα γεύματα παρασκευάζονται με φρέσκα, οργανικά υλικά και είναι ελεύθερα αλλεργιογόνων κατόπιν αιτήματος.", |
546 | + "31/12/2025", "20%", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | ||
472 | 547 | ||
473 | category.addItem(new OfferItem("kid9", "Είδη Ζωγραφικής", | 548 | category.addItem(new OfferItem("kid9", "Είδη Ζωγραφικής", |
474 | "40% έκπτωση σε είδη τέχνης και χειροτεχνίας", | 549 | "40% έκπτωση σε είδη τέχνης και χειροτεχνίας", |
475 | - "Back to school offer", "40%", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | 550 | + "Ενθαρρύνετε τη δημιουργικότητα του παιδιού σας με 40% έκπτωση σε όλα τα είδη τέχνης και χειροτεχνίας. Η προσφορά περιλαμβάνει χρώματα, πινέλα, μαρκαδόρους, χαρτιά, κιτ χειροτεχνίας και πολλά άλλα. Ιδανικά για παιδιά όλων των ηλικιών, τα υλικά είναι μη τοξικά και ασφαλή για χρήση από παιδιά.", |
551 | + "31/08/2025", "40%", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | ||
476 | 552 | ||
477 | category.addItem(new OfferItem("kid10", "Παιδικός Αθλητικός Εξοπλισμός", | 553 | category.addItem(new OfferItem("kid10", "Παιδικός Αθλητικός Εξοπλισμός", |
478 | "Αγοράστε πλήρες σετ και εξοικονομήστε €15", | 554 | "Αγοράστε πλήρες σετ και εξοικονομήστε €15", |
555 | + "Εξοπλίστε το παιδί σας για τον αγαπημένο του αθλητισμό και εξοικονομήστε €15 αγοράζοντας πλήρες σετ εξοπλισμού. Η προσφορά ισχύει για ποδόσφαιρο, μπάσκετ, τένις, κολύμβηση και άλλα δημοφιλή αθλήματα. Κάθε σετ περιλαμβάνει όλα τα απαραίτητα για το ξεκίνημα, από ρούχα μέχρι εξοπλισμό.", | ||
479 | "31/08/2025", "€15", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | 556 | "31/08/2025", "€15", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); |
480 | 557 | ||
481 | // Adding 1 more item for Kids category (11 total) | 558 | // Adding 1 more item for Kids category (11 total) |
482 | category.addItem(new OfferItem("kid11", "Μαθήματα Προγραμματισμού για Παιδιά", | 559 | category.addItem(new OfferItem("kid11", "Μαθήματα Προγραμματισμού για Παιδιά", |
483 | "Πρώτο μάθημα δωρεάν για παιδιά 8-12 ετών", | 560 | "Πρώτο μάθημα δωρεάν για παιδιά 8-12 ετών", |
484 | - "New enrollments", "€0", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | 561 | + "Εισάγετε το παιδί σας στον κόσμο του προγραμματισμού με ένα δωρεάν εισαγωγικό μάθημα για παιδιά 8-12 ετών. Τα μαθήματα διδάσκονται από έμπειρους εκπαιδευτικούς πληροφορικής και χρησιμοποιούν διασκεδαστικές, διαδραστικές μεθόδους για να διδάξουν βασικές έννοιες προγραμματισμού. Μετά το δωρεάν μάθημα, διατίθενται πακέτα 4, 8 ή 12 μαθημάτων.", |
562 | + "31/12/2025", "€0", "demo_image_moustakas.png", "demo_moustakas.png", CATEGORY_KIDS)); | ||
485 | 563 | ||
486 | return category; | 564 | return category; |
487 | } | 565 | } |
... | @@ -496,132 +574,164 @@ public class DummyDataProvider { | ... | @@ -496,132 +574,164 @@ public class DummyDataProvider { |
496 | 574 | ||
497 | category.addItem(new OfferItem("pur1", "Κατάστημα Ηλεκτρονικών", | 575 | category.addItem(new OfferItem("pur1", "Κατάστημα Ηλεκτρονικών", |
498 | "€50 έκπτωση σε αγορές άνω των €300", | 576 | "€50 έκπτωση σε αγορές άνω των €300", |
577 | + "Εξοικονομήστε €50 σε αγορές ηλεκτρονικών συσκευών άνω των €300. Η προσφορά ισχύει για όλες τις κατηγορίες προϊόντων, συμπεριλαμβανομένων smartphones, tablets, laptops, τηλεοράσεων και οικιακών συσκευών. Επιπλέον, λάβετε δωρεάν παράδοση και εγγύηση 2 ετών σε όλα τα προϊόντα.", | ||
499 | "30/06/2025", "€50", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 578 | "30/06/2025", "€50", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); |
500 | 579 | ||
501 | category.addItem(new OfferItem("pur2", "Προσφορά Επίπλων", | 580 | category.addItem(new OfferItem("pur2", "Προσφορά Επίπλων", |
502 | "Έως και 40% έκπτωση σε επιλεγμένα έπιπλα", | 581 | "Έως και 40% έκπτωση σε επιλεγμένα έπιπλα", |
503 | - "While stocks last", "40%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 582 | + "Ανανεώστε το χώρο σας με έως και 40% έκπτωση σε επιλεγμένα έπιπλα. Η προσφορά περιλαμβάνει καναπέδες, τραπέζια, καρέκλες, κρεβάτια και αποθηκευτικούς χώρους. Όλα τα έπιπλα είναι υψηλής ποιότητας και διαθέτουν εγγύηση 5 ετών. Δωρεάν μεταφορά και συναρμολόγηση για αγορές άνω των €500.", |
583 | + "30/09/2025", "40%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
504 | 584 | ||
505 | category.addItem(new OfferItem("pur3", "Online Αγορές", | 585 | category.addItem(new OfferItem("pur3", "Online Αγορές", |
506 | "15% έκπτωση στην πρώτη σας αγορά με κωδικό", | 586 | "15% έκπτωση στην πρώτη σας αγορά με κωδικό", |
507 | - "New customers", "15%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 587 | + "Εξοικονομήστε 15% στην πρώτη σας online αγορά με τον κωδικό WELCOME15. Η προσφορά ισχύει για όλες τις κατηγορίες προϊόντων χωρίς ελάχιστη αξία παραγγελίας. Επιπλέον, απολαύστε δωρεάν παράδοση για παραγγελίες άνω των €50 και εύκολη διαδικασία επιστροφής εντός 30 ημερών.", |
588 | + "31/12/2025", "15%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
508 | 589 | ||
509 | category.addItem(new OfferItem("pur4", "Αναβάθμιση Smartphone", | 590 | category.addItem(new OfferItem("pur4", "Αναβάθμιση Smartphone", |
510 | "Ανταλλάξτε το παλιό σας τηλέφωνο και πάρτε €100 επιπλέον αξία", | 591 | "Ανταλλάξτε το παλιό σας τηλέφωνο και πάρτε €100 επιπλέον αξία", |
592 | + "Αναβαθμίστε το smartphone σας και λάβετε επιπλέον €100 αξία όταν ανταλλάσσετε το παλιό σας τηλέφωνο. Η προσφορά ισχύει για όλα τα λειτουργικά smartphones, ανεξάρτητα από την κατάσταση ή το μοντέλο τους. Επιπλέον, λάβετε δωρεάν μεταφορά δεδομένων από την παλιά στη νέα συσκευή σας.", | ||
511 | "31/07/2025", "€100", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 593 | "31/07/2025", "€100", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); |
512 | 594 | ||
513 | category.addItem(new OfferItem("pur5", "Οικιακές Συσκευές", | 595 | category.addItem(new OfferItem("pur5", "Οικιακές Συσκευές", |
514 | "Δωρεάν παράδοση και εγκατάσταση", | 596 | "Δωρεάν παράδοση και εγκατάσταση", |
515 | - "On purchases over €500", "€0", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 597 | + "Αποκτήστε νέες οικιακές συσκευές με δωρεάν παράδοση και επαγγελματική εγκατάσταση. Η προσφορά ισχύει για μεγάλες συσκευές όπως ψυγεία, πλυντήρια, κουζίνες και πλυντήρια πιάτων. Περιλαμβάνει αποσύνδεση και απομάκρυνση της παλιάς συσκευής, καθώς και εκπαίδευση στη χρήση της νέας.", |
598 | + "31/12/2025", "€0", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
516 | 599 | ||
517 | category.addItem(new OfferItem("pur6", "Αθλητικά Ρούχα", | 600 | category.addItem(new OfferItem("pur6", "Αθλητικά Ρούχα", |
518 | "30% έκπτωση σε παπούτσια για τρέξιμο και ρούχα", | 601 | "30% έκπτωση σε παπούτσια για τρέξιμο και ρούχα", |
602 | + "Ανανεώστε τον αθλητικό σας εξοπλισμό με 30% έκπτωση σε παπούτσια για τρέξιμο και αθλητικά ρούχα. Η προσφορά περιλαμβάνει κορυφαίες μάρκες και τα τελευταία μοντέλα με τεχνολογίες αιχμής. Ιδανικά για δρομείς όλων των επιπέδων, από αρχάριους μέχρι επαγγελματίες. Δωρεάν ανάλυση βηματισμού με κάθε αγορά παπουτσιών.", | ||
519 | "31/08/2025", "30%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 603 | "31/08/2025", "30%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); |
520 | 604 | ||
521 | category.addItem(new OfferItem("pur7", "Προϊόντα Ομορφιάς", | 605 | category.addItem(new OfferItem("pur7", "Προϊόντα Ομορφιάς", |
522 | "Αγοράστε 3 και πάρτε 1 δωρεάν στη σειρά περιποίησης δέρματος", | 606 | "Αγοράστε 3 και πάρτε 1 δωρεάν στη σειρά περιποίησης δέρματος", |
607 | + "Φροντίστε την επιδερμίδα σας με την προσφορά 3+1 στη σειρά περιποίησης δέρματος. Αγοράστε 3 προϊόντα και πάρτε ένα τέταρτο εντελώς δωρεάν. Η σειρά περιλαμβάνει καθαριστικά, τονωτικές λοσιόν, ορούς, κρέμες ημέρας και νύχτας, και μάσκες. Όλα τα προϊόντα είναι δερματολογικά ελεγμένα και χωρίς parabens.", | ||
523 | "30/09/2025", "100%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 608 | "30/09/2025", "100%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); |
524 | 609 | ||
525 | category.addItem(new OfferItem("pur8", "Συσκευές Κουζίνας", | 610 | category.addItem(new OfferItem("pur8", "Συσκευές Κουζίνας", |
526 | "25% έκπτωση σε συσκευές κουζίνας", | 611 | "25% έκπτωση σε συσκευές κουζίνας", |
527 | - "Weekend sale", "25%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 612 | + "Αναβαθμίστε την κουζίνα σας με 25% έκπτωση σε όλες τις συσκευές. Η προσφορά περιλαμβάνει μίξερ, μπλέντερ, φούρνους μικροκυμάτων, τοστιέρες, φριτέζες αέρος και πολλά άλλα. Όλες οι συσκευές διαθέτουν εγγύηση 2 ετών και είναι από κορυφαίους κατασκευαστές. Δωρεάν παράδοση για αγορές άνω των €100.", |
613 | + "31/07/2025", "25%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
528 | 614 | ||
529 | category.addItem(new OfferItem("pur9", "Έπιπλα Κήπου", | 615 | category.addItem(new OfferItem("pur9", "Έπιπλα Κήπου", |
530 | "Εκκαθάριση τέλους σεζόν - 50% έκπτωση", | 616 | "Εκκαθάριση τέλους σεζόν - 50% έκπτωση", |
531 | - "Until sold out", "50%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 617 | + "Ανανεώστε τον εξωτερικό σας χώρο με 50% έκπτωση σε όλα τα έπιπλα κήπου. Η προσφορά περιλαμβάνει τραπέζια, καρέκλες, ξαπλώστρες, ομπρέλες και σετ καθιστικού. Όλα τα έπιπλα είναι ανθεκτικά στις καιρικές συνθήκες και διαθέτουν εγγύηση 3 ετών. Περιορισμένα αποθέματα, προλάβετε τώρα!", |
618 | + "30/09/2025", "50%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
532 | 619 | ||
533 | category.addItem(new OfferItem("pur10", "Αξεσουάρ Τεχνολογίας", | 620 | category.addItem(new OfferItem("pur10", "Αξεσουάρ Τεχνολογίας", |
534 | "Αγοράστε 2 αξεσουάρ και εξοικονομήστε €10", | 621 | "Αγοράστε 2 αξεσουάρ και εξοικονομήστε €10", |
622 | + "Εξοπλιστείτε με τα απαραίτητα αξεσουάρ τεχνολογίας και εξοικονομήστε €10 όταν αγοράζετε 2 ή περισσότερα. Η προσφορά περιλαμβάνει θήκες κινητών, προστατευτικά οθόνης, φορτιστές, καλώδια, ακουστικά, power banks και πολλά άλλα. Όλα τα αξεσουάρ είναι συμβατά με τις τελευταίες συσκευές και κορυφαίας ποιότητας.", | ||
535 | "31/12/2025", "€10", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 623 | "31/12/2025", "€10", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); |
536 | 624 | ||
537 | // Adding 22 more items for Purchases category (32 total) | 625 | // Adding 22 more items for Purchases category (32 total) |
538 | category.addItem(new OfferItem("pur11", "Γυαλιά Ηλίου Επώνυμων Οίκων", | 626 | category.addItem(new OfferItem("pur11", "Γυαλιά Ηλίου Επώνυμων Οίκων", |
539 | "30% έκπτωση σε γυαλιά ηλίου επώνυμων οίκων", | 627 | "30% έκπτωση σε γυαλιά ηλίου επώνυμων οίκων", |
540 | - "Summer sale", "30%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 628 | + "Αποκτήστε στυλ και προστασία με 30% έκπτωση σε γυαλιά ηλίου επώνυμων οίκων. Η προσφορά περιλαμβάνει τις τελευταίες συλλογές από κορυφαίους σχεδιαστές, με 100% προστασία UV και πιστοποιημένη ποιότητα. Επιλέξτε ανάμεσα σε κλασικά, σπορ ή μοντέρνα σχέδια για κάθε περίσταση.", |
629 | + "31/08/2025", "30%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
541 | 630 | ||
542 | category.addItem(new OfferItem("pur12", "Αναβάθμιση Laptop", | 631 | category.addItem(new OfferItem("pur12", "Αναβάθμιση Laptop", |
543 | "Ανταλλάξτε το παλιό σας laptop και πάρτε €150 έκπτωση", | 632 | "Ανταλλάξτε το παλιό σας laptop και πάρτε €150 έκπτωση", |
544 | - "Back to school", "€150", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 633 | + "Αναβαθμίστε τον εξοπλισμό σας και εξοικονομήστε €150 όταν ανταλλάσσετε το παλιό σας laptop. Η προσφορά ισχύει για όλα τα λειτουργικά laptops, ανεξάρτητα από την ηλικία ή την κατάστασή τους. Επιπλέον, λάβετε δωρεάν μεταφορά δεδομένων, εγκατάσταση λογισμικού και τσάντα μεταφοράς με κάθε νέα αγορά.", |
634 | + "31/08/2025", "€150", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
545 | 635 | ||
546 | category.addItem(new OfferItem("pur13", "Σετ Κλινοσκεπασμάτων", | 636 | category.addItem(new OfferItem("pur13", "Σετ Κλινοσκεπασμάτων", |
547 | "Αγοράστε ένα σετ κλινοσκεπασμάτων και πάρτε το δεύτερο στη μισή τιμή", | 637 | "Αγοράστε ένα σετ κλινοσκεπασμάτων και πάρτε το δεύτερο στη μισή τιμή", |
548 | - "Home sale", "50%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 638 | + "Ανανεώστε την κρεβατοκάμαρά σας με την προσφορά 1+1 σε σετ κλινοσκεπασμάτων. Αγοράστε ένα σετ και πάρτε το δεύτερο με 50% έκπτωση. Κάθε σετ περιλαμβάνει σεντόνι, μαξιλαροθήκες και παπλωματοθήκη από 100% βαμβάκι υψηλής ποιότητας. Διαθέσιμα σε διάφορα χρώματα και σχέδια.", |
639 | + "31/07/2025", "50%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
549 | 640 | ||
550 | category.addItem(new OfferItem("pur14", "Συσκευές Έξυπνου Σπιτιού", | 641 | category.addItem(new OfferItem("pur14", "Συσκευές Έξυπνου Σπιτιού", |
551 | "20% έκπτωση σε όλα τα προϊόντα έξυπνου σπιτιού", | 642 | "20% έκπτωση σε όλα τα προϊόντα έξυπνου σπιτιού", |
552 | - "Tech week", "20%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 643 | + "Μετατρέψτε το σπίτι σας σε έξυπνο σπίτι με 20% έκπτωση σε όλα τα σχετικά προϊόντα. Η προσφορά περιλαμβάνει έξυπνους θερμοστάτες, συστήματα ασφαλείας, φωτισμό, ηχεία, πρίζες και άλλες συσκευές που ελέγχονται μέσω εφαρμογής. Όλα τα προϊόντα είναι συμβατά με τους κορυφαίους ψηφιακούς βοηθούς.", |
644 | + "30/06/2025", "20%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
553 | 645 | ||
554 | category.addItem(new OfferItem("pur15", "Έπιπλα Εξωτερικού Χώρου", | 646 | category.addItem(new OfferItem("pur15", "Έπιπλα Εξωτερικού Χώρου", |
555 | "Έως και 40% έκπτωση σε σετ επίπλων εξωτερικού χώρου", | 647 | "Έως και 40% έκπτωση σε σετ επίπλων εξωτερικού χώρου", |
556 | - "Garden sale", "40%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 648 | + "Μεταμορφώστε τον εξωτερικό σας χώρο με έως και 40% έκπτωση σε πλήρη σετ επίπλων. Η προσφορά περιλαμβάνει τραπεζαρίες, καθιστικά, ξαπλώστρες και ομπρέλες από ανθεκτικά υλικά όπως ρατάν, αλουμίνιο και ξύλο teak. Όλα τα έπιπλα διαθέτουν αδιάβροχα μαξιλάρια και εγγύηση 3 ετών.", |
649 | + "31/08/2025", "40%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
557 | 650 | ||
558 | category.addItem(new OfferItem("pur16", "Ρολόγια Επώνυμων Οίκων", | 651 | category.addItem(new OfferItem("pur16", "Ρολόγια Επώνυμων Οίκων", |
559 | "15% έκπτωση σε πολυτελή ρολόγια", | 652 | "15% έκπτωση σε πολυτελή ρολόγια", |
560 | - "Limited time", "15%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 653 | + "Αποκτήστε ένα κομψό ρολόι με 15% έκπτωση από τις συλλογές κορυφαίων οίκων. Η προσφορά περιλαμβάνει αναλογικά, ψηφιακά και smartwatches από επώνυμους κατασκευαστές. Όλα τα ρολόγια συνοδεύονται από πιστοποιητικό γνησιότητας και διεθνή εγγύηση 2 ετών. Δωρεάν αλλαγή μπαταρίας για 5 χρόνια.", |
654 | + "30/07/2025", "15%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
561 | 655 | ||
562 | category.addItem(new OfferItem("pur17", "Συσκευές Κουζίνας", | 656 | category.addItem(new OfferItem("pur17", "Συσκευές Κουζίνας", |
563 | "Αγοράστε 2 μικρές συσκευές και πάρτε 1 δωρεάν", | 657 | "Αγοράστε 2 μικρές συσκευές και πάρτε 1 δωρεάν", |
564 | - "Kitchen sale", "100%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 658 | + "Εξοπλίστε την κουζίνα σας με την προσφορά 2+1 σε μικρές συσκευές. Αγοράστε 2 συσκευές και πάρτε μια τρίτη εντελώς δωρεάν. Η προσφορά ισχύει για καφετιέρες, τοστιέρες, βραστήρες, μίξερ χειρός, πολυκόπτες και άλλες μικρές συσκευές. Η δωρεάν συσκευή πρέπει να είναι ίσης ή χαμηλότερης αξίας.", |
659 | + "31/07/2025", "100%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
565 | 660 | ||
566 | category.addItem(new OfferItem("pur18", "Εξοπλισμός Γυμναστικής", | 661 | category.addItem(new OfferItem("pur18", "Εξοπλισμός Γυμναστικής", |
567 | "25% έκπτωση σε εξοπλισμό γυμναστικής για το σπίτι", | 662 | "25% έκπτωση σε εξοπλισμό γυμναστικής για το σπίτι", |
568 | - "Fitness sale", "25%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 663 | + "Δημιουργήστε το δικό σας γυμναστήριο στο σπίτι με 25% έκπτωση σε όλο τον εξοπλισμό. Η προσφορά περιλαμβάνει βάρη, μηχανήματα καρδιαγγειακής άσκησης, πολυόργανα, στρώματα γιόγκα και αξεσουάρ προπόνησης. Επιπλέον, λάβετε δωρεάν συμβουλές από επαγγελματία γυμναστή για τη σωστή χρήση του εξοπλισμού.", |
664 | + "31/08/2025", "25%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
569 | 665 | ||
570 | category.addItem(new OfferItem("pur19", "Πολυτελή Κλινοσκεπάσματα", | 666 | category.addItem(new OfferItem("pur19", "Πολυτελή Κλινοσκεπάσματα", |
571 | "Σεντόνια από αιγυπτιακό βαμβάκι με 30% έκπτωση", | 667 | "Σεντόνια από αιγυπτιακό βαμβάκι με 30% έκπτωση", |
572 | - "Bedroom essentials", "30%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 668 | + "Απολαύστε πολυτελή ύπνο με 30% έκπτωση σε σεντόνια από αιγυπτιακό βαμβάκι. Κατασκευασμένα από 100% αιγυπτιακό βαμβάκι μακρών ινών με ύφανση 400 νημάτων, προσφέρουν εξαιρετική απαλότητα και ανθεκτικότητα. Διαθέσιμα σε διάφορα χρώματα και μεγέθη, από μονά έως υπέρδιπλα.", |
669 | + "31/12/2025", "30%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
573 | 670 | ||
574 | category.addItem(new OfferItem("pur20", "Τσάντες Επώνυμων Οίκων", | 671 | category.addItem(new OfferItem("pur20", "Τσάντες Επώνυμων Οίκων", |
575 | "Έως και 25% έκπτωση σε επιλεγμένες επώνυμες τσάντες", | 672 | "Έως και 25% έκπτωση σε επιλεγμένες επώνυμες τσάντες", |
576 | - "Accessory sale", "25%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 673 | + "Αναβαθμίστε το στυλ σας με έως και 25% έκπτωση σε επιλεγμένες επώνυμες τσάντες. Η προσφορά περιλαμβάνει τσάντες ώμου, χειρός, backpacks και clutches από κορυφαίους σχεδιαστές. Όλες οι τσάντες είναι αυθεντικές, με πιστοποιητικό γνησιότητας και συνοδεύονται από θήκη προστασίας.", |
674 | + "31/07/2025", "25%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
577 | 675 | ||
578 | category.addItem(new OfferItem("pur21", "Έξυπνες Τηλεοράσεις", | 676 | category.addItem(new OfferItem("pur21", "Έξυπνες Τηλεοράσεις", |
579 | "€100 έκπτωση σε τηλεοράσεις 55\" και μεγαλύτερες", | 677 | "€100 έκπτωση σε τηλεοράσεις 55\" και μεγαλύτερες", |
580 | - "Entertainment sale", "€100", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 678 | + "Αναβαθμίστε την εμπειρία θέασης με €100 έκπτωση σε έξυπνες τηλεοράσεις 55\" και μεγαλύτερες. Η προσφορά περιλαμβάνει μοντέλα 4K και 8K με τεχνολογίες OLED, QLED και LED από κορυφαίους κατασκευαστές. Όλες οι τηλεοράσεις διαθέτουν έξυπνες λειτουργίες, πρόσβαση σε εφαρμογές streaming και φωνητικό έλεγχο.", |
679 | + "31/08/2025", "€100", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
581 | 680 | ||
582 | category.addItem(new OfferItem("pur22", "Χειμερινά Ρούχα", | 681 | category.addItem(new OfferItem("pur22", "Χειμερινά Ρούχα", |
583 | "Αγοράστε 3 χειμερινά είδη και πάρτε 1 δωρεάν", | 682 | "Αγοράστε 3 χειμερινά είδη και πάρτε 1 δωρεάν", |
584 | - "Winter collection", "100%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 683 | + "Προετοιμαστείτε για το χειμώνα με την προσφορά 3+1 σε χειμερινά ρούχα. Αγοράστε 3 είδη και πάρτε ένα τέταρτο εντελώς δωρεάν. Η προσφορά περιλαμβάνει πουλόβερ, μπουφάν, παλτό, κασκόλ, γάντια και σκούφους. Το δωρεάν είδος πρέπει να είναι ίσης ή χαμηλότερης αξίας από το φθηνότερο από τα τρία.", |
684 | + "31/12/2025", "100%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
585 | 685 | ||
586 | category.addItem(new OfferItem("pur23", "Σετ Μαγειρικών Σκευών", | 686 | category.addItem(new OfferItem("pur23", "Σετ Μαγειρικών Σκευών", |
587 | "Επαγγελματικά σετ μαγειρικών σκευών με 40% έκπτωση", | 687 | "Επαγγελματικά σετ μαγειρικών σκευών με 40% έκπτωση", |
588 | - "Kitchen essentials", "40%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 688 | + "Αναβαθμίστε την κουζίνα σας με 40% έκπτωση σε επαγγελματικά σετ μαγειρικών σκευών. Κάθε σετ περιλαμβάνει κατσαρόλες, τηγάνια και εργαλεία κουζίνας από υψηλής ποιότητας υλικά όπως ανοξείδωτο ατσάλι, χυτοσίδηρο ή αντικολλητικά με επίστρωση τιτανίου. Όλα τα σκεύη είναι κατάλληλα για όλες τις εστίες, συμπεριλαμβανομένων των επαγωγικών.", |
689 | + "31/12/2025", "40%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
589 | 690 | ||
590 | category.addItem(new OfferItem("pur24", "Ασύρματα Ακουστικά", | 691 | category.addItem(new OfferItem("pur24", "Ασύρματα Ακουστικά", |
591 | "Premium ασύρματα ακουστικά με €30 έκπτωση", | 692 | "Premium ασύρματα ακουστικά με €30 έκπτωση", |
592 | - "Audio sale", "€30", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 693 | + "Απολαύστε κορυφαία ποιότητα ήχου με €30 έκπτωση σε premium ασύρματα ακουστικά. Η προσφορά περιλαμβάνει μοντέλα με ενεργή ακύρωση θορύβου, μεγάλη διάρκεια μπαταρίας και εργονομικό σχεδιασμό. Διαθέσιμα σε διάφορα στυλ, από in-ear έως over-ear, για να καλύψουν όλες τις προτιμήσεις και ανάγκες.", |
694 | + "31/07/2025", "€30", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
593 | 695 | ||
594 | category.addItem(new OfferItem("pur25", "Πολυτελή Αρώματα", | 696 | category.addItem(new OfferItem("pur25", "Πολυτελή Αρώματα", |
595 | "25% έκπτωση σε αρώματα επώνυμων οίκων", | 697 | "25% έκπτωση σε αρώματα επώνυμων οίκων", |
596 | - "Beauty sale", "25%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 698 | + "Ανακαλύψτε το ιδανικό άρωμα με 25% έκπτωση σε πολυτελή αρώματα επώνυμων οίκων. Η προσφορά περιλαμβάνει κλασικές και νέες κυκλοφορίες για άνδρες και γυναίκες. Όλα τα αρώματα είναι αυθεντικά, με πλήρη συσκευασία και συνοδεύονται από δείγμα δώρο για να δοκιμάσετε και άλλες αρωματικές επιλογές.", |
699 | + "31/08/2025", "25%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
597 | 700 | ||
598 | category.addItem(new OfferItem("pur26", "Κονσόλες Παιχνιδιών", | 701 | category.addItem(new OfferItem("pur26", "Κονσόλες Παιχνιδιών", |
599 | "Δωρεάν παιχνίδι με την αγορά κονσόλας", | 702 | "Δωρεάν παιχνίδι με την αγορά κονσόλας", |
600 | - "Gaming sale", "€60", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 703 | + "Αποκτήστε την αγαπημένη σας κονσόλα παιχνιδιών και λάβετε ένα δωρεάν παιχνίδι αξίας έως €60. Η προσφορά ισχύει για όλες τις κονσόλες τελευταίας γενιάς και περιλαμβάνει τα πιο δημοφιλή παιχνίδια. Επιπλέον, λάβετε δωρεάν συνδρομή 3 μηνών στην online υπηρεσία της κονσόλας για πολλαπλό παιχνίδι.", |
704 | + "31/12/2025", "€60", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
601 | 705 | ||
602 | category.addItem(new OfferItem("pur27", "Είδη Μπάνιου", | 706 | category.addItem(new OfferItem("pur27", "Είδη Μπάνιου", |
603 | "30% έκπτωση σε είδη ανακαίνισης μπάνιου", | 707 | "30% έκπτωση σε είδη ανακαίνισης μπάνιου", |
604 | - "Home improvement", "30%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 708 | + "Ανανεώστε το μπάνιο σας με 30% έκπτωση σε όλα τα είδη ανακαίνισης. Η προσφορά περιλαμβάνει νιπτήρες, βρύσες, ντουζιέρες, μπανιέρες, έπιπλα μπάνιου και αξεσουάρ. Όλα τα προϊόντα είναι από κορυφαίους κατασκευαστές και συνοδεύονται από εγγύηση 5 ετών. Δωρεάν σχεδιασμός μπάνιου για αγορές άνω των €500.", |
709 | + "31/12/2025", "30%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
605 | 710 | ||
606 | category.addItem(new OfferItem("pur28", "Εξοπλισμός Κάμπινγκ", | 711 | category.addItem(new OfferItem("pur28", "Εξοπλισμός Κάμπινγκ", |
607 | "Αγοράστε σκηνή και πάρτε υπνόσακο στη μισή τιμή", | 712 | "Αγοράστε σκηνή και πάρτε υπνόσακο στη μισή τιμή", |
608 | - "Outdoor sale", "50%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 713 | + "Προετοιμαστείτε για την επόμενη περιπέτειά σας στη φύση με την ειδική προσφορά: αγοράστε οποιαδήποτε σκηνή και πάρτε έναν υπνόσακο με 50% έκπτωση. Η προσφορά περιλαμβάνει σκηνές όλων των μεγεθών, από ατομικές έως οικογενειακές, και υπνόσακους για όλες τις καιρικές συνθήκες.", |
714 | + "31/08/2025", "50%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
609 | 715 | ||
610 | category.addItem(new OfferItem("pur29", "Έπιπλα Γραφείου", | 716 | category.addItem(new OfferItem("pur29", "Έπιπλα Γραφείου", |
611 | "Εργονομικές καρέκλες γραφείου με 20% έκπτωση", | 717 | "Εργονομικές καρέκλες γραφείου με 20% έκπτωση", |
612 | - "Work from home", "20%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 718 | + "Βελτιώστε την εργονομία του γραφείου σας με 20% έκπτωση σε επαγγελματικές καρέκλες γραφείου. Η προσφορά περιλαμβάνει μοντέλα με ρυθμιζόμενο ύψος, στήριξη μέσης, προσκέφαλο και βραχίονες. Όλες οι καρέκλες είναι σχεδιασμένες για πολύωρη χρήση και διαθέτουν εγγύηση 5 ετών.", |
719 | + "31/12/2025", "20%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
613 | 720 | ||
614 | category.addItem(new OfferItem("pur30", "Προσφορά Κοσμημάτων", | 721 | category.addItem(new OfferItem("pur30", "Προσφορά Κοσμημάτων", |
615 | "40% έκπτωση σε συλλογή ασημένιων κοσμημάτων", | 722 | "40% έκπτωση σε συλλογή ασημένιων κοσμημάτων", |
616 | - "Accessory sale", "40%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 723 | + "Αποκτήστε κομψά ασημένια κοσμήματα με 40% έκπτωση. Η προσφορά περιλαμβάνει τη νέα συλλογή με δαχτυλίδια, κολιέ, βραχιόλια και σκουλαρίκια από ασήμι 925°. Όλα τα κοσμήματα συνοδεύονται από πιστοποιητικό γνησιότητας και κομψή συσκευασία δώρου. Ιδανικά για προσωπική χρήση ή δώρο.", |
724 | + "31/07/2025", "40%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
617 | 725 | ||
618 | category.addItem(new OfferItem("pur31", "Έξυπνα Ρολόγια", | 726 | category.addItem(new OfferItem("pur31", "Έξυπνα Ρολόγια", |
619 | "Τελευταία μοντέλα έξυπνων ρολογιών με €50 έκπτωση", | 727 | "Τελευταία μοντέλα έξυπνων ρολογιών με €50 έκπτωση", |
620 | - "Tech sale", "€50", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 728 | + "Αποκτήστε τα τελευταία μοντέλα έξυπνων ρολογιών με €50 έκπτωση. Η προσφορά περιλαμβάνει κορυφαία μοντέλα με λειτουργίες παρακολούθησης υγείας, GPS, αδιάβροχη προστασία και συνδεσιμότητα με το smartphone σας. Ιδανικά για αθλητικές δραστηριότητες, καθημερινή χρήση και παρακολούθηση της φυσικής κατάστασης.", |
729 | + "31/07/2025", "€50", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
621 | 730 | ||
622 | category.addItem(new OfferItem("pur32", "Σετ Αποσκευών", | 731 | category.addItem(new OfferItem("pur32", "Σετ Αποσκευών", |
623 | "Premium σετ αποσκευών με 35% έκπτωση", | 732 | "Premium σετ αποσκευών με 35% έκπτωση", |
624 | - "Travel essentials", "35%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | 733 | + "Ταξιδέψτε με στυλ και άνεση με 35% έκπτωση σε premium σετ αποσκευών. Κάθε σετ περιλαμβάνει βαλίτσες διαφόρων μεγεθών, κατασκευασμένες από ανθεκτικά υλικά με τροχούς 360° και κλειδαριά ασφαλείας. Διαθέσιμα σε διάφορα χρώματα και σχέδια, με εγγύηση 5 ετών για απόλυτη ανθεκτικότητα.", |
734 | + "31/08/2025", "35%", "demo_image_migato.png", "demo_migato.png", CATEGORY_PURCHASES)); | ||
625 | 735 | ||
626 | return category; | 736 | return category; |
627 | } | 737 | } | ... | ... |
... | @@ -9,6 +9,7 @@ public class OfferItem implements Serializable { | ... | @@ -9,6 +9,7 @@ public class OfferItem implements Serializable { |
9 | private String id; | 9 | private String id; |
10 | private String title; | 10 | private String title; |
11 | private String description; | 11 | private String description; |
12 | + private String fullDescription; | ||
12 | private String endDate; | 13 | private String endDate; |
13 | private String value; | 14 | private String value; |
14 | private String imageUrl; | 15 | private String imageUrl; |
... | @@ -26,18 +27,20 @@ public class OfferItem implements Serializable { | ... | @@ -26,18 +27,20 @@ public class OfferItem implements Serializable { |
26 | * | 27 | * |
27 | * @param id Unique identifier for the offer | 28 | * @param id Unique identifier for the offer |
28 | * @param title Title of the offer | 29 | * @param title Title of the offer |
29 | - * @param description Description of the offer | 30 | + * @param description Short description of the offer |
31 | + * @param fullDescription Detailed description of the offer (approximately 200 characters) | ||
30 | * @param endDate End date of the offer (formatted as string) | 32 | * @param endDate End date of the offer (formatted as string) |
31 | * @param value Value of the offer (formatted as string, e.g., "50%", "€20") | 33 | * @param value Value of the offer (formatted as string, e.g., "50%", "€20") |
32 | * @param imageUrl URL or resource name for the offer image | 34 | * @param imageUrl URL or resource name for the offer image |
33 | * @param logoUrl URL or resource name for the merchant logo | 35 | * @param logoUrl URL or resource name for the merchant logo |
34 | * @param category Category this offer belongs to | 36 | * @param category Category this offer belongs to |
35 | */ | 37 | */ |
36 | - public OfferItem(String id, String title, String description, String endDate, | 38 | + public OfferItem(String id, String title, String description, String fullDescription, String endDate, |
37 | String value, String imageUrl, String logoUrl, String category) { | 39 | String value, String imageUrl, String logoUrl, String category) { |
38 | this.id = id; | 40 | this.id = id; |
39 | this.title = title; | 41 | this.title = title; |
40 | this.description = description; | 42 | this.description = description; |
43 | + this.fullDescription = fullDescription; | ||
41 | this.endDate = endDate; | 44 | this.endDate = endDate; |
42 | this.value = value; | 45 | this.value = value; |
43 | this.imageUrl = imageUrl; | 46 | this.imageUrl = imageUrl; |
... | @@ -45,6 +48,23 @@ public class OfferItem implements Serializable { | ... | @@ -45,6 +48,23 @@ public class OfferItem implements Serializable { |
45 | this.category = category; | 48 | this.category = category; |
46 | } | 49 | } |
47 | 50 | ||
51 | + /** | ||
52 | + * Constructor for backward compatibility | ||
53 | + * | ||
54 | + * @param id Unique identifier for the offer | ||
55 | + * @param title Title of the offer | ||
56 | + * @param description Description of the offer | ||
57 | + * @param endDate End date of the offer (formatted as string) | ||
58 | + * @param value Value of the offer (formatted as string, e.g., "50%", "€20") | ||
59 | + * @param imageUrl URL or resource name for the offer image | ||
60 | + * @param logoUrl URL or resource name for the merchant logo | ||
61 | + * @param category Category this offer belongs to | ||
62 | + */ | ||
63 | + public OfferItem(String id, String title, String description, String endDate, | ||
64 | + String value, String imageUrl, String logoUrl, String category) { | ||
65 | + this(id, title, description, description, endDate, value, imageUrl, logoUrl, category); | ||
66 | + } | ||
67 | + | ||
48 | // Getters and Setters | 68 | // Getters and Setters |
49 | 69 | ||
50 | public String getId() { | 70 | public String getId() { |
... | @@ -71,6 +91,14 @@ public class OfferItem implements Serializable { | ... | @@ -71,6 +91,14 @@ public class OfferItem implements Serializable { |
71 | this.description = description; | 91 | this.description = description; |
72 | } | 92 | } |
73 | 93 | ||
94 | + public String getFullDescription() { | ||
95 | + return fullDescription; | ||
96 | + } | ||
97 | + | ||
98 | + public void setFullDescription(String fullDescription) { | ||
99 | + this.fullDescription = fullDescription; | ||
100 | + } | ||
101 | + | ||
74 | public String getEndDate() { | 102 | public String getEndDate() { |
75 | return endDate; | 103 | return endDate; |
76 | } | 104 | } | ... | ... |

2.02 KB

2.21 KB

2.34 KB

30.4 KB

249 Bytes

615 Bytes

384 Bytes

1.02 KB
1 | +<?xml version="1.0" encoding="utf-8"?> | ||
2 | +<selector xmlns:android="http://schemas.android.com/apk/res/android"> | ||
3 | + <item android:drawable="@drawable/shape_cos_black_tr" android:state_pressed="true" /> | ||
4 | + <item android:drawable="@drawable/shape_cos_black" android:state_pressed="false" /> | ||
5 | +</selector> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | +<?xml version="1.0" encoding="utf-8"?> | ||
2 | +<selector xmlns:android="http://schemas.android.com/apk/res/android"> | ||
3 | + <item android:drawable="@drawable/shape_transparent_black_border_tr" android:state_pressed="true" /> | ||
4 | + <item android:drawable="@drawable/shape_transparent_black_border" android:state_pressed="false" /> | ||
5 | +</selector> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | +<?xml version="1.0" encoding="utf-8"?> | ||
2 | +<shape xmlns:android="http://schemas.android.com/apk/res/android" | ||
3 | + android:shape="rectangle"> | ||
4 | + <corners android:radius="4dp" /> | ||
5 | + | ||
6 | + <solid | ||
7 | + android:width="2dp" | ||
8 | + android:color="@color/black2" /> | ||
9 | +</shape> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | +<?xml version="1.0" encoding="utf-8"?> | ||
2 | +<shape xmlns:android="http://schemas.android.com/apk/res/android" | ||
3 | + android:shape="rectangle"> | ||
4 | + <corners android:radius="4dp" /> | ||
5 | + | ||
6 | + <solid | ||
7 | + android:width="2dp" | ||
8 | + android:color="@color/black2_tr" /> | ||
9 | +</shape> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | +<?xml version="1.0" encoding="utf-8"?> | ||
2 | +<shape xmlns:android="http://schemas.android.com/apk/res/android" | ||
3 | + android:shape="rectangle"> | ||
4 | + <corners android:radius="4dp" /> | ||
5 | + | ||
6 | + <solid android:color="@android:color/transparent" /> | ||
7 | + | ||
8 | + <stroke | ||
9 | + android:width="1dp" | ||
10 | + android:color="@color/black2" /> | ||
11 | +</shape> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | +<?xml version="1.0" encoding="utf-8"?> | ||
2 | +<shape xmlns:android="http://schemas.android.com/apk/res/android" | ||
3 | + android:shape="rectangle"> | ||
4 | + <corners android:radius="4dp" /> | ||
5 | + | ||
6 | + <solid android:color="@android:color/transparent" /> | ||
7 | + | ||
8 | + <stroke | ||
9 | + android:width="1dp" | ||
10 | + android:color="@color/black2_tr" /> | ||
11 | +</shape> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
1 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
2 | + xmlns:app="http://schemas.android.com/apk/res-auto" | ||
3 | + xmlns:tools="http://schemas.android.com/tools" | ||
4 | + android:layout_width="match_parent" | ||
5 | + android:layout_height="match_parent" | ||
6 | + android:background="@color/cos_grey_light"> | ||
7 | + | ||
8 | + <ScrollView | ||
9 | + android:id="@+id/coupon_scrollview" | ||
10 | + android:layout_width="match_parent" | ||
11 | + android:layout_height="match_parent" | ||
12 | + android:fillViewport="true"> | ||
13 | + | ||
14 | + <LinearLayout | ||
15 | + android:id="@+id/home_content_container" | ||
16 | + android:layout_width="match_parent" | ||
17 | + android:layout_height="wrap_content" | ||
18 | + android:orientation="vertical"> | ||
19 | + | ||
20 | + <LinearLayout | ||
21 | + android:id="@+id/header_layout" | ||
22 | + android:layout_width="match_parent" | ||
23 | + android:layout_height="wrap_content" | ||
24 | + android:layout_gravity="center" | ||
25 | + android:background="@color/white" | ||
26 | + android:orientation="horizontal" | ||
27 | + android:padding="16dp"> | ||
28 | + | ||
29 | + <LinearLayout | ||
30 | + android:layout_width="0dp" | ||
31 | + android:layout_height="wrap_content" | ||
32 | + android:layout_gravity="center" | ||
33 | + android:layout_weight="1" | ||
34 | + android:orientation="horizontal"> | ||
35 | + | ||
36 | + <ImageView | ||
37 | + android:id="@+id/iv_back" | ||
38 | + android:layout_width="16dp" | ||
39 | + android:layout_height="16dp" | ||
40 | + android:layout_marginEnd="24dp" | ||
41 | + android:src="@drawable/ic_back" /> | ||
42 | + | ||
43 | + <TextView | ||
44 | + android:layout_width="wrap_content" | ||
45 | + android:layout_height="wrap_content" | ||
46 | + android:includeFontPadding="false" | ||
47 | + android:text="@string/demo_offer" | ||
48 | + android:textColor="@color/black4" | ||
49 | + android:textSize="16sp" | ||
50 | + android:textStyle="bold" /> | ||
51 | + </LinearLayout> | ||
52 | + </LinearLayout> | ||
53 | + | ||
54 | + <androidx.constraintlayout.widget.ConstraintLayout | ||
55 | + android:layout_width="match_parent" | ||
56 | + android:layout_height="210dp"> | ||
57 | + | ||
58 | + <ImageView | ||
59 | + android:id="@+id/iv_coupon_image" | ||
60 | + android:layout_width="match_parent" | ||
61 | + android:layout_height="match_parent" | ||
62 | + android:scaleType="fitXY" | ||
63 | + android:src="@drawable/demo_home_banner" | ||
64 | + app:layout_constraintBottom_toBottomOf="parent" | ||
65 | + app:layout_constraintEnd_toEndOf="parent" | ||
66 | + app:layout_constraintStart_toStartOf="parent" | ||
67 | + app:layout_constraintTop_toTopOf="parent" /> | ||
68 | + | ||
69 | + <LinearLayout | ||
70 | + android:layout_width="wrap_content" | ||
71 | + android:layout_height="wrap_content" | ||
72 | + android:layout_marginTop="8dp" | ||
73 | + android:layout_marginEnd="8dp" | ||
74 | + android:background="@drawable/demo_shape_white_border_grey" | ||
75 | + android:orientation="horizontal" | ||
76 | + android:paddingHorizontal="8dp" | ||
77 | + android:paddingVertical="3dp" | ||
78 | + app:layout_constraintEnd_toEndOf="parent" | ||
79 | + app:layout_constraintTop_toTopOf="parent"> | ||
80 | + | ||
81 | + <ImageView | ||
82 | + android:layout_width="12dp" | ||
83 | + android:layout_height="12dp" | ||
84 | + android:layout_marginEnd="4dp" | ||
85 | + android:src="@drawable/ic_info" /> | ||
86 | + | ||
87 | + <TextView | ||
88 | + android:layout_width="wrap_content" | ||
89 | + android:layout_height="wrap_content" | ||
90 | + android:includeFontPadding="false" | ||
91 | + android:text="@string/demo_more" | ||
92 | + android:textColor="@color/black4" | ||
93 | + android:textSize="11sp" /> | ||
94 | + </LinearLayout> | ||
95 | + </androidx.constraintlayout.widget.ConstraintLayout> | ||
96 | + | ||
97 | + <LinearLayout | ||
98 | + android:id="@+id/ll_coupon_info" | ||
99 | + android:layout_width="match_parent" | ||
100 | + android:layout_height="wrap_content" | ||
101 | + android:orientation="vertical" | ||
102 | + android:paddingHorizontal="16dp" | ||
103 | + android:paddingVertical="16dp"> | ||
104 | + | ||
105 | + <androidx.constraintlayout.widget.ConstraintLayout | ||
106 | + android:layout_width="match_parent" | ||
107 | + android:layout_height="wrap_content" | ||
108 | + android:gravity="center_vertical" | ||
109 | + android:orientation="horizontal"> | ||
110 | + | ||
111 | + <LinearLayout | ||
112 | + android:id="@+id/ll_info" | ||
113 | + android:layout_width="0dp" | ||
114 | + android:layout_height="wrap_content" | ||
115 | + android:orientation="vertical" | ||
116 | + android:paddingEnd="16dp" | ||
117 | + app:layout_constraintBottom_toBottomOf="parent" | ||
118 | + app:layout_constraintEnd_toStartOf="@+id/ll_buttons" | ||
119 | + app:layout_constraintStart_toStartOf="parent" | ||
120 | + app:layout_constraintTop_toTopOf="parent"> | ||
121 | + | ||
122 | + <TextView | ||
123 | + android:id="@+id/tv_coupon_value" | ||
124 | + android:layout_width="wrap_content" | ||
125 | + android:layout_height="wrap_content" | ||
126 | + android:includeFontPadding="false" | ||
127 | + android:maxLines="1" | ||
128 | + android:textColor="@color/pink2" | ||
129 | + android:textSize="23sp" | ||
130 | + android:textStyle="bold" | ||
131 | + tools:text="@string/demo_more" /> | ||
132 | + | ||
133 | + <TextView | ||
134 | + android:id="@+id/tv_coupon_small_description" | ||
135 | + android:layout_width="wrap_content" | ||
136 | + android:layout_height="wrap_content" | ||
137 | + android:layout_marginTop="2dp" | ||
138 | + android:ellipsize="end" | ||
139 | + android:includeFontPadding="false" | ||
140 | + android:maxLines="1" | ||
141 | + android:text="@string/demo_purchases" | ||
142 | + android:textColor="@color/black5" | ||
143 | + android:textSize="17sp" /> | ||
144 | + </LinearLayout> | ||
145 | + | ||
146 | + <LinearLayout | ||
147 | + android:id="@+id/ll_buttons" | ||
148 | + android:layout_width="wrap_content" | ||
149 | + android:layout_height="wrap_content" | ||
150 | + android:orientation="horizontal" | ||
151 | + app:layout_constraintBottom_toBottomOf="parent" | ||
152 | + app:layout_constraintEnd_toEndOf="parent" | ||
153 | + app:layout_constraintTop_toTopOf="parent"> | ||
154 | + | ||
155 | + <ImageView | ||
156 | + android:layout_width="40dp" | ||
157 | + android:layout_height="40dp" | ||
158 | + android:layout_marginEnd="8dp" | ||
159 | + android:src="@drawable/demo_heart_border" /> | ||
160 | + | ||
161 | + <ImageView | ||
162 | + android:layout_width="40dp" | ||
163 | + android:layout_height="40dp" | ||
164 | + android:src="@drawable/demo_folder" /> | ||
165 | + </LinearLayout> | ||
166 | + </androidx.constraintlayout.widget.ConstraintLayout> | ||
167 | + | ||
168 | + <TextView | ||
169 | + android:id="@+id/tv_coupon_end_date" | ||
170 | + android:layout_width="wrap_content" | ||
171 | + android:layout_height="wrap_content" | ||
172 | + android:layout_marginTop="14dp" | ||
173 | + android:includeFontPadding="false" | ||
174 | + android:textColor="@color/black5" | ||
175 | + android:textSize="13sp" | ||
176 | + tools:text="@string/demo_purchases" /> | ||
177 | + | ||
178 | + <TextView | ||
179 | + android:id="@+id/tv_coupon_full_description" | ||
180 | + android:layout_width="match_parent" | ||
181 | + android:layout_height="wrap_content" | ||
182 | + android:layout_marginTop="16dp" | ||
183 | + android:ellipsize="end" | ||
184 | + android:lineSpacingExtra="4dp" | ||
185 | + android:maxLines="4" | ||
186 | + android:textColor="@color/black5" | ||
187 | + android:textSize="17sp" | ||
188 | + tools:text="Πάρτε τα πακέτα κινητής στη μισή τιμή μόνο αυτό το μήνα. Απεριόριστα λεπτά προς όλα τα δίκτυα, SMS και 50GB δεδομένα υψηλής ταχύτητας. Ισχύει για νέους συνδρομητές και ανανεώσεις συμβολαίων. Δωρεάν ενεργοποίηση και τεχνική υποστήριξη." /> | ||
189 | + | ||
190 | + <TextView | ||
191 | + android:id="@+id/tv_more_button" | ||
192 | + android:layout_width="wrap_content" | ||
193 | + android:layout_height="wrap_content" | ||
194 | + android:layout_gravity="end" | ||
195 | + android:layout_marginTop="2dp" | ||
196 | + android:text="@string/demo_more" | ||
197 | + android:textColor="@color/skyblue" | ||
198 | + android:textSize="15sp" | ||
199 | + android:visibility="gone" /> | ||
200 | + | ||
201 | + <LinearLayout | ||
202 | + android:id="@+id/coupon_code_container" | ||
203 | + android:layout_width="match_parent" | ||
204 | + android:layout_height="wrap_content" | ||
205 | + android:layout_marginTop="32dp" | ||
206 | + android:background="@drawable/shape_cos_white" | ||
207 | + android:orientation="vertical" | ||
208 | + android:padding="16dp"> | ||
209 | + | ||
210 | + <LinearLayout | ||
211 | + android:id="@+id/coupon_code_header" | ||
212 | + android:layout_width="match_parent" | ||
213 | + android:layout_height="wrap_content" | ||
214 | + android:gravity="center_vertical" | ||
215 | + android:orientation="horizontal"> | ||
216 | + | ||
217 | + <TextView | ||
218 | + android:layout_width="0dp" | ||
219 | + android:layout_height="wrap_content" | ||
220 | + android:layout_weight="1" | ||
221 | + android:text="@string/demo_coupon_code" | ||
222 | + android:textColor="@color/black2" | ||
223 | + android:textSize="15sp" /> | ||
224 | + | ||
225 | + <ImageView | ||
226 | + android:id="@+id/iv_coupon_arrow" | ||
227 | + android:layout_width="12dp" | ||
228 | + android:layout_height="12dp" | ||
229 | + android:src="@drawable/ic_arrow_down" /> | ||
230 | + </LinearLayout> | ||
231 | + | ||
232 | + <LinearLayout | ||
233 | + android:id="@+id/coupon_code_content" | ||
234 | + android:layout_width="match_parent" | ||
235 | + android:layout_height="wrap_content" | ||
236 | + android:layout_marginTop="24dp" | ||
237 | + android:layout_marginBottom="16dp" | ||
238 | + android:gravity="center_vertical" | ||
239 | + android:orientation="horizontal" | ||
240 | + android:visibility="gone"> | ||
241 | + | ||
242 | + <TextView | ||
243 | + android:id="@+id/tv_coupon_code" | ||
244 | + android:layout_width="wrap_content" | ||
245 | + android:layout_height="wrap_content" | ||
246 | + android:layout_marginEnd="12dp" | ||
247 | + android:includeFontPadding="false" | ||
248 | + android:text="test_coupon_code" | ||
249 | + android:textColor="@color/black2" | ||
250 | + android:textSize="23sp" | ||
251 | + android:textStyle="bold" /> | ||
252 | + | ||
253 | + <ImageView | ||
254 | + android:id="@+id/iv_copy_code" | ||
255 | + android:layout_width="32dp" | ||
256 | + android:layout_height="32dp" | ||
257 | + android:src="@drawable/demo_copy" /> | ||
258 | + </LinearLayout> | ||
259 | + </LinearLayout> | ||
260 | + | ||
261 | + <LinearLayout | ||
262 | + android:id="@+id/qr_code_container" | ||
263 | + android:layout_width="match_parent" | ||
264 | + android:layout_height="wrap_content" | ||
265 | + android:layout_marginTop="16dp" | ||
266 | + android:background="@drawable/shape_cos_white" | ||
267 | + android:orientation="vertical" | ||
268 | + android:padding="16dp"> | ||
269 | + | ||
270 | + <LinearLayout | ||
271 | + android:id="@+id/qr_code_header" | ||
272 | + android:layout_width="match_parent" | ||
273 | + android:layout_height="wrap_content" | ||
274 | + android:gravity="center_vertical" | ||
275 | + android:orientation="horizontal"> | ||
276 | + | ||
277 | + <TextView | ||
278 | + android:layout_width="0dp" | ||
279 | + android:layout_height="wrap_content" | ||
280 | + android:layout_weight="1" | ||
281 | + android:text="@string/demo_qr_code" | ||
282 | + android:textColor="@color/black2" | ||
283 | + android:textSize="15sp" /> | ||
284 | + | ||
285 | + <ImageView | ||
286 | + android:id="@+id/iv_qr_arrow" | ||
287 | + android:layout_width="12dp" | ||
288 | + android:layout_height="12dp" | ||
289 | + android:src="@drawable/ic_arrow_down" /> | ||
290 | + </LinearLayout> | ||
291 | + | ||
292 | + <LinearLayout | ||
293 | + android:id="@+id/qr_code_content" | ||
294 | + android:layout_width="match_parent" | ||
295 | + android:layout_height="wrap_content" | ||
296 | + android:layout_marginTop="16dp" | ||
297 | + android:gravity="center" | ||
298 | + android:orientation="vertical" | ||
299 | + android:visibility="gone"> | ||
300 | + | ||
301 | + <ImageView | ||
302 | + android:id="@+id/iv_qr_code" | ||
303 | + android:layout_width="200dp" | ||
304 | + android:layout_height="200dp" | ||
305 | + android:layout_marginVertical="16dp" | ||
306 | + android:scaleType="fitCenter" | ||
307 | + android:src="@drawable/demo_qr" /> | ||
308 | + </LinearLayout> | ||
309 | + </LinearLayout> | ||
310 | + | ||
311 | + <LinearLayout | ||
312 | + android:id="@+id/terms_container" | ||
313 | + android:layout_width="match_parent" | ||
314 | + android:layout_height="wrap_content" | ||
315 | + android:layout_marginTop="48dp" | ||
316 | + android:orientation="vertical" | ||
317 | + android:paddingHorizontal="2dp"> | ||
318 | + | ||
319 | + <LinearLayout | ||
320 | + android:id="@+id/terms_header" | ||
321 | + android:layout_width="match_parent" | ||
322 | + android:layout_height="wrap_content" | ||
323 | + android:gravity="center_vertical" | ||
324 | + android:orientation="horizontal"> | ||
325 | + | ||
326 | + <TextView | ||
327 | + android:layout_width="wrap_content" | ||
328 | + android:layout_height="wrap_content" | ||
329 | + android:text="@string/demo_terms" | ||
330 | + android:textColor="@color/black2" | ||
331 | + android:textSize="15sp" | ||
332 | + android:textStyle="bold" /> | ||
333 | + | ||
334 | + <ImageView | ||
335 | + android:id="@+id/iv_terms_arrow" | ||
336 | + android:layout_width="8dp" | ||
337 | + android:layout_height="8dp" | ||
338 | + android:layout_marginStart="4dp" | ||
339 | + android:layout_marginTop="2dp" | ||
340 | + android:src="@drawable/ic_arrow_down" /> | ||
341 | + </LinearLayout> | ||
342 | + | ||
343 | + <LinearLayout | ||
344 | + android:id="@+id/terms_content" | ||
345 | + android:layout_width="match_parent" | ||
346 | + android:layout_height="wrap_content" | ||
347 | + android:layout_marginTop="16dp" | ||
348 | + android:orientation="vertical" | ||
349 | + android:visibility="gone"> | ||
350 | + | ||
351 | + <TextView | ||
352 | + android:id="@+id/tv_terms_text" | ||
353 | + android:layout_width="match_parent" | ||
354 | + android:layout_height="wrap_content" | ||
355 | + android:layout_marginBottom="8dp" | ||
356 | + android:lineSpacingExtra="4dp" | ||
357 | + android:text="@string/demo_lorem_ipsum" | ||
358 | + android:textColor="@color/black2" | ||
359 | + android:textSize="15sp" /> | ||
360 | + </LinearLayout> | ||
361 | + </LinearLayout> | ||
362 | + | ||
363 | + <LinearLayout | ||
364 | + android:layout_width="match_parent" | ||
365 | + android:layout_height="55dp" | ||
366 | + android:layout_marginTop="48dp" | ||
367 | + android:background="@drawable/selector_button_black" | ||
368 | + android:gravity="center" | ||
369 | + android:orientation="horizontal"> | ||
370 | + | ||
371 | + <TextView | ||
372 | + android:layout_width="wrap_content" | ||
373 | + android:layout_height="wrap_content" | ||
374 | + android:text="@string/demo_shops" | ||
375 | + android:textColor="@color/white" | ||
376 | + android:textStyle="bold" | ||
377 | + android:textSize="15sp" /> | ||
378 | + </LinearLayout> | ||
379 | + | ||
380 | + <LinearLayout | ||
381 | + android:layout_width="match_parent" | ||
382 | + android:layout_height="55dp" | ||
383 | + android:layout_marginTop="20dp" | ||
384 | + android:background="@drawable/selector_button_transparent_black_border" | ||
385 | + android:gravity="center" | ||
386 | + android:orientation="horizontal"> | ||
387 | + | ||
388 | + <TextView | ||
389 | + android:layout_width="wrap_content" | ||
390 | + android:layout_height="wrap_content" | ||
391 | + android:text="@string/demo_website" | ||
392 | + android:textColor="@color/black2" | ||
393 | + android:textStyle="bold" | ||
394 | + android:textSize="15sp" /> | ||
395 | + </LinearLayout> | ||
396 | + </LinearLayout> | ||
397 | + </LinearLayout> | ||
398 | + </ScrollView> | ||
399 | +</RelativeLayout> |
... | @@ -12,11 +12,17 @@ | ... | @@ -12,11 +12,17 @@ |
12 | <color name="cos_skyblue2">#22A9B5</color> | 12 | <color name="cos_skyblue2">#22A9B5</color> |
13 | <color name="blue_dark">#3A5266</color> | 13 | <color name="blue_dark">#3A5266</color> |
14 | <color name="white">#FFFFFF</color> | 14 | <color name="white">#FFFFFF</color> |
15 | + <color name="white_tr">#66FFFFFF</color> | ||
15 | <color name="cos_green5">#79BF14</color> | 16 | <color name="cos_green5">#79BF14</color> |
16 | <color name="black2">#000F1E</color> | 17 | <color name="black2">#000F1E</color> |
18 | + <color name="black2_tr">#66000F1E</color> | ||
17 | <color name="black3">#00111B</color> | 19 | <color name="black3">#00111B</color> |
18 | <color name="grey">#CCCCCC</color> | 20 | <color name="grey">#CCCCCC</color> |
19 | <color name="pink">#EE417D</color> | 21 | <color name="pink">#EE417D</color> |
22 | + <color name="black4">#0D1B29</color> | ||
23 | + <color name="black5">#020E1C</color> | ||
24 | + <color name="pink2">#F2709D</color> | ||
25 | + <color name="skyblue">#00A3E0</color> | ||
20 | 26 | ||
21 | <!-- Used in styles --> | 27 | <!-- Used in styles --> |
22 | <color name="cos_light_blue">#00A5E3</color> | 28 | <color name="cos_light_blue">#00A5E3</color> | ... | ... |
... | @@ -11,4 +11,16 @@ | ... | @@ -11,4 +11,16 @@ |
11 | <string name="demo_sm_flow">Open SM Flow</string> | 11 | <string name="demo_sm_flow">Open SM Flow</string> |
12 | <string name="demo_sm_map">Open SM Map</string> | 12 | <string name="demo_sm_map">Open SM Map</string> |
13 | <string name="demo_all">Όλα</string> | 13 | <string name="demo_all">Όλα</string> |
14 | + <string name="demo_offer">Προσφορά</string> | ||
15 | + <string name="demo_more">Περισσότερα</string> | ||
16 | + <string name="demo_less">Λιγότερα</string> | ||
17 | + <string name="demo_purchases">για αγορές</string> | ||
18 | + <string name="demo_valid_until">Η προσφορά ισχύει έως %1$s</string> | ||
19 | + <string name="demo_coupon_code">Κωδικός Κουπονιού</string> | ||
20 | + <string name="demo_qr_code">QR Κουπονιού</string> | ||
21 | + <string name="demo_terms">Όροι Χρήσης</string> | ||
22 | + <string name="demo_copy_success">Ο κωδικός αντιγράφηκε στο πρόχειρο</string> | ||
23 | + <string name="demo_lorem_ipsum">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</string> | ||
24 | + <string name="demo_shops">Καταστήματα κοντά μου</string> | ||
25 | + <string name="demo_website">Δες το website</string> | ||
14 | </resources> | 26 | </resources> | ... | ... |
-
Please register or login to post a comment