Panagiotis Triantafyllou

redesign part4

...@@ -12,6 +12,7 @@ import android.widget.LinearLayout; ...@@ -12,6 +12,7 @@ import android.widget.LinearLayout;
12 import android.widget.RelativeLayout; 12 import android.widget.RelativeLayout;
13 import android.widget.TextView; 13 import android.widget.TextView;
14 14
15 +import androidx.appcompat.content.res.AppCompatResources;
15 import androidx.constraintlayout.widget.ConstraintLayout; 16 import androidx.constraintlayout.widget.ConstraintLayout;
16 import androidx.recyclerview.widget.LinearLayoutManager; 17 import androidx.recyclerview.widget.LinearLayoutManager;
17 import androidx.recyclerview.widget.RecyclerView; 18 import androidx.recyclerview.widget.RecyclerView;
...@@ -31,10 +32,12 @@ import ly.warp.sdk.io.adapters.CouponsetAdapter; ...@@ -31,10 +32,12 @@ import ly.warp.sdk.io.adapters.CouponsetAdapter;
31 import ly.warp.sdk.io.callbacks.CallbackReceiver; 32 import ly.warp.sdk.io.callbacks.CallbackReceiver;
32 import ly.warp.sdk.io.models.BannerItem; 33 import ly.warp.sdk.io.models.BannerItem;
33 import ly.warp.sdk.io.models.Couponset; 34 import ly.warp.sdk.io.models.Couponset;
35 +import ly.warp.sdk.io.models.User;
34 import ly.warp.sdk.utils.WarpUtils; 36 import ly.warp.sdk.utils.WarpUtils;
35 import ly.warp.sdk.utils.WarplyManagerHelper; 37 import ly.warp.sdk.utils.WarplyManagerHelper;
36 import ly.warp.sdk.utils.managers.WarplyManager; 38 import ly.warp.sdk.utils.managers.WarplyManager;
37 import ly.warp.sdk.views.HorizontalSpaceItemDecoration; 39 import ly.warp.sdk.views.HorizontalSpaceItemDecoration;
40 +import ly.warp.sdk.views.VerticalSpaceItemDecoration;
38 41
39 public class HomeActivity extends Activity implements View.OnClickListener, CouponsetAdapter.OnCouponsetClickListener { 42 public class HomeActivity extends Activity implements View.OnClickListener, CouponsetAdapter.OnCouponsetClickListener {
40 // =========================================================== 43 // ===========================================================
...@@ -48,11 +51,15 @@ public class HomeActivity extends Activity implements View.OnClickListener, Coup ...@@ -48,11 +51,15 @@ public class HomeActivity extends Activity implements View.OnClickListener, Coup
48 // =========================================================== 51 // ===========================================================
49 52
50 private RelativeLayout mPbLoading; 53 private RelativeLayout mPbLoading;
51 - 54 + private TextView mTvHeaderTitle;
52 - private ViewPager2 mBannerViewPager; 55 + private LinearLayout mLlUserTags;
56 + /* View Pager */
57 +// private ViewPager2 mBannerViewPager;
58 + private RecyclerView mRvBannerViewPager;
53 private BannerAdapter mBannerAdapter; 59 private BannerAdapter mBannerAdapter;
54 - private LinearLayout mDotsContainer; 60 + /* Pagination */
55 - private List<ImageView> mDots; 61 +// private LinearLayout mDotsContainer;
62 +// private List<ImageView> mDots;
56 private ImageView mIvProfile; 63 private ImageView mIvProfile;
57 private ConstraintLayout mViewPager; 64 private ConstraintLayout mViewPager;
58 private LinearLayout mSectionsContainer; 65 private LinearLayout mSectionsContainer;
...@@ -73,6 +80,8 @@ public class HomeActivity extends Activity implements View.OnClickListener, Coup ...@@ -73,6 +80,8 @@ public class HomeActivity extends Activity implements View.OnClickListener, Coup
73 findViewById(R.id.header_layout), 80 findViewById(R.id.header_layout),
74 null); 81 null);
75 82
83 + setUpUser();
84 +
76 mPbLoading.setVisibility(View.VISIBLE); 85 mPbLoading.setVisibility(View.VISIBLE);
77 mSectionsLoading.setVisibility(View.VISIBLE); 86 mSectionsLoading.setVisibility(View.VISIBLE);
78 WarplyManager.getCampaigns(mCampaignsCallback); 87 WarplyManager.getCampaigns(mCampaignsCallback);
...@@ -113,11 +122,73 @@ public class HomeActivity extends Activity implements View.OnClickListener, Coup ...@@ -113,11 +122,73 @@ public class HomeActivity extends Activity implements View.OnClickListener, Coup
113 122
114 mIvProfile = findViewById(R.id.profile_icon); 123 mIvProfile = findViewById(R.id.profile_icon);
115 mIvProfile.setOnClickListener(this); 124 mIvProfile.setOnClickListener(this);
125 + mTvHeaderTitle = findViewById(R.id.tv_header_title);
126 + mLlUserTags = findViewById(R.id.ll_user_tags);
127 + mRvBannerViewPager = findViewById(R.id.banner_viewpager);
128 +
129 + WarpUtils.renderCustomFont(this, R.font.ping_lcg_bold, mTvHeaderTitle);
130 + }
131 +
132 + private void setUpUser() {
133 + User user = WarplyManagerHelper.getUser();
134 + if (user == null) {
135 + mLlUserTags.setVisibility(View.GONE);
136 + return;
137 + }
138 +
139 + ArrayList<String> segments = user.getUserSegmentsList();
140 + if (segments == null || segments.isEmpty()) {
141 + mLlUserTags.setVisibility(View.GONE);
142 + return;
143 + }
144 +
145 + mLlUserTags.removeAllViews();
146 +
147 + int horizontalPaddingPx = (int) TypedValue.applyDimension(
148 + TypedValue.COMPLEX_UNIT_DIP, 8, getResources().getDisplayMetrics());
149 + int verticalPaddingPx = (int) TypedValue.applyDimension(
150 + TypedValue.COMPLEX_UNIT_DIP, 6, getResources().getDisplayMetrics());
151 + int spacingPx = (int) TypedValue.applyDimension(
152 + TypedValue.COMPLEX_UNIT_DIP, 8, getResources().getDisplayMetrics());
153 +
154 + for (int i = 0; i < segments.size(); i++) {
155 + String segment = segments.get(i);
156 + if (segment == null || segment.isEmpty()) {
157 + continue;
158 + }
159 +
160 + TextView tagView = new TextView(this);
161 + tagView.setText(segment);
162 + tagView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 12);
163 + tagView.setTextColor(getColor(R.color.custom_black3));
164 + tagView.setBackground(AppCompatResources.getDrawable(this, R.drawable.shape_rectangle_rounded_grey2));
165 + tagView.setIncludeFontPadding(false);
166 + tagView.setPadding(horizontalPaddingPx, verticalPaddingPx, horizontalPaddingPx, verticalPaddingPx);
167 + WarpUtils.renderCustomFont(this, R.font.ping_lcg_regular, tagView);
168 +
169 + LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
170 + LinearLayout.LayoutParams.WRAP_CONTENT,
171 + LinearLayout.LayoutParams.WRAP_CONTENT);
172 + if (i > 0) {
173 + params.setMarginStart(spacingPx);
174 + }
175 + tagView.setLayoutParams(params);
176 +
177 + mLlUserTags.addView(tagView);
178 + }
179 +
180 + mLlUserTags.setVisibility(mLlUserTags.getChildCount() > 0 ? View.VISIBLE : View.GONE);
116 } 181 }
117 182
118 private void setupBannerCarousel() { 183 private void setupBannerCarousel() {
119 - mBannerViewPager = findViewById(R.id.banner_viewpager); 184 + /* View Pager */
120 - mDotsContainer = findViewById(R.id.dots_container); 185 +// mBannerViewPager = findViewById(R.id.banner_viewpager);
186 + /* Pagination */
187 +// mDotsContainer = findViewById(R.id.dots_container);
188 +
189 + LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
190 + mRvBannerViewPager.setLayoutManager(layoutManager);
191 + mRvBannerViewPager.setHasFixedSize(true);
121 192
122 mBannerAdapter = new BannerAdapter(this, WarplyManagerHelper.getBannerList()); 193 mBannerAdapter = new BannerAdapter(this, WarplyManagerHelper.getBannerList());
123 mBannerAdapter.setOnBannerCampaignClickListener(campaign -> { 194 mBannerAdapter.setOnBannerCampaignClickListener(campaign -> {
...@@ -137,46 +208,56 @@ public class HomeActivity extends Activity implements View.OnClickListener, Coup ...@@ -137,46 +208,56 @@ public class HomeActivity extends Activity implements View.OnClickListener, Coup
137 } 208 }
138 }); 209 });
139 210
211 + /* View Pager */
140 // Set the number of pages to preload for adjacent items 212 // Set the number of pages to preload for adjacent items
141 - mBannerViewPager.setOffscreenPageLimit(5); 213 +// mBannerViewPager.setOffscreenPageLimit(5);
142 - mBannerViewPager.setAdapter(mBannerAdapter); 214 +// mBannerViewPager.setAdapter(mBannerAdapter);
143 -
144 - setupPaginationDots(WarplyManagerHelper.getBannerList().size());
145 -
146 - mBannerViewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
147 - @Override
148 - public void onPageSelected(int position) {
149 - updateDots(position);
150 - }
151 - });
152 - }
153 -
154 - private void setupPaginationDots(int count) {
155 - mDots = new ArrayList<>();
156 - mDotsContainer.removeAllViews();
157 215
158 - for (int i = 0; i < count; i++) { 216 + mRvBannerViewPager.setAdapter(mBannerAdapter);
159 - ImageView dot = new ImageView(this); 217 + int spacingInPixels = (int) TypedValue.applyDimension(
160 - 218 + TypedValue.COMPLEX_UNIT_DIP, 8, getResources().getDisplayMetrics());
161 - LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( 219 + mRvBannerViewPager.addItemDecoration(new HorizontalSpaceItemDecoration(spacingInPixels));
162 - LinearLayout.LayoutParams.WRAP_CONTENT, 220 +
163 - LinearLayout.LayoutParams.WRAP_CONTENT 221 + /* Pagination */
164 - ); 222 +// setupPaginationDots(WarplyManagerHelper.getBannerList().size());
165 - params.setMargins(8, 0, 8, 0); 223 +
166 - dot.setLayoutParams(params); 224 + /* Pagination */
167 - 225 +// mBannerViewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
168 - dot.setImageResource(i == 0 ? R.drawable.dot_active : R.drawable.dot_inactive); 226 +// @Override
169 - 227 +// public void onPageSelected(int position) {
170 - mDotsContainer.addView(dot); 228 +// updateDots(position);
171 - mDots.add(dot); 229 +// }
172 - } 230 +// });
173 } 231 }
174 232
175 - private void updateDots(int position) { 233 + /* Pagination */
176 - for (int i = 0; i < mDots.size(); i++) { 234 +// private void setupPaginationDots(int count) {
177 - mDots.get(i).setImageResource(i == position ? R.drawable.dot_active : R.drawable.dot_inactive); 235 +// mDots = new ArrayList<>();
178 - } 236 +// mDotsContainer.removeAllViews();
179 - } 237 +//
238 +// for (int i = 0; i < count; i++) {
239 +// ImageView dot = new ImageView(this);
240 +//
241 +// LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
242 +// LinearLayout.LayoutParams.WRAP_CONTENT,
243 +// LinearLayout.LayoutParams.WRAP_CONTENT
244 +// );
245 +// params.setMargins(8, 0, 8, 0);
246 +// dot.setLayoutParams(params);
247 +//
248 +// dot.setImageResource(i == 0 ? R.drawable.dot_active : R.drawable.dot_inactive);
249 +//
250 +// mDotsContainer.addView(dot);
251 +// mDots.add(dot);
252 +// }
253 +// }
254 +
255 + /* Pagination */
256 +// private void updateDots(int position) {
257 +// for (int i = 0; i < mDots.size(); i++) {
258 +// mDots.get(i).setImageResource(i == position ? R.drawable.dot_active : R.drawable.dot_inactive);
259 +// }
260 +// }
180 261
181 private void setupCouponsetSections(LinkedHashMap<String, ArrayList<Couponset>> categorizedMap) { 262 private void setupCouponsetSections(LinkedHashMap<String, ArrayList<Couponset>> categorizedMap) {
182 mSectionsContainer.removeAllViews(); 263 mSectionsContainer.removeAllViews();
......
1 package ly.warp.sdk.io.adapters; 1 package ly.warp.sdk.io.adapters;
2 2
3 import android.content.Context; 3 import android.content.Context;
4 +import android.util.TypedValue;
4 import android.view.LayoutInflater; 5 import android.view.LayoutInflater;
5 import android.view.View; 6 import android.view.View;
6 import android.view.ViewGroup; 7 import android.view.ViewGroup;
...@@ -11,6 +12,7 @@ import androidx.recyclerview.widget.RecyclerView; ...@@ -11,6 +12,7 @@ import androidx.recyclerview.widget.RecyclerView;
11 12
12 import com.bumptech.glide.Glide; 13 import com.bumptech.glide.Glide;
13 import com.bumptech.glide.load.engine.DiskCacheStrategy; 14 import com.bumptech.glide.load.engine.DiskCacheStrategy;
15 +import com.bumptech.glide.load.resource.bitmap.CenterCrop;
14 16
15 import java.util.ArrayList; 17 import java.util.ArrayList;
16 18
...@@ -18,6 +20,7 @@ import ly.warp.sdk.R; ...@@ -18,6 +20,7 @@ import ly.warp.sdk.R;
18 import ly.warp.sdk.io.models.BannerItem; 20 import ly.warp.sdk.io.models.BannerItem;
19 import ly.warp.sdk.io.models.Campaign; 21 import ly.warp.sdk.io.models.Campaign;
20 import ly.warp.sdk.io.models.Content; 22 import ly.warp.sdk.io.models.Content;
23 +import ly.warp.sdk.utils.TopRoundedCornersTransformation;
21 24
22 public class BannerAdapter extends RecyclerView.Adapter<BannerAdapter.BannerViewHolder> { 25 public class BannerAdapter extends RecyclerView.Adapter<BannerAdapter.BannerViewHolder> {
23 26
...@@ -76,6 +79,10 @@ public class BannerAdapter extends RecyclerView.Adapter<BannerAdapter.BannerView ...@@ -76,6 +79,10 @@ public class BannerAdapter extends RecyclerView.Adapter<BannerAdapter.BannerView
76 public void onBindViewHolder(@NonNull BannerViewHolder holder, int position) { 79 public void onBindViewHolder(@NonNull BannerViewHolder holder, int position) {
77 BannerItem bannerItem = mBannerItems.get(position); 80 BannerItem bannerItem = mBannerItems.get(position);
78 81
82 + int radiusInPixels = (int) TypedValue.applyDimension(
83 + TypedValue.COMPLEX_UNIT_DIP, 13,
84 + mContext.getResources().getDisplayMetrics());
85 +
79 if (bannerItem.isCampaign()) { 86 if (bannerItem.isCampaign()) {
80 Glide.with(mContext) 87 Glide.with(mContext)
81 // .setDefaultRequestOptions( 88 // .setDefaultRequestOptions(
...@@ -84,6 +91,7 @@ public class BannerAdapter extends RecyclerView.Adapter<BannerAdapter.BannerView ...@@ -84,6 +91,7 @@ public class BannerAdapter extends RecyclerView.Adapter<BannerAdapter.BannerView
84 // .error(R.drawable.demo_logo)) 91 // .error(R.drawable.demo_logo))
85 .load(getCampaignImage(bannerItem)) 92 .load(getCampaignImage(bannerItem))
86 .diskCacheStrategy(DiskCacheStrategy.DATA) 93 .diskCacheStrategy(DiskCacheStrategy.DATA)
94 + .transform(new CenterCrop(), new TopRoundedCornersTransformation(radiusInPixels, true))
87 .into(holder.imageView); 95 .into(holder.imageView);
88 96
89 holder.itemView.setOnClickListener(v -> { 97 holder.itemView.setOnClickListener(v -> {
...@@ -99,6 +107,7 @@ public class BannerAdapter extends RecyclerView.Adapter<BannerAdapter.BannerView ...@@ -99,6 +107,7 @@ public class BannerAdapter extends RecyclerView.Adapter<BannerAdapter.BannerView
99 // .error(R.drawable.demo_logo)) 107 // .error(R.drawable.demo_logo))
100 .load(getContentImage(bannerItem)) 108 .load(getContentImage(bannerItem))
101 .diskCacheStrategy(DiskCacheStrategy.DATA) 109 .diskCacheStrategy(DiskCacheStrategy.DATA)
110 + .transform(new CenterCrop(), new TopRoundedCornersTransformation(radiusInPixels, true))
102 .into(holder.imageView); 111 .into(holder.imageView);
103 112
104 holder.itemView.setOnClickListener(v -> { 113 holder.itemView.setOnClickListener(v -> {
......
...@@ -66,7 +66,6 @@ public class CouponsetAdapter extends RecyclerView.Adapter<CouponsetAdapter.Coup ...@@ -66,7 +66,6 @@ public class CouponsetAdapter extends RecyclerView.Adapter<CouponsetAdapter.Coup
66 66
67 public class CouponsetViewHolder extends RecyclerView.ViewHolder { 67 public class CouponsetViewHolder extends RecyclerView.ViewHolder {
68 private final ImageView ivOfferImage; 68 private final ImageView ivOfferImage;
69 - private final ImageView ivFavorite;
70 private final ImageView ivLogo; 69 private final ImageView ivLogo;
71 private final TextView tvPrice; 70 private final TextView tvPrice;
72 private final TextView tvTitle; 71 private final TextView tvTitle;
...@@ -76,7 +75,6 @@ public class CouponsetAdapter extends RecyclerView.Adapter<CouponsetAdapter.Coup ...@@ -76,7 +75,6 @@ public class CouponsetAdapter extends RecyclerView.Adapter<CouponsetAdapter.Coup
76 CouponsetViewHolder(@NonNull View itemView) { 75 CouponsetViewHolder(@NonNull View itemView) {
77 super(itemView); 76 super(itemView);
78 ivOfferImage = itemView.findViewById(R.id.iv_offer_image); 77 ivOfferImage = itemView.findViewById(R.id.iv_offer_image);
79 - ivFavorite = itemView.findViewById(R.id.iv_favorite);
80 ivLogo = itemView.findViewById(R.id.iv_logo); 78 ivLogo = itemView.findViewById(R.id.iv_logo);
81 tvPrice = itemView.findViewById(R.id.tv_price); 79 tvPrice = itemView.findViewById(R.id.tv_price);
82 tvTitle = itemView.findViewById(R.id.tv_title); 80 tvTitle = itemView.findViewById(R.id.tv_title);
...@@ -95,19 +93,17 @@ public class CouponsetAdapter extends RecyclerView.Adapter<CouponsetAdapter.Coup ...@@ -95,19 +93,17 @@ public class CouponsetAdapter extends RecyclerView.Adapter<CouponsetAdapter.Coup
95 } 93 }
96 94
97 private void bind(Couponset couponset, int position) { 95 private void bind(Couponset couponset, int position) {
98 - tvTitle.setText(couponset.getName() != null ? couponset.getName() : ""); 96 + tvTitle.setText(couponset.getName() != null ? couponset.getName().trim() : "");
99 - tvDescription.setText(couponset.getShortDescription() != null ? couponset.getShortDescription() : ""); 97 + tvDescription.setText(couponset.getShortDescription() != null ? couponset.getShortDescription().trim() : "");
100 - tvPrice.setText(couponset.getDiscount() != null ? couponset.getDiscount() : ""); 98 + tvPrice.setText(couponset.getDiscount() != null ? couponset.getDiscount().trim() : "");
101 99
102 if (couponset.getEndDate() != null && !couponset.getEndDate().isEmpty()) { 100 if (couponset.getEndDate() != null && !couponset.getEndDate().isEmpty()) {
103 - tvValidity.setText(formatValidityDate(couponset.getEndDate())); 101 + tvValidity.setText(formatValidityDate(couponset.getEndDate()).trim());
104 tvValidity.setVisibility(View.VISIBLE); 102 tvValidity.setVisibility(View.VISIBLE);
105 } else { 103 } else {
106 tvValidity.setVisibility(View.GONE); 104 tvValidity.setVisibility(View.GONE);
107 } 105 }
108 106
109 - ivFavorite.setImageResource(R.drawable.demo_heart);
110 -
111 loadCouponsetImage(couponset.getImgPreview()); 107 loadCouponsetImage(couponset.getImgPreview());
112 108
113 if (couponset.getMerchant() != null && couponset.getMerchant().getImgPreview() != null) { 109 if (couponset.getMerchant() != null && couponset.getMerchant().getImgPreview() != null) {
...@@ -122,13 +118,13 @@ public class CouponsetAdapter extends RecyclerView.Adapter<CouponsetAdapter.Coup ...@@ -122,13 +118,13 @@ public class CouponsetAdapter extends RecyclerView.Adapter<CouponsetAdapter.Coup
122 SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()); 118 SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
123 Date date = inputFormat.parse(endDate); 119 Date date = inputFormat.parse(endDate);
124 SimpleDateFormat outputFormat = new SimpleDateFormat("dd-MM", Locale.getDefault()); 120 SimpleDateFormat outputFormat = new SimpleDateFormat("dd-MM", Locale.getDefault());
125 - return "έως " + outputFormat.format(date); 121 + return "until " + outputFormat.format(date);
126 } catch (ParseException e) { 122 } catch (ParseException e) {
127 try { 123 try {
128 SimpleDateFormat inputFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.getDefault()); 124 SimpleDateFormat inputFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm", Locale.getDefault());
129 Date date = inputFormat2.parse(endDate); 125 Date date = inputFormat2.parse(endDate);
130 SimpleDateFormat outputFormat = new SimpleDateFormat("dd-MM", Locale.getDefault()); 126 SimpleDateFormat outputFormat = new SimpleDateFormat("dd-MM", Locale.getDefault());
131 - return "έως " + outputFormat.format(date); 127 + return "until " + outputFormat.format(date);
132 } catch (ParseException e2) { 128 } catch (ParseException e2) {
133 return endDate; 129 return endDate;
134 } 130 }
......
...@@ -21,6 +21,7 @@ import java.security.MessageDigest; ...@@ -21,6 +21,7 @@ import java.security.MessageDigest;
21 public class TopRoundedCornersTransformation extends BitmapTransformation { 21 public class TopRoundedCornersTransformation extends BitmapTransformation {
22 private static final String ID = "ly.warp.sdk.utils.TopRoundedCornersTransformation"; 22 private static final String ID = "ly.warp.sdk.utils.TopRoundedCornersTransformation";
23 private final int radius; 23 private final int radius;
24 + private boolean allRounded = false;
24 25
25 /** 26 /**
26 * Constructor 27 * Constructor
...@@ -31,6 +32,11 @@ public class TopRoundedCornersTransformation extends BitmapTransformation { ...@@ -31,6 +32,11 @@ public class TopRoundedCornersTransformation extends BitmapTransformation {
31 this.radius = radius; 32 this.radius = radius;
32 } 33 }
33 34
35 + public TopRoundedCornersTransformation(int radius, boolean rounded) {
36 + this.radius = radius;
37 + this.allRounded = rounded;
38 + }
39 +
34 @Override 40 @Override
35 protected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight) { 41 protected Bitmap transform(@NonNull BitmapPool pool, @NonNull Bitmap toTransform, int outWidth, int outHeight) {
36 return roundTopCorners(pool, toTransform); 42 return roundTopCorners(pool, toTransform);
...@@ -52,13 +58,24 @@ public class TopRoundedCornersTransformation extends BitmapTransformation { ...@@ -52,13 +58,24 @@ public class TopRoundedCornersTransformation extends BitmapTransformation {
52 // Create path with rounded top corners 58 // Create path with rounded top corners
53 Path path = new Path(); 59 Path path = new Path();
54 RectF rectF = new RectF(0, 0, source.getWidth(), source.getHeight()); 60 RectF rectF = new RectF(0, 0, source.getWidth(), source.getHeight());
55 - float[] radii = new float[]{ 61 +
56 - radius, radius, // top-left 62 + if (allRounded) {
57 - radius, radius, // top-right 63 + float[] radii = new float[]{
58 - 0, 0, // bottom-right 64 + radius, radius, // top-left
59 - 0, 0 // bottom-left 65 + radius, radius, // top-right
60 - }; 66 + radius, radius, // bottom-right
61 - path.addRoundRect(rectF, radii, Path.Direction.CW); 67 + radius, radius // bottom-left
68 + };
69 + path.addRoundRect(rectF, radii, Path.Direction.CW);
70 + } else {
71 + float[] radii = new float[]{
72 + radius, radius, // top-left
73 + radius, radius, // top-right
74 + 0, 0, // bottom-right
75 + 0, 0 // bottom-left
76 + };
77 + path.addRoundRect(rectF, radii, Path.Direction.CW);
78 + }
62 79
63 // Draw rounded rectangle 80 // Draw rounded rectangle
64 canvas.drawPath(path, paint); 81 canvas.drawPath(path, paint);
......
...@@ -38,6 +38,7 @@ import ly.warp.sdk.io.models.Campaign; ...@@ -38,6 +38,7 @@ import ly.warp.sdk.io.models.Campaign;
38 import ly.warp.sdk.io.models.Coupon; 38 import ly.warp.sdk.io.models.Coupon;
39 import ly.warp.sdk.io.models.CouponList; 39 import ly.warp.sdk.io.models.CouponList;
40 import ly.warp.sdk.io.models.Couponset; 40 import ly.warp.sdk.io.models.Couponset;
41 +import ly.warp.sdk.io.models.User;
41 import ly.warp.sdk.utils.managers.WarplyManager; 42 import ly.warp.sdk.utils.managers.WarplyManager;
42 43
43 /** 44 /**
...@@ -59,6 +60,7 @@ public class WarplyManagerHelper { ...@@ -59,6 +60,7 @@ public class WarplyManagerHelper {
59 private static ArrayList<Campaign> mCampaignListAll = new ArrayList<Campaign>(); 60 private static ArrayList<Campaign> mCampaignListAll = new ArrayList<Campaign>();
60 private static ArrayList<BannerItem> mBannerListAll = new ArrayList<BannerItem>(); 61 private static ArrayList<BannerItem> mBannerListAll = new ArrayList<BannerItem>();
61 private static LinkedHashMap<String, ArrayList<Couponset>> mCouponsetCategorizedMap = new LinkedHashMap<>(); 62 private static LinkedHashMap<String, ArrayList<Couponset>> mCouponsetCategorizedMap = new LinkedHashMap<>();
63 + private static User mUser = null;
62 64
63 // =========================================================== 65 // ===========================================================
64 // Methods for/from SuperClass/Interfaces 66 // Methods for/from SuperClass/Interfaces
...@@ -68,6 +70,14 @@ public class WarplyManagerHelper { ...@@ -68,6 +70,14 @@ public class WarplyManagerHelper {
68 // Methods 70 // Methods
69 // =========================================================== 71 // ===========================================================
70 72
73 + public static void setUser(User user) {
74 + mUser = user;
75 + }
76 +
77 + public static User getUser() {
78 + return mUser;
79 + }
80 +
71 public static void setCampaignList(ArrayList<Campaign> campaignList) { 81 public static void setCampaignList(ArrayList<Campaign> campaignList) {
72 mCampaignListAll.clear(); 82 mCampaignListAll.clear();
73 mCampaignListAll.addAll(campaignList); 83 mCampaignListAll.addAll(campaignList);
......
...@@ -323,6 +323,7 @@ public class WarplyManager { ...@@ -323,6 +323,7 @@ public class WarplyManager {
323 323
324 if (jUserBody != null) { 324 if (jUserBody != null) {
325 User user = new User(jUserBody); 325 User user = new User(jUserBody);
326 + WarplyManagerHelper.setUser(user);
326 327
327 receiver.onSuccess(user); 328 receiver.onSuccess(user);
328 } else { 329 } else {
......

2.02 KB | W: | H:

1.92 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<shape xmlns:android="http://schemas.android.com/apk/res/android"
3 + android:shape="oval">
4 + <corners android:radius="1000dp" />
5 +
6 + <solid android:color="@color/custom_grey6" />
7 +</shape>
...\ No newline at end of file ...\ No newline at end of file
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 <shape xmlns:android="http://schemas.android.com/apk/res/android" 2 <shape xmlns:android="http://schemas.android.com/apk/res/android"
3 android:shape="rectangle"> 3 android:shape="rectangle">
4 - <corners android:radius="9dp" /> 4 + <corners android:radius="12dp" />
5 5
6 <solid android:color="@color/white" /> 6 <solid android:color="@color/white" />
7 <stroke 7 <stroke
8 android:width="1dp" 8 android:width="1dp"
9 - android:color="@color/custom_grey" /> 9 + android:color="@color/custom_grey7" />
10 </shape> 10 </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="1000dp" />
5 +
6 + <solid
7 + android:width="2dp"
8 + android:color="@color/custom_grey5" />
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="13dp" />
5 +
6 + <solid
7 + android:color="@color/custom_grey5" />
8 +</shape>
...\ No newline at end of file ...\ No newline at end of file
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
3 xmlns:tools="http://schemas.android.com/tools" 3 xmlns:tools="http://schemas.android.com/tools"
4 android:layout_width="match_parent" 4 android:layout_width="match_parent"
5 android:layout_height="match_parent" 5 android:layout_height="match_parent"
6 - android:background="@color/custom_grey_light"> 6 + android:background="@color/white">
7 7
8 <androidx.core.widget.NestedScrollView 8 <androidx.core.widget.NestedScrollView
9 android:id="@+id/home_scrollview" 9 android:id="@+id/home_scrollview"
...@@ -22,38 +22,45 @@ ...@@ -22,38 +22,45 @@
22 android:layout_width="match_parent" 22 android:layout_width="match_parent"
23 android:layout_height="wrap_content" 23 android:layout_height="wrap_content"
24 android:layout_gravity="center" 24 android:layout_gravity="center"
25 - android:background="@color/custom_grey_light" 25 + android:background="@color/white"
26 android:orientation="horizontal" 26 android:orientation="horizontal"
27 android:paddingHorizontal="16dp" 27 android:paddingHorizontal="16dp"
28 - android:paddingBottom="16dp" 28 + android:paddingTop="16dp"
29 - android:paddingTop="16dp"> 29 + android:paddingBottom="16dp">
30 30
31 <LinearLayout 31 <LinearLayout
32 android:layout_width="0dp" 32 android:layout_width="0dp"
33 android:layout_height="wrap_content" 33 android:layout_height="wrap_content"
34 - android:layout_gravity="center"
35 android:layout_weight="1" 34 android:layout_weight="1"
36 - android:orientation="horizontal"> 35 + android:gravity="center_vertical"
37 - 36 + android:orientation="vertical">
38 - <ImageView 37 +
39 - android:id="@+id/green_icon" 38 + <TextView
40 - android:layout_width="58dp" 39 + android:id="@+id/tv_header_title"
41 - android:layout_height="22dp" 40 + android:layout_width="wrap_content"
42 - android:layout_marginEnd="8dp" 41 + android:layout_height="wrap_content"
43 - android:src="@drawable/demo_green" /> 42 + android:includeFontPadding="false"
44 - 43 + android:text="@string/demo_rewards_title"
45 - <ImageView 44 + android:textColor="@color/custom_black6"
46 - android:id="@+id/family_icon" 45 + android:textSize="28sp" />
47 - android:layout_width="58dp" 46 +
48 - android:layout_height="22dp" 47 + <LinearLayout
49 - android:src="@drawable/demo_family" /> 48 + android:id="@+id/ll_user_tags"
49 + android:layout_width="match_parent"
50 + android:layout_height="wrap_content"
51 + android:layout_marginTop="4dp"
52 + android:orientation="horizontal"
53 + android:visibility="gone" />
54 +
50 </LinearLayout> 55 </LinearLayout>
51 56
52 <ImageView 57 <ImageView
53 android:id="@+id/profile_icon" 58 android:id="@+id/profile_icon"
54 - android:layout_width="40dp" 59 + android:layout_width="46dp"
55 - android:layout_height="40dp" 60 + android:layout_height="46dp"
56 - android:src="@drawable/demo_profile" /> 61 + android:background="@drawable/shape_rectangle_rounded_grey"
62 + android:padding="14dp"
63 + android:src="@drawable/demo_gear" />
57 </LinearLayout> 64 </LinearLayout>
58 65
59 <androidx.constraintlayout.widget.ConstraintLayout 66 <androidx.constraintlayout.widget.ConstraintLayout
...@@ -61,26 +68,38 @@ ...@@ -61,26 +68,38 @@
61 android:layout_width="match_parent" 68 android:layout_width="match_parent"
62 android:layout_height="wrap_content"> 69 android:layout_height="wrap_content">
63 70
64 - <androidx.viewpager2.widget.ViewPager2 71 + <androidx.recyclerview.widget.RecyclerView
65 android:id="@+id/banner_viewpager" 72 android:id="@+id/banner_viewpager"
66 android:layout_width="match_parent" 73 android:layout_width="match_parent"
67 - android:layout_height="320dp" 74 + android:layout_height="wrap_content"
75 + android:clipToPadding="false"
76 + android:orientation="horizontal"
77 + android:paddingHorizontal="16dp"
68 app:layout_constraintBottom_toBottomOf="parent" 78 app:layout_constraintBottom_toBottomOf="parent"
69 app:layout_constraintEnd_toEndOf="parent" 79 app:layout_constraintEnd_toEndOf="parent"
70 app:layout_constraintStart_toStartOf="parent" 80 app:layout_constraintStart_toStartOf="parent"
71 app:layout_constraintTop_toTopOf="parent" /> 81 app:layout_constraintTop_toTopOf="parent" />
72 82
73 - <LinearLayout 83 + <!-- <androidx.viewpager2.widget.ViewPager2-->
74 - android:id="@+id/dots_container" 84 + <!-- android:id="@+id/banner_viewpager"-->
75 - android:layout_width="match_parent" 85 + <!-- android:layout_width="match_parent"-->
76 - android:layout_height="50dp" 86 + <!-- android:layout_height="320dp"-->
77 - android:background="@color/custom_grey_light" 87 + <!-- app:layout_constraintBottom_toBottomOf="parent"-->
78 - android:gravity="center" 88 + <!-- app:layout_constraintEnd_toEndOf="parent"-->
79 - android:orientation="horizontal" 89 + <!-- app:layout_constraintStart_toStartOf="parent"-->
80 - android:padding="4dp" 90 + <!-- app:layout_constraintTop_toTopOf="parent" />-->
81 - app:layout_constraintBottom_toBottomOf="parent" 91 +
82 - app:layout_constraintEnd_toEndOf="parent" 92 + <!-- <LinearLayout-->
83 - app:layout_constraintStart_toStartOf="parent" /> 93 + <!-- android:id="@+id/dots_container"-->
94 + <!-- android:layout_width="match_parent"-->
95 + <!-- android:layout_height="50dp"-->
96 + <!-- android:background="@color/white"-->
97 + <!-- android:gravity="center"-->
98 + <!-- android:orientation="horizontal"-->
99 + <!-- android:padding="4dp"-->
100 + <!-- app:layout_constraintBottom_toBottomOf="parent"-->
101 + <!-- app:layout_constraintEnd_toEndOf="parent"-->
102 + <!-- app:layout_constraintStart_toStartOf="parent" />-->
84 103
85 <RelativeLayout 104 <RelativeLayout
86 android:id="@+id/pb_loading" 105 android:id="@+id/pb_loading"
...@@ -110,8 +129,8 @@ ...@@ -110,8 +129,8 @@
110 android:layout_width="match_parent" 129 android:layout_width="match_parent"
111 android:layout_height="wrap_content" 130 android:layout_height="wrap_content"
112 android:layout_marginBottom="48dp" 131 android:layout_marginBottom="48dp"
113 - android:paddingBottom="16dp" 132 + android:orientation="vertical"
114 - android:orientation="vertical" /> 133 + android:paddingBottom="16dp" />
115 134
116 <RelativeLayout 135 <RelativeLayout
117 android:id="@+id/rl_sections_loading" 136 android:id="@+id/rl_sections_loading"
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
3 xmlns:tools="http://schemas.android.com/tools" 3 xmlns:tools="http://schemas.android.com/tools"
4 android:layout_width="match_parent" 4 android:layout_width="match_parent"
5 android:layout_height="match_parent" 5 android:layout_height="match_parent"
6 - android:background="@color/custom_grey_light"> 6 + android:background="@color/white">
7 7
8 <ScrollView 8 <ScrollView
9 android:id="@+id/coupon_scrollview" 9 android:id="@+id/coupon_scrollview"
...@@ -114,6 +114,16 @@ ...@@ -114,6 +114,16 @@
114 android:textColor="@color/custom_black2" 114 android:textColor="@color/custom_black2"
115 android:textSize="17sp" /> 115 android:textSize="17sp" />
116 </LinearLayout> 116 </LinearLayout>
117 +
118 + <ImageView
119 + android:id="@+id/iv_share_coupon"
120 + android:layout_width="48dp"
121 + android:layout_height="48dp"
122 + android:background="@drawable/shape_rectangle_rounded_grey"
123 + android:padding="14dp"
124 + android:src="@drawable/demo_share"
125 + app:layout_constraintEnd_toEndOf="parent"
126 + app:layout_constraintTop_toTopOf="parent"/>
117 </androidx.constraintlayout.widget.ConstraintLayout> 127 </androidx.constraintlayout.widget.ConstraintLayout>
118 128
119 <LinearLayout 129 <LinearLayout
...@@ -225,10 +235,16 @@ ...@@ -225,10 +235,16 @@
225 android:textSize="17sp" 235 android:textSize="17sp"
226 tools:text="BDTK0Y8UD8" /> 236 tools:text="BDTK0Y8UD8" />
227 237
238 + <View
239 + android:layout_width="4dp"
240 + android:layout_height="match_parent" />
241 +
228 <ImageView 242 <ImageView
229 android:id="@+id/iv_copy_code" 243 android:id="@+id/iv_copy_code"
230 - android:layout_width="32dp" 244 + android:layout_width="24dp"
231 - android:layout_height="32dp" 245 + android:layout_height="24dp"
246 + android:background="@drawable/shape_rectangle_rounded_grey"
247 + android:padding="6dp"
232 android:src="@drawable/demo_copy" /> 248 android:src="@drawable/demo_copy" />
233 </LinearLayout> 249 </LinearLayout>
234 </LinearLayout> 250 </LinearLayout>
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
3 xmlns:tools="http://schemas.android.com/tools" 3 xmlns:tools="http://schemas.android.com/tools"
4 android:layout_width="match_parent" 4 android:layout_width="match_parent"
5 android:layout_height="match_parent" 5 android:layout_height="match_parent"
6 - android:background="@color/custom_grey_light"> 6 + android:background="@color/white">
7 7
8 <ScrollView 8 <ScrollView
9 android:id="@+id/coupon_scrollview" 9 android:id="@+id/coupon_scrollview"
......
...@@ -2,31 +2,25 @@ ...@@ -2,31 +2,25 @@
2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:app="http://schemas.android.com/apk/res-auto" 3 xmlns:app="http://schemas.android.com/apk/res-auto"
4 xmlns:tools="http://schemas.android.com/tools" 4 xmlns:tools="http://schemas.android.com/tools"
5 - android:layout_width="270dp" 5 + android:layout_width="260dp"
6 - android:layout_height="260dp" 6 + android:layout_height="230dp"
7 android:background="@drawable/demo_shape_white_border_grey"> 7 android:background="@drawable/demo_shape_white_border_grey">
8 8
9 <ImageView 9 <ImageView
10 android:id="@+id/iv_offer_image" 10 android:id="@+id/iv_offer_image"
11 android:layout_width="match_parent" 11 android:layout_width="match_parent"
12 - android:layout_height="140dp" 12 + android:layout_height="130dp"
13 android:scaleType="centerCrop" /> 13 android:scaleType="centerCrop" />
14 14
15 - <ImageView
16 - android:id="@+id/iv_favorite"
17 - android:layout_width="32dp"
18 - android:layout_height="32dp"
19 - android:layout_margin="8dp"
20 - android:src="@drawable/demo_heart" />
21 -
22 <TextView 15 <TextView
23 android:id="@+id/tv_price" 16 android:id="@+id/tv_price"
24 - android:layout_width="68dp" 17 + android:layout_width="54dp"
25 - android:layout_height="68dp" 18 + android:layout_height="54dp"
26 android:layout_alignParentEnd="true" 19 android:layout_alignParentEnd="true"
27 android:layout_margin="8dp" 20 android:layout_margin="8dp"
28 - android:background="@drawable/demo_shape_pink" 21 + android:background="@drawable/demo_shape_grey"
29 android:gravity="center" 22 android:gravity="center"
23 + android:includeFontPadding="false"
30 android:textColor="@android:color/white" 24 android:textColor="@android:color/white"
31 android:textSize="16sp" 25 android:textSize="16sp"
32 tools:text="17,95€" /> 26 tools:text="17,95€" />
...@@ -51,7 +45,8 @@ ...@@ -51,7 +45,8 @@
51 android:layout_height="wrap_content" 45 android:layout_height="wrap_content"
52 android:maxLines="1" 46 android:maxLines="1"
53 android:textColor="@color/custom_black2" 47 android:textColor="@color/custom_black2"
54 - android:textSize="16sp" 48 + android:textSize="15sp"
49 + android:includeFontPadding="false"
55 app:layout_constraintEnd_toStartOf="@+id/gl_vertical_70" 50 app:layout_constraintEnd_toStartOf="@+id/gl_vertical_70"
56 app:layout_constraintStart_toStartOf="parent" 51 app:layout_constraintStart_toStartOf="parent"
57 app:layout_constraintTop_toTopOf="parent" 52 app:layout_constraintTop_toTopOf="parent"
...@@ -63,6 +58,7 @@ ...@@ -63,6 +58,7 @@
63 android:layout_height="wrap_content" 58 android:layout_height="wrap_content"
64 android:layout_marginTop="2dp" 59 android:layout_marginTop="2dp"
65 android:maxLines="2" 60 android:maxLines="2"
61 + android:includeFontPadding="false"
66 android:textColor="@color/custom_black3" 62 android:textColor="@color/custom_black3"
67 android:textSize="13sp" 63 android:textSize="13sp"
68 app:layout_constraintEnd_toStartOf="@+id/gl_vertical_70" 64 app:layout_constraintEnd_toStartOf="@+id/gl_vertical_70"
...@@ -78,7 +74,8 @@ ...@@ -78,7 +74,8 @@
78 android:layout_centerVertical="true" 74 android:layout_centerVertical="true"
79 android:layout_marginTop="12dp" 75 android:layout_marginTop="12dp"
80 android:maxLines="1" 76 android:maxLines="1"
81 - android:textColor="@color/custom_black3" 77 + android:includeFontPadding="false"
78 + android:textColor="@color/custom_grey4"
82 android:textSize="12sp" 79 android:textSize="12sp"
83 app:layout_constraintStart_toStartOf="parent" 80 app:layout_constraintStart_toStartOf="parent"
84 app:layout_constraintBottom_toBottomOf="parent" 81 app:layout_constraintBottom_toBottomOf="parent"
......
1 <?xml version="1.0" encoding="utf-8"?> 1 <?xml version="1.0" encoding="utf-8"?>
2 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:app="http://schemas.android.com/apk/res-auto" 3 xmlns:app="http://schemas.android.com/apk/res-auto"
4 - android:layout_width="match_parent" 4 + android:layout_width="350dp"
5 - android:layout_height="match_parent"> 5 + android:layout_height="130dp"
6 + android:background="@drawable/shape_rectangle_rounded_grey2">
6 7
7 <ImageView 8 <ImageView
8 android:id="@+id/iv_banner" 9 android:id="@+id/iv_banner"
......
...@@ -2,8 +2,7 @@ ...@@ -2,8 +2,7 @@
2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 xmlns:tools="http://schemas.android.com/tools" 3 xmlns:tools="http://schemas.android.com/tools"
4 android:layout_width="match_parent" 4 android:layout_width="match_parent"
5 - android:layout_height="wrap_content" 5 + android:layout_height="wrap_content">
6 - android:layout_marginTop="48dp">
7 6
8 <LinearLayout 7 <LinearLayout
9 android:id="@+id/ll_section_header" 8 android:id="@+id/ll_section_header"
...@@ -19,19 +18,35 @@ ...@@ -19,19 +18,35 @@
19 android:layout_height="wrap_content" 18 android:layout_height="wrap_content"
20 android:layout_weight="1" 19 android:layout_weight="1"
21 android:textColor="@color/custom_black2" 20 android:textColor="@color/custom_black2"
22 - android:textSize="16sp" 21 + android:textSize="15sp"
23 tools:text="Top Offers (10)" /> 22 tools:text="Top Offers (10)" />
24 23
25 - <TextView 24 + <LinearLayout
26 - android:id="@+id/tv_section_all" 25 + android:id="@+id/ll_all"
27 android:layout_width="wrap_content" 26 android:layout_width="wrap_content"
28 android:layout_height="wrap_content" 27 android:layout_height="wrap_content"
29 - android:background="@drawable/demo_shape_transparent_border_black" 28 + android:orientation="horizontal"
30 - android:paddingHorizontal="16dp" 29 + android:gravity="center"
31 - android:paddingVertical="5dp" 30 + android:paddingHorizontal="16dp">
32 - android:text="@string/demo_all" 31 +
33 - android:textColor="@color/custom_black3" 32 + <TextView
34 - android:textSize="14sp" /> 33 + android:id="@+id/tv_section_all"
34 + android:layout_width="wrap_content"
35 + android:layout_height="wrap_content"
36 + android:text="@string/demo_all"
37 + android:textColor="@color/custom_black3"
38 + android:textSize="15sp" />
39 +
40 + <View
41 + android:layout_width="4dp"
42 + android:layout_height="match_parent" />
43 +
44 + <ImageView
45 + android:layout_width="8dp"
46 + android:layout_height="4dp"
47 + android:rotation="270"
48 + android:src="@drawable/ic_arrow_down"/>
49 + </LinearLayout>
35 </LinearLayout> 50 </LinearLayout>
36 51
37 <androidx.recyclerview.widget.RecyclerView 52 <androidx.recyclerview.widget.RecyclerView
......
...@@ -32,4 +32,7 @@ ...@@ -32,4 +32,7 @@
32 <color name="custom_skyblue5">#CCE9FB</color> 32 <color name="custom_skyblue5">#CCE9FB</color>
33 <color name="custom_green">#0D9E5B</color> 33 <color name="custom_green">#0D9E5B</color>
34 <color name="custom_light_green">#DBF6E6</color> 34 <color name="custom_light_green">#DBF6E6</color>
35 + <color name="custom_grey5">#F1F2F4</color>
36 + <color name="custom_grey6">#CBCBCB</color>
37 + <color name="custom_grey7">#D2D6D9</color>
35 </resources> 38 </resources>
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
7 <string name="menu_home">Αρχική</string> 7 <string name="menu_home">Αρχική</string>
8 <string name="demo_home">Αρχική οθόνη</string> 8 <string name="demo_home">Αρχική οθόνη</string>
9 <string name="demo_login">Σύνδεση</string> 9 <string name="demo_login">Σύνδεση</string>
10 - <string name="demo_all">Όλα</string> 10 + <string name="demo_all">All</string>
11 <string name="demo_offer">Προσφορά</string> 11 <string name="demo_offer">Προσφορά</string>
12 <string name="demo_more">View more</string> 12 <string name="demo_more">View more</string>
13 <string name="demo_less">View less</string> 13 <string name="demo_less">View less</string>
...@@ -28,4 +28,7 @@ ...@@ -28,4 +28,7 @@
28 <string name="demo_active">Ενεργά</string> 28 <string name="demo_active">Ενεργά</string>
29 <string name="demo_redeemed">Εξαργυρωμένα</string> 29 <string name="demo_redeemed">Εξαργυρωμένα</string>
30 <string name="demo_favorites">Αγαπημένα</string> 30 <string name="demo_favorites">Αγαπημένα</string>
31 + <string name="demo_rewards_title">Rewards</string>
32 + <string name="demo_green_title">green</string>
33 + <string name="demo_family_title">family</string>
31 </resources> 34 </resources>
......