Showing
22 changed files
with
566 additions
and
129 deletions
... | @@ -36,7 +36,7 @@ public class SplashActivity extends BaseActivity { | ... | @@ -36,7 +36,7 @@ public class SplashActivity extends BaseActivity { |
36 | public void onWarplyReady() { | 36 | public void onWarplyReady() { |
37 | if (!WarplyDBHelper.getInstance(SplashActivity.this).isTableNotEmpty("auth")) { | 37 | if (!WarplyDBHelper.getInstance(SplashActivity.this).isTableNotEmpty("auth")) { |
38 | WarplyManager.getCosmoteUser(new WarplyCosmoteUserRequest() | 38 | WarplyManager.getCosmoteUser(new WarplyCosmoteUserRequest() |
39 | - .setGuid("7000001406"), //6012049321, 6012049322, 6012049323 | 39 | + .setGuid("7000000832"), //6012049321, 6012049322, 6012049323 |
40 | mLoginReceiver); | 40 | mLoginReceiver); |
41 | } else { | 41 | } else { |
42 | startNextActivity(); | 42 | startNextActivity(); | ... | ... |
... | @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' | ... | @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' |
2 | 2 | ||
3 | ext { | 3 | ext { |
4 | PUBLISH_GROUP_ID = 'ly.warp' | 4 | PUBLISH_GROUP_ID = 'ly.warp' |
5 | - PUBLISH_VERSION = '4.5.4-cosbeta51' | 5 | + PUBLISH_VERSION = '4.5.4-cosbeta52' |
6 | PUBLISH_ARTIFACT_ID = 'warply-android-sdk' | 6 | PUBLISH_ARTIFACT_ID = 'warply-android-sdk' |
7 | } | 7 | } |
8 | 8 | ... | ... |
... | @@ -2,7 +2,6 @@ package ly.warp.sdk.activities; | ... | @@ -2,7 +2,6 @@ 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.Context; |
5 | -import android.content.Intent; | ||
6 | import android.os.Bundle; | 5 | import android.os.Bundle; |
7 | import android.text.TextUtils; | 6 | import android.text.TextUtils; |
8 | import android.util.Log; | 7 | import android.util.Log; |
... | @@ -25,16 +24,15 @@ import org.json.JSONArray; | ... | @@ -25,16 +24,15 @@ import org.json.JSONArray; |
25 | import org.json.JSONException; | 24 | import org.json.JSONException; |
26 | import org.json.JSONObject; | 25 | import org.json.JSONObject; |
27 | 26 | ||
28 | -import java.util.ArrayList; | ||
29 | - | ||
30 | import io.github.inflationx.viewpump.ViewPumpContextWrapper; | 27 | import io.github.inflationx.viewpump.ViewPumpContextWrapper; |
31 | import ly.warp.sdk.R; | 28 | import ly.warp.sdk.R; |
32 | import ly.warp.sdk.io.callbacks.CallbackReceiver; | 29 | import ly.warp.sdk.io.callbacks.CallbackReceiver; |
33 | import ly.warp.sdk.io.models.Consumer; | 30 | import ly.warp.sdk.io.models.Consumer; |
34 | import ly.warp.sdk.io.models.Coupon; | 31 | import ly.warp.sdk.io.models.Coupon; |
32 | +import ly.warp.sdk.io.models.CouponList; | ||
35 | import ly.warp.sdk.io.request.CosmoteCouponSharingRequest; | 33 | import ly.warp.sdk.io.request.CosmoteCouponSharingRequest; |
36 | -import ly.warp.sdk.io.request.CosmoteRetrieveSharingRequest; | ||
37 | import ly.warp.sdk.io.request.WarplyConsumerRequest; | 34 | import ly.warp.sdk.io.request.WarplyConsumerRequest; |
35 | +import ly.warp.sdk.io.request.WarplyUserCouponsRequest; | ||
38 | import ly.warp.sdk.utils.managers.WarplyManager; | 36 | import ly.warp.sdk.utils.managers.WarplyManager; |
39 | 37 | ||
40 | 38 | ||
... | @@ -265,6 +263,7 @@ public class CouponShareActivity extends Activity implements View.OnClickListene | ... | @@ -265,6 +263,7 @@ public class CouponShareActivity extends Activity implements View.OnClickListene |
265 | public void onSuccess(JSONObject result) { | 263 | public void onSuccess(JSONObject result) { |
266 | int status = result.optInt("status", 2); | 264 | int status = result.optInt("status", 2); |
267 | String message = result.optString("msg", ""); | 265 | String message = result.optString("msg", ""); |
266 | + WarplyManager.getUserCouponsWithCouponsets(new WarplyUserCouponsRequest(), mUserCouponsReceiver); | ||
268 | runOnUiThread(() -> { | 267 | runOnUiThread(() -> { |
269 | if (status == 1) | 268 | if (status == 1) |
270 | acceptSharingDialog(); | 269 | acceptSharingDialog(); |
... | @@ -282,6 +281,18 @@ public class CouponShareActivity extends Activity implements View.OnClickListene | ... | @@ -282,6 +281,18 @@ public class CouponShareActivity extends Activity implements View.OnClickListene |
282 | } | 281 | } |
283 | }; | 282 | }; |
284 | 283 | ||
284 | + private final CallbackReceiver<CouponList> mUserCouponsReceiver = new CallbackReceiver<CouponList>() { | ||
285 | + @Override | ||
286 | + public void onSuccess(CouponList result) { | ||
287 | + | ||
288 | + } | ||
289 | + | ||
290 | + @Override | ||
291 | + public void onFailure(int errorCode) { | ||
292 | + | ||
293 | + } | ||
294 | + }; | ||
295 | + | ||
285 | // =========================================================== | 296 | // =========================================================== |
286 | // Inner and Anonymous Classes | 297 | // Inner and Anonymous Classes |
287 | // =========================================================== | 298 | // =========================================================== | ... | ... |
... | @@ -264,7 +264,7 @@ public class CouponsetInfoActivity extends Activity implements View.OnClickListe | ... | @@ -264,7 +264,7 @@ public class CouponsetInfoActivity extends Activity implements View.OnClickListe |
264 | 264 | ||
265 | private void nonTelcoDialog() { | 265 | private void nonTelcoDialog() { |
266 | mAlertDialogNonTelco = new AlertDialog.Builder(this) | 266 | mAlertDialogNonTelco = new AlertDialog.Builder(this) |
267 | - .setTitle(R.string.cos_dlg_non_telco) | 267 | + .setMessage(R.string.cos_dlg_non_telco) |
268 | .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 268 | .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
269 | dialogPositive.dismiss(); | 269 | dialogPositive.dismiss(); |
270 | onBackPressed(); | 270 | onBackPressed(); | ... | ... |
... | @@ -43,7 +43,7 @@ public class LoyaltyAnalysisActivity extends Activity implements View.OnClickLis | ... | @@ -43,7 +43,7 @@ public class LoyaltyAnalysisActivity extends Activity implements View.OnClickLis |
43 | // =========================================================== | 43 | // =========================================================== |
44 | 44 | ||
45 | private ImageView mIvBack; | 45 | private ImageView mIvBack; |
46 | - private TextView mTvCouponsValueAll; | 46 | + private TextView mTvCouponsValueAll, mTvSharedEmpty, mTvExpiredEmpty; |
47 | private RecyclerView mRvExpiredCoupons, mRvSharedCoupons; | 47 | private RecyclerView mRvExpiredCoupons, mRvSharedCoupons; |
48 | private ExpiredCouponAdapter mAdapterExpiredCoupons; | 48 | private ExpiredCouponAdapter mAdapterExpiredCoupons; |
49 | private SharedCouponAdapter mAdapterSharedCoupons; | 49 | private SharedCouponAdapter mAdapterSharedCoupons; |
... | @@ -68,6 +68,8 @@ public class LoyaltyAnalysisActivity extends Activity implements View.OnClickLis | ... | @@ -68,6 +68,8 @@ public class LoyaltyAnalysisActivity extends Activity implements View.OnClickLis |
68 | mRlExpiredView = findViewById(R.id.rl_expired_view); | 68 | mRlExpiredView = findViewById(R.id.rl_expired_view); |
69 | mRlSharedView = findViewById(R.id.rl_shared_view); | 69 | mRlSharedView = findViewById(R.id.rl_shared_view); |
70 | mRvSharedCoupons = findViewById(R.id.rv_shared_coupons); | 70 | mRvSharedCoupons = findViewById(R.id.rv_shared_coupons); |
71 | + mTvSharedEmpty = findViewById(R.id.tv_shared_empty); | ||
72 | + mTvExpiredEmpty = findViewById(R.id.tv_expired_empty); | ||
71 | 73 | ||
72 | initViews(); | 74 | initViews(); |
73 | } | 75 | } |
... | @@ -205,6 +207,8 @@ public class LoyaltyAnalysisActivity extends Activity implements View.OnClickLis | ... | @@ -205,6 +207,8 @@ public class LoyaltyAnalysisActivity extends Activity implements View.OnClickLis |
205 | // .doOnError(error -> { | 207 | // .doOnError(error -> { |
206 | // }) | 208 | // }) |
207 | // .subscribe(); | 209 | // .subscribe(); |
210 | + } else { | ||
211 | + mTvExpiredEmpty.setVisibility(View.VISIBLE); | ||
208 | } | 212 | } |
209 | } | 213 | } |
210 | 214 | ||
... | @@ -232,9 +236,13 @@ public class LoyaltyAnalysisActivity extends Activity implements View.OnClickLis | ... | @@ -232,9 +236,13 @@ public class LoyaltyAnalysisActivity extends Activity implements View.OnClickLis |
232 | } | 236 | } |
233 | 237 | ||
234 | runOnUiThread(() -> { | 238 | runOnUiThread(() -> { |
235 | - mRvSharedCoupons.setLayoutManager(new LinearLayoutManager(LoyaltyAnalysisActivity.this, LinearLayoutManager.VERTICAL, false)); | 239 | + if (mSharedCoupons != null && mSharedCoupons.size() > 0) { |
236 | - mAdapterSharedCoupons = new SharedCouponAdapter(LoyaltyAnalysisActivity.this, mSharedCoupons); | 240 | + mRvSharedCoupons.setLayoutManager(new LinearLayoutManager(LoyaltyAnalysisActivity.this, LinearLayoutManager.VERTICAL, false)); |
237 | - mRvSharedCoupons.setAdapter(mAdapterSharedCoupons); | 241 | + mAdapterSharedCoupons = new SharedCouponAdapter(LoyaltyAnalysisActivity.this, mSharedCoupons); |
242 | + mRvSharedCoupons.setAdapter(mAdapterSharedCoupons); | ||
243 | + } else { | ||
244 | + mTvSharedEmpty.setVisibility(View.VISIBLE); | ||
245 | + } | ||
238 | }); | 246 | }); |
239 | } | 247 | } |
240 | 248 | ... | ... |
... | @@ -11,6 +11,7 @@ import android.view.View; | ... | @@ -11,6 +11,7 @@ import android.view.View; |
11 | import android.widget.ImageView; | 11 | import android.widget.ImageView; |
12 | import android.widget.LinearLayout; | 12 | import android.widget.LinearLayout; |
13 | import android.widget.TextView; | 13 | import android.widget.TextView; |
14 | +import android.widget.Toast; | ||
14 | 15 | ||
15 | import androidx.appcompat.app.AlertDialog; | 16 | import androidx.appcompat.app.AlertDialog; |
16 | import androidx.constraintlayout.widget.ConstraintLayout; | 17 | import androidx.constraintlayout.widget.ConstraintLayout; |
... | @@ -24,8 +25,12 @@ import org.greenrobot.eventbus.EventBus; | ... | @@ -24,8 +25,12 @@ import org.greenrobot.eventbus.EventBus; |
24 | import org.json.JSONObject; | 25 | import org.json.JSONObject; |
25 | 26 | ||
26 | import java.io.Serializable; | 27 | import java.io.Serializable; |
28 | +import java.text.ParseException; | ||
29 | +import java.text.SimpleDateFormat; | ||
27 | import java.util.Collections; | 30 | import java.util.Collections; |
28 | import java.util.Comparator; | 31 | import java.util.Comparator; |
32 | +import java.util.Date; | ||
33 | +import java.util.concurrent.TimeUnit; | ||
29 | 34 | ||
30 | import io.github.inflationx.calligraphy3.CalligraphyTypefaceSpan; | 35 | import io.github.inflationx.calligraphy3.CalligraphyTypefaceSpan; |
31 | import io.github.inflationx.calligraphy3.TypefaceUtils; | 36 | import io.github.inflationx.calligraphy3.TypefaceUtils; |
... | @@ -84,7 +89,7 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener { | ... | @@ -84,7 +89,7 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener { |
84 | mTvDealsValue = findViewById(R.id.tv_deals_value); | 89 | mTvDealsValue = findViewById(R.id.tv_deals_value); |
85 | mTvDealsValueAll = findViewById(R.id.tv_deals_value_all); | 90 | mTvDealsValueAll = findViewById(R.id.tv_deals_value_all); |
86 | mTvActiveCode = findViewById(R.id.tv_active_deals_text); | 91 | mTvActiveCode = findViewById(R.id.tv_active_deals_text); |
87 | -// mTvActiveDate = findViewById(R.id.tv_active_deals_date_text); | 92 | + mTvActiveDate = findViewById(R.id.tv_active_deals_date_text); |
88 | mIvDealsLogo = findViewById(R.id.dfy_logo); | 93 | mIvDealsLogo = findViewById(R.id.dfy_logo); |
89 | mClDealsView = findViewById(R.id.cl_mygifts); | 94 | mClDealsView = findViewById(R.id.cl_mygifts); |
90 | mIvProfilePhoto = findViewById(R.id.iv_profile_photo); | 95 | mIvProfilePhoto = findViewById(R.id.iv_profile_photo); |
... | @@ -131,6 +136,10 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener { | ... | @@ -131,6 +136,10 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener { |
131 | return; | 136 | return; |
132 | } | 137 | } |
133 | if (view.getId() == R.id.cl_deals_cos) { | 138 | if (view.getId() == R.id.cl_deals_cos) { |
139 | + //TODO: remove | ||
140 | + WarpUtils.log("DFY coupon banner pressed!"); | ||
141 | + Toast.makeText(this, "TODO:Remove:DFY banner clicked", Toast.LENGTH_SHORT).show(); | ||
142 | + //TODO: remove | ||
134 | WarplyDealsAnalysisEventModel warplyDealsAnalysisEventModel = new WarplyDealsAnalysisEventModel(); | 143 | WarplyDealsAnalysisEventModel warplyDealsAnalysisEventModel = new WarplyDealsAnalysisEventModel(); |
135 | warplyDealsAnalysisEventModel.setPressed(true); | 144 | warplyDealsAnalysisEventModel.setPressed(true); |
136 | EventBus.getDefault().post(new WarplyEventBusManager(warplyDealsAnalysisEventModel)); | 145 | EventBus.getDefault().post(new WarplyEventBusManager(warplyDealsAnalysisEventModel)); |
... | @@ -174,9 +183,9 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener { | ... | @@ -174,9 +183,9 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener { |
174 | // =========================================================== | 183 | // =========================================================== |
175 | 184 | ||
176 | private void initViews() { | 185 | private void initViews() { |
177 | - if(WarplyManagerHelper.getConsumerInternal() != null) { | 186 | + if (WarplyManagerHelper.getConsumerInternal() != null) { |
178 | JSONObject profMetadata = WarpJSONParser.getJSONFromString(WarplyManagerHelper.getConsumerInternal().getProfileMetadata()); | 187 | JSONObject profMetadata = WarpJSONParser.getJSONFromString(WarplyManagerHelper.getConsumerInternal().getProfileMetadata()); |
179 | - if(profMetadata != null) { | 188 | + if (profMetadata != null) { |
180 | if (profMetadata.has("nonTelco") && profMetadata.optBoolean("nonTelco")) { | 189 | if (profMetadata.has("nonTelco") && profMetadata.optBoolean("nonTelco")) { |
181 | nonTelcoDialog(); | 190 | nonTelcoDialog(); |
182 | } | 191 | } |
... | @@ -255,6 +264,20 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener { | ... | @@ -255,6 +264,20 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener { |
255 | if (WarplyManagerHelper.getActiveDFYCoupons().size() == 1) { | 264 | if (WarplyManagerHelper.getActiveDFYCoupons().size() == 1) { |
256 | codes = WarplyManagerHelper.getActiveDFYCoupons().get(0).getCode(); | 265 | codes = WarplyManagerHelper.getActiveDFYCoupons().get(0).getCode(); |
257 | mTvActiveTitle.setText(String.format(getString(R.string.cos_active_deals), String.valueOf(1))); | 266 | mTvActiveTitle.setText(String.format(getString(R.string.cos_active_deals), String.valueOf(1))); |
267 | + | ||
268 | + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm"); | ||
269 | + String date1 = WarplyManagerHelper.getActiveDFYCoupons().get(0).getDate(); | ||
270 | + String date2 = dateFormat.format(new Date()); | ||
271 | + | ||
272 | + try { | ||
273 | + Date toDate = dateFormat.parse(date2); | ||
274 | + Date fromDate = dateFormat.parse(date1); | ||
275 | + long diff = TimeUnit.MILLISECONDS.toDays(fromDate.getTime() - toDate.getTime()); | ||
276 | + mTvActiveDate.setText(String.format(getString(R.string.cos_active_coupon_date), String.valueOf(diff))); | ||
277 | + mTvActiveDate.setVisibility(View.VISIBLE); | ||
278 | + } catch (ParseException e) { | ||
279 | + e.printStackTrace(); | ||
280 | + } | ||
258 | } else { | 281 | } else { |
259 | for (ActiveDFYCouponModel coupon : WarplyManagerHelper.getActiveDFYCoupons()) { | 282 | for (ActiveDFYCouponModel coupon : WarplyManagerHelper.getActiveDFYCoupons()) { |
260 | codes = codes + coupon.getCode() + ","; | 283 | codes = codes + coupon.getCode() + ","; |
... | @@ -264,19 +287,6 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener { | ... | @@ -264,19 +287,6 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener { |
264 | mTvActiveTitle.setText(String.format(getString(R.string.cos_active_deals_plural), String.valueOf(WarplyManagerHelper.getActiveDFYCoupons().size()))); | 287 | mTvActiveTitle.setText(String.format(getString(R.string.cos_active_deals_plural), String.valueOf(WarplyManagerHelper.getActiveDFYCoupons().size()))); |
265 | } | 288 | } |
266 | mTvActiveCode.setText(codes); | 289 | mTvActiveCode.setText(codes); |
267 | - | ||
268 | -// SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm"); | ||
269 | -// String date1 = WarplyManagerHelper.getActiveDFYCoupons().get(0).getDate(); | ||
270 | -// String date2 = dateFormat.format(new Date()); | ||
271 | -// | ||
272 | -// try { | ||
273 | -// Date toDate = dateFormat.parse(date2); | ||
274 | -// Date fromDate = dateFormat.parse(date1); | ||
275 | -// long diff = TimeUnit.MILLISECONDS.toDays(fromDate.getTime() - toDate.getTime()); | ||
276 | -// mTvActiveDate.setText(String.format(getString(R.string.cos_active_coupon_date), String.valueOf(diff))); | ||
277 | -// } catch (ParseException e) { | ||
278 | -// e.printStackTrace(); | ||
279 | -// } | ||
280 | } else { | 290 | } else { |
281 | mIvDealsLogo.setVisibility(View.GONE); | 291 | mIvDealsLogo.setVisibility(View.GONE); |
282 | mClDealsView.setVisibility(View.GONE); | 292 | mClDealsView.setVisibility(View.GONE); |
... | @@ -322,7 +332,7 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener { | ... | @@ -322,7 +332,7 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener { |
322 | 332 | ||
323 | private void nonTelcoDialog() { | 333 | private void nonTelcoDialog() { |
324 | mAlertDialogNonTelco = new AlertDialog.Builder(this) | 334 | mAlertDialogNonTelco = new AlertDialog.Builder(this) |
325 | - .setTitle(R.string.cos_dlg_non_telco) | 335 | + .setMessage(R.string.cos_dlg_non_telco) |
326 | .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 336 | .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
327 | dialogPositive.dismiss(); | 337 | dialogPositive.dismiss(); |
328 | onBackPressed(); | 338 | onBackPressed(); | ... | ... |
1 | package ly.warp.sdk.activities; | 1 | package ly.warp.sdk.activities; |
2 | 2 | ||
3 | import android.Manifest; | 3 | import android.Manifest; |
4 | +import android.content.Context; | ||
5 | +import android.content.Intent; | ||
4 | import android.content.pm.PackageManager; | 6 | import android.content.pm.PackageManager; |
7 | +import android.net.Uri; | ||
5 | import android.os.Bundle; | 8 | import android.os.Bundle; |
6 | import android.os.Handler; | 9 | import android.os.Handler; |
7 | import android.os.Looper; | 10 | import android.os.Looper; |
11 | +import android.text.TextUtils; | ||
8 | import android.util.Log; | 12 | import android.util.Log; |
9 | import android.view.View; | 13 | import android.view.View; |
10 | import android.widget.ImageView; | 14 | import android.widget.ImageView; |
15 | +import android.widget.LinearLayout; | ||
16 | +import android.widget.TextView; | ||
11 | 17 | ||
12 | import androidx.annotation.NonNull; | 18 | import androidx.annotation.NonNull; |
13 | import androidx.core.app.ActivityCompat; | 19 | import androidx.core.app.ActivityCompat; |
14 | import androidx.core.content.ContextCompat; | 20 | import androidx.core.content.ContextCompat; |
15 | import androidx.fragment.app.FragmentActivity; | 21 | import androidx.fragment.app.FragmentActivity; |
16 | 22 | ||
23 | +import com.bumptech.glide.Glide; | ||
24 | +import com.bumptech.glide.load.engine.DiskCacheStrategy; | ||
17 | import com.google.android.gms.maps.CameraUpdate; | 25 | import com.google.android.gms.maps.CameraUpdate; |
18 | import com.google.android.gms.maps.CameraUpdateFactory; | 26 | import com.google.android.gms.maps.CameraUpdateFactory; |
19 | import com.google.android.gms.maps.GoogleMap; | 27 | import com.google.android.gms.maps.GoogleMap; |
20 | import com.google.android.gms.maps.OnMapReadyCallback; | 28 | import com.google.android.gms.maps.OnMapReadyCallback; |
21 | import com.google.android.gms.maps.SupportMapFragment; | 29 | import com.google.android.gms.maps.SupportMapFragment; |
30 | +import com.google.android.gms.maps.model.LatLng; | ||
31 | +import com.google.android.gms.maps.model.Marker; | ||
32 | +import com.google.android.gms.maps.model.MarkerOptions; | ||
33 | +import com.google.android.material.bottomsheet.BottomSheetDialog; | ||
22 | import com.google.maps.android.clustering.Cluster; | 34 | import com.google.maps.android.clustering.Cluster; |
23 | import com.google.maps.android.clustering.ClusterManager; | 35 | import com.google.maps.android.clustering.ClusterManager; |
24 | 36 | ||
25 | import java.util.ArrayList; | 37 | import java.util.ArrayList; |
26 | 38 | ||
39 | +import io.github.inflationx.viewpump.ViewPumpContextWrapper; | ||
27 | import ly.warp.sdk.R; | 40 | import ly.warp.sdk.R; |
28 | import ly.warp.sdk.io.callbacks.CallbackReceiver; | 41 | import ly.warp.sdk.io.callbacks.CallbackReceiver; |
29 | import ly.warp.sdk.io.models.Couponset; | 42 | import ly.warp.sdk.io.models.Couponset; |
... | @@ -35,7 +48,8 @@ import ly.warp.sdk.utils.managers.WarplyManager; | ... | @@ -35,7 +48,8 @@ import ly.warp.sdk.utils.managers.WarplyManager; |
35 | 48 | ||
36 | 49 | ||
37 | public class ShopsActivity extends FragmentActivity implements View.OnClickListener, | 50 | public class ShopsActivity extends FragmentActivity implements View.OnClickListener, |
38 | - OnMapReadyCallback, GoogleMap.OnMapLoadedCallback, ClusterManager.OnClusterClickListener<Merchant> { | 51 | + OnMapReadyCallback, GoogleMap.OnMapLoadedCallback, ClusterManager.OnClusterClickListener<Merchant>, |
52 | + GoogleMap.OnMarkerClickListener { | ||
39 | 53 | ||
40 | // =========================================================== | 54 | // =========================================================== |
41 | // Constants | 55 | // Constants |
... | @@ -52,6 +66,7 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe | ... | @@ -52,6 +66,7 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe |
52 | private GoogleMap mMap; | 66 | private GoogleMap mMap; |
53 | private ClusterManager<Merchant> mClusterManager; | 67 | private ClusterManager<Merchant> mClusterManager; |
54 | SupportMapFragment mMapView; | 68 | SupportMapFragment mMapView; |
69 | + private MerchantList mMerchantList = new MerchantList(); | ||
55 | 70 | ||
56 | // =========================================================== | 71 | // =========================================================== |
57 | // Methods for/from SuperClass/Interfaces | 72 | // Methods for/from SuperClass/Interfaces |
... | @@ -83,6 +98,11 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe | ... | @@ -83,6 +98,11 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe |
83 | } | 98 | } |
84 | 99 | ||
85 | @Override | 100 | @Override |
101 | + protected void attachBaseContext(Context newBase) { | ||
102 | + super.attachBaseContext(ViewPumpContextWrapper.wrap(newBase)); | ||
103 | + } | ||
104 | + | ||
105 | + @Override | ||
86 | public void onMapReady(@NonNull GoogleMap googleMap) { | 106 | public void onMapReady(@NonNull GoogleMap googleMap) { |
87 | mMap = googleMap; | 107 | mMap = googleMap; |
88 | 108 | ||
... | @@ -108,6 +128,7 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe | ... | @@ -108,6 +128,7 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe |
108 | mMap.getUiSettings().setTiltGesturesEnabled(false); | 128 | mMap.getUiSettings().setTiltGesturesEnabled(false); |
109 | mMap.getUiSettings().setRotateGesturesEnabled(false); | 129 | mMap.getUiSettings().setRotateGesturesEnabled(false); |
110 | mMap.setOnMapLoadedCallback(this); | 130 | mMap.setOnMapLoadedCallback(this); |
131 | + mMap.setOnMarkerClickListener(/*mClusterManager*/this); | ||
111 | } | 132 | } |
112 | 133 | ||
113 | @Override | 134 | @Override |
... | @@ -118,11 +139,11 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe | ... | @@ -118,11 +139,11 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe |
118 | mMap.animateCamera(camUpdate); | 139 | mMap.animateCamera(camUpdate); |
119 | } | 140 | } |
120 | 141 | ||
121 | - if (mClusterManager == null) { | 142 | +// if (mClusterManager == null) { |
122 | - mClusterManager = new ClusterManager<>(this, mMap); | 143 | +// mClusterManager = new ClusterManager<>(this, mMap); |
123 | - mClusterManager.setOnClusterClickListener(this); | 144 | +// mClusterManager.setOnClusterClickListener(this); |
124 | - mMap.setOnMarkerClickListener(mClusterManager); | 145 | +//// mMap.setOnMarkerClickListener(/*mClusterManager*/this); |
125 | - } | 146 | +// } |
126 | 147 | ||
127 | if (mCouponset != null) { | 148 | if (mCouponset != null) { |
128 | ArrayList<String> uuids = new ArrayList<>(); | 149 | ArrayList<String> uuids = new ArrayList<>(); |
... | @@ -153,6 +174,59 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe | ... | @@ -153,6 +174,59 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe |
153 | return true; | 174 | return true; |
154 | } | 175 | } |
155 | 176 | ||
177 | + @Override | ||
178 | + public boolean onMarkerClick(@NonNull Marker marker) { | ||
179 | + for (Merchant merch : mMerchantList) { | ||
180 | + if (merch.getUuid().equals(marker.getSnippet())) { | ||
181 | + final BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(this); | ||
182 | + bottomSheetDialog.setContentView(R.layout.dl_map_pin); | ||
183 | + | ||
184 | + ImageView dialogClose = (ImageView) bottomSheetDialog.findViewById(R.id.iv_map_pin_close); | ||
185 | + dialogClose.setOnClickListener(view -> bottomSheetDialog.dismiss()); | ||
186 | + | ||
187 | + TextView pinTitle = (TextView) bottomSheetDialog.findViewById(R.id.tv_pin_title); | ||
188 | + pinTitle.setText(merch.getAdminName()); | ||
189 | + | ||
190 | + ImageView pinLogo = (ImageView) bottomSheetDialog.findViewById(R.id.iv_pin_logo); | ||
191 | + if (!TextUtils.isEmpty(merch.getImgPreview())) { | ||
192 | + Glide.with(this) | ||
193 | +// .setDefaultRequestOptions( | ||
194 | +// RequestOptions | ||
195 | +// .placeholderOf(R.drawable.ic_default_contact_photo) | ||
196 | +// .error(R.drawable.ic_default_contact_photo)) | ||
197 | + .load(merch.getImgPreview()) | ||
198 | + .diskCacheStrategy(DiskCacheStrategy.DATA) | ||
199 | + .into(pinLogo); | ||
200 | + } | ||
201 | + | ||
202 | + TextView pinName = (TextView) bottomSheetDialog.findViewById(R.id.tv_pin_name); | ||
203 | + pinName.setText(merch.getName()); | ||
204 | + | ||
205 | + TextView pinDays = (TextView) bottomSheetDialog.findViewById(R.id.tv_pin_days); | ||
206 | + pinDays.setText(merch.getSnippet()); | ||
207 | + | ||
208 | + TextView pinTel = (TextView) bottomSheetDialog.findViewById(R.id.tv_pin_tel); | ||
209 | + pinTel.setText(merch.getTelephone()); | ||
210 | + | ||
211 | + TextView pinAddress = (TextView) bottomSheetDialog.findViewById(R.id.tv_pin_address); | ||
212 | + pinAddress.setText(merch.getAddress()); | ||
213 | + | ||
214 | + LinearLayout pinDirections = (LinearLayout) bottomSheetDialog.findViewById(R.id.ll_directions); | ||
215 | + pinDirections.setOnClickListener(view -> { | ||
216 | + Uri gmmIntentUri = Uri.parse("google.navigation:q=" + merch.getLatitude() + "," + merch.getLongitude()/* + "&mode=w"*/); | ||
217 | + Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri); | ||
218 | + mapIntent.setPackage("com.google.android.apps.maps"); | ||
219 | + startActivity(mapIntent); | ||
220 | + }); | ||
221 | + | ||
222 | + bottomSheetDialog.show(); | ||
223 | + | ||
224 | + return false; | ||
225 | + } | ||
226 | + } | ||
227 | + | ||
228 | + return false; | ||
229 | + } | ||
156 | 230 | ||
157 | // =========================================================== | 231 | // =========================================================== |
158 | // Methods | 232 | // Methods |
... | @@ -161,14 +235,24 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe | ... | @@ -161,14 +235,24 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe |
161 | private final CallbackReceiver<MerchantList> mMerchantsCallback = new CallbackReceiver<MerchantList>() { | 235 | private final CallbackReceiver<MerchantList> mMerchantsCallback = new CallbackReceiver<MerchantList>() { |
162 | @Override | 236 | @Override |
163 | public void onSuccess(MerchantList result) { | 237 | public void onSuccess(MerchantList result) { |
238 | + mMerchantList.clear(); | ||
239 | + mMerchantList.addAll(result); | ||
164 | new Handler(Looper.getMainLooper()).post(() -> { | 240 | new Handler(Looper.getMainLooper()).post(() -> { |
165 | - if (mClusterManager != null) { | 241 | +// if (mClusterManager != null) { |
166 | - mMap.clear(); | 242 | +// mMap.clear(); |
167 | - mClusterManager.clearItems(); | 243 | +// mClusterManager.clearItems(); |
168 | - if (result != null) { | 244 | +// if (result != null) { |
169 | - mClusterManager.addItems(result); | 245 | +// mClusterManager.addItems(result); |
170 | - } | 246 | +// } |
171 | - mClusterManager.cluster(); | 247 | +// mClusterManager.cluster(); |
248 | +// } | ||
249 | + | ||
250 | + for (Merchant merch : result) { | ||
251 | + mMap.addMarker(new MarkerOptions() | ||
252 | + .position(new LatLng(merch.getLatitude(), merch.getLongitude())) | ||
253 | + .anchor(0.5f, 0.5f) | ||
254 | + .title(merch.getTitle()) | ||
255 | + .snippet(merch.getUuid())); | ||
172 | } | 256 | } |
173 | }); | 257 | }); |
174 | } | 258 | } | ... | ... |
... | @@ -52,6 +52,7 @@ public class SharingCoupon implements Parcelable, Serializable { | ... | @@ -52,6 +52,7 @@ public class SharingCoupon implements Parcelable, Serializable { |
52 | private static final String DATE = "date"; | 52 | private static final String DATE = "date"; |
53 | private static final String COUPONSET_UUID = "couponset_uuid"; | 53 | private static final String COUPONSET_UUID = "couponset_uuid"; |
54 | private static final String NAME = "name"; | 54 | private static final String NAME = "name"; |
55 | + private static final String MERCHANT_UUID = "merchant_uuid"; | ||
55 | 56 | ||
56 | /* Member variables of the Campaign object */ | 57 | /* Member variables of the Campaign object */ |
57 | 58 | ||
... | @@ -61,6 +62,7 @@ public class SharingCoupon implements Parcelable, Serializable { | ... | @@ -61,6 +62,7 @@ public class SharingCoupon implements Parcelable, Serializable { |
61 | private String date = ""; | 62 | private String date = ""; |
62 | private String couponsetUuid = ""; | 63 | private String couponsetUuid = ""; |
63 | private String name = ""; | 64 | private String name = ""; |
65 | + private String merchantUuid = ""; | ||
64 | 66 | ||
65 | /** | 67 | /** |
66 | * Basic constructor used to create an object from a String, representing a | 68 | * Basic constructor used to create an object from a String, representing a |
... | @@ -95,6 +97,7 @@ public class SharingCoupon implements Parcelable, Serializable { | ... | @@ -95,6 +97,7 @@ public class SharingCoupon implements Parcelable, Serializable { |
95 | this.sharingType = json.optString(SHARING_TYPE); | 97 | this.sharingType = json.optString(SHARING_TYPE); |
96 | this.transactionMetadata = json.optString(TRANSACTION_METADATA); | 98 | this.transactionMetadata = json.optString(TRANSACTION_METADATA); |
97 | this.name = json.optString(NAME); | 99 | this.name = json.optString(NAME); |
100 | + this.merchantUuid = json.optString(MERCHANT_UUID); | ||
98 | } | 101 | } |
99 | } | 102 | } |
100 | 103 | ||
... | @@ -105,6 +108,7 @@ public class SharingCoupon implements Parcelable, Serializable { | ... | @@ -105,6 +108,7 @@ public class SharingCoupon implements Parcelable, Serializable { |
105 | this.sharingType = source.readString(); | 108 | this.sharingType = source.readString(); |
106 | this.transactionMetadata = source.readString(); | 109 | this.transactionMetadata = source.readString(); |
107 | this.name = source.readString(); | 110 | this.name = source.readString(); |
111 | + this.merchantUuid = source.readString(); | ||
108 | } | 112 | } |
109 | 113 | ||
110 | @Override | 114 | @Override |
... | @@ -115,6 +119,7 @@ public class SharingCoupon implements Parcelable, Serializable { | ... | @@ -115,6 +119,7 @@ public class SharingCoupon implements Parcelable, Serializable { |
115 | dest.writeString(this.sharingType); | 119 | dest.writeString(this.sharingType); |
116 | dest.writeString(this.transactionMetadata); | 120 | dest.writeString(this.transactionMetadata); |
117 | dest.writeString(this.name); | 121 | dest.writeString(this.name); |
122 | + dest.writeString(this.merchantUuid); | ||
118 | } | 123 | } |
119 | 124 | ||
120 | /** | 125 | /** |
... | @@ -131,6 +136,7 @@ public class SharingCoupon implements Parcelable, Serializable { | ... | @@ -131,6 +136,7 @@ public class SharingCoupon implements Parcelable, Serializable { |
131 | jObj.putOpt(SHARING_TYPE, this.sharingType); | 136 | jObj.putOpt(SHARING_TYPE, this.sharingType); |
132 | jObj.putOpt(TRANSACTION_METADATA, this.transactionMetadata); | 137 | jObj.putOpt(TRANSACTION_METADATA, this.transactionMetadata); |
133 | jObj.putOpt(NAME, this.name); | 138 | jObj.putOpt(NAME, this.name); |
139 | + jObj.putOpt(MERCHANT_UUID, this.merchantUuid); | ||
134 | } catch (JSONException e) { | 140 | } catch (JSONException e) { |
135 | if (WarpConstants.DEBUG) { | 141 | if (WarpConstants.DEBUG) { |
136 | e.printStackTrace(); | 142 | e.printStackTrace(); |
... | @@ -218,6 +224,14 @@ public class SharingCoupon implements Parcelable, Serializable { | ... | @@ -218,6 +224,14 @@ public class SharingCoupon implements Parcelable, Serializable { |
218 | this.name = name; | 224 | this.name = name; |
219 | } | 225 | } |
220 | 226 | ||
227 | + public String getMerchantUuid() { | ||
228 | + return merchantUuid; | ||
229 | + } | ||
230 | + | ||
231 | + public void setMerchantUuid(String merchantUuid) { | ||
232 | + this.merchantUuid = merchantUuid; | ||
233 | + } | ||
234 | + | ||
221 | @Override | 235 | @Override |
222 | public int describeContents() { | 236 | public int describeContents() { |
223 | return 0; | 237 | return 0; | ... | ... |
... | @@ -136,13 +136,13 @@ public class ActiveCouponAdapter extends RecyclerView.Adapter<ActiveCouponAdapte | ... | @@ -136,13 +136,13 @@ public class ActiveCouponAdapter extends RecyclerView.Adapter<ActiveCouponAdapte |
136 | } | 136 | } |
137 | } | 137 | } |
138 | } else { | 138 | } else { |
139 | - if (!TextUtils.isEmpty(merchant.getImage())) { | 139 | + if (!TextUtils.isEmpty(merchant.getImgPreview())) { |
140 | Glide.with(mContext) | 140 | Glide.with(mContext) |
141 | // .setDefaultRequestOptions( | 141 | // .setDefaultRequestOptions( |
142 | // RequestOptions | 142 | // RequestOptions |
143 | // .placeholderOf(R.drawable.ic_default_contact_photo) | 143 | // .placeholderOf(R.drawable.ic_default_contact_photo) |
144 | // .error(R.drawable.ic_default_contact_photo)) | 144 | // .error(R.drawable.ic_default_contact_photo)) |
145 | - .load(merchant.getImage()) | 145 | + .load(merchant.getImgPreview()) |
146 | .diskCacheStrategy(DiskCacheStrategy.DATA) | 146 | .diskCacheStrategy(DiskCacheStrategy.DATA) |
147 | .into(holder.ivCouponLogo); | 147 | .into(holder.ivCouponLogo); |
148 | } else { | 148 | } else { | ... | ... |
1 | package ly.warp.sdk.views.adapters; | 1 | package ly.warp.sdk.views.adapters; |
2 | 2 | ||
3 | import android.content.Context; | 3 | import android.content.Context; |
4 | +import android.text.TextUtils; | ||
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; |
... | @@ -9,6 +10,9 @@ import android.widget.TextView; | ... | @@ -9,6 +10,9 @@ import android.widget.TextView; |
9 | 10 | ||
10 | import androidx.recyclerview.widget.RecyclerView; | 11 | import androidx.recyclerview.widget.RecyclerView; |
11 | 12 | ||
13 | +import com.bumptech.glide.Glide; | ||
14 | +import com.bumptech.glide.load.engine.DiskCacheStrategy; | ||
15 | + | ||
12 | import java.text.ParseException; | 16 | import java.text.ParseException; |
13 | import java.text.SimpleDateFormat; | 17 | import java.text.SimpleDateFormat; |
14 | import java.util.Date; | 18 | import java.util.Date; |
... | @@ -19,6 +23,8 @@ import io.reactivex.subjects.PublishSubject; | ... | @@ -19,6 +23,8 @@ import io.reactivex.subjects.PublishSubject; |
19 | import ly.warp.sdk.R; | 23 | import ly.warp.sdk.R; |
20 | import ly.warp.sdk.io.models.Coupon; | 24 | import ly.warp.sdk.io.models.Coupon; |
21 | import ly.warp.sdk.io.models.CouponList; | 25 | import ly.warp.sdk.io.models.CouponList; |
26 | +import ly.warp.sdk.io.models.Merchant; | ||
27 | +import ly.warp.sdk.utils.WarplyManagerHelper; | ||
22 | 28 | ||
23 | public class ExpiredCouponAdapter extends RecyclerView.Adapter<ExpiredCouponAdapter.ExpiredCouponViewHolder> { | 29 | public class ExpiredCouponAdapter extends RecyclerView.Adapter<ExpiredCouponAdapter.ExpiredCouponViewHolder> { |
24 | 30 | ||
... | @@ -33,12 +39,14 @@ public class ExpiredCouponAdapter extends RecyclerView.Adapter<ExpiredCouponAdap | ... | @@ -33,12 +39,14 @@ public class ExpiredCouponAdapter extends RecyclerView.Adapter<ExpiredCouponAdap |
33 | 39 | ||
34 | public class ExpiredCouponViewHolder extends RecyclerView.ViewHolder { | 40 | public class ExpiredCouponViewHolder extends RecyclerView.ViewHolder { |
35 | private TextView tvCouponTitle, tvCouponValue, tvCouponDate; | 41 | private TextView tvCouponTitle, tvCouponValue, tvCouponDate; |
42 | + private ImageView ivCouponLogo; | ||
36 | 43 | ||
37 | public ExpiredCouponViewHolder(View view) { | 44 | public ExpiredCouponViewHolder(View view) { |
38 | super(view); | 45 | super(view); |
39 | tvCouponTitle = view.findViewById(R.id.tv_expired_coupons_title); | 46 | tvCouponTitle = view.findViewById(R.id.tv_expired_coupons_title); |
40 | tvCouponValue = view.findViewById(R.id.tv_expired_coupons_value); | 47 | tvCouponValue = view.findViewById(R.id.tv_expired_coupons_value); |
41 | tvCouponDate = view.findViewById(R.id.tv_expired_coupons_date); | 48 | tvCouponDate = view.findViewById(R.id.tv_expired_coupons_date); |
49 | + ivCouponLogo = view.findViewById(R.id.iv_expired_logo); | ||
42 | } | 50 | } |
43 | } | 51 | } |
44 | 52 | ||
... | @@ -72,9 +80,33 @@ public class ExpiredCouponAdapter extends RecyclerView.Adapter<ExpiredCouponAdap | ... | @@ -72,9 +80,33 @@ public class ExpiredCouponAdapter extends RecyclerView.Adapter<ExpiredCouponAdap |
72 | @Override | 80 | @Override |
73 | public void onBindViewHolder(final ExpiredCouponViewHolder holder, int position) { | 81 | public void onBindViewHolder(final ExpiredCouponViewHolder holder, int position) { |
74 | Coupon couponItem = mCoupons.get(position); | 82 | Coupon couponItem = mCoupons.get(position); |
83 | + Merchant merchant = new Merchant(); | ||
75 | 84 | ||
76 | if (couponItem != null) { | 85 | if (couponItem != null) { |
77 | - holder.tvCouponTitle.setText(couponItem.getName()); | 86 | + if (WarplyManagerHelper.getMerchantList() != null && WarplyManagerHelper.getMerchantList().size() > 0) { |
87 | + for (Merchant mer : WarplyManagerHelper.getMerchantList()) { | ||
88 | + if (mer.getUuid().equals(couponItem.getMerchantUuid())) { | ||
89 | + merchant = mer; | ||
90 | + break; | ||
91 | + } | ||
92 | + } | ||
93 | + } | ||
94 | + | ||
95 | + if (merchant == null) { | ||
96 | + holder.tvCouponTitle.setText(couponItem.getName()); | ||
97 | + } else { | ||
98 | + holder.tvCouponTitle.setText(merchant.getAdminName()); | ||
99 | + if (!TextUtils.isEmpty(merchant.getImgPreview())) { | ||
100 | + Glide.with(mContext) | ||
101 | +// .setDefaultRequestOptions( | ||
102 | +// RequestOptions | ||
103 | +// .placeholderOf(R.drawable.ic_default_contact_photo) | ||
104 | +// .error(R.drawable.ic_default_contact_photo)) | ||
105 | + .load(merchant.getImgPreview()) | ||
106 | + .diskCacheStrategy(DiskCacheStrategy.DATA) | ||
107 | + .into(holder.ivCouponLogo); | ||
108 | + } | ||
109 | + } | ||
78 | 110 | ||
79 | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm"); | 111 | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm"); |
80 | Date newDate = new Date(); | 112 | Date newDate = new Date(); | ... | ... |
1 | package ly.warp.sdk.views.adapters; | 1 | package ly.warp.sdk.views.adapters; |
2 | 2 | ||
3 | import android.content.Context; | 3 | import android.content.Context; |
4 | +import android.text.TextUtils; | ||
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; |
8 | +import android.widget.ImageView; | ||
7 | import android.widget.TextView; | 9 | import android.widget.TextView; |
8 | 10 | ||
9 | import androidx.recyclerview.widget.RecyclerView; | 11 | import androidx.recyclerview.widget.RecyclerView; |
10 | 12 | ||
13 | +import com.bumptech.glide.Glide; | ||
14 | +import com.bumptech.glide.load.engine.DiskCacheStrategy; | ||
15 | + | ||
11 | import org.json.JSONObject; | 16 | import org.json.JSONObject; |
12 | 17 | ||
13 | import java.text.ParseException; | 18 | import java.text.ParseException; |
... | @@ -18,9 +23,11 @@ import java.util.concurrent.TimeUnit; | ... | @@ -18,9 +23,11 @@ import java.util.concurrent.TimeUnit; |
18 | import io.reactivex.Observable; | 23 | import io.reactivex.Observable; |
19 | import io.reactivex.subjects.PublishSubject; | 24 | import io.reactivex.subjects.PublishSubject; |
20 | import ly.warp.sdk.R; | 25 | import ly.warp.sdk.R; |
26 | +import ly.warp.sdk.io.models.Merchant; | ||
21 | import ly.warp.sdk.io.models.SharingCoupon; | 27 | import ly.warp.sdk.io.models.SharingCoupon; |
22 | import ly.warp.sdk.io.models.SharingList; | 28 | import ly.warp.sdk.io.models.SharingList; |
23 | import ly.warp.sdk.utils.WarpJSONParser; | 29 | import ly.warp.sdk.utils.WarpJSONParser; |
30 | +import ly.warp.sdk.utils.WarplyManagerHelper; | ||
24 | 31 | ||
25 | public class SharedCouponAdapter extends RecyclerView.Adapter<SharedCouponAdapter.SharedCouponViewHolder> { | 32 | public class SharedCouponAdapter extends RecyclerView.Adapter<SharedCouponAdapter.SharedCouponViewHolder> { |
26 | 33 | ||
... | @@ -35,6 +42,7 @@ public class SharedCouponAdapter extends RecyclerView.Adapter<SharedCouponAdapte | ... | @@ -35,6 +42,7 @@ public class SharedCouponAdapter extends RecyclerView.Adapter<SharedCouponAdapte |
35 | 42 | ||
36 | public class SharedCouponViewHolder extends RecyclerView.ViewHolder { | 43 | public class SharedCouponViewHolder extends RecyclerView.ViewHolder { |
37 | private TextView tvCouponTitle, tvCouponValue, tvCouponDate, tvCouponLabel, tvCouponPhone; | 44 | private TextView tvCouponTitle, tvCouponValue, tvCouponDate, tvCouponLabel, tvCouponPhone; |
45 | + private ImageView ivCouponLogo; | ||
38 | 46 | ||
39 | public SharedCouponViewHolder(View view) { | 47 | public SharedCouponViewHolder(View view) { |
40 | super(view); | 48 | super(view); |
... | @@ -43,6 +51,7 @@ public class SharedCouponAdapter extends RecyclerView.Adapter<SharedCouponAdapte | ... | @@ -43,6 +51,7 @@ public class SharedCouponAdapter extends RecyclerView.Adapter<SharedCouponAdapte |
43 | tvCouponDate = view.findViewById(R.id.tv_shared_coupons_date); | 51 | tvCouponDate = view.findViewById(R.id.tv_shared_coupons_date); |
44 | tvCouponLabel = view.findViewById(R.id.tv_shared_coupons_label); | 52 | tvCouponLabel = view.findViewById(R.id.tv_shared_coupons_label); |
45 | tvCouponPhone = view.findViewById(R.id.tv_shared_coupons_phone); | 53 | tvCouponPhone = view.findViewById(R.id.tv_shared_coupons_phone); |
54 | + ivCouponLogo = view.findViewById(R.id.iv_shared_logo); | ||
46 | } | 55 | } |
47 | } | 56 | } |
48 | 57 | ||
... | @@ -76,11 +85,35 @@ public class SharedCouponAdapter extends RecyclerView.Adapter<SharedCouponAdapte | ... | @@ -76,11 +85,35 @@ public class SharedCouponAdapter extends RecyclerView.Adapter<SharedCouponAdapte |
76 | @Override | 85 | @Override |
77 | public void onBindViewHolder(final SharedCouponViewHolder holder, int position) { | 86 | public void onBindViewHolder(final SharedCouponViewHolder holder, int position) { |
78 | SharingCoupon couponItem = mCoupons.get(position); | 87 | SharingCoupon couponItem = mCoupons.get(position); |
88 | + Merchant merchant = new Merchant(); | ||
79 | 89 | ||
80 | if (couponItem != null) { | 90 | if (couponItem != null) { |
81 | - JSONObject extraFields = WarpJSONParser.getJSONFromString(couponItem.getTransactionMetadata()); | 91 | + if (WarplyManagerHelper.getMerchantList() != null && WarplyManagerHelper.getMerchantList().size() > 0) { |
92 | + for (Merchant mer : WarplyManagerHelper.getMerchantList()) { | ||
93 | + if (mer.getUuid().equals(couponItem.getMerchantUuid())) { | ||
94 | + merchant = mer; | ||
95 | + break; | ||
96 | + } | ||
97 | + } | ||
98 | + } | ||
82 | 99 | ||
83 | - holder.tvCouponTitle.setText(couponItem.getName()); | 100 | + if (merchant == null) { |
101 | + holder.tvCouponTitle.setText(couponItem.getName()); | ||
102 | + } else { | ||
103 | + holder.tvCouponTitle.setText(merchant.getAdminName()); | ||
104 | + if (!TextUtils.isEmpty(merchant.getImgPreview())) { | ||
105 | + Glide.with(mContext) | ||
106 | +// .setDefaultRequestOptions( | ||
107 | +// RequestOptions | ||
108 | +// .placeholderOf(R.drawable.ic_default_contact_photo) | ||
109 | +// .error(R.drawable.ic_default_contact_photo)) | ||
110 | + .load(merchant.getImgPreview()) | ||
111 | + .diskCacheStrategy(DiskCacheStrategy.DATA) | ||
112 | + .into(holder.ivCouponLogo); | ||
113 | + } | ||
114 | + } | ||
115 | + | ||
116 | + JSONObject extraFields = WarpJSONParser.getJSONFromString(couponItem.getTransactionMetadata()); | ||
84 | 117 | ||
85 | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm"); | 118 | SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm"); |
86 | Date newDate = new Date(); | 119 | Date newDate = new Date(); | ... | ... |
997 Bytes
757 Bytes
657 Bytes
... | @@ -100,6 +100,19 @@ | ... | @@ -100,6 +100,19 @@ |
100 | android:layout_marginHorizontal="8dp" | 100 | android:layout_marginHorizontal="8dp" |
101 | android:layout_marginTop="24dp" | 101 | android:layout_marginTop="24dp" |
102 | android:orientation="vertical" /> | 102 | android:orientation="vertical" /> |
103 | + | ||
104 | + <TextView | ||
105 | + android:id="@+id/tv_expired_empty" | ||
106 | + fontPath="fonts/pf_square_sans_pro_regular.ttf" | ||
107 | + android:layout_width="wrap_content" | ||
108 | + android:layout_height="wrap_content" | ||
109 | + android:layout_centerHorizontal="true" | ||
110 | + android:layout_marginTop="56dp" | ||
111 | + android:layout_below="@+id/tv_expired_title" | ||
112 | + android:text="@string/cos_empty_expired_coupons" | ||
113 | + android:textColor="@color/cos_light_grey2" | ||
114 | + android:textSize="16sp" | ||
115 | + android:visibility="gone"/> | ||
103 | </RelativeLayout> | 116 | </RelativeLayout> |
104 | 117 | ||
105 | <RelativeLayout | 118 | <RelativeLayout |
... | @@ -128,5 +141,18 @@ | ... | @@ -128,5 +141,18 @@ |
128 | android:layout_marginHorizontal="8dp" | 141 | android:layout_marginHorizontal="8dp" |
129 | android:layout_marginTop="24dp" | 142 | android:layout_marginTop="24dp" |
130 | android:orientation="vertical" /> | 143 | android:orientation="vertical" /> |
144 | + | ||
145 | + <TextView | ||
146 | + android:id="@+id/tv_shared_empty" | ||
147 | + fontPath="fonts/pf_square_sans_pro_regular.ttf" | ||
148 | + android:layout_width="wrap_content" | ||
149 | + android:layout_height="wrap_content" | ||
150 | + android:layout_centerHorizontal="true" | ||
151 | + android:layout_marginTop="56dp" | ||
152 | + android:layout_below="@+id/tv_shared_title" | ||
153 | + android:text="@string/cos_empty_shared_coupons" | ||
154 | + android:textColor="@color/cos_light_grey2" | ||
155 | + android:textSize="16sp" | ||
156 | + android:visibility="gone"/> | ||
131 | </RelativeLayout> | 157 | </RelativeLayout> |
132 | </RelativeLayout> | 158 | </RelativeLayout> |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -368,12 +368,13 @@ | ... | @@ -368,12 +368,13 @@ |
368 | android:textSize="18sp" | 368 | android:textSize="18sp" |
369 | tools:text="961544809" /> | 369 | tools:text="961544809" /> |
370 | 370 | ||
371 | - <!-- <TextView--> | 371 | + <TextView |
372 | - <!-- android:id="@+id/tv_active_deals_date_text"--> | 372 | + android:id="@+id/tv_active_deals_date_text" |
373 | - <!-- android:layout_width="wrap_content"--> | 373 | + android:layout_width="wrap_content" |
374 | - <!-- android:layout_height="wrap_content"--> | 374 | + android:layout_height="wrap_content" |
375 | - <!-- tools:text="@string/cos_active_coupon_date"--> | 375 | + android:textColor="@color/blue_dark" |
376 | - <!-- android:textColor="@color/blue_dark" />--> | 376 | + android:visibility="gone" |
377 | + tools:text="@string/cos_active_coupon_date" /> | ||
377 | </LinearLayout> | 378 | </LinearLayout> |
378 | 379 | ||
379 | <ImageView | 380 | <ImageView | ... | ... |
1 | +<?xml version="1.0" encoding="utf-8"?> | ||
2 | +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
3 | + xmlns:tools="http://schemas.android.com/tools" | ||
4 | + android:id="@+id/rl_map_pin_view" | ||
5 | + android:layout_width="match_parent" | ||
6 | + android:layout_height="match_parent" | ||
7 | + android:background="@android:color/white" | ||
8 | + android:orientation="vertical"> | ||
9 | + | ||
10 | + <RelativeLayout | ||
11 | + android:id="@+id/rl_map_pin" | ||
12 | + android:layout_width="match_parent" | ||
13 | + android:layout_height="wrap_content" | ||
14 | + android:layout_marginBottom="24dp" | ||
15 | + android:background="@drawable/shape_cos_white_rounded_top" | ||
16 | + android:paddingHorizontal="24dp" | ||
17 | + android:paddingTop="16dp"> | ||
18 | + | ||
19 | + <TextView | ||
20 | + android:id="@+id/tv_pin_title" | ||
21 | + fontPath="fonts/pf_square_sans_pro_bold.ttf" | ||
22 | + android:layout_width="wrap_content" | ||
23 | + android:layout_height="wrap_content" | ||
24 | + android:layout_alignParentStart="true" | ||
25 | + android:textColor="@color/cos_grey9" | ||
26 | + android:textSize="16sp" | ||
27 | + tools:text="ΓΕΡΜΑΝΟΣ" /> | ||
28 | + | ||
29 | + <ImageView | ||
30 | + android:id="@+id/iv_map_pin_close" | ||
31 | + android:layout_width="16dp" | ||
32 | + android:layout_height="16dp" | ||
33 | + android:layout_alignParentEnd="true" | ||
34 | + android:src="@drawable/ic_close" /> | ||
35 | + </RelativeLayout> | ||
36 | + | ||
37 | + <LinearLayout | ||
38 | + android:layout_width="match_parent" | ||
39 | + android:layout_height="wrap_content" | ||
40 | + android:gravity="center_vertical" | ||
41 | + android:paddingHorizontal="24dp"> | ||
42 | + | ||
43 | + <ImageView | ||
44 | + android:id="@+id/iv_pin_logo" | ||
45 | + android:layout_width="36dp" | ||
46 | + android:layout_height="36dp" | ||
47 | + tools:src="@drawable/ic_deals_circle" /> | ||
48 | + | ||
49 | + <LinearLayout | ||
50 | + android:id="@+id/ll_pin_title_view" | ||
51 | + android:layout_width="wrap_content" | ||
52 | + android:layout_height="wrap_content" | ||
53 | + android:layout_marginStart="8dp" | ||
54 | + android:layout_toEndOf="@+id/iv_pin_logo" | ||
55 | + android:orientation="vertical"> | ||
56 | + | ||
57 | + <TextView | ||
58 | + android:id="@+id/tv_pin_name" | ||
59 | + fontPath="fonts/pf_square_sans_pro_medium.ttf" | ||
60 | + android:layout_width="wrap_content" | ||
61 | + android:layout_height="wrap_content" | ||
62 | + android:textColor="@color/grey" | ||
63 | + android:textSize="14sp" | ||
64 | + tools:text="Γερμανός Χαλανδρίου" /> | ||
65 | + | ||
66 | + <TextView | ||
67 | + android:id="@+id/tv_pin_days" | ||
68 | + fontPath="fonts/pf_square_sans_pro_regular.ttf" | ||
69 | + android:layout_width="wrap_content" | ||
70 | + android:layout_height="wrap_content" | ||
71 | + android:textColor="@color/cos_grey8" | ||
72 | + android:textSize="14sp" | ||
73 | + tools:text="Δευτέρα-Τετάρτη" /> | ||
74 | + </LinearLayout> | ||
75 | + </LinearLayout> | ||
76 | + | ||
77 | + <View | ||
78 | + android:layout_width="match_parent" | ||
79 | + android:layout_height="1dp" | ||
80 | + android:layout_marginHorizontal="12dp" | ||
81 | + android:layout_marginVertical="12dp" | ||
82 | + android:background="@drawable/divider2" /> | ||
83 | + | ||
84 | + <LinearLayout | ||
85 | + android:layout_width="match_parent" | ||
86 | + android:layout_height="36dp" | ||
87 | + android:gravity="center_vertical" | ||
88 | + android:orientation="horizontal" | ||
89 | + android:paddingHorizontal="24dp"> | ||
90 | + | ||
91 | + <ImageView | ||
92 | + android:layout_width="14dp" | ||
93 | + android:layout_height="14dp" | ||
94 | + android:src="@drawable/ic_pin_tel" /> | ||
95 | + | ||
96 | + <TextView | ||
97 | + android:id="@+id/tv_pin_tel" | ||
98 | + fontPath="fonts/pf_square_sans_pro_medium.ttf" | ||
99 | + android:layout_width="wrap_content" | ||
100 | + android:layout_height="wrap_content" | ||
101 | + android:layout_marginStart="12dp" | ||
102 | + android:textColor="@color/grey" | ||
103 | + android:textSize="14sp" | ||
104 | + tools:text="210-6230543" /> | ||
105 | + </LinearLayout> | ||
106 | + | ||
107 | + <View | ||
108 | + android:layout_width="match_parent" | ||
109 | + android:layout_height="1dp" | ||
110 | + android:layout_marginHorizontal="12dp" | ||
111 | + android:layout_marginVertical="12dp" | ||
112 | + android:background="@drawable/divider2" /> | ||
113 | + | ||
114 | + <RelativeLayout | ||
115 | + android:layout_width="match_parent" | ||
116 | + android:layout_height="wrap_content" | ||
117 | + android:layout_marginBottom="16dp" | ||
118 | + android:paddingHorizontal="24dp"> | ||
119 | + | ||
120 | + <LinearLayout | ||
121 | + android:id="@+id/ll_pin_address" | ||
122 | + android:layout_width="match_parent" | ||
123 | + android:layout_height="36dp" | ||
124 | + android:gravity="center_vertical" | ||
125 | + android:orientation="horizontal"> | ||
126 | + | ||
127 | + <ImageView | ||
128 | + android:layout_width="14dp" | ||
129 | + android:layout_height="14dp" | ||
130 | + android:src="@drawable/ic_pin_location" /> | ||
131 | + | ||
132 | + <TextView | ||
133 | + android:id="@+id/tv_pin_address" | ||
134 | + fontPath="fonts/pf_square_sans_pro_medium.ttf" | ||
135 | + android:layout_width="184dp" | ||
136 | + android:layout_height="wrap_content" | ||
137 | + android:layout_marginStart="12dp" | ||
138 | + android:maxLines="2" | ||
139 | + android:textColor="@color/grey" | ||
140 | + android:textSize="14sp" | ||
141 | + tools:text="ΕΘΝΙΚΗΣ ΑΝΤΙΣΤΑΣΕΩΣ 4 41" /> | ||
142 | + </LinearLayout> | ||
143 | + | ||
144 | + <LinearLayout | ||
145 | + android:id="@+id/ll_directions" | ||
146 | + android:layout_width="wrap_content" | ||
147 | + android:layout_height="wrap_content" | ||
148 | + android:layout_alignParentEnd="true" | ||
149 | + android:layout_centerVertical="true" | ||
150 | + android:background="@drawable/selector_button_green" | ||
151 | + android:gravity="center" | ||
152 | + android:orientation="horizontal" | ||
153 | + android:paddingHorizontal="20dp" | ||
154 | + android:paddingVertical="8dp"> | ||
155 | + | ||
156 | + <ImageView | ||
157 | + android:layout_width="14dp" | ||
158 | + android:layout_height="14dp" | ||
159 | + android:src="@drawable/ic_pin_compass" /> | ||
160 | + | ||
161 | + <TextView | ||
162 | + fontPath="fonts/pf_square_sans_pro_medium.ttf" | ||
163 | + android:layout_width="wrap_content" | ||
164 | + android:layout_height="wrap_content" | ||
165 | + android:layout_marginStart="8dp" | ||
166 | + android:gravity="center" | ||
167 | + android:text="@string/cos_directions" | ||
168 | + android:textColor="@color/white" | ||
169 | + android:textSize="14dp" /> | ||
170 | + </LinearLayout> | ||
171 | + </RelativeLayout> | ||
172 | + | ||
173 | +</LinearLayout> | ||
... | \ No newline at end of file | ... | \ No newline at end of file |
... | @@ -7,52 +7,71 @@ | ... | @@ -7,52 +7,71 @@ |
7 | 7 | ||
8 | <TextView | 8 | <TextView |
9 | android:id="@+id/tv_expired_coupons_date" | 9 | android:id="@+id/tv_expired_coupons_date" |
10 | + fontPath="fonts/pf_square_sans_pro_bold.ttf" | ||
10 | android:layout_width="wrap_content" | 11 | android:layout_width="wrap_content" |
11 | android:layout_height="wrap_content" | 12 | android:layout_height="wrap_content" |
12 | android:textColor="@color/cos_blue_dark2" | 13 | android:textColor="@color/cos_blue_dark2" |
13 | android:textSize="13sp" | 14 | android:textSize="13sp" |
14 | - fontPath="fonts/pf_square_sans_pro_bold.ttf" | ||
15 | tools:text="05/05/2022" /> | 15 | tools:text="05/05/2022" /> |
16 | 16 | ||
17 | <LinearLayout | 17 | <LinearLayout |
18 | - android:id="@+id/ll_expired_info_view" | ||
19 | android:layout_width="match_parent" | 18 | android:layout_width="match_parent" |
20 | android:layout_height="wrap_content" | 19 | android:layout_height="wrap_content" |
21 | android:layout_below="@+id/tv_expired_coupons_date" | 20 | android:layout_below="@+id/tv_expired_coupons_date" |
22 | android:layout_marginTop="8dp" | 21 | android:layout_marginTop="8dp" |
23 | - android:orientation="horizontal" | 22 | + android:orientation="horizontal"> |
24 | - android:weightSum="1"> | ||
25 | 23 | ||
26 | - <TextView | 24 | + <ImageView |
27 | - android:id="@+id/tv_expired_coupons_title" | 25 | + android:id="@+id/iv_expired_logo" |
28 | - android:layout_width="0dp" | 26 | + android:layout_width="28dp" |
29 | - android:layout_height="wrap_content" | 27 | + android:layout_height="28dp" |
30 | - android:layout_weight="0.5" | 28 | + tools:src="@drawable/ic_deals_circle" /> |
31 | - android:maxLines="2" | 29 | + |
32 | - android:textColor="@color/cos_blue_dark2" | 30 | + <LinearLayout |
33 | - fontPath="fonts/pf_square_sans_pro_medium.ttf" | 31 | + android:layout_width="match_parent" |
34 | - android:textSize="16sp" | ||
35 | - tools:text="Box" /> | ||
36 | - | ||
37 | - <TextView | ||
38 | - android:id="@+id/tv_expired_coupons_value" | ||
39 | - android:layout_width="wrap_content" | ||
40 | android:layout_height="wrap_content" | 32 | android:layout_height="wrap_content" |
41 | - android:layout_weight="0.5" | 33 | + android:layout_marginStart="6dp" |
42 | - android:gravity="end" | 34 | + android:orientation="vertical"> |
43 | - android:textColor="@color/cos_blue_dark2" | ||
44 | - android:textSize="16sp" | ||
45 | - fontPath="fonts/pf_square_sans_pro_bold.ttf" | ||
46 | - tools:text="4$" /> | ||
47 | - </LinearLayout> | ||
48 | 35 | ||
49 | - <TextView | 36 | + <LinearLayout |
50 | - android:id="@+id/tv_expired_coupons_label" | 37 | + android:id="@+id/ll_expired_info_view" |
51 | - android:layout_width="wrap_content" | 38 | + android:layout_width="match_parent" |
52 | - android:layout_height="wrap_content" | 39 | + android:layout_height="wrap_content" |
53 | - android:layout_below="@+id/ll_expired_info_view" | 40 | + android:orientation="horizontal" |
54 | - android:text="@string/cos_expired_coupon_label" | 41 | + android:weightSum="1"> |
55 | - fontPath="fonts/pf_square_sans_pro_regular.ttf" | 42 | + |
56 | - android:textColor="@color/cos_light_grey2" | 43 | + <TextView |
57 | - android:textSize="16sp" /> | 44 | + android:id="@+id/tv_expired_coupons_title" |
45 | + fontPath="fonts/pf_square_sans_pro_medium.ttf" | ||
46 | + android:layout_width="wrap_content" | ||
47 | + android:layout_height="wrap_content" | ||
48 | + android:layout_weight="0.5" | ||
49 | + android:maxLines="2" | ||
50 | + android:textColor="@color/cos_blue_dark2" | ||
51 | + android:textSize="16sp" | ||
52 | + tools:text="Box" /> | ||
53 | + | ||
54 | + <TextView | ||
55 | + android:id="@+id/tv_expired_coupons_value" | ||
56 | + fontPath="fonts/pf_square_sans_pro_bold.ttf" | ||
57 | + android:layout_width="wrap_content" | ||
58 | + android:layout_height="wrap_content" | ||
59 | + android:layout_weight="0.5" | ||
60 | + android:gravity="end" | ||
61 | + android:textColor="@color/cos_blue_dark2" | ||
62 | + android:textSize="16sp" | ||
63 | + tools:text="4$" /> | ||
64 | + </LinearLayout> | ||
65 | + | ||
66 | + <TextView | ||
67 | + android:id="@+id/tv_expired_coupons_label" | ||
68 | + fontPath="fonts/pf_square_sans_pro_regular.ttf" | ||
69 | + android:layout_width="wrap_content" | ||
70 | + android:layout_height="wrap_content" | ||
71 | + android:layout_below="@+id/ll_expired_info_view" | ||
72 | + android:text="@string/cos_expired_coupon_label" | ||
73 | + android:textColor="@color/cos_light_grey2" | ||
74 | + android:textSize="16sp" /> | ||
75 | + </LinearLayout> | ||
76 | + </LinearLayout> | ||
58 | </RelativeLayout> | 77 | </RelativeLayout> |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -7,62 +7,79 @@ | ... | @@ -7,62 +7,79 @@ |
7 | 7 | ||
8 | <TextView | 8 | <TextView |
9 | android:id="@+id/tv_shared_coupons_date" | 9 | android:id="@+id/tv_shared_coupons_date" |
10 | + fontPath="fonts/pf_square_sans_pro_bold.ttf" | ||
10 | android:layout_width="wrap_content" | 11 | android:layout_width="wrap_content" |
11 | android:layout_height="wrap_content" | 12 | android:layout_height="wrap_content" |
12 | android:textColor="@color/cos_blue_dark2" | 13 | android:textColor="@color/cos_blue_dark2" |
13 | android:textSize="13sp" | 14 | android:textSize="13sp" |
14 | - fontPath="fonts/pf_square_sans_pro_bold.ttf" | ||
15 | tools:text="05/05/2022" /> | 15 | tools:text="05/05/2022" /> |
16 | 16 | ||
17 | <LinearLayout | 17 | <LinearLayout |
18 | - android:id="@+id/ll_expired_info_view" | ||
19 | android:layout_width="match_parent" | 18 | android:layout_width="match_parent" |
20 | android:layout_height="wrap_content" | 19 | android:layout_height="wrap_content" |
21 | android:layout_below="@+id/tv_shared_coupons_date" | 20 | android:layout_below="@+id/tv_shared_coupons_date" |
22 | android:layout_marginTop="8dp" | 21 | android:layout_marginTop="8dp" |
23 | - android:orientation="horizontal" | 22 | + android:orientation="horizontal"> |
24 | - android:weightSum="1"> | ||
25 | 23 | ||
26 | - <TextView | 24 | + <ImageView |
27 | - android:id="@+id/tv_shared_coupons_title" | 25 | + android:id="@+id/iv_shared_logo" |
28 | - android:layout_width="0dp" | 26 | + android:layout_width="28dp" |
29 | - android:layout_height="wrap_content" | 27 | + android:layout_height="28dp" |
30 | - android:layout_weight="0.5" | 28 | + tools:src="@drawable/ic_deals_circle" /> |
31 | - android:maxLines="2" | ||
32 | - android:textColor="@color/cos_blue_dark2" | ||
33 | - fontPath="fonts/pf_square_sans_pro_medium.ttf" | ||
34 | - android:textSize="16sp" | ||
35 | - tools:text="Box" /> | ||
36 | 29 | ||
37 | - <TextView | 30 | + <LinearLayout |
38 | - android:id="@+id/tv_shared_coupons_value" | 31 | + android:layout_width="match_parent" |
39 | - android:layout_width="wrap_content" | ||
40 | android:layout_height="wrap_content" | 32 | android:layout_height="wrap_content" |
41 | - android:layout_weight="0.5" | 33 | + android:layout_marginStart="6dp" |
42 | - android:gravity="end" | 34 | + android:orientation="vertical"> |
43 | - android:textColor="@color/cos_blue_dark2" | ||
44 | - android:textSize="16sp" | ||
45 | - fontPath="fonts/pf_square_sans_pro_bold.ttf" | ||
46 | - tools:text="4$" /> | ||
47 | - </LinearLayout> | ||
48 | 35 | ||
49 | - <TextView | 36 | + <LinearLayout |
50 | - android:id="@+id/tv_shared_coupons_label" | 37 | + android:id="@+id/ll_expired_info_view" |
51 | - android:layout_width="wrap_content" | 38 | + android:layout_width="match_parent" |
52 | - android:layout_height="wrap_content" | 39 | + android:layout_height="wrap_content" |
53 | - android:layout_below="@+id/ll_expired_info_view" | 40 | + android:orientation="horizontal" |
54 | - android:textColor="@color/cos_light_grey2" | 41 | + android:weightSum="1"> |
55 | - android:textSize="16sp" | ||
56 | - fontPath="fonts/pf_square_sans_pro_regular.ttf" | ||
57 | - tools:text="@string/cos_expired_coupon_label" /> | ||
58 | 42 | ||
59 | - <TextView | 43 | + <TextView |
60 | - android:id="@+id/tv_shared_coupons_phone" | 44 | + android:id="@+id/tv_shared_coupons_title" |
61 | - android:layout_width="wrap_content" | 45 | + fontPath="fonts/pf_square_sans_pro_medium.ttf" |
62 | - android:layout_height="wrap_content" | 46 | + android:layout_width="wrap_content" |
63 | - fontPath="fonts/pf_square_sans_pro_regular.ttf" | 47 | + android:layout_height="wrap_content" |
64 | - android:layout_below="@+id/tv_shared_coupons_label" | 48 | + android:layout_weight="0.5" |
65 | - android:textColor="@color/cos_light_grey2" | 49 | + android:maxLines="2" |
66 | - android:textSize="16sp" | 50 | + android:textColor="@color/cos_blue_dark2" |
67 | - tools:text="@string/cos_expired_coupon_label" /> | 51 | + android:textSize="16sp" |
52 | + tools:text="Box" /> | ||
53 | + | ||
54 | + <TextView | ||
55 | + android:id="@+id/tv_shared_coupons_value" | ||
56 | + fontPath="fonts/pf_square_sans_pro_bold.ttf" | ||
57 | + android:layout_width="wrap_content" | ||
58 | + android:layout_height="wrap_content" | ||
59 | + android:layout_weight="0.5" | ||
60 | + android:gravity="end" | ||
61 | + android:textColor="@color/cos_blue_dark2" | ||
62 | + android:textSize="16sp" | ||
63 | + tools:text="4$" /> | ||
64 | + </LinearLayout> | ||
65 | + | ||
66 | + <TextView | ||
67 | + android:id="@+id/tv_shared_coupons_label" | ||
68 | + fontPath="fonts/pf_square_sans_pro_regular.ttf" | ||
69 | + android:layout_width="wrap_content" | ||
70 | + android:layout_height="wrap_content" | ||
71 | + android:textColor="@color/cos_light_grey2" | ||
72 | + android:textSize="16sp" | ||
73 | + tools:text="@string/cos_expired_coupon_label" /> | ||
74 | + | ||
75 | + <TextView | ||
76 | + android:id="@+id/tv_shared_coupons_phone" | ||
77 | + fontPath="fonts/pf_square_sans_pro_regular.ttf" | ||
78 | + android:layout_width="wrap_content" | ||
79 | + android:layout_height="wrap_content" | ||
80 | + android:textColor="@color/cos_light_grey2" | ||
81 | + android:textSize="16sp" | ||
82 | + tools:text="@string/cos_expired_coupon_label" /> | ||
83 | + </LinearLayout> | ||
84 | + </LinearLayout> | ||
68 | </RelativeLayout> | 85 | </RelativeLayout> |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -60,4 +60,5 @@ | ... | @@ -60,4 +60,5 @@ |
60 | <color name="cos_blue4">#07A2D1</color> | 60 | <color name="cos_blue4">#07A2D1</color> |
61 | <color name="cos_green10">#73CA34</color> | 61 | <color name="cos_green10">#73CA34</color> |
62 | <color name="cos_blue5">#0D81B8</color> | 62 | <color name="cos_blue5">#0D81B8</color> |
63 | + <color name="cos_grey9">#757575</color> | ||
63 | </resources> | 64 | </resources> |
... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
... | @@ -114,7 +114,7 @@ | ... | @@ -114,7 +114,7 @@ |
114 | <string name="cos_shared_coupon_receiver">Εκπτωτικό κουπόνι προς</string> | 114 | <string name="cos_shared_coupon_receiver">Εκπτωτικό κουπόνι προς</string> |
115 | <string name="cos_shared_coupon_sender">Έκπτωτικό κουπόνι από</string> | 115 | <string name="cos_shared_coupon_sender">Έκπτωτικό κουπόνι από</string> |
116 | <string name="cos_steps_for_good_notification_title">Steps for Good</string> | 116 | <string name="cos_steps_for_good_notification_title">Steps for Good</string> |
117 | - <string name="cos_empty_wallet">Δεν έχεις κάποιον ενεργό κωδικό ή κουπόνι! Μπες τώρα στην ενότητα COSMOTE For YOU και βρες αποκλειστικές προσφορές!</string> | 117 | + <string name="cos_empty_wallet">Δεν έχεις κάποιον ενεργό κωδικό ή κουπόνι! Μπες τώρα στην ενότητα COSMOTE For You και βρες αποκλειστικές προσφορές!</string> |
118 | <string name="cos_wallet_text1">Μέχρι τώρα έχεις κερδίσει </string> | 118 | <string name="cos_wallet_text1">Μέχρι τώρα έχεις κερδίσει </string> |
119 | <string name="cos_wallet_text2"> με το DEALS for YOU!</string> | 119 | <string name="cos_wallet_text2"> με το DEALS for YOU!</string> |
120 | <string name="cos_wallet_text3">Μέχρι τώρα έχεις κερδίσει </string> | 120 | <string name="cos_wallet_text3">Μέχρι τώρα έχεις κερδίσει </string> |
... | @@ -128,6 +128,9 @@ | ... | @@ -128,6 +128,9 @@ |
128 | <string name="cos_dlg_error_used">Το δώρο έχει ήδη χρησιμοποιηθεί</string> | 128 | <string name="cos_dlg_error_used">Το δώρο έχει ήδη χρησιμοποιηθεί</string> |
129 | <string name="cos_see_more2">Δες Περισσότερα</string> | 129 | <string name="cos_see_more2">Δες Περισσότερα</string> |
130 | <string name="cos_dlg_non_telco">Παρακαλούμε πολύ πρόσθεσε τις συνδέσεις σου στην COSMOTE για να έχεις πρόσβαση στα προνόμια του νέου Loyalty προγράμματος της COSMOTE!</string> | 130 | <string name="cos_dlg_non_telco">Παρακαλούμε πολύ πρόσθεσε τις συνδέσεις σου στην COSMOTE για να έχεις πρόσβαση στα προνόμια του νέου Loyalty προγράμματος της COSMOTE!</string> |
131 | + <string name="cos_directions">Οδηγίες</string> | ||
132 | + <string name="cos_empty_shared_coupons">Δεν έχεις μοιραστεί ακόμη κουπόνια</string> | ||
133 | + <string name="cos_empty_expired_coupons">Δεν έχεις εξαργυρώσει ακόμη κουπόνια</string> | ||
131 | 134 | ||
132 | <string-array name="coupons_array"> | 135 | <string-array name="coupons_array"> |
133 | <item>Κουπόνια</item> | 136 | <item>Κουπόνια</item> | ... | ... |
-
Please register or login to post a comment