Panagiotis Triantafyllou

deh part4

...@@ -6,12 +6,20 @@ import android.os.Bundle; ...@@ -6,12 +6,20 @@ import android.os.Bundle;
6 import android.util.TypedValue; 6 import android.util.TypedValue;
7 import android.view.View; 7 import android.view.View;
8 import android.widget.ImageView; 8 import android.widget.ImageView;
9 +import android.widget.LinearLayout;
9 import android.widget.TextView; 10 import android.widget.TextView;
10 11
12 +import androidx.annotation.NonNull;
11 import androidx.recyclerview.widget.LinearLayoutManager; 13 import androidx.recyclerview.widget.LinearLayoutManager;
12 import androidx.recyclerview.widget.RecyclerView; 14 import androidx.recyclerview.widget.RecyclerView;
15 +import androidx.viewpager2.widget.ViewPager2;
16 +
17 +import java.util.ArrayList;
18 +import java.util.Arrays;
19 +import java.util.List;
13 20
14 import ly.warp.sdk.R; 21 import ly.warp.sdk.R;
22 +import ly.warp.sdk.io.adapters.BannerAdapter;
15 import ly.warp.sdk.io.adapters.OfferAdapter; 23 import ly.warp.sdk.io.adapters.OfferAdapter;
16 import ly.warp.sdk.io.models.DummyDataProvider; 24 import ly.warp.sdk.io.models.DummyDataProvider;
17 import ly.warp.sdk.io.models.OfferCategory; 25 import ly.warp.sdk.io.models.OfferCategory;
...@@ -28,7 +36,10 @@ public class HomeActivity extends Activity implements View.OnClickListener, Offe ...@@ -28,7 +36,10 @@ public class HomeActivity extends Activity implements View.OnClickListener, Offe
28 // =========================================================== 36 // ===========================================================
29 // Fields 37 // Fields
30 // =========================================================== 38 // ===========================================================
31 - private ImageView mIvBanner; 39 + private ViewPager2 mBannerViewPager;
40 + private BannerAdapter mBannerAdapter;
41 + private LinearLayout mDotsContainer;
42 + private List<ImageView> mDots;
32 43
33 // Category sections 44 // Category sections
34 private TextView mTvCategoryTopOffers; 45 private TextView mTvCategoryTopOffers;
...@@ -95,9 +106,7 @@ public class HomeActivity extends Activity implements View.OnClickListener, Offe ...@@ -95,9 +106,7 @@ public class HomeActivity extends Activity implements View.OnClickListener, Offe
95 106
96 @Override 107 @Override
97 public void onClick(View v) { 108 public void onClick(View v) {
98 - if (v.getId() == R.id.banner_icon) { 109 + // No longer needed as banner clicks are handled by the adapter
99 - WarplyManagerHelper.openContest(this);
100 - }
101 } 110 }
102 111
103 @Override 112 @Override
...@@ -117,9 +126,8 @@ public class HomeActivity extends Activity implements View.OnClickListener, Offe ...@@ -117,9 +126,8 @@ public class HomeActivity extends Activity implements View.OnClickListener, Offe
117 // =========================================================== 126 // ===========================================================
118 127
119 private void initViews() { 128 private void initViews() {
120 - // Initialize banner 129 + // Initialize banner carousel
121 - mIvBanner = findViewById(R.id.banner_icon); 130 + setupBannerCarousel();
122 - mIvBanner.setOnClickListener(this);
123 131
124 // Initialize Top Offers section 132 // Initialize Top Offers section
125 mTvCategoryTopOffers = findViewById(R.id.tv_recycler_category1); 133 mTvCategoryTopOffers = findViewById(R.id.tv_recycler_category1);
...@@ -378,6 +386,89 @@ public class HomeActivity extends Activity implements View.OnClickListener, Offe ...@@ -378,6 +386,89 @@ public class HomeActivity extends Activity implements View.OnClickListener, Offe
378 } 386 }
379 387
380 // =========================================================== 388 // ===========================================================
381 - // Inner and Anonymous Classes 389 + // Methods
382 // =========================================================== 390 // ===========================================================
391 +
392 + /**
393 + * Sets up the banner carousel with ViewPager2 and pagination dots
394 + */
395 + private void setupBannerCarousel() {
396 + mBannerViewPager = findViewById(R.id.banner_viewpager);
397 + mDotsContainer = findViewById(R.id.dots_container);
398 +
399 + // Setup adapter with 5 banner images
400 + List<Integer> bannerImages = getBannerImages();
401 + mBannerAdapter = new BannerAdapter(this, bannerImages);
402 + mBannerAdapter.setOnBannerClickListener(position -> {
403 + // Handle banner click (same as the original banner click)
404 + WarplyManagerHelper.openContest(this);
405 + });
406 +
407 + mBannerViewPager.setAdapter(mBannerAdapter);
408 +
409 + // Setup pagination dots
410 + setupPaginationDots(bannerImages.size());
411 +
412 + // Handle page changes
413 + mBannerViewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
414 + @Override
415 + public void onPageSelected(int position) {
416 + updateDots(position);
417 + }
418 + });
419 + }
420 +
421 + /**
422 + * Returns a list of banner image resource IDs
423 + */
424 + private List<Integer> getBannerImages() {
425 + return Arrays.asList(
426 + R.drawable.demo_home_banner1,
427 + R.drawable.demo_home_banner2,
428 + R.drawable.demo_home_banner3,
429 + R.drawable.demo_home_banner4,
430 + R.drawable.demo_home_banner5
431 + );
432 + }
433 +
434 + /**
435 + * Sets up the pagination dots
436 + * @param count Number of dots to display
437 + */
438 + private void setupPaginationDots(int count) {
439 + mDots = new ArrayList<>();
440 + mDotsContainer.removeAllViews();
441 +
442 + // Create dots
443 + for (int i = 0; i < count; i++) {
444 + ImageView dot = new ImageView(this);
445 +
446 + // Set dot appearance
447 + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
448 + LinearLayout.LayoutParams.WRAP_CONTENT,
449 + LinearLayout.LayoutParams.WRAP_CONTENT
450 + );
451 +
452 + // Add margin between dots
453 + params.setMargins(8, 0, 8, 0);
454 + dot.setLayoutParams(params);
455 +
456 + // Set initial state (first dot active, others inactive)
457 + dot.setImageResource(i == 0 ? R.drawable.dot_active : R.drawable.dot_inactive);
458 +
459 + // Add to container and list
460 + mDotsContainer.addView(dot);
461 + mDots.add(dot);
462 + }
463 + }
464 +
465 + /**
466 + * Updates the dots to reflect the current page
467 + * @param position Current page position
468 + */
469 + private void updateDots(int position) {
470 + for (int i = 0; i < mDots.size(); i++) {
471 + mDots.get(i).setImageResource(i == position ? R.drawable.dot_active : R.drawable.dot_inactive);
472 + }
473 + }
383 } 474 }
......
...@@ -179,7 +179,7 @@ public class SingleCouponActivity extends Activity implements View.OnClickListen ...@@ -179,7 +179,7 @@ public class SingleCouponActivity extends Activity implements View.OnClickListen
179 // Populate views with offer data 179 // Populate views with offer data
180 if (mOfferItem != null) { 180 if (mOfferItem != null) {
181 mTvValue.setText(mOfferItem.getValue()); 181 mTvValue.setText(mOfferItem.getValue());
182 - mTvSmallDescription.setText(mOfferItem.getDescription()); 182 +// mTvSmallDescription.setText(mOfferItem.getDescription());
183 183
184 // Store the full description text 184 // Store the full description text
185 mFullDescriptionText = mOfferItem.getFullDescription(); 185 mFullDescriptionText = mOfferItem.getFullDescription();
......
1 +package ly.warp.sdk.io.adapters;
2 +
3 +import android.content.Context;
4 +import android.view.LayoutInflater;
5 +import android.view.View;
6 +import android.view.ViewGroup;
7 +import android.widget.ImageView;
8 +
9 +import androidx.annotation.NonNull;
10 +import androidx.recyclerview.widget.RecyclerView;
11 +
12 +import java.util.List;
13 +
14 +import ly.warp.sdk.R;
15 +
16 +public class BannerAdapter extends RecyclerView.Adapter<BannerAdapter.BannerViewHolder> {
17 +
18 + private final Context mContext;
19 + private final List<Integer> mBannerImages;
20 + private OnBannerClickListener mListener;
21 +
22 + public interface OnBannerClickListener {
23 + void onBannerClick(int position);
24 + }
25 +
26 + public BannerAdapter(Context context, List<Integer> bannerImages) {
27 + this.mContext = context;
28 + this.mBannerImages = bannerImages;
29 + }
30 +
31 + public void setOnBannerClickListener(OnBannerClickListener listener) {
32 + this.mListener = listener;
33 + }
34 +
35 + @NonNull
36 + @Override
37 + public BannerViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
38 + View view = LayoutInflater.from(mContext).inflate(R.layout.item_banner, parent, false);
39 + return new BannerViewHolder(view);
40 + }
41 +
42 + @Override
43 + public void onBindViewHolder(@NonNull BannerViewHolder holder, int position) {
44 + holder.imageView.setImageResource(mBannerImages.get(position));
45 +
46 + holder.itemView.setOnClickListener(v -> {
47 + if (mListener != null) {
48 + mListener.onBannerClick(position);
49 + }
50 + });
51 + }
52 +
53 + @Override
54 + public int getItemCount() {
55 + return mBannerImages.size();
56 + }
57 +
58 + static class BannerViewHolder extends RecyclerView.ViewHolder {
59 + ImageView imageView;
60 +
61 + BannerViewHolder(@NonNull View itemView) {
62 + super(itemView);
63 + imageView = itemView.findViewById(R.id.iv_banner);
64 + }
65 + }
66 +}
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<shape xmlns:android="http://schemas.android.com/apk/res/android"
3 + android:shape="oval">
4 + <solid android:color="@color/pink3" />
5 + <size android:width="8dp" android:height="8dp" />
6 +</shape>
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<shape xmlns:android="http://schemas.android.com/apk/res/android"
3 + android:shape="oval">
4 + <solid android:color="@color/grey2" />
5 + <size android:width="8dp" android:height="8dp" />
6 +</shape>
1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
2 + xmlns:app="http://schemas.android.com/apk/res-auto"
2 xmlns:tools="http://schemas.android.com/tools" 3 xmlns:tools="http://schemas.android.com/tools"
3 android:layout_width="match_parent" 4 android:layout_width="match_parent"
4 android:layout_height="match_parent" 5 android:layout_height="match_parent"
...@@ -53,12 +54,31 @@ ...@@ -53,12 +54,31 @@
53 android:src="@drawable/demo_profile" /> 54 android:src="@drawable/demo_profile" />
54 </LinearLayout> 55 </LinearLayout>
55 56
56 - <ImageView 57 + <androidx.constraintlayout.widget.ConstraintLayout
57 - android:id="@+id/banner_icon"
58 android:layout_width="match_parent" 58 android:layout_width="match_parent"
59 - android:layout_height="320dp" 59 + android:layout_height="wrap_content">
60 - android:scaleType="fitXY" 60 +
61 - android:src="@drawable/demo_home_banner" /> 61 + <androidx.viewpager2.widget.ViewPager2
62 + android:id="@+id/banner_viewpager"
63 + android:layout_width="match_parent"
64 + android:layout_height="320dp"
65 + app:layout_constraintBottom_toBottomOf="parent"
66 + app:layout_constraintEnd_toEndOf="parent"
67 + app:layout_constraintStart_toStartOf="parent"
68 + app:layout_constraintTop_toTopOf="parent" />
69 +
70 + <LinearLayout
71 + android:id="@+id/dots_container"
72 + android:layout_width="match_parent"
73 + android:layout_height="50dp"
74 + android:background="@color/cos_grey_light"
75 + android:gravity="center"
76 + android:orientation="horizontal"
77 + android:padding="4dp"
78 + app:layout_constraintBottom_toBottomOf="parent"
79 + app:layout_constraintEnd_toEndOf="parent"
80 + app:layout_constraintStart_toStartOf="parent" />
81 + </androidx.constraintlayout.widget.ConstraintLayout>
62 82
63 <!-- Top Offers Section --> 83 <!-- Top Offers Section -->
64 <RelativeLayout 84 <RelativeLayout
...@@ -71,8 +91,8 @@ ...@@ -71,8 +91,8 @@
71 android:layout_width="match_parent" 91 android:layout_width="match_parent"
72 android:layout_height="wrap_content" 92 android:layout_height="wrap_content"
73 android:layout_gravity="center" 93 android:layout_gravity="center"
74 - android:paddingHorizontal="16dp" 94 + android:orientation="horizontal"
75 - android:orientation="horizontal"> 95 + android:paddingHorizontal="16dp">
76 96
77 <TextView 97 <TextView
78 android:id="@+id/tv_recycler_category1" 98 android:id="@+id/tv_recycler_category1"
...@@ -101,9 +121,9 @@ ...@@ -101,9 +121,9 @@
101 android:layout_height="wrap_content" 121 android:layout_height="wrap_content"
102 android:layout_below="@+id/ll_recycler1" 122 android:layout_below="@+id/ll_recycler1"
103 android:layout_marginTop="16dp" 123 android:layout_marginTop="16dp"
124 + android:clipToPadding="false"
104 android:orientation="horizontal" 125 android:orientation="horizontal"
105 - android:paddingHorizontal="16dp" 126 + android:paddingHorizontal="16dp" />
106 - android:clipToPadding="false" />
107 </RelativeLayout> 127 </RelativeLayout>
108 128
109 <!-- Favorites Section --> 129 <!-- Favorites Section -->
...@@ -117,8 +137,8 @@ ...@@ -117,8 +137,8 @@
117 android:layout_width="match_parent" 137 android:layout_width="match_parent"
118 android:layout_height="wrap_content" 138 android:layout_height="wrap_content"
119 android:layout_gravity="center" 139 android:layout_gravity="center"
120 - android:paddingHorizontal="16dp" 140 + android:orientation="horizontal"
121 - android:orientation="horizontal"> 141 + android:paddingHorizontal="16dp">
122 142
123 <TextView 143 <TextView
124 android:id="@+id/tv_recycler_category2" 144 android:id="@+id/tv_recycler_category2"
...@@ -147,9 +167,9 @@ ...@@ -147,9 +167,9 @@
147 android:layout_height="wrap_content" 167 android:layout_height="wrap_content"
148 android:layout_below="@+id/ll_recycler2" 168 android:layout_below="@+id/ll_recycler2"
149 android:layout_marginTop="16dp" 169 android:layout_marginTop="16dp"
170 + android:clipToPadding="false"
150 android:orientation="horizontal" 171 android:orientation="horizontal"
151 - android:paddingHorizontal="16dp" 172 + android:paddingHorizontal="16dp" />
152 - android:clipToPadding="false" />
153 </RelativeLayout> 173 </RelativeLayout>
154 174
155 <!-- Viability Section --> 175 <!-- Viability Section -->
...@@ -163,8 +183,8 @@ ...@@ -163,8 +183,8 @@
163 android:layout_width="match_parent" 183 android:layout_width="match_parent"
164 android:layout_height="wrap_content" 184 android:layout_height="wrap_content"
165 android:layout_gravity="center" 185 android:layout_gravity="center"
166 - android:paddingHorizontal="16dp" 186 + android:orientation="horizontal"
167 - android:orientation="horizontal"> 187 + android:paddingHorizontal="16dp">
168 188
169 <TextView 189 <TextView
170 android:id="@+id/tv_recycler_category3" 190 android:id="@+id/tv_recycler_category3"
...@@ -193,9 +213,9 @@ ...@@ -193,9 +213,9 @@
193 android:layout_height="wrap_content" 213 android:layout_height="wrap_content"
194 android:layout_below="@+id/ll_recycler3" 214 android:layout_below="@+id/ll_recycler3"
195 android:layout_marginTop="16dp" 215 android:layout_marginTop="16dp"
216 + android:clipToPadding="false"
196 android:orientation="horizontal" 217 android:orientation="horizontal"
197 - android:paddingHorizontal="16dp" 218 + android:paddingHorizontal="16dp" />
198 - android:clipToPadding="false" />
199 </RelativeLayout> 219 </RelativeLayout>
200 220
201 <!-- Family Section --> 221 <!-- Family Section -->
...@@ -209,8 +229,8 @@ ...@@ -209,8 +229,8 @@
209 android:layout_width="match_parent" 229 android:layout_width="match_parent"
210 android:layout_height="wrap_content" 230 android:layout_height="wrap_content"
211 android:layout_gravity="center" 231 android:layout_gravity="center"
212 - android:paddingHorizontal="16dp" 232 + android:orientation="horizontal"
213 - android:orientation="horizontal"> 233 + android:paddingHorizontal="16dp">
214 234
215 <TextView 235 <TextView
216 android:id="@+id/tv_recycler_category4" 236 android:id="@+id/tv_recycler_category4"
...@@ -239,9 +259,9 @@ ...@@ -239,9 +259,9 @@
239 android:layout_height="wrap_content" 259 android:layout_height="wrap_content"
240 android:layout_below="@+id/ll_recycler4" 260 android:layout_below="@+id/ll_recycler4"
241 android:layout_marginTop="16dp" 261 android:layout_marginTop="16dp"
262 + android:clipToPadding="false"
242 android:orientation="horizontal" 263 android:orientation="horizontal"
243 - android:paddingHorizontal="16dp" 264 + android:paddingHorizontal="16dp" />
244 - android:clipToPadding="false" />
245 </RelativeLayout> 265 </RelativeLayout>
246 266
247 <!-- Food and Coffee Section --> 267 <!-- Food and Coffee Section -->
...@@ -255,8 +275,8 @@ ...@@ -255,8 +275,8 @@
255 android:layout_width="match_parent" 275 android:layout_width="match_parent"
256 android:layout_height="wrap_content" 276 android:layout_height="wrap_content"
257 android:layout_gravity="center" 277 android:layout_gravity="center"
258 - android:paddingHorizontal="16dp" 278 + android:orientation="horizontal"
259 - android:orientation="horizontal"> 279 + android:paddingHorizontal="16dp">
260 280
261 <TextView 281 <TextView
262 android:id="@+id/tv_recycler_category5" 282 android:id="@+id/tv_recycler_category5"
...@@ -285,9 +305,9 @@ ...@@ -285,9 +305,9 @@
285 android:layout_height="wrap_content" 305 android:layout_height="wrap_content"
286 android:layout_below="@+id/ll_recycler5" 306 android:layout_below="@+id/ll_recycler5"
287 android:layout_marginTop="16dp" 307 android:layout_marginTop="16dp"
308 + android:clipToPadding="false"
288 android:orientation="horizontal" 309 android:orientation="horizontal"
289 - android:paddingHorizontal="16dp" 310 + android:paddingHorizontal="16dp" />
290 - android:clipToPadding="false" />
291 </RelativeLayout> 311 </RelativeLayout>
292 312
293 <!-- Travelling Section --> 313 <!-- Travelling Section -->
...@@ -301,8 +321,8 @@ ...@@ -301,8 +321,8 @@
301 android:layout_width="match_parent" 321 android:layout_width="match_parent"
302 android:layout_height="wrap_content" 322 android:layout_height="wrap_content"
303 android:layout_gravity="center" 323 android:layout_gravity="center"
304 - android:paddingHorizontal="16dp" 324 + android:orientation="horizontal"
305 - android:orientation="horizontal"> 325 + android:paddingHorizontal="16dp">
306 326
307 <TextView 327 <TextView
308 android:id="@+id/tv_recycler_category6" 328 android:id="@+id/tv_recycler_category6"
...@@ -331,9 +351,9 @@ ...@@ -331,9 +351,9 @@
331 android:layout_height="wrap_content" 351 android:layout_height="wrap_content"
332 android:layout_below="@+id/ll_recycler6" 352 android:layout_below="@+id/ll_recycler6"
333 android:layout_marginTop="16dp" 353 android:layout_marginTop="16dp"
354 + android:clipToPadding="false"
334 android:orientation="horizontal" 355 android:orientation="horizontal"
335 - android:paddingHorizontal="16dp" 356 + android:paddingHorizontal="16dp" />
336 - android:clipToPadding="false" />
337 </RelativeLayout> 357 </RelativeLayout>
338 358
339 <!-- Kids Section --> 359 <!-- Kids Section -->
...@@ -347,8 +367,8 @@ ...@@ -347,8 +367,8 @@
347 android:layout_width="match_parent" 367 android:layout_width="match_parent"
348 android:layout_height="wrap_content" 368 android:layout_height="wrap_content"
349 android:layout_gravity="center" 369 android:layout_gravity="center"
350 - android:paddingHorizontal="16dp" 370 + android:orientation="horizontal"
351 - android:orientation="horizontal"> 371 + android:paddingHorizontal="16dp">
352 372
353 <TextView 373 <TextView
354 android:id="@+id/tv_recycler_category7" 374 android:id="@+id/tv_recycler_category7"
...@@ -377,9 +397,9 @@ ...@@ -377,9 +397,9 @@
377 android:layout_height="wrap_content" 397 android:layout_height="wrap_content"
378 android:layout_below="@+id/ll_recycler7" 398 android:layout_below="@+id/ll_recycler7"
379 android:layout_marginTop="16dp" 399 android:layout_marginTop="16dp"
400 + android:clipToPadding="false"
380 android:orientation="horizontal" 401 android:orientation="horizontal"
381 - android:paddingHorizontal="16dp" 402 + android:paddingHorizontal="16dp" />
382 - android:clipToPadding="false" />
383 </RelativeLayout> 403 </RelativeLayout>
384 404
385 <!-- Purchases Section --> 405 <!-- Purchases Section -->
...@@ -394,8 +414,8 @@ ...@@ -394,8 +414,8 @@
394 android:layout_width="match_parent" 414 android:layout_width="match_parent"
395 android:layout_height="wrap_content" 415 android:layout_height="wrap_content"
396 android:layout_gravity="center" 416 android:layout_gravity="center"
397 - android:paddingHorizontal="16dp" 417 + android:orientation="horizontal"
398 - android:orientation="horizontal"> 418 + android:paddingHorizontal="16dp">
399 419
400 <TextView 420 <TextView
401 android:id="@+id/tv_recycler_category8" 421 android:id="@+id/tv_recycler_category8"
...@@ -424,9 +444,9 @@ ...@@ -424,9 +444,9 @@
424 android:layout_height="wrap_content" 444 android:layout_height="wrap_content"
425 android:layout_below="@+id/ll_recycler8" 445 android:layout_below="@+id/ll_recycler8"
426 android:layout_marginTop="16dp" 446 android:layout_marginTop="16dp"
447 + android:clipToPadding="false"
427 android:orientation="horizontal" 448 android:orientation="horizontal"
428 - android:paddingHorizontal="16dp" 449 + android:paddingHorizontal="16dp" />
429 - android:clipToPadding="false" />
430 </RelativeLayout> 450 </RelativeLayout>
431 </LinearLayout> 451 </LinearLayout>
432 </androidx.core.widget.NestedScrollView> 452 </androidx.core.widget.NestedScrollView>
......
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
60 android:layout_width="match_parent" 60 android:layout_width="match_parent"
61 android:layout_height="match_parent" 61 android:layout_height="match_parent"
62 android:scaleType="fitXY" 62 android:scaleType="fitXY"
63 - android:src="@drawable/demo_home_banner" 63 + tools:src="@drawable/demo_home_banner1"
64 app:layout_constraintBottom_toBottomOf="parent" 64 app:layout_constraintBottom_toBottomOf="parent"
65 app:layout_constraintEnd_toEndOf="parent" 65 app:layout_constraintEnd_toEndOf="parent"
66 app:layout_constraintStart_toStartOf="parent" 66 app:layout_constraintStart_toStartOf="parent"
......
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 + xmlns:app="http://schemas.android.com/apk/res-auto"
4 + android:layout_width="match_parent"
5 + android:layout_height="match_parent">
6 +
7 + <ImageView
8 + android:id="@+id/iv_banner"
9 + android:layout_width="match_parent"
10 + android:layout_height="match_parent"
11 + android:scaleType="fitXY"
12 + app:layout_constraintBottom_toBottomOf="parent"
13 + app:layout_constraintEnd_toEndOf="parent"
14 + app:layout_constraintStart_toStartOf="parent"
15 + app:layout_constraintTop_toTopOf="parent" />
16 +
17 +</androidx.constraintlayout.widget.ConstraintLayout>
...@@ -23,6 +23,8 @@ ...@@ -23,6 +23,8 @@
23 <color name="black5">#020E1C</color> 23 <color name="black5">#020E1C</color>
24 <color name="pink2">#F2709D</color> 24 <color name="pink2">#F2709D</color>
25 <color name="skyblue">#00A3E0</color> 25 <color name="skyblue">#00A3E0</color>
26 + <color name="grey2">#D8D8D8</color>
27 + <color name="pink3">#EE437E</color>
26 28
27 <!-- Used in styles --> 29 <!-- Used in styles -->
28 <color name="cos_light_blue">#00A5E3</color> 30 <color name="cos_light_blue">#00A5E3</color>
......