Panagiotis Triantafyllou

unified screen basket part5, fixed all bottom sheets, couponset model fixes, overall fixes

Showing 23 changed files with 449 additions and 47 deletions
...@@ -58,7 +58,7 @@ public class ActiveUnifiedCouponsActivity extends Activity implements View.OnCli ...@@ -58,7 +58,7 @@ public class ActiveUnifiedCouponsActivity extends Activity implements View.OnCli
58 private TextView mTvEmptyUnifiedCoupons, mFontHeader, mTvInnerTitle, 58 private TextView mTvEmptyUnifiedCoupons, mFontHeader, mTvInnerTitle,
59 mTvInnerSubtitle, mTvInnerClose, mTvUnifieCouponsTitle, mTvActiveUnifiedCouponsTitle, 59 mTvInnerSubtitle, mTvInnerClose, mTvUnifieCouponsTitle, mTvActiveUnifiedCouponsTitle,
60 mTvChooseAll, mTvActivate; 60 mTvChooseAll, mTvActivate;
61 - private boolean mUnifiedPressed = false, mActiveUnifiedPressed = false; 61 + private boolean mUnifiedPressed = false, mActiveUnifiedPressed = false, mIsActivatePressed = false;
62 private ConstraintLayout mClInfoView, mClActiveCouponsHeader; 62 private ConstraintLayout mClInfoView, mClActiveCouponsHeader;
63 private RelativeLayout mRlUnifiedCoupons, mRlActiveUnifiedCoupons; 63 private RelativeLayout mRlUnifiedCoupons, mRlActiveUnifiedCoupons;
64 private ActiveCouponAdapter mAdapterCoupons; 64 private ActiveCouponAdapter mAdapterCoupons;
...@@ -111,6 +111,7 @@ public class ActiveUnifiedCouponsActivity extends Activity implements View.OnCli ...@@ -111,6 +111,7 @@ public class ActiveUnifiedCouponsActivity extends Activity implements View.OnCli
111 WarplyAnalyticsManager.logTrackersEvent(this, "screen", "ActiveUnifiedCouponsScreen"); 111 WarplyAnalyticsManager.logTrackersEvent(this, "screen", "ActiveUnifiedCouponsScreen");
112 mUnifiedPressed = false; 112 mUnifiedPressed = false;
113 mActiveUnifiedPressed = false; 113 mActiveUnifiedPressed = false;
114 + mIsActivatePressed = false;
114 filterItems(); 115 filterItems();
115 } 116 }
116 117
...@@ -170,13 +171,17 @@ public class ActiveUnifiedCouponsActivity extends Activity implements View.OnCli ...@@ -170,13 +171,17 @@ public class ActiveUnifiedCouponsActivity extends Activity implements View.OnCli
170 return; 171 return;
171 } 172 }
172 if (view.getId() == R.id.ll_activate_unified) { 173 if (view.getId() == R.id.ll_activate_unified) {
173 - if (!mSelectedItems.isEmpty()) { 174 + if (!mIsActivatePressed) {
174 - JSONArray tempArray = new JSONArray(); 175 + mIsActivatePressed = true;
175 - for (Coupon selectedCoupon : mSelectedItems) { 176 +
176 - tempArray.put(selectedCoupon.getCoupon()); 177 + if (!mSelectedItems.isEmpty()) {
177 - } 178 + JSONArray tempArray = new JSONArray();
179 + for (Coupon selectedCoupon : mSelectedItems) {
180 + tempArray.put(selectedCoupon.getCoupon());
181 + }
178 182
179 - WarplyManager.createUnifiedCoupon(tempArray, mCreateUnifiedCallback); 183 + WarplyManager.createUnifiedCoupon(tempArray, mCreateUnifiedCallback);
184 + }
180 } 185 }
181 } 186 }
182 } 187 }
......
...@@ -167,7 +167,7 @@ public class ContextualActivity extends Activity implements View.OnClickListener ...@@ -167,7 +167,7 @@ public class ContextualActivity extends Activity implements View.OnClickListener
167 return; 167 return;
168 } 168 }
169 169
170 - final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this); 170 + final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this, R.style.BottomSheetDialog);
171 bottomSheetDialog.setContentView(R.layout.dl_share); 171 bottomSheetDialog.setContentView(R.layout.dl_share);
172 TextView tvHeader = bottomSheetDialog.findViewById(R.id.tv_sender_value); 172 TextView tvHeader = bottomSheetDialog.findViewById(R.id.tv_sender_value);
173 WarpUtils.renderCustomFont(this, R.font.bt_cosmo_bold, tvHeader); 173 WarpUtils.renderCustomFont(this, R.font.bt_cosmo_bold, tvHeader);
......
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.Context;
5 +import android.content.DialogInterface;
4 import android.content.Intent; 6 import android.content.Intent;
5 import android.graphics.Bitmap; 7 import android.graphics.Bitmap;
6 import android.graphics.Color; 8 import android.graphics.Color;
...@@ -8,11 +10,14 @@ import android.net.Uri; ...@@ -8,11 +10,14 @@ import android.net.Uri;
8 import android.os.Bundle; 10 import android.os.Bundle;
9 import android.text.TextUtils; 11 import android.text.TextUtils;
10 import android.text.method.LinkMovementMethod; 12 import android.text.method.LinkMovementMethod;
13 +import android.view.LayoutInflater;
11 import android.view.View; 14 import android.view.View;
15 +import android.view.ViewGroup;
12 import android.widget.ImageView; 16 import android.widget.ImageView;
13 import android.widget.LinearLayout; 17 import android.widget.LinearLayout;
14 import android.widget.TextView; 18 import android.widget.TextView;
15 19
20 +import androidx.constraintlayout.widget.ConstraintLayout;
16 import androidx.core.content.ContextCompat; 21 import androidx.core.content.ContextCompat;
17 import androidx.core.text.HtmlCompat; 22 import androidx.core.text.HtmlCompat;
18 import androidx.work.OneTimeWorkRequest; 23 import androidx.work.OneTimeWorkRequest;
...@@ -22,16 +27,22 @@ import com.bumptech.glide.Glide; ...@@ -22,16 +27,22 @@ import com.bumptech.glide.Glide;
22 import com.bumptech.glide.load.engine.DiskCacheStrategy; 27 import com.bumptech.glide.load.engine.DiskCacheStrategy;
23 import com.google.android.gms.common.ConnectionResult; 28 import com.google.android.gms.common.ConnectionResult;
24 import com.google.android.gms.common.GoogleApiAvailability; 29 import com.google.android.gms.common.GoogleApiAvailability;
30 +import com.google.android.material.bottomsheet.BottomSheetDialog;
25 import com.google.zxing.BarcodeFormat; 31 import com.google.zxing.BarcodeFormat;
26 import com.google.zxing.common.BitMatrix; 32 import com.google.zxing.common.BitMatrix;
27 import com.google.zxing.oned.EAN13Writer; 33 import com.google.zxing.oned.EAN13Writer;
28 34
35 +import org.json.JSONArray;
36 +import org.json.JSONException;
37 +import org.json.JSONObject;
38 +
29 import java.text.ParseException; 39 import java.text.ParseException;
30 import java.text.SimpleDateFormat; 40 import java.text.SimpleDateFormat;
31 import java.util.Date; 41 import java.util.Date;
32 42
33 import ly.warp.sdk.R; 43 import ly.warp.sdk.R;
34 import ly.warp.sdk.io.models.Coupon; 44 import ly.warp.sdk.io.models.Coupon;
45 +import ly.warp.sdk.io.models.Couponset;
35 import ly.warp.sdk.io.models.UnifiedCoupon; 46 import ly.warp.sdk.io.models.UnifiedCoupon;
36 import ly.warp.sdk.services.EventCouponsService; 47 import ly.warp.sdk.services.EventCouponsService;
37 import ly.warp.sdk.utils.WarpUtils; 48 import ly.warp.sdk.utils.WarpUtils;
...@@ -83,6 +94,14 @@ public class CouponInfoActivity extends Activity implements View.OnClickListener ...@@ -83,6 +94,14 @@ public class CouponInfoActivity extends Activity implements View.OnClickListener
83 for (Coupon cpn : couponItem.getCoupons()) { 94 for (Coupon cpn : couponItem.getCoupons()) {
84 if (cpn.getCoupon().equals(couponCode)) { 95 if (cpn.getCoupon().equals(couponCode)) {
85 mCoupon = cpn; 96 mCoupon = cpn;
97 +
98 + for (Couponset cpns : WarplyManagerHelper.getCouponsetsDeals()) {
99 + if (cpns.getUuid().equals(mCoupon.getCouponsetUuid())) {
100 + mCoupon.setCouponsetDetails(cpns);
101 + break;
102 + }
103 + }
104 +
86 break; 105 break;
87 } 106 }
88 } 107 }
...@@ -268,6 +287,9 @@ public class CouponInfoActivity extends Activity implements View.OnClickListener ...@@ -268,6 +287,9 @@ public class CouponInfoActivity extends Activity implements View.OnClickListener
268 if (view.getId() == R.id.ll_find_shops) { 287 if (view.getId() == R.id.ll_find_shops) {
269 if (!mIsFindItPressed) { 288 if (!mIsFindItPressed) {
270 mIsFindItPressed = true; 289 mIsFindItPressed = true;
290 +
291 + //TODO: add check to open the sheet only if there are available merchants
292 + showChooseMerchantDialog();
271 } 293 }
272 } 294 }
273 } 295 }
...@@ -276,6 +298,46 @@ public class CouponInfoActivity extends Activity implements View.OnClickListener ...@@ -276,6 +298,46 @@ public class CouponInfoActivity extends Activity implements View.OnClickListener
276 // Methods 298 // Methods
277 // =========================================================== 299 // ===========================================================
278 300
301 + private void showChooseMerchantDialog() {
302 + final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this, R.style.BottomSheetDialog);
303 + bottomSheetDialog.setContentView(R.layout.dl_bottom_sheet_merchants);
304 + bottomSheetDialog.setOnDismissListener(dialog -> {
305 + bottomSheetDialog.dismiss();
306 + mIsFindItPressed = false;
307 + });
308 + TextView sheetTitle = bottomSheetDialog.findViewById(R.id.tv_sm_sheet_title);
309 + TextView sheetSubtitle = bottomSheetDialog.findViewById(R.id.tv_sm_sheet_subtitle);
310 + WarpUtils.renderCustomFont(this, R.font.bt_cosmo_bold, sheetTitle);
311 + WarpUtils.renderCustomFont(this, R.font.peridot_regular, sheetSubtitle);
312 + LinearLayout parent = bottomSheetDialog.findViewById(R.id.ll_sm_sheet_view_inner);
313 +
314 + ImageView dialogClose = (ImageView) bottomSheetDialog.findViewById(R.id.iv_sm_sheet_close);
315 + dialogClose.setOnClickListener(view -> {
316 + bottomSheetDialog.dismiss();
317 + mIsFindItPressed = false;
318 + });
319 +
320 + int tempLoop = 2;
321 + for (int i = 0; i < tempLoop; i++) {
322 + LayoutInflater vi = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
323 + LinearLayout v = (LinearLayout) vi.inflate(R.layout.item_sheet_merchant, null);
324 +
325 + TextView textView = (TextView) v.findViewById(R.id.button_sm_buy_it);
326 + WarpUtils.renderCustomFont(this, R.font.peridot_semi_bold, textView);
327 + ConstraintLayout buyButton = (ConstraintLayout) v.findViewById(R.id.cl_button_sm_buy_it);
328 + buyButton.setOnClickListener(view -> {
329 + //TODO: open webview with the specified url
330 + bottomSheetDialog.dismiss();
331 + });
332 +
333 + parent.addView(v, 0, new ViewGroup.LayoutParams(
334 + ViewGroup.LayoutParams.MATCH_PARENT,
335 + ViewGroup.LayoutParams.WRAP_CONTENT));
336 + }
337 +
338 + bottomSheetDialog.show();
339 + }
340 +
279 private void initViews() { 341 private void initViews() {
280 if (mIsUnified) { 342 if (mIsUnified) {
281 mTvCouponCodeTitle.setVisibility(View.GONE); 343 mTvCouponCodeTitle.setVisibility(View.GONE);
...@@ -288,7 +350,8 @@ public class CouponInfoActivity extends Activity implements View.OnClickListener ...@@ -288,7 +350,8 @@ public class CouponInfoActivity extends Activity implements View.OnClickListener
288 350
289 if (mCoupon != null) { 351 if (mCoupon != null) {
290 if (mIsUnified) { 352 if (mIsUnified) {
291 - mTvCouponTitle.setText(HtmlCompat.fromHtml(mCoupon.getName(), HtmlCompat.FROM_HTML_MODE_COMPACT)); 353 +// mTvCouponTitle.setText(HtmlCompat.fromHtml(mCoupon.getName(), HtmlCompat.FROM_HTML_MODE_COMPACT));
354 + mTvCouponTitle.setText(mCoupon.getCouponsetDetails().getName());
292 } else { 355 } else {
293 mTvCouponCode.setText(mCoupon.getCoupon()); 356 mTvCouponCode.setText(mCoupon.getCoupon());
294 mTvCouponTitle.setText(mCoupon.getCouponsetDetails().getName()); 357 mTvCouponTitle.setText(mCoupon.getCouponsetDetails().getName());
......
...@@ -196,7 +196,7 @@ public class CouponShareActivity extends Activity implements View.OnClickListene ...@@ -196,7 +196,7 @@ public class CouponShareActivity extends Activity implements View.OnClickListene
196 } 196 }
197 197
198 private void showSharingDialog() { 198 private void showSharingDialog() {
199 - final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this); 199 + final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this, R.style.BottomSheetDialog);
200 bottomSheetDialog.setContentView(R.layout.dl_share); 200 bottomSheetDialog.setContentView(R.layout.dl_share);
201 LinearLayout parent = bottomSheetDialog.findViewById(R.id.ll_share_dialog_view_inner); 201 LinearLayout parent = bottomSheetDialog.findViewById(R.id.ll_share_dialog_view_inner);
202 202
......
...@@ -211,7 +211,7 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe ...@@ -211,7 +211,7 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe
211 for (Merchant merch : mMerchantList) { 211 for (Merchant merch : mMerchantList) {
212 if (merch.getUuid().equals(marker.getSnippet())) { 212 if (merch.getUuid().equals(marker.getSnippet())) {
213 WarplyAnalyticsManager.logTrackersEvent(this, "click", ("ShopsScreenMarker").concat(":").concat(marker.getSnippet())); 213 WarplyAnalyticsManager.logTrackersEvent(this, "click", ("ShopsScreenMarker").concat(":").concat(marker.getSnippet()));
214 - final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this); 214 + final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this, R.style.BottomSheetDialog);
215 bottomSheetDialog.setContentView(R.layout.dl_map_pin); 215 bottomSheetDialog.setContentView(R.layout.dl_map_pin);
216 216
217 ImageView dialogClose = (ImageView) bottomSheetDialog.findViewById(R.id.iv_map_pin_close); 217 ImageView dialogClose = (ImageView) bottomSheetDialog.findViewById(R.id.iv_map_pin_close);
......
...@@ -212,7 +212,7 @@ public class ShopsHuaweiActivity extends FragmentActivity implements View.OnClic ...@@ -212,7 +212,7 @@ public class ShopsHuaweiActivity extends FragmentActivity implements View.OnClic
212 for (Merchant merch : mMerchantList) { 212 for (Merchant merch : mMerchantList) {
213 if (merch.getUuid().equals(marker.getSnippet())) { 213 if (merch.getUuid().equals(marker.getSnippet())) {
214 WarplyAnalyticsManager.logTrackersEvent(this, "click", ("ShopsScreenMarker").concat(":").concat(marker.getSnippet())); 214 WarplyAnalyticsManager.logTrackersEvent(this, "click", ("ShopsScreenMarker").concat(":").concat(marker.getSnippet()));
215 - final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this); 215 + final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this, R.style.BottomSheetDialog);
216 bottomSheetDialog.setContentView(R.layout.dl_map_pin); 216 bottomSheetDialog.setContentView(R.layout.dl_map_pin);
217 217
218 ImageView dialogClose = (ImageView) bottomSheetDialog.findViewById(R.id.iv_map_pin_close); 218 ImageView dialogClose = (ImageView) bottomSheetDialog.findViewById(R.id.iv_map_pin_close);
......
...@@ -172,7 +172,7 @@ public class TelcoActivity extends Activity implements View.OnClickListener { ...@@ -172,7 +172,7 @@ public class TelcoActivity extends Activity implements View.OnClickListener {
172 } 172 }
173 173
174 private void showActivationDialog() { 174 private void showActivationDialog() {
175 - final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this); 175 + final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this, R.style.BottomSheetDialog);
176 bottomSheetDialog.setContentView(R.layout.dl_share); 176 bottomSheetDialog.setContentView(R.layout.dl_share);
177 TextView tvHeader = bottomSheetDialog.findViewById(R.id.tv_sender_value); 177 TextView tvHeader = bottomSheetDialog.findViewById(R.id.tv_sender_value);
178 WarpUtils.renderCustomFont(this, R.font.bt_cosmo_bold, tvHeader); 178 WarpUtils.renderCustomFont(this, R.font.bt_cosmo_bold, tvHeader);
......
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.Context;
4 import android.content.Intent; 5 import android.content.Intent;
5 import android.graphics.Bitmap; 6 import android.graphics.Bitmap;
6 import android.graphics.Color; 7 import android.graphics.Color;
7 import android.os.Bundle; 8 import android.os.Bundle;
8 import android.text.TextUtils; 9 import android.text.TextUtils;
10 +import android.view.LayoutInflater;
9 import android.view.View; 11 import android.view.View;
12 +import android.view.ViewGroup;
10 import android.widget.ImageView; 13 import android.widget.ImageView;
11 import android.widget.LinearLayout; 14 import android.widget.LinearLayout;
12 import android.widget.TextView; 15 import android.widget.TextView;
13 16
14 import androidx.appcompat.app.AlertDialog; 17 import androidx.appcompat.app.AlertDialog;
18 +import androidx.constraintlayout.widget.ConstraintLayout;
15 import androidx.core.content.ContextCompat; 19 import androidx.core.content.ContextCompat;
16 import androidx.recyclerview.widget.LinearLayoutManager; 20 import androidx.recyclerview.widget.LinearLayoutManager;
17 import androidx.recyclerview.widget.RecyclerView; 21 import androidx.recyclerview.widget.RecyclerView;
18 22
19 import com.google.android.gms.common.ConnectionResult; 23 import com.google.android.gms.common.ConnectionResult;
20 import com.google.android.gms.common.GoogleApiAvailability; 24 import com.google.android.gms.common.GoogleApiAvailability;
25 +import com.google.android.material.bottomsheet.BottomSheetDialog;
21 import com.google.zxing.BarcodeFormat; 26 import com.google.zxing.BarcodeFormat;
22 import com.google.zxing.common.BitMatrix; 27 import com.google.zxing.common.BitMatrix;
23 import com.google.zxing.oned.EAN13Writer; 28 import com.google.zxing.oned.EAN13Writer;
...@@ -56,7 +61,7 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL ...@@ -56,7 +61,7 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL
56 private ImageView mIvBack, mIvBarcode, mIvMarketExpand; 61 private ImageView mIvBack, mIvBarcode, mIvMarketExpand;
57 private TextView mTvTerms, mTvCouponCode, mTvCouponDate, mTvMarketExpand, mFontSMLabel, 62 private TextView mTvTerms, mTvCouponCode, mTvCouponDate, mTvMarketExpand, mFontSMLabel,
58 mTvTermsValue, mTvFullBarcode, mTvActiveValue, mFontHeader, mFontCouponLabel, 63 mTvTermsValue, mTvFullBarcode, mTvActiveValue, mFontHeader, mFontCouponLabel,
59 - mFontShopsLabel, mFontCancelLabel; 64 + mFontShopsLabel, mFontCancelLabel, mTvBarcodeTitle;
60 private LinearLayout mLlShops, mLlBarcodeContainer, mLlTerms, mLlMarketCoupons, mLlMarketExpand, 65 private LinearLayout mLlShops, mLlBarcodeContainer, mLlTerms, mLlMarketCoupons, mLlMarketExpand,
61 mLlCancelUnified; 66 mLlCancelUnified;
62 private UnifiedCoupon mCoupon; 67 private UnifiedCoupon mCoupon;
...@@ -108,11 +113,12 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL ...@@ -108,11 +113,12 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL
108 mFontCouponLabel = findViewById(R.id.textView15); 113 mFontCouponLabel = findViewById(R.id.textView15);
109 mFontShopsLabel = findViewById(R.id.shops_label); 114 mFontShopsLabel = findViewById(R.id.shops_label);
110 mFontCancelLabel = findViewById(R.id.cancel_label); 115 mFontCancelLabel = findViewById(R.id.cancel_label);
116 + mTvBarcodeTitle = findViewById(R.id.tv_barcode_title);
111 WarpUtils.renderCustomFont(this, R.font.bt_cosmo_bold, mFontHeader, mFontSMLabel); 117 WarpUtils.renderCustomFont(this, R.font.bt_cosmo_bold, mFontHeader, mFontSMLabel);
112 - WarpUtils.renderCustomFont(this, R.font.peridot_regular, mTvActiveValue, mTvCouponDate, 118 + WarpUtils.renderCustomFont(this, R.font.peridot_regular, mTvActiveValue,
113 mTvTermsValue); 119 mTvTermsValue);
114 WarpUtils.renderCustomFont(this, R.font.peridot_bold, mFontCouponLabel, mTvCouponCode, 120 WarpUtils.renderCustomFont(this, R.font.peridot_bold, mFontCouponLabel, mTvCouponCode,
115 - mTvMarketExpand, mTvTerms); 121 + mTvMarketExpand, mTvTerms, mTvCouponDate, mTvBarcodeTitle);
116 WarpUtils.renderCustomFont(this, R.font.pf_square_sans_pro_regular, mTvFullBarcode); 122 WarpUtils.renderCustomFont(this, R.font.pf_square_sans_pro_regular, mTvFullBarcode);
117 WarpUtils.renderCustomFont(this, R.font.peridot_semi_bold, mFontShopsLabel, mFontCancelLabel); 123 WarpUtils.renderCustomFont(this, R.font.peridot_semi_bold, mFontShopsLabel, mFontCancelLabel);
118 124
...@@ -137,19 +143,7 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL ...@@ -137,19 +143,7 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL
137 return; 143 return;
138 } 144 }
139 if (view.getId() == R.id.ll_shops) { 145 if (view.getId() == R.id.ll_shops) {
140 - if (!mShopsPressed) { 146 + showChooseCategoryDialog();
141 - mShopsPressed = true;
142 - WarplyAnalyticsManager.logTrackersEvent(this, "click", "SeeShops");
143 - if (GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(UnifiedCouponInfoActivity.this) == ConnectionResult.SUCCESS) {
144 - Intent intent = new Intent(UnifiedCouponInfoActivity.this, ShopsActivity.class);
145 - startActivity(intent);
146 - return;
147 - } else {
148 - Intent intent = new Intent(UnifiedCouponInfoActivity.this, ShopsHuaweiActivity.class);
149 - startActivity(intent);
150 - return;
151 - }
152 - }
153 } 147 }
154 if (view.getId() == R.id.ll_terms_inner) { 148 if (view.getId() == R.id.ll_terms_inner) {
155 if (mIsTermsShown) { 149 if (mIsTermsShown) {
...@@ -188,6 +182,81 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL ...@@ -188,6 +182,81 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL
188 // Methods 182 // Methods
189 // =========================================================== 183 // ===========================================================
190 184
185 + private void showChooseCategoryDialog() {
186 + final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this, R.style.BottomSheetDialog);
187 + bottomSheetDialog.setContentView(R.layout.dl_bottom_sheet_categories);
188 + bottomSheetDialog.setOnDismissListener(dialog -> bottomSheetDialog.dismiss());
189 + ImageView dialogCLose = (ImageView) bottomSheetDialog.findViewById(R.id.iv_sm_sheet_category_close);
190 + dialogCLose.setOnClickListener(view -> bottomSheetDialog.dismiss());
191 + TextView sheetButtonShops = bottomSheetDialog.findViewById(R.id.shops_label);
192 + TextView sheetButtonEShops = bottomSheetDialog.findViewById(R.id.eshops_label);
193 + WarpUtils.renderCustomFont(this, R.font.peridot_semi_bold, sheetButtonShops);
194 + WarpUtils.renderCustomFont(this, R.font.peridot_bold, sheetButtonEShops);
195 +
196 + LinearLayout buttonShops = bottomSheetDialog.findViewById(R.id.ll_unified_shops);
197 + LinearLayout buttonEshops = bottomSheetDialog.findViewById(R.id.ll_unified_eshops);
198 +
199 + buttonShops.setOnClickListener(view -> {
200 + if (!mShopsPressed) {
201 + mShopsPressed = true;
202 + bottomSheetDialog.dismiss();
203 + WarplyAnalyticsManager.logTrackersEvent(this, "click", "SeeShops");
204 + if (GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(UnifiedCouponInfoActivity.this) == ConnectionResult.SUCCESS) {
205 + Intent intent = new Intent(UnifiedCouponInfoActivity.this, ShopsActivity.class);
206 + startActivity(intent);
207 + } else {
208 + Intent intent = new Intent(UnifiedCouponInfoActivity.this, ShopsHuaweiActivity.class);
209 + startActivity(intent);
210 + }
211 + }
212 + });
213 +
214 + buttonEshops.setOnClickListener(view -> {
215 + bottomSheetDialog.dismiss();
216 + showChooseMerchantDialog();
217 + });
218 +
219 + bottomSheetDialog.show();
220 + }
221 +
222 + private void showChooseMerchantDialog() {
223 + final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this, R.style.BottomSheetDialog);
224 + bottomSheetDialog.setContentView(R.layout.dl_bottom_sheet_merchants);
225 + bottomSheetDialog.setOnDismissListener(dialog -> bottomSheetDialog.dismiss());
226 + TextView sheetTitle = bottomSheetDialog.findViewById(R.id.tv_sm_sheet_title);
227 + sheetTitle.setText(R.string.cos_markets_eshop);
228 + TextView sheetSubtitle = bottomSheetDialog.findViewById(R.id.tv_sm_sheet_subtitle);
229 + WarpUtils.renderCustomFont(this, R.font.bt_cosmo_bold, sheetTitle);
230 + WarpUtils.renderCustomFont(this, R.font.peridot_regular, sheetSubtitle);
231 + LinearLayout parent = bottomSheetDialog.findViewById(R.id.ll_sm_sheet_view_inner);
232 +
233 + ImageView dialogClose = (ImageView) bottomSheetDialog.findViewById(R.id.iv_sm_sheet_close);
234 + dialogClose.setOnClickListener(view -> bottomSheetDialog.dismiss());
235 +
236 + int tempLoop = 2;
237 + for (int i = 0; i < tempLoop; i++) {
238 + LayoutInflater vi = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
239 + LinearLayout v = (LinearLayout) vi.inflate(R.layout.item_sheet_merchant, null);
240 +
241 + TextView textView = (TextView) v.findViewById(R.id.button_sm_buy_it);
242 + textView.setText(R.string.cos_markets_eshop_item);
243 + WarpUtils.renderCustomFont(this, R.font.peridot_semi_bold, textView);
244 + ImageView buttonIcon = (ImageView) v.findViewById(R.id.iv_sheet_cart);
245 + buttonIcon.setVisibility(View.GONE);
246 + ConstraintLayout buyButton = (ConstraintLayout) v.findViewById(R.id.cl_button_sm_buy_it);
247 + buyButton.setOnClickListener(view -> {
248 + //TODO: open webview with the specified url
249 + bottomSheetDialog.dismiss();
250 + });
251 +
252 + parent.addView(v, 0, new ViewGroup.LayoutParams(
253 + ViewGroup.LayoutParams.MATCH_PARENT,
254 + ViewGroup.LayoutParams.WRAP_CONTENT));
255 + }
256 +
257 + bottomSheetDialog.show();
258 + }
259 +
191 private void initViews() { 260 private void initViews() {
192 mTvCouponCode.setText(mCoupon.getBarcode()); 261 mTvCouponCode.setText(mCoupon.getBarcode());
193 262
...@@ -228,7 +297,7 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL ...@@ -228,7 +297,7 @@ public class UnifiedCouponInfoActivity extends Activity implements View.OnClickL
228 e.printStackTrace(); 297 e.printStackTrace();
229 } 298 }
230 simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy"); 299 simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy");
231 - mTvCouponDate.setText(String.format(getResources().getString(R.string.cos_mycoupon_date), simpleDateFormat.format(newDate != null ? newDate : ""))); 300 + mTvCouponDate.setText(String.format(getResources().getString(R.string.cos_coupon_date), simpleDateFormat.format(newDate != null ? newDate : "")));
232 break; 301 break;
233 } 302 }
234 } 303 }
......
...@@ -79,6 +79,7 @@ public class Couponset implements Parcelable, Serializable { ...@@ -79,6 +79,7 @@ public class Couponset implements Parcelable, Serializable {
79 private static final String INNER_TEXT = "inner_text"; 79 private static final String INNER_TEXT = "inner_text";
80 private static final String FINAL_PRICE = "final_price"; 80 private static final String FINAL_PRICE = "final_price";
81 private static final String DISCOUNT_TYPE = "discount_type"; 81 private static final String DISCOUNT_TYPE = "discount_type";
82 + private static final String EXTRA_FIELDS = "extra_fields";
82 83
83 84
84 /* Member variables of the Campaign object */ 85 /* Member variables of the Campaign object */
...@@ -113,6 +114,7 @@ public class Couponset implements Parcelable, Serializable { ...@@ -113,6 +114,7 @@ public class Couponset implements Parcelable, Serializable {
113 private double final_price = 0.0d; 114 private double final_price = 0.0d;
114 private Date endDate = new Date(); 115 private Date endDate = new Date();
115 private String couponsetType = ""; 116 private String couponsetType = "";
117 + private JSONObject extraFields = new JSONObject();
116 118
117 public Couponset() { 119 public Couponset() {
118 this.uuid = ""; 120 this.uuid = "";
...@@ -143,6 +145,7 @@ public class Couponset implements Parcelable, Serializable { ...@@ -143,6 +145,7 @@ public class Couponset implements Parcelable, Serializable {
143 this.innerText = ""; 145 this.innerText = "";
144 this.discount_type = ""; 146 this.discount_type = "";
145 this.final_price = 0.0d; 147 this.final_price = 0.0d;
148 + this.extraFields = new JSONObject();
146 } 149 }
147 150
148 public Couponset(boolean isUniversal) { 151 public Couponset(boolean isUniversal) {
...@@ -164,6 +167,7 @@ public class Couponset implements Parcelable, Serializable { ...@@ -164,6 +167,7 @@ public class Couponset implements Parcelable, Serializable {
164 this.img_preview = ""; 167 this.img_preview = "";
165 this.innerText = ""; 168 this.innerText = "";
166 this.final_price = 0.0d; 169 this.final_price = 0.0d;
170 + this.extraFields = new JSONObject();
167 } 171 }
168 172
169 /** 173 /**
...@@ -219,6 +223,7 @@ public class Couponset implements Parcelable, Serializable { ...@@ -219,6 +223,7 @@ public class Couponset implements Parcelable, Serializable {
219 this.innerText = json.optString(INNER_TEXT); 223 this.innerText = json.optString(INNER_TEXT);
220 this.discount_type = json.isNull(DISCOUNT_TYPE) ? "" : json.optString(DISCOUNT_TYPE); 224 this.discount_type = json.isNull(DISCOUNT_TYPE) ? "" : json.optString(DISCOUNT_TYPE);
221 this.final_price = json.isNull(FINAL_PRICE) ? 0.0d : json.optDouble(FINAL_PRICE); 225 this.final_price = json.isNull(FINAL_PRICE) ? 0.0d : json.optDouble(FINAL_PRICE);
226 + this.extraFields = json.optJSONObject(EXTRA_FIELDS);
222 } 227 }
223 } 228 }
224 229
...@@ -241,6 +246,7 @@ public class Couponset implements Parcelable, Serializable { ...@@ -241,6 +246,7 @@ public class Couponset implements Parcelable, Serializable {
241 this.img_preview = json.optString(IMG_PREVIEW); 246 this.img_preview = json.optString(IMG_PREVIEW);
242 this.innerText = json.optString(INNER_TEXT); 247 this.innerText = json.optString(INNER_TEXT);
243 this.final_price = json.isNull(FINAL_PRICE) ? 0.0d : json.optDouble(FINAL_PRICE); 248 this.final_price = json.isNull(FINAL_PRICE) ? 0.0d : json.optDouble(FINAL_PRICE);
249 + this.extraFields = json.optJSONObject(EXTRA_FIELDS);
244 // SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm"); 250 // SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm");
245 // Date newDate = new Date(); 251 // Date newDate = new Date();
246 // String tempRedeemDate = json.optString("end_date"); 252 // String tempRedeemDate = json.optString("end_date");
...@@ -371,6 +377,7 @@ public class Couponset implements Parcelable, Serializable { ...@@ -371,6 +377,7 @@ public class Couponset implements Parcelable, Serializable {
371 jObj.putOpt(INNER_TEXT, this.innerText); 377 jObj.putOpt(INNER_TEXT, this.innerText);
372 jObj.putOpt(DISCOUNT_TYPE, this.discount_type); 378 jObj.putOpt(DISCOUNT_TYPE, this.discount_type);
373 jObj.putOpt(FINAL_PRICE, this.final_price); 379 jObj.putOpt(FINAL_PRICE, this.final_price);
380 + jObj.putOpt(EXTRA_FIELDS, this.extraFields);
374 } catch (JSONException e) { 381 } catch (JSONException e) {
375 if (WarpConstants.DEBUG) { 382 if (WarpConstants.DEBUG) {
376 e.printStackTrace(); 383 e.printStackTrace();
...@@ -642,6 +649,26 @@ public class Couponset implements Parcelable, Serializable { ...@@ -642,6 +649,26 @@ public class Couponset implements Parcelable, Serializable {
642 this.couponsetType = couponsetType; 649 this.couponsetType = couponsetType;
643 } 650 }
644 651
652 + public String getAdmin_name() {
653 + return admin_name;
654 + }
655 +
656 + public JSONObject getExtraFields() {
657 + return extraFields;
658 + }
659 +
660 + public void setExtraFields(JSONObject extraFields) {
661 + this.extraFields = extraFields;
662 + }
663 +
664 + public String getShort_description() {
665 + return short_description;
666 + }
667 +
668 + public String getImg_preview() {
669 + return img_preview;
670 + }
671 +
645 @Override 672 @Override
646 public int describeContents() { 673 public int describeContents() {
647 return 0; 674 return 0;
......
...@@ -4252,7 +4252,7 @@ public class WarplyManager { ...@@ -4252,7 +4252,7 @@ public class WarplyManager {
4252 Map<String, Object> jsonParams = new ArrayMap<>(); 4252 Map<String, Object> jsonParams = new ArrayMap<>();
4253 jsonParams.put("action", "retrieve_multilingual"); 4253 jsonParams.put("action", "retrieve_multilingual");
4254 jsonParams.put("active", true); 4254 jsonParams.put("active", true);
4255 - jsonParams.put("visible", true); 4255 + jsonParams.put("visible", JSONObject.NULL);
4256 jsonParams.put("language", WarplyProperty.getLanguage(Warply.getWarplyContext())); 4256 jsonParams.put("language", WarplyProperty.getLanguage(Warply.getWarplyContext()));
4257 jsonParams.put("couponset_types", new JSONArray().put("supermarket")); 4257 jsonParams.put("couponset_types", new JSONArray().put("supermarket"));
4258 4258
......
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_green_tr2" android:state_pressed="true" />
4 + <item android:drawable="@drawable/shape_cos_green2" 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="12dp" />
5 +
6 + <solid
7 + android:width="2dp"
8 + android:color="@color/cos_green12" />
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="12dp" />
5 +
6 + <solid
7 + android:width="2dp"
8 + android:color="@color/cos_green6_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="20dp" />
5 +
6 + <solid android:color="@color/cos_light_grey3" />
7 +</shape>
...\ No newline at end of file ...\ No newline at end of file
...@@ -72,6 +72,20 @@ ...@@ -72,6 +72,20 @@
72 android:textSize="18sp" /> 72 android:textSize="18sp" />
73 73
74 <TextView 74 <TextView
75 + android:id="@+id/textView17"
76 + android:layout_width="wrap_content"
77 + android:layout_height="wrap_content"
78 + android:layout_gravity="center"
79 + android:layout_marginTop="8dp"
80 + android:background="@drawable/shape_rounded_blue"
81 + android:includeFontPadding="false"
82 + android:paddingHorizontal="14dp"
83 + android:paddingVertical="3dp"
84 + android:textColor="@color/cos_blue6"
85 + android:textSize="14sp"
86 + tools:text="@string/cos_coupon_date" />
87 +
88 + <TextView
75 android:id="@+id/textView14" 89 android:id="@+id/textView14"
76 android:layout_width="match_parent" 90 android:layout_width="match_parent"
77 android:layout_height="wrap_content" 91 android:layout_height="wrap_content"
...@@ -122,18 +136,29 @@ ...@@ -122,18 +136,29 @@
122 android:orientation="vertical" 136 android:orientation="vertical"
123 tools:visibility="visible"> 137 tools:visibility="visible">
124 138
139 + <TextView
140 + android:id="@+id/tv_barcode_title"
141 + android:layout_width="wrap_content"
142 + android:layout_height="wrap_content"
143 + android:layout_gravity="center"
144 + android:text="@string/cos_barcode_coupon_title"
145 + android:textColor="@color/cos_light_black"
146 + android:textSize="16sp" />
147 +
125 <View 148 <View
126 android:id="@+id/view5" 149 android:id="@+id/view5"
127 android:layout_width="match_parent" 150 android:layout_width="match_parent"
128 android:layout_height="0.8dp" 151 android:layout_height="0.8dp"
152 + android:layout_marginTop="16dp"
129 android:layout_marginHorizontal="32dp" 153 android:layout_marginHorizontal="32dp"
130 android:background="#E6E6E6" /> 154 android:background="#E6E6E6" />
131 155
132 <ImageView 156 <ImageView
133 android:id="@+id/iv_barcode" 157 android:id="@+id/iv_barcode"
134 - android:layout_width="284dp" 158 + android:layout_width="match_parent"
135 android:layout_height="86dp" 159 android:layout_height="86dp"
136 android:layout_marginTop="16dp" 160 android:layout_marginTop="16dp"
161 + android:layout_marginHorizontal="48dp"
137 android:scaleType="fitXY" 162 android:scaleType="fitXY"
138 tools:srcCompat="@tools:sample/avatars" /> 163 tools:srcCompat="@tools:sample/avatars" />
139 164
...@@ -152,21 +177,11 @@ ...@@ -152,21 +177,11 @@
152 android:layout_width="match_parent" 177 android:layout_width="match_parent"
153 android:layout_height="0.8dp" 178 android:layout_height="0.8dp"
154 android:layout_marginHorizontal="32dp" 179 android:layout_marginHorizontal="32dp"
155 - android:layout_marginTop="20dp" 180 + android:layout_marginTop="16dp"
156 android:background="#E6E6E6" /> 181 android:background="#E6E6E6" />
157 </LinearLayout> 182 </LinearLayout>
158 </LinearLayout> 183 </LinearLayout>
159 184
160 - <TextView
161 - android:id="@+id/textView17"
162 - android:layout_width="wrap_content"
163 - android:layout_height="wrap_content"
164 - android:layout_gravity="center"
165 - android:layout_marginTop="16dp"
166 - android:textColor="@color/cos_light_black"
167 - android:textSize="16sp"
168 - tools:text="@string/cos_coupon_date" />
169 -
170 <LinearLayout 185 <LinearLayout
171 android:id="@+id/ll_market_expand" 186 android:id="@+id/ll_market_expand"
172 android:layout_width="wrap_content" 187 android:layout_width="wrap_content"
......
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 + android:id="@+id/rl_sm_sheet_dialog_view"
4 + android:layout_width="match_parent"
5 + android:layout_height="match_parent"
6 + android:background="@drawable/shape_cos_white_rounded_top"
7 + android:orientation="vertical">
8 +
9 + <RelativeLayout
10 + android:id="@+id/rl_sm_sheet"
11 + android:layout_width="match_parent"
12 + android:layout_height="wrap_content"
13 + android:layout_marginBottom="24dp"
14 + android:paddingTop="16dp">
15 +
16 + <ImageView
17 + android:id="@+id/iv_sm_sheet_category_close"
18 + android:layout_width="16dp"
19 + android:layout_height="16dp"
20 + android:layout_alignParentEnd="true"
21 + android:layout_marginEnd="24dp"
22 + android:src="@drawable/ic_close" />
23 + </RelativeLayout>
24 +
25 + <LinearLayout
26 + android:id="@+id/ll_unified_shops"
27 + android:layout_width="312dp"
28 + android:layout_height="55dp"
29 + android:layout_gravity="center"
30 + android:background="@drawable/selector_button_green"
31 + android:gravity="center"
32 + android:orientation="horizontal"
33 + android:paddingVertical="8dp">
34 +
35 + <TextView
36 + android:id="@+id/shops_label"
37 + android:layout_width="wrap_content"
38 + android:layout_height="wrap_content"
39 + android:gravity="center"
40 + android:includeFontPadding="false"
41 + android:text="@string/cos_markets_map"
42 + android:textColor="@color/white"
43 + android:textSize="16sp" />
44 + </LinearLayout>
45 +
46 + <LinearLayout
47 + android:id="@+id/ll_unified_eshops"
48 + android:layout_width="312dp"
49 + android:layout_height="55dp"
50 + android:layout_gravity="center"
51 + android:layout_marginTop="20dp"
52 + android:layout_marginBottom="48dp"
53 + android:background="@drawable/selector_button_green_border"
54 + android:gravity="center"
55 + android:orientation="horizontal"
56 + android:paddingVertical="8dp">
57 +
58 + <TextView
59 + android:id="@+id/eshops_label"
60 + android:layout_width="wrap_content"
61 + android:layout_height="wrap_content"
62 + android:gravity="center"
63 + android:includeFontPadding="false"
64 + android:text="@string/cos_markets_eshop"
65 + android:textColor="@color/cos_green12"
66 + android:textSize="16sp" />
67 + </LinearLayout>
68 +</LinearLayout>
...\ No newline at end of file ...\ No newline at end of file
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 + android:id="@+id/rl_sm_sheet_dialog_view"
4 + android:layout_width="match_parent"
5 + android:layout_height="match_parent"
6 + android:orientation="vertical"
7 + android:background="@drawable/shape_cos_white_rounded_top">
8 +
9 + <RelativeLayout
10 + android:id="@+id/rl_sm_sheet"
11 + android:layout_width="match_parent"
12 + android:layout_height="wrap_content"
13 + android:layout_marginBottom="24dp"
14 + android:paddingTop="16dp">
15 +
16 + <TextView
17 + android:id="@+id/tv_sm_sheet_title"
18 + android:layout_width="wrap_content"
19 + android:layout_height="wrap_content"
20 + android:layout_alignParentStart="true"
21 + android:layout_marginStart="24dp"
22 + android:text="@string/cos_find_sm_product"
23 + android:textColor="@color/cos_light_black"
24 + android:textSize="17sp" />
25 +
26 + <ImageView
27 + android:id="@+id/iv_sm_sheet_close"
28 + android:layout_width="16dp"
29 + android:layout_height="16dp"
30 + android:layout_alignParentEnd="true"
31 + android:layout_marginEnd="24dp"
32 + android:src="@drawable/ic_close" />
33 + </RelativeLayout>
34 +
35 + <LinearLayout
36 + android:id="@+id/ll_sm_sheet_view_inner"
37 + android:layout_width="match_parent"
38 + android:layout_height="wrap_content"
39 + android:layout_marginHorizontal="24dp"
40 + android:layout_marginTop="48dp"
41 + android:orientation="vertical">
42 +
43 + </LinearLayout>
44 +
45 + <TextView
46 + android:id="@+id/tv_sm_sheet_subtitle"
47 + android:layout_width="wrap_content"
48 + android:layout_height="wrap_content"
49 + android:layout_marginHorizontal="48dp"
50 + android:layout_marginVertical="32dp"
51 + android:text="@string/cos_sm_sheet_subtitle"
52 + android:textColor="@color/cos_light_black"
53 + android:layout_gravity="center"
54 + android:gravity="center"
55 + android:textSize="14sp" />
56 +</LinearLayout>
...\ No newline at end of file ...\ No newline at end of file
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
4 android:id="@+id/rl_map_pin_view" 4 android:id="@+id/rl_map_pin_view"
5 android:layout_width="match_parent" 5 android:layout_width="match_parent"
6 android:layout_height="match_parent" 6 android:layout_height="match_parent"
7 - android:background="@android:color/white" 7 + android:background="@drawable/shape_cos_white_rounded_top"
8 android:orientation="vertical"> 8 android:orientation="vertical">
9 9
10 <RelativeLayout 10 <RelativeLayout
...@@ -12,7 +12,6 @@ ...@@ -12,7 +12,6 @@
12 android:layout_width="match_parent" 12 android:layout_width="match_parent"
13 android:layout_height="wrap_content" 13 android:layout_height="wrap_content"
14 android:layout_marginBottom="24dp" 14 android:layout_marginBottom="24dp"
15 - android:background="@drawable/shape_cos_white_rounded_top"
16 android:paddingHorizontal="24dp" 15 android:paddingHorizontal="24dp"
17 android:paddingTop="16dp"> 16 android:paddingTop="16dp">
18 17
......
...@@ -3,14 +3,14 @@ ...@@ -3,14 +3,14 @@
3 android:id="@+id/rl_share_dialog_view" 3 android:id="@+id/rl_share_dialog_view"
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:orientation="vertical"> 6 + android:orientation="vertical"
7 + android:background="@drawable/shape_cos_white_rounded_top">
7 8
8 <RelativeLayout 9 <RelativeLayout
9 android:id="@+id/rl_sender_list" 10 android:id="@+id/rl_sender_list"
10 android:layout_width="match_parent" 11 android:layout_width="match_parent"
11 android:layout_height="wrap_content" 12 android:layout_height="wrap_content"
12 android:layout_marginBottom="24dp" 13 android:layout_marginBottom="24dp"
13 - android:background="@drawable/shape_cos_white_rounded_top"
14 android:paddingTop="16dp"> 14 android:paddingTop="16dp">
15 15
16 <TextView 16 <TextView
......
1 +<?xml version="1.0" encoding="utf-8"?>
2 +<LinearLayout 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="wrap_content"
6 + android:background="@android:color/white">
7 +
8 + <androidx.constraintlayout.widget.ConstraintLayout
9 + android:layout_width="match_parent"
10 + android:layout_height="56dp"
11 + android:layout_marginBottom="32dp"
12 + android:background="@drawable/shape_cos_sheet_item">
13 +
14 + <ImageView
15 + android:layout_width="140dp"
16 + android:layout_height="36dp"
17 + android:layout_marginStart="24dp"
18 + android:background="@color/blue_dark"
19 + app:layout_constraintBottom_toBottomOf="parent"
20 + app:layout_constraintStart_toStartOf="parent"
21 + app:layout_constraintTop_toTopOf="parent" />
22 +
23 + <androidx.constraintlayout.widget.ConstraintLayout
24 + android:id="@+id/cl_button_sm_buy_it"
25 + android:layout_width="150dp"
26 + android:layout_height="36dp"
27 + android:layout_marginEnd="8dp"
28 + android:background="@drawable/selector_button_green2"
29 + app:layout_constraintBottom_toBottomOf="parent"
30 + app:layout_constraintEnd_toEndOf="parent"
31 + app:layout_constraintTop_toTopOf="parent">
32 +
33 + <TextView
34 + android:id="@+id/button_sm_buy_it"
35 + android:layout_width="wrap_content"
36 + android:layout_height="wrap_content"
37 + android:includeFontPadding="false"
38 + android:text="@string/cos_sm_buy_it"
39 + android:textColor="@color/white"
40 + android:textSize="14sp"
41 + app:layout_constraintBottom_toBottomOf="parent"
42 + app:layout_constraintEnd_toEndOf="parent"
43 + app:layout_constraintStart_toStartOf="parent"
44 + app:layout_constraintTop_toTopOf="parent" />
45 +
46 + <ImageView
47 + android:id="@+id/iv_sheet_cart"
48 + android:layout_width="16dp"
49 + android:layout_height="16dp"
50 + android:src="@drawable/ic_sm_cart"
51 + android:layout_marginEnd="8dp"
52 + app:layout_constraintBottom_toBottomOf="parent"
53 + app:layout_constraintEnd_toEndOf="parent"
54 + app:layout_constraintTop_toTopOf="parent" />
55 + </androidx.constraintlayout.widget.ConstraintLayout>
56 + </androidx.constraintlayout.widget.ConstraintLayout>
57 +</LinearLayout>
...\ No newline at end of file ...\ No newline at end of file
...@@ -88,6 +88,7 @@ ...@@ -88,6 +88,7 @@
88 <string name="cos_mycoupon_date">Το κουπόνι ισχύει έως %1$s</string> 88 <string name="cos_mycoupon_date">Το κουπόνι ισχύει έως %1$s</string>
89 <string name="cos_gift_it">Δώρισέ το</string> 89 <string name="cos_gift_it">Δώρισέ το</string>
90 <string name="cos_sm_find_it">Βρες το στα supermarket</string> 90 <string name="cos_sm_find_it">Βρες το στα supermarket</string>
91 + <string name="cos_sm_buy_it">Βρες το</string>
91 <string name="cos_activate_unified">Συνδύασε τις προσφορές σε ένα κουπόνι</string> 92 <string name="cos_activate_unified">Συνδύασε τις προσφορές σε ένα κουπόνι</string>
92 <string name="cos_popup_more_title">COSMOTE MORE FOR YOU</string> 93 <string name="cos_popup_more_title">COSMOTE MORE FOR YOU</string>
93 <string name="cos_popup_more_subtitle">Σε αυτή την ενότητα βρες έρευνες, παιχνίδια, διαγωνισμούς και επιβραβεύσεις για τις αθλητικές σου δραστηριότητες!</string> 94 <string name="cos_popup_more_subtitle">Σε αυτή την ενότητα βρες έρευνες, παιχνίδια, διαγωνισμούς και επιβραβεύσεις για τις αθλητικές σου δραστηριότητες!</string>
...@@ -122,6 +123,8 @@ ...@@ -122,6 +123,8 @@
122 <string name="cos_coupon_gift">Δώρισέ το</string> 123 <string name="cos_coupon_gift">Δώρισέ το</string>
123 <string name="cos_coupon_share_gift_title">Επίλεξε το κινητό από το οποίο θα γίνει η αποστολή και συμπλήρωσε το COSMOTE κινητό που θα λάβει το δώρο.</string> 124 <string name="cos_coupon_share_gift_title">Επίλεξε το κινητό από το οποίο θα γίνει η αποστολή και συμπλήρωσε το COSMOTE κινητό που θα λάβει το δώρο.</string>
124 <string name="cos_coupon_share_sender">Αποστολέας</string> 125 <string name="cos_coupon_share_sender">Αποστολέας</string>
126 + <string name="cos_find_sm_product">Βρες το προϊον στα supermarket</string>
127 + <string name="cos_sm_sheet_subtitle">Η διαθεσιμότητα ενδέχεται να διαφέρει ανάλογα με την τοποθεσία.</string>
125 <string name="cos_coupon_share_hint">Καταχώρηση τηλεφώνου</string> 128 <string name="cos_coupon_share_hint">Καταχώρηση τηλεφώνου</string>
126 <string name="cos_coupon_share_button">Αποστολή με SMS</string> 129 <string name="cos_coupon_share_button">Αποστολή με SMS</string>
127 <string name="cod_dlg_reject_title">Απόρριψη δώρου</string> 130 <string name="cod_dlg_reject_title">Απόρριψη δώρου</string>
...@@ -188,6 +191,9 @@ ...@@ -188,6 +191,9 @@
188 <string name="cos_unified_subtitle">Χρησιμοποίησε τον παρακάτω κωδικό και πάρε έκπτωση στα ενεργά κουπόνια προσφορών αξίας <![CDATA[<b>%1$s€</b>]]>.</string> 191 <string name="cos_unified_subtitle">Χρησιμοποίησε τον παρακάτω κωδικό και πάρε έκπτωση στα ενεργά κουπόνια προσφορών αξίας <![CDATA[<b>%1$s€</b>]]>.</string>
189 <string name="cos_unified_subtitle2">Χρησιμοποίησε τον παρακάτω κωδικό και πάρε έκπτωση στα ενεργά κουπόνια προσφορών.</string> 192 <string name="cos_unified_subtitle2">Χρησιμοποίησε τον παρακάτω κωδικό και πάρε έκπτωση στα ενεργά κουπόνια προσφορών.</string>
190 <string name="cos_markets">Δες τα supermarket</string> 193 <string name="cos_markets">Δες τα supermarket</string>
194 + <string name="cos_markets_map">Δες τα καταστήματα στο χάρτη</string>
195 + <string name="cos_markets_eshop">Δες τα eshop</string>
196 + <string name="cos_markets_eshop_item">Δες το eshop</string>
191 <string name="cos_show_market_coupons">Εμφάνιση προσφορών</string> 197 <string name="cos_show_market_coupons">Εμφάνιση προσφορών</string>
192 <string name="cos_hide_market_coupons">Απόκρυψη προσφορών</string> 198 <string name="cos_hide_market_coupons">Απόκρυψη προσφορών</string>
193 <string name="cos_market_terms">1. Το εκπτωτικό κουπόνι ισχύει έως την ημερομηνία που αναφέρεται παραπάνω.\n 199 <string name="cos_market_terms">1. Το εκπτωτικό κουπόνι ισχύει έως την ημερομηνία που αναφέρεται παραπάνω.\n
......
...@@ -76,4 +76,11 @@ ...@@ -76,4 +76,11 @@
76 <item name="colorAccent">@color/cos_light_blue</item> 76 <item name="colorAccent">@color/cos_light_blue</item>
77 </style> 77 </style>
78 78
79 + <style name="BottomSheetDialog" parent="Theme.Design.Light.BottomSheetDialog">
80 + <item name="bottomSheetStyle">@style/bottomSheetStyleWrapper</item>
81 + </style>
82 +
83 + <style name="bottomSheetStyleWrapper" parent="Widget.Design.BottomSheet.Modal">
84 + <item name="android:background">@android:color/transparent</item>
85 + </style>
79 </resources> 86 </resources>
...\ No newline at end of file ...\ No newline at end of file
......