Showing
37 changed files
with
1630 additions
and
245 deletions
| ... | @@ -10,6 +10,7 @@ import java.util.TimerTask; | ... | @@ -10,6 +10,7 @@ import java.util.TimerTask; |
| 10 | 10 | ||
| 11 | import ly.warp.sdk.Warply; | 11 | import ly.warp.sdk.Warply; |
| 12 | import ly.warp.sdk.activities.BaseFragmentActivity; | 12 | import ly.warp.sdk.activities.BaseFragmentActivity; |
| 13 | +import ly.warp.sdk.db.WarplyDBHelper; | ||
| 13 | import ly.warp.sdk.io.callbacks.CallbackReceiver; | 14 | import ly.warp.sdk.io.callbacks.CallbackReceiver; |
| 14 | import ly.warp.sdk.io.callbacks.SimpleCallbackReceiver; | 15 | import ly.warp.sdk.io.callbacks.SimpleCallbackReceiver; |
| 15 | import ly.warp.sdk.io.callbacks.WarplyReadyCallback; | 16 | import ly.warp.sdk.io.callbacks.WarplyReadyCallback; |
| ... | @@ -31,11 +32,15 @@ public class SplashActivity extends BaseActivity { | ... | @@ -31,11 +32,15 @@ public class SplashActivity extends BaseActivity { |
| 31 | mWarplyInitializer = Warply.getInitializer(this, new WarplyReadyCallback() { | 32 | mWarplyInitializer = Warply.getInitializer(this, new WarplyReadyCallback() { |
| 32 | @Override | 33 | @Override |
| 33 | public void onWarplyReady() { | 34 | public void onWarplyReady() { |
| 35 | + if (!WarplyDBHelper.getInstance(SplashActivity.this).isTableNotEmpty("auth")) { | ||
| 34 | WarplyManager.login(new WarplyLoginRequest() | 36 | WarplyManager.login(new WarplyLoginRequest() |
| 35 | .setId("6981234567") | 37 | .setId("6981234567") |
| 36 | .setPassword("123456"), | 38 | .setPassword("123456"), |
| 37 | mLoginReceiver | 39 | mLoginReceiver |
| 38 | ); | 40 | ); |
| 41 | + } else { | ||
| 42 | + startNextActivity(); | ||
| 43 | + } | ||
| 39 | } | 44 | } |
| 40 | 45 | ||
| 41 | @Override | 46 | @Override | ... | ... |
| ... | @@ -46,7 +46,7 @@ dependencies { | ... | @@ -46,7 +46,7 @@ dependencies { |
| 46 | api 'com.google.android.material:material:1.5.0' | 46 | api 'com.google.android.material:material:1.5.0' |
| 47 | api group: 'com.google.zxing', name: 'core', version: '3.4.1' | 47 | api group: 'com.google.zxing', name: 'core', version: '3.4.1' |
| 48 | api group: 'com.google.zxing', name: 'javase', version: '3.4.1' | 48 | api group: 'com.google.zxing', name: 'javase', version: '3.4.1' |
| 49 | - | 49 | + api 'com.github.siyamed:android-shape-imageview:0.9.+@aar' |
| 50 | 50 | ||
| 51 | 51 | ||
| 52 | //------------------------------ Firebase -----------------------------// | 52 | //------------------------------ Firebase -----------------------------// | ... | ... |
| ... | @@ -47,6 +47,21 @@ | ... | @@ -47,6 +47,21 @@ |
| 47 | android:screenOrientation="portrait" /> | 47 | android:screenOrientation="portrait" /> |
| 48 | 48 | ||
| 49 | <activity | 49 | <activity |
| 50 | + android:name="ly.warp.sdk.activities.ActiveCouponsActivity" | ||
| 51 | + android:exported="false" | ||
| 52 | + android:screenOrientation="portrait" /> | ||
| 53 | + | ||
| 54 | + <activity | ||
| 55 | + android:name="ly.warp.sdk.activities.ListForYouActivity" | ||
| 56 | + android:exported="false" | ||
| 57 | + android:screenOrientation="portrait" /> | ||
| 58 | + | ||
| 59 | + <activity | ||
| 60 | + android:name="ly.warp.sdk.activities.CouponsetInfoActivity" | ||
| 61 | + android:exported="false" | ||
| 62 | + android:screenOrientation="portrait" /> | ||
| 63 | + | ||
| 64 | + <activity | ||
| 50 | android:name="ly.warp.sdk.dexter.PermissionsActivity" | 65 | android:name="ly.warp.sdk.dexter.PermissionsActivity" |
| 51 | android:exported="false" | 66 | android:exported="false" |
| 52 | android:launchMode="singleInstance" | 67 | android:launchMode="singleInstance" | ... | ... |
| 1 | +package ly.warp.sdk.activities; | ||
| 2 | + | ||
| 3 | +import android.app.Activity; | ||
| 4 | +import android.content.Intent; | ||
| 5 | +import android.os.Bundle; | ||
| 6 | +import android.view.View; | ||
| 7 | +import android.widget.ImageView; | ||
| 8 | +import android.widget.TextView; | ||
| 9 | + | ||
| 10 | +import androidx.recyclerview.widget.LinearLayoutManager; | ||
| 11 | +import androidx.recyclerview.widget.RecyclerView; | ||
| 12 | + | ||
| 13 | +import java.io.Serializable; | ||
| 14 | + | ||
| 15 | +import ly.warp.sdk.R; | ||
| 16 | +import ly.warp.sdk.io.models.CouponList; | ||
| 17 | +import ly.warp.sdk.views.adapters.mix.ActiveCouponAdapter; | ||
| 18 | + | ||
| 19 | + | ||
| 20 | +public class ActiveCouponsActivity extends Activity implements View.OnClickListener { | ||
| 21 | + | ||
| 22 | + // =========================================================== | ||
| 23 | + // Constants | ||
| 24 | + // =========================================================== | ||
| 25 | + | ||
| 26 | + // =========================================================== | ||
| 27 | + // Fields | ||
| 28 | + // =========================================================== | ||
| 29 | + | ||
| 30 | + private ImageView mIvBack; | ||
| 31 | + private RecyclerView mRecyclerCoupons; | ||
| 32 | + private ActiveCouponAdapter mAdapterCoupons; | ||
| 33 | + private CouponList mCouponList = new CouponList(); | ||
| 34 | + private TextView mTvEmptyCoupons; | ||
| 35 | + | ||
| 36 | + // =========================================================== | ||
| 37 | + // Methods for/from SuperClass/Interfaces | ||
| 38 | + // =========================================================== | ||
| 39 | + | ||
| 40 | + @Override | ||
| 41 | + public void onCreate(Bundle savedInstanceState) { | ||
| 42 | + super.onCreate(savedInstanceState); | ||
| 43 | + setContentView(R.layout.activity_active_coupons); | ||
| 44 | + | ||
| 45 | + if (getIntent().getExtras() != null && getIntent().getSerializableExtra("couponlist") != null) { | ||
| 46 | + mCouponList = new CouponList(getIntent().getSerializableExtra("couponlist").toString(), true); | ||
| 47 | + } | ||
| 48 | + | ||
| 49 | + mIvBack = findViewById(R.id.iv_coupons_close); | ||
| 50 | + mTvEmptyCoupons = findViewById(R.id.tv_no_coupons); | ||
| 51 | + | ||
| 52 | + if (mCouponList != null) { | ||
| 53 | + mRecyclerCoupons = findViewById(R.id.rv_active_coupons); | ||
| 54 | + mRecyclerCoupons.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); | ||
| 55 | + mAdapterCoupons = new ActiveCouponAdapter(this, mCouponList); | ||
| 56 | + mRecyclerCoupons.setAdapter(mAdapterCoupons); | ||
| 57 | + mAdapterCoupons.getPositionClicks() | ||
| 58 | + .doOnNext(coupon -> { | ||
| 59 | + Intent intent = new Intent(ActiveCouponsActivity.this, CouponInfoActivity.class); | ||
| 60 | + intent.putExtra("coupon", (Serializable) coupon); | ||
| 61 | + startActivity(intent); | ||
| 62 | + }) | ||
| 63 | + .doOnError(error -> { | ||
| 64 | + }) | ||
| 65 | + .subscribe(); | ||
| 66 | + } else { | ||
| 67 | + mTvEmptyCoupons.setVisibility(View.VISIBLE); | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + initViews(); | ||
| 71 | + } | ||
| 72 | + | ||
| 73 | + @Override | ||
| 74 | + public void onResume() { | ||
| 75 | + super.onResume(); | ||
| 76 | + } | ||
| 77 | + | ||
| 78 | + @Override | ||
| 79 | + public void onClick(View view) { | ||
| 80 | + if (view.getId() == R.id.iv_coupons_close) { | ||
| 81 | + onBackPressed(); | ||
| 82 | + } | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | + // =========================================================== | ||
| 86 | + // Methods | ||
| 87 | + // =========================================================== | ||
| 88 | + | ||
| 89 | + private void initViews() { | ||
| 90 | + mIvBack.setOnClickListener(this); | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + // =========================================================== | ||
| 94 | + // Inner and Anonymous Classes | ||
| 95 | + // =========================================================== | ||
| 96 | + | ||
| 97 | +} |
| ... | @@ -37,6 +37,7 @@ import ly.warp.sdk.io.request.WarplyGetCouponsetsRequest; | ... | @@ -37,6 +37,7 @@ import ly.warp.sdk.io.request.WarplyGetCouponsetsRequest; |
| 37 | import ly.warp.sdk.io.request.WarplyInboxRequest; | 37 | import ly.warp.sdk.io.request.WarplyInboxRequest; |
| 38 | import ly.warp.sdk.io.request.WarplyUserCouponsRequest; | 38 | import ly.warp.sdk.io.request.WarplyUserCouponsRequest; |
| 39 | import ly.warp.sdk.utils.WarpUtils; | 39 | import ly.warp.sdk.utils.WarpUtils; |
| 40 | +import ly.warp.sdk.utils.WarplyManagerHelper; | ||
| 40 | import ly.warp.sdk.utils.WarplyProperty; | 41 | import ly.warp.sdk.utils.WarplyProperty; |
| 41 | import ly.warp.sdk.utils.managers.WarplyManager; | 42 | import ly.warp.sdk.utils.managers.WarplyManager; |
| 42 | import ly.warp.sdk.utils.managers.WarplySessionManager; | 43 | import ly.warp.sdk.utils.managers.WarplySessionManager; |
| ... | @@ -55,7 +56,6 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation | ... | @@ -55,7 +56,6 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation |
| 55 | private Fragment mFragmentToSet = null; | 56 | private Fragment mFragmentToSet = null; |
| 56 | private static Consumer mConsumer; | 57 | private static Consumer mConsumer; |
| 57 | private static HashMap<String, CampaignList> mUniqueCampaignList = new HashMap<String, CampaignList>(); | 58 | private static HashMap<String, CampaignList> mUniqueCampaignList = new HashMap<String, CampaignList>(); |
| 58 | - private static CouponList mCouponList = new CouponList(); | ||
| 59 | private CouponsetsList mCouponsetsList; | 59 | private CouponsetsList mCouponsetsList; |
| 60 | 60 | ||
| 61 | // =========================================================== | 61 | // =========================================================== |
| ... | @@ -147,17 +147,7 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation | ... | @@ -147,17 +147,7 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation |
| 147 | mLlRedeem.setOnClickListener(view -> { | 147 | mLlRedeem.setOnClickListener(view -> { |
| 148 | if (mUniqueCampaignList != null && !mUniqueCampaignList.isEmpty()) { | 148 | if (mUniqueCampaignList != null && !mUniqueCampaignList.isEmpty()) { |
| 149 | if (mUniqueCampaignList.containsKey("lucky_draw") && mUniqueCampaignList.get("lucky_draw").size() > 0) { | 149 | if (mUniqueCampaignList.containsKey("lucky_draw") && mUniqueCampaignList.get("lucky_draw").size() > 0) { |
| 150 | - String tempUrl = mUniqueCampaignList.get("lucky_draw").get(0).getIndexUrl(); | 150 | + String tempUrl = WarplyManagerHelper.constructCampaignUrl(mUniqueCampaignList.get("lucky_draw").get(0)); |
| 151 | - | ||
| 152 | - tempUrl = tempUrl | ||
| 153 | - + "?web_id=" + WarpUtils.getWebId(this) | ||
| 154 | - + "&app_uuid=" + WarplyProperty.getAppUuid(this) | ||
| 155 | - + "&api_key=" + WarpUtils.getApiKey(this) | ||
| 156 | - + "&session_uuid=" + mUniqueCampaignList.get("lucky_draw").get(0).getSessionUUID() | ||
| 157 | - + "&access_token=" + WarplyDBHelper.getInstance(this).getAuthValue("access_token") | ||
| 158 | - + "&refresh_token=" + WarplyDBHelper.getInstance(this).getAuthValue("refresh_token") | ||
| 159 | - + "&client_id=" + WarplyDBHelper.getInstance(this).getClientValue("client_id") | ||
| 160 | - + "&client_secret=" + WarplyDBHelper.getInstance(this).getClientValue("client_secret"); | ||
| 161 | 151 | ||
| 162 | if (mConsumer != null) | 152 | if (mConsumer != null) |
| 163 | tempUrl = tempUrl + "&auth_token=" + (mConsumer.getUuid()); | 153 | tempUrl = tempUrl + "&auth_token=" + (mConsumer.getUuid()); |
| ... | @@ -171,18 +161,6 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation | ... | @@ -171,18 +161,6 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation |
| 171 | }); | 161 | }); |
| 172 | } | 162 | } |
| 173 | 163 | ||
| 174 | - public static Consumer getConsumer() { | ||
| 175 | - return mConsumer; | ||
| 176 | - } | ||
| 177 | - | ||
| 178 | - public static HashMap<String, CampaignList> getUniqueCampaignList() { | ||
| 179 | - return mUniqueCampaignList; | ||
| 180 | - } | ||
| 181 | - | ||
| 182 | - public static CouponList getCouponList() { | ||
| 183 | - return mCouponList; | ||
| 184 | - } | ||
| 185 | - | ||
| 186 | private void initViews() { | 164 | private void initViews() { |
| 187 | handleIntent(getIntent()); | 165 | handleIntent(getIntent()); |
| 188 | mBottomNavigationView.setOnItemSelectedListener(this); | 166 | mBottomNavigationView.setOnItemSelectedListener(this); |
| ... | @@ -199,6 +177,7 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation | ... | @@ -199,6 +177,7 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation |
| 199 | @Override | 177 | @Override |
| 200 | public void onSuccess(Consumer result) { | 178 | public void onSuccess(Consumer result) { |
| 201 | mConsumer = result; | 179 | mConsumer = result; |
| 180 | + WarplyManagerHelper.setConsumer(result); | ||
| 202 | // Thread.currentThread().interrupt(); | 181 | // Thread.currentThread().interrupt(); |
| 203 | Warply.getInbox(new WarplyInboxRequest().setUseCache(false), mInboxReceiver); | 182 | Warply.getInbox(new WarplyInboxRequest().setUseCache(false), mInboxReceiver); |
| 204 | } | 183 | } |
| ... | @@ -224,6 +203,8 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation | ... | @@ -224,6 +203,8 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation |
| 224 | } | 203 | } |
| 225 | } | 204 | } |
| 226 | 205 | ||
| 206 | + WarplyManagerHelper.setUniqueCampaignList(mUniqueCampaignList); | ||
| 207 | + | ||
| 227 | // Thread.currentThread().interrupt(); | 208 | // Thread.currentThread().interrupt(); |
| 228 | 209 | ||
| 229 | WarplyManager.getCouponsets(new WarplyGetCouponsetsRequest() | 210 | WarplyManager.getCouponsets(new WarplyGetCouponsetsRequest() |
| ... | @@ -241,6 +222,7 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation | ... | @@ -241,6 +222,7 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation |
| 241 | @Override | 222 | @Override |
| 242 | public void onSuccess(CouponsetsList result) { | 223 | public void onSuccess(CouponsetsList result) { |
| 243 | mCouponsetsList = result; | 224 | mCouponsetsList = result; |
| 225 | + WarplyManagerHelper.setCouponsets(result); | ||
| 244 | WarplyManager.getUserCoupons(new WarplyUserCouponsRequest(), mUserCouponsReceiver); | 226 | WarplyManager.getUserCoupons(new WarplyUserCouponsRequest(), mUserCouponsReceiver); |
| 245 | } | 227 | } |
| 246 | 228 | ||
| ... | @@ -254,6 +236,7 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation | ... | @@ -254,6 +236,7 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation |
| 254 | private final CallbackReceiver<CouponList> mUserCouponsReceiver = new CallbackReceiver<CouponList>() { | 236 | private final CallbackReceiver<CouponList> mUserCouponsReceiver = new CallbackReceiver<CouponList>() { |
| 255 | @Override | 237 | @Override |
| 256 | public void onSuccess(CouponList result) { | 238 | public void onSuccess(CouponList result) { |
| 239 | + CouponList mCouponList = new CouponList(); | ||
| 257 | for (Coupon coupon : result) { | 240 | for (Coupon coupon : result) { |
| 258 | for (Couponset couponset : mCouponsetsList) { | 241 | for (Couponset couponset : mCouponsetsList) { |
| 259 | if (coupon.getCouponsetUuid().equals(couponset.getUuid())) { | 242 | if (coupon.getCouponsetUuid().equals(couponset.getUuid())) { |
| ... | @@ -265,6 +248,8 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation | ... | @@ -265,6 +248,8 @@ public class BaseFragmentActivity extends FragmentActivity implements Navigation |
| 265 | } | 248 | } |
| 266 | } | 249 | } |
| 267 | 250 | ||
| 251 | + WarplyManagerHelper.setCouponList(mCouponList); | ||
| 252 | + | ||
| 268 | Thread.currentThread().interrupt(); | 253 | Thread.currentThread().interrupt(); |
| 269 | new Handler(Looper.getMainLooper()).post(() -> { | 254 | new Handler(Looper.getMainLooper()).post(() -> { |
| 270 | initViews(); | 255 | initViews(); | ... | ... |
| ... | @@ -8,10 +8,8 @@ import android.app.NotificationManager; | ... | @@ -8,10 +8,8 @@ import android.app.NotificationManager; |
| 8 | import android.app.PendingIntent; | 8 | import android.app.PendingIntent; |
| 9 | import android.content.Context; | 9 | import android.content.Context; |
| 10 | import android.content.Intent; | 10 | import android.content.Intent; |
| 11 | -import android.content.pm.PackageManager; | ||
| 12 | import android.graphics.BitmapFactory; | 11 | import android.graphics.BitmapFactory; |
| 13 | import android.graphics.Typeface; | 12 | import android.graphics.Typeface; |
| 14 | -import android.net.Uri; | ||
| 15 | import android.os.Build; | 13 | import android.os.Build; |
| 16 | import android.os.Bundle; | 14 | import android.os.Bundle; |
| 17 | import android.os.Handler; | 15 | import android.os.Handler; |
| ... | @@ -29,9 +27,7 @@ import android.widget.TextView; | ... | @@ -29,9 +27,7 @@ import android.widget.TextView; |
| 29 | import androidx.core.app.NotificationCompat; | 27 | import androidx.core.app.NotificationCompat; |
| 30 | 28 | ||
| 31 | import ly.warp.sdk.R; | 29 | import ly.warp.sdk.R; |
| 32 | -import ly.warp.sdk.db.WarplyDBHelper; | 30 | +import ly.warp.sdk.utils.WarplyManagerHelper; |
| 33 | -import ly.warp.sdk.utils.WarpUtils; | ||
| 34 | -import ly.warp.sdk.utils.WarplyProperty; | ||
| 35 | 31 | ||
| 36 | 32 | ||
| 37 | public class BillPaymentActivity extends Activity implements View.OnClickListener { | 33 | public class BillPaymentActivity extends Activity implements View.OnClickListener { |
| ... | @@ -71,20 +67,10 @@ public class BillPaymentActivity extends Activity implements View.OnClickListene | ... | @@ -71,20 +67,10 @@ public class BillPaymentActivity extends Activity implements View.OnClickListene |
| 71 | protected void onNewIntent(Intent intent) { | 67 | protected void onNewIntent(Intent intent) { |
| 72 | super.onNewIntent(intent); | 68 | super.onNewIntent(intent); |
| 73 | if (intent.hasExtra("channel")) { | 69 | if (intent.hasExtra("channel")) { |
| 74 | - String tempUrl = BaseFragmentActivity.getUniqueCampaignList().get("lucky_draw").get(0).getIndexUrl(); | 70 | + String tempUrl = WarplyManagerHelper.constructCampaignUrl(WarplyManagerHelper.getUniqueCampaignList().get("lucky_draw").get(0)); |
| 75 | - | 71 | + |
| 76 | - tempUrl = tempUrl | 72 | + if (WarplyManagerHelper.getConsumer() != null) |
| 77 | - + "?web_id=" + WarpUtils.getWebId(this) | 73 | + tempUrl = tempUrl + "&auth_token=" + (WarplyManagerHelper.getConsumer().getUuid()); |
| 78 | - + "&app_uuid=" + WarplyProperty.getAppUuid(this) | ||
| 79 | - + "&api_key=" + WarpUtils.getApiKey(this) | ||
| 80 | - + "&session_uuid=" + BaseFragmentActivity.getUniqueCampaignList().get("lucky_draw").get(0).getSessionUUID() | ||
| 81 | - + "&access_token=" + WarplyDBHelper.getInstance(this).getAuthValue("access_token") | ||
| 82 | - + "&refresh_token=" + WarplyDBHelper.getInstance(this).getAuthValue("refresh_token") | ||
| 83 | - + "&client_id=" + WarplyDBHelper.getInstance(this).getClientValue("client_id") | ||
| 84 | - + "&client_secret=" + WarplyDBHelper.getInstance(this).getClientValue("client_secret"); | ||
| 85 | - | ||
| 86 | - if (BaseFragmentActivity.getConsumer() != null) | ||
| 87 | - tempUrl = tempUrl + "&auth_token=" + (BaseFragmentActivity.getConsumer().getUuid()); | ||
| 88 | else | 74 | else |
| 89 | tempUrl = tempUrl + "&auth_token="; | 75 | tempUrl = tempUrl + "&auth_token="; |
| 90 | 76 | ||
| ... | @@ -180,22 +166,12 @@ public class BillPaymentActivity extends Activity implements View.OnClickListene | ... | @@ -180,22 +166,12 @@ public class BillPaymentActivity extends Activity implements View.OnClickListene |
| 180 | mTvLuckyDraw.setText(builder, TextView.BufferType.SPANNABLE); | 166 | mTvLuckyDraw.setText(builder, TextView.BufferType.SPANNABLE); |
| 181 | 167 | ||
| 182 | mClLuckyDraw.setOnClickListener(view -> { | 168 | mClLuckyDraw.setOnClickListener(view -> { |
| 183 | - if (BaseFragmentActivity.getUniqueCampaignList() != null && !BaseFragmentActivity.getUniqueCampaignList().isEmpty()) { | 169 | + if (WarplyManagerHelper.getUniqueCampaignList() != null && !WarplyManagerHelper.getUniqueCampaignList().isEmpty()) { |
| 184 | - if (BaseFragmentActivity.getUniqueCampaignList().containsKey("lucky_draw") && BaseFragmentActivity.getUniqueCampaignList().get("lucky_draw").size() > 0) { | 170 | + if (WarplyManagerHelper.getUniqueCampaignList().containsKey("lucky_draw") && WarplyManagerHelper.getUniqueCampaignList().get("lucky_draw").size() > 0) { |
| 185 | - String tempUrl = BaseFragmentActivity.getUniqueCampaignList().get("lucky_draw").get(0).getIndexUrl(); | 171 | + String tempUrl = WarplyManagerHelper.constructCampaignUrl(WarplyManagerHelper.getUniqueCampaignList().get("lucky_draw").get(0)); |
| 186 | - | 172 | + |
| 187 | - tempUrl = tempUrl | 173 | + if (WarplyManagerHelper.getConsumer() != null) |
| 188 | - + "?web_id=" + WarpUtils.getWebId(this) | 174 | + tempUrl = tempUrl + "&auth_token=" + (WarplyManagerHelper.getConsumer().getUuid()); |
| 189 | - + "&app_uuid=" + WarplyProperty.getAppUuid(this) | ||
| 190 | - + "&api_key=" + WarpUtils.getApiKey(this) | ||
| 191 | - + "&session_uuid=" + BaseFragmentActivity.getUniqueCampaignList().get("lucky_draw").get(0).getSessionUUID() | ||
| 192 | - + "&access_token=" + WarplyDBHelper.getInstance(this).getAuthValue("access_token") | ||
| 193 | - + "&refresh_token=" + WarplyDBHelper.getInstance(this).getAuthValue("refresh_token") | ||
| 194 | - + "&client_id=" + WarplyDBHelper.getInstance(this).getClientValue("client_id") | ||
| 195 | - + "&client_secret=" + WarplyDBHelper.getInstance(this).getClientValue("client_secret"); | ||
| 196 | - | ||
| 197 | - if (BaseFragmentActivity.getConsumer() != null) | ||
| 198 | - tempUrl = tempUrl + "&auth_token=" + (BaseFragmentActivity.getConsumer().getUuid()); | ||
| 199 | else | 175 | else |
| 200 | tempUrl = tempUrl + "&auth_token="; | 176 | tempUrl = tempUrl + "&auth_token="; |
| 201 | 177 | ... | ... |
| 1 | +package ly.warp.sdk.activities; | ||
| 2 | + | ||
| 3 | +import android.app.Activity; | ||
| 4 | +import android.app.Dialog; | ||
| 5 | +import android.graphics.Paint; | ||
| 6 | +import android.os.Bundle; | ||
| 7 | +import android.text.Html; | ||
| 8 | +import android.text.TextUtils; | ||
| 9 | +import android.view.View; | ||
| 10 | +import android.widget.ImageView; | ||
| 11 | +import android.widget.LinearLayout; | ||
| 12 | +import android.widget.ProgressBar; | ||
| 13 | +import android.widget.TextView; | ||
| 14 | + | ||
| 15 | +import com.bumptech.glide.Glide; | ||
| 16 | +import com.bumptech.glide.load.engine.DiskCacheStrategy; | ||
| 17 | + | ||
| 18 | +import org.json.JSONObject; | ||
| 19 | + | ||
| 20 | +import ly.warp.sdk.R; | ||
| 21 | +import ly.warp.sdk.io.callbacks.CallbackReceiver; | ||
| 22 | +import ly.warp.sdk.io.models.Couponset; | ||
| 23 | +import ly.warp.sdk.io.request.WarplyRedeemCouponRequest; | ||
| 24 | +import ly.warp.sdk.utils.managers.WarplyManager; | ||
| 25 | + | ||
| 26 | + | ||
| 27 | +public class CouponsetInfoActivity extends Activity implements View.OnClickListener { | ||
| 28 | + | ||
| 29 | + // =========================================================== | ||
| 30 | + // Constants | ||
| 31 | + // =========================================================== | ||
| 32 | + | ||
| 33 | + // =========================================================== | ||
| 34 | + // Fields | ||
| 35 | + // =========================================================== | ||
| 36 | + | ||
| 37 | + private ImageView mIvBack, mIvCouponsetPhoto; | ||
| 38 | + private TextView mTvTerms, mTvCouponsetTitle, mTvCouponsetSubtitle; | ||
| 39 | + private Couponset mCouponset; | ||
| 40 | + private LinearLayout mLlRedeem; | ||
| 41 | + private ProgressBar mPbLoading; | ||
| 42 | + | ||
| 43 | + // =========================================================== | ||
| 44 | + // Methods for/from SuperClass/Interfaces | ||
| 45 | + // =========================================================== | ||
| 46 | + | ||
| 47 | + @Override | ||
| 48 | + public void onCreate(Bundle savedInstanceState) { | ||
| 49 | + super.onCreate(savedInstanceState); | ||
| 50 | + setContentView(R.layout.activity_couponset_info); | ||
| 51 | + | ||
| 52 | + mCouponset = (Couponset) getIntent().getSerializableExtra("couponset"); | ||
| 53 | + | ||
| 54 | + mIvBack = findViewById(R.id.iv_couponset_info_back); | ||
| 55 | + mTvTerms = findViewById(R.id.tv_terms); | ||
| 56 | + mTvCouponsetTitle = findViewById(R.id.textView13); | ||
| 57 | + mTvCouponsetSubtitle = findViewById(R.id.textView14); | ||
| 58 | + mIvCouponsetPhoto = findViewById(R.id.imageView6); | ||
| 59 | + mLlRedeem = findViewById(R.id.ll_get_gift); | ||
| 60 | + mPbLoading = findViewById(R.id.pb_loading); | ||
| 61 | + | ||
| 62 | + initViews(); | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + @Override | ||
| 66 | + public void onResume() { | ||
| 67 | + super.onResume(); | ||
| 68 | + } | ||
| 69 | + | ||
| 70 | + @Override | ||
| 71 | + public void onClick(View view) { | ||
| 72 | + if (view.getId() == R.id.iv_couponset_info_back) { | ||
| 73 | + onBackPressed(); | ||
| 74 | + return; | ||
| 75 | + } | ||
| 76 | + if (view.getId() == R.id.ll_get_gift) { | ||
| 77 | + mPbLoading.setVisibility(View.VISIBLE); | ||
| 78 | + WarplyManager.redeemCoupon(new WarplyRedeemCouponRequest().setCouponsetUuid(mCouponset.getUuid()), mRedeemCouponCallback); | ||
| 79 | + } | ||
| 80 | + } | ||
| 81 | + | ||
| 82 | + // =========================================================== | ||
| 83 | + // Methods | ||
| 84 | + // =========================================================== | ||
| 85 | + | ||
| 86 | + private void initViews() { | ||
| 87 | + mTvCouponsetTitle.setText(mCouponset.getName()); | ||
| 88 | + mTvCouponsetSubtitle.setText(Html.fromHtml(mCouponset.getDescription())); | ||
| 89 | + | ||
| 90 | + if (!TextUtils.isEmpty(mCouponset.getImgPreview())) { | ||
| 91 | + Glide.with(this) | ||
| 92 | +// .setDefaultRequestOptions( | ||
| 93 | +// RequestOptions | ||
| 94 | +// .placeholderOf(R.drawable.ic_default_contact_photo) | ||
| 95 | +// .error(R.drawable.ic_default_contact_photo)) | ||
| 96 | + .load(mCouponset.getImgPreview()) | ||
| 97 | + .diskCacheStrategy(DiskCacheStrategy.DATA) | ||
| 98 | + .into(mIvCouponsetPhoto); | ||
| 99 | + } else { | ||
| 100 | + Glide.with(this) | ||
| 101 | + .load(R.drawable.ic_cosmote_logo_horizontal_grey) | ||
| 102 | + .into(mIvCouponsetPhoto); | ||
| 103 | + } | ||
| 104 | + | ||
| 105 | + mIvBack.setOnClickListener(this); | ||
| 106 | + mLlRedeem.setOnClickListener(this); | ||
| 107 | + mTvTerms.setPaintFlags(mTvTerms.getPaintFlags() | Paint.UNDERLINE_TEXT_FLAG); | ||
| 108 | + } | ||
| 109 | + | ||
| 110 | + private final CallbackReceiver<JSONObject> mRedeemCouponCallback = new CallbackReceiver<JSONObject>() { | ||
| 111 | + @Override | ||
| 112 | + public void onSuccess(JSONObject result) { | ||
| 113 | + mPbLoading.setVisibility(View.GONE); | ||
| 114 | + showDialog(true, 1); | ||
| 115 | + } | ||
| 116 | + | ||
| 117 | + @Override | ||
| 118 | + public void onFailure(int errorCode) { | ||
| 119 | + mPbLoading.setVisibility(View.GONE); | ||
| 120 | + showDialog(false, errorCode); | ||
| 121 | + } | ||
| 122 | + }; | ||
| 123 | + | ||
| 124 | + private void showDialog(boolean success, int status) { | ||
| 125 | + Dialog dialog = new Dialog(this, R.style.PopUpDialog); | ||
| 126 | + dialog.setContentView(R.layout.dlg_success); | ||
| 127 | + dialog.getWindow().setBackgroundDrawableResource(R.drawable.banner_border_white); | ||
| 128 | + dialog.show(); | ||
| 129 | + | ||
| 130 | + LinearLayout mLlButton = dialog.findViewById(R.id.ll_dl_redeem); | ||
| 131 | + TextView tvTitle = dialog.findViewById(R.id.tv_dl_title); | ||
| 132 | + TextView tvSubtitle = dialog.findViewById(R.id.tv_dl_subtitle); | ||
| 133 | + | ||
| 134 | + if (success) { | ||
| 135 | + tvTitle.setText(getString(R.string.cos_dlg_success_title)); | ||
| 136 | + tvSubtitle.setText(getString(R.string.cos_dlg_success_subtitle)); | ||
| 137 | + } else { | ||
| 138 | + if (status == 3) { | ||
| 139 | + tvTitle.setText(getString(R.string.cos_dlg_error_title)); | ||
| 140 | + tvSubtitle.setText(getString(R.string.cos_dlg_error_subtitle_non_buyable)); | ||
| 141 | + } else if (status == 5) { | ||
| 142 | + tvTitle.setText(getString(R.string.cos_dlg_error_title)); | ||
| 143 | + tvSubtitle.setText(getString(R.string.cos_dlg_error_subtitle_no_points)); | ||
| 144 | + } else { | ||
| 145 | + tvTitle.setText(getString(R.string.cos_dlg_error_title)); | ||
| 146 | + tvSubtitle.setText(getString(R.string.cos_dlg_error_subtitle)); | ||
| 147 | + } | ||
| 148 | + } | ||
| 149 | + | ||
| 150 | + mLlButton.setOnClickListener(view -> { | ||
| 151 | + dialog.dismiss(); | ||
| 152 | + if (success) { | ||
| 153 | + //TODO: go to coupon | ||
| 154 | + } | ||
| 155 | + }); | ||
| 156 | + } | ||
| 157 | + | ||
| 158 | + // =========================================================== | ||
| 159 | + // Inner and Anonymous Classes | ||
| 160 | + // =========================================================== | ||
| 161 | + | ||
| 162 | +} |
| 1 | +package ly.warp.sdk.activities; | ||
| 2 | + | ||
| 3 | +import android.app.Activity; | ||
| 4 | +import android.content.Intent; | ||
| 5 | +import android.os.Bundle; | ||
| 6 | +import android.view.View; | ||
| 7 | +import android.widget.ImageView; | ||
| 8 | +import android.widget.TextView; | ||
| 9 | + | ||
| 10 | +import androidx.constraintlayout.widget.ConstraintLayout; | ||
| 11 | +import androidx.recyclerview.widget.LinearLayoutManager; | ||
| 12 | +import androidx.recyclerview.widget.RecyclerView; | ||
| 13 | + | ||
| 14 | +import org.json.JSONException; | ||
| 15 | +import org.json.JSONObject; | ||
| 16 | + | ||
| 17 | +import java.io.Serializable; | ||
| 18 | +import java.util.HashMap; | ||
| 19 | + | ||
| 20 | +import ly.warp.sdk.R; | ||
| 21 | +import ly.warp.sdk.io.models.Campaign; | ||
| 22 | +import ly.warp.sdk.io.models.CampaignList; | ||
| 23 | +import ly.warp.sdk.utils.WarplyManagerHelper; | ||
| 24 | +import ly.warp.sdk.views.adapters.CouponsetsAdapter; | ||
| 25 | +import ly.warp.sdk.views.adapters.ProfileCampaignAdapter; | ||
| 26 | + | ||
| 27 | + | ||
| 28 | +public class ListForYouActivity extends Activity implements View.OnClickListener { | ||
| 29 | + | ||
| 30 | + // =========================================================== | ||
| 31 | + // Constants | ||
| 32 | + // =========================================================== | ||
| 33 | + | ||
| 34 | + // =========================================================== | ||
| 35 | + // Fields | ||
| 36 | + // =========================================================== | ||
| 37 | + | ||
| 38 | + private ImageView mIvBack; | ||
| 39 | + private RecyclerView mRecyclerGifts, mRecyclerRewards, mRecyclerCoupons; | ||
| 40 | + private TextView mTvTitle; | ||
| 41 | + private ProfileCampaignAdapter mAdapterGifts, mAdapterRewards; | ||
| 42 | + private CouponsetsAdapter mAdapterCoupons; | ||
| 43 | + private ConstraintLayout mClGiftsOuter, mClRewardsOuter, mClCouponsOuter; | ||
| 44 | + private HashMap<String, CampaignList> mUniqueGiftsList = new HashMap<String, CampaignList>(); | ||
| 45 | + | ||
| 46 | + // =========================================================== | ||
| 47 | + // Methods for/from SuperClass/Interfaces | ||
| 48 | + // =========================================================== | ||
| 49 | + | ||
| 50 | + @Override | ||
| 51 | + public void onCreate(Bundle savedInstanceState) { | ||
| 52 | + super.onCreate(savedInstanceState); | ||
| 53 | + setContentView(R.layout.activity_list_for_you); | ||
| 54 | + | ||
| 55 | + getCampaignsBySubcategory(); | ||
| 56 | + | ||
| 57 | + mIvBack = findViewById(R.id.iv_list_close); | ||
| 58 | + mTvTitle = findViewById(R.id.textView3); | ||
| 59 | + | ||
| 60 | + mClGiftsOuter = findViewById(R.id.cl_recycler_inner); | ||
| 61 | + mRecyclerGifts = findViewById(R.id.rv_gifts); | ||
| 62 | + | ||
| 63 | + mClRewardsOuter = findViewById(R.id.cl_recycler_inner2); | ||
| 64 | + mRecyclerRewards = findViewById(R.id.rv_rewards); | ||
| 65 | + | ||
| 66 | + mClCouponsOuter = findViewById(R.id.cl_recycler_inner3); | ||
| 67 | + mRecyclerCoupons = findViewById(R.id.rv_coupons); | ||
| 68 | + | ||
| 69 | + initViews(); | ||
| 70 | + } | ||
| 71 | + | ||
| 72 | + @Override | ||
| 73 | + public void onResume() { | ||
| 74 | + super.onResume(); | ||
| 75 | + } | ||
| 76 | + | ||
| 77 | + @Override | ||
| 78 | + public void onClick(View view) { | ||
| 79 | + if (view.getId() == R.id.iv_list_close) { | ||
| 80 | + onBackPressed(); | ||
| 81 | + } | ||
| 82 | + } | ||
| 83 | + | ||
| 84 | + // =========================================================== | ||
| 85 | + // Methods | ||
| 86 | + // =========================================================== | ||
| 87 | + | ||
| 88 | + private void initViews() { | ||
| 89 | + mIvBack.setOnClickListener(this); | ||
| 90 | + mTvTitle.setText(getIntent().getStringExtra("title")); | ||
| 91 | + | ||
| 92 | + if (mUniqueGiftsList.get("gifts") != null && mUniqueGiftsList.get("gifts").size() > 0) { | ||
| 93 | + mRecyclerGifts.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)); | ||
| 94 | + mAdapterGifts = new ProfileCampaignAdapter(this, mUniqueGiftsList.get("gifts")); | ||
| 95 | + mRecyclerGifts.setAdapter(mAdapterGifts); | ||
| 96 | + mAdapterGifts.getPositionClicks() | ||
| 97 | + .doOnNext(gift -> { | ||
| 98 | + String tempUrl = WarplyManagerHelper.constructCampaignUrl(gift); | ||
| 99 | + | ||
| 100 | + if (WarplyManagerHelper.getConsumer() != null) | ||
| 101 | + tempUrl = tempUrl + "&auth_token=" + (WarplyManagerHelper.getConsumer().getUuid()); | ||
| 102 | + else | ||
| 103 | + tempUrl = tempUrl + "&auth_token="; | ||
| 104 | + | ||
| 105 | + startActivity(WarpViewActivity.createIntentFromURL(this, tempUrl)); | ||
| 106 | + }) | ||
| 107 | + .doOnError(error -> { | ||
| 108 | + }) | ||
| 109 | + .subscribe(); | ||
| 110 | + } else { | ||
| 111 | + mClGiftsOuter.setVisibility(View.GONE); | ||
| 112 | + } | ||
| 113 | + | ||
| 114 | + if (mUniqueGiftsList.get("rewards") != null && mUniqueGiftsList.get("rewards").size() > 0) { | ||
| 115 | + mRecyclerRewards.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)); | ||
| 116 | + mAdapterRewards = new ProfileCampaignAdapter(this, mUniqueGiftsList.get("rewards")); | ||
| 117 | + mRecyclerRewards.setAdapter(mAdapterRewards); | ||
| 118 | + mAdapterRewards.getPositionClicks() | ||
| 119 | + .doOnNext(reward -> { | ||
| 120 | + String tempUrl = WarplyManagerHelper.constructCampaignUrl(reward); | ||
| 121 | + | ||
| 122 | + if (WarplyManagerHelper.getConsumer() != null) | ||
| 123 | + tempUrl = tempUrl + "&auth_token=" + (WarplyManagerHelper.getConsumer().getUuid()); | ||
| 124 | + else | ||
| 125 | + tempUrl = tempUrl + "&auth_token="; | ||
| 126 | + | ||
| 127 | + startActivity(WarpViewActivity.createIntentFromURL(this, tempUrl)); | ||
| 128 | + }) | ||
| 129 | + .doOnError(error -> { | ||
| 130 | + }) | ||
| 131 | + .subscribe(); | ||
| 132 | + } else { | ||
| 133 | + mClRewardsOuter.setVisibility(View.GONE); | ||
| 134 | + } | ||
| 135 | + | ||
| 136 | + if (WarplyManagerHelper.getCouponsets() != null && WarplyManagerHelper.getCouponsets().size() > 0) { | ||
| 137 | + mRecyclerCoupons.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)); | ||
| 138 | + mAdapterCoupons = new CouponsetsAdapter(this, WarplyManagerHelper.getCouponsets()); | ||
| 139 | + mRecyclerCoupons.setAdapter(mAdapterCoupons); | ||
| 140 | + mAdapterCoupons.getPositionClicks() | ||
| 141 | + .doOnNext(couponset -> { | ||
| 142 | +// Intent intent = new Intent(ListForYouActivity.this, CouponInfoActivity.class); | ||
| 143 | +// intent.putExtra("coupon", (Serializable) coupon); | ||
| 144 | +// startActivity(intent); | ||
| 145 | + | ||
| 146 | + Intent intent = new Intent(ListForYouActivity.this, CouponsetInfoActivity.class); | ||
| 147 | + intent.putExtra("couponset", (Serializable) couponset); | ||
| 148 | + startActivity(intent); | ||
| 149 | + }) | ||
| 150 | + .doOnError(error -> { | ||
| 151 | + }) | ||
| 152 | + .subscribe(); | ||
| 153 | + } else { | ||
| 154 | + mClCouponsOuter.setVisibility(View.GONE); | ||
| 155 | + } | ||
| 156 | + } | ||
| 157 | + | ||
| 158 | + private void getCampaignsBySubcategory() { | ||
| 159 | + if (WarplyManagerHelper.getUniqueCampaignList().get("gifts_for_you") != null && WarplyManagerHelper.getUniqueCampaignList().get("gifts_for_you").size() > 0) { | ||
| 160 | + for (Campaign campaign : WarplyManagerHelper.getUniqueCampaignList().get("gifts_for_you")) { | ||
| 161 | + JSONObject campaignExtra = null; | ||
| 162 | + try { | ||
| 163 | + campaignExtra = new JSONObject(campaign.getExtraFields()); | ||
| 164 | + } catch (JSONException e) { | ||
| 165 | + e.printStackTrace(); | ||
| 166 | + } | ||
| 167 | + | ||
| 168 | + if (campaignExtra != null) { | ||
| 169 | + if (mUniqueGiftsList.containsKey(campaignExtra.optString("subcategory").trim())) { | ||
| 170 | + CampaignList tempCampaignList = mUniqueGiftsList.get(campaignExtra.optString("subcategory").trim()); | ||
| 171 | + tempCampaignList.add(campaign); | ||
| 172 | + mUniqueGiftsList.put(campaignExtra.optString("subcategory").trim(), tempCampaignList); | ||
| 173 | + } else { | ||
| 174 | + CampaignList tempCampaignList = new CampaignList(); | ||
| 175 | + tempCampaignList.add(campaign); | ||
| 176 | + mUniqueGiftsList.put(campaignExtra.optString("subcategory").trim(), tempCampaignList); | ||
| 177 | + } | ||
| 178 | + } | ||
| 179 | + } | ||
| 180 | + } | ||
| 181 | + } | ||
| 182 | + | ||
| 183 | + // =========================================================== | ||
| 184 | + // Inner and Anonymous Classes | ||
| 185 | + // =========================================================== | ||
| 186 | + | ||
| 187 | +} |
| ... | @@ -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.Intent; | 4 | import android.content.Intent; |
| 5 | -import android.media.Image; | ||
| 6 | import android.os.Bundle; | 5 | import android.os.Bundle; |
| 7 | import android.view.View; | 6 | import android.view.View; |
| 8 | import android.widget.AdapterView; | 7 | import android.widget.AdapterView; |
| ... | @@ -17,11 +16,9 @@ import androidx.recyclerview.widget.RecyclerView; | ... | @@ -17,11 +16,9 @@ import androidx.recyclerview.widget.RecyclerView; |
| 17 | import java.io.Serializable; | 16 | import java.io.Serializable; |
| 18 | 17 | ||
| 19 | import ly.warp.sdk.R; | 18 | import ly.warp.sdk.R; |
| 20 | -import ly.warp.sdk.db.WarplyDBHelper; | ||
| 21 | import ly.warp.sdk.io.models.Campaign; | 19 | import ly.warp.sdk.io.models.Campaign; |
| 22 | import ly.warp.sdk.io.models.CampaignList; | 20 | import ly.warp.sdk.io.models.CampaignList; |
| 23 | -import ly.warp.sdk.utils.WarpUtils; | 21 | +import ly.warp.sdk.utils.WarplyManagerHelper; |
| 24 | -import ly.warp.sdk.utils.WarplyProperty; | ||
| 25 | import ly.warp.sdk.views.adapters.HomeCouponAdapter; | 22 | import ly.warp.sdk.views.adapters.HomeCouponAdapter; |
| 26 | 23 | ||
| 27 | 24 | ||
| ... | @@ -81,7 +78,7 @@ public class LoyaltyActivity extends Activity implements View.OnClickListener, | ... | @@ -81,7 +78,7 @@ public class LoyaltyActivity extends Activity implements View.OnClickListener, |
| 81 | return; | 78 | return; |
| 82 | } | 79 | } |
| 83 | if (view.getId() == R.id.tv_questionnaire) { | 80 | if (view.getId() == R.id.tv_questionnaire) { |
| 84 | - CampaignList cl = BaseFragmentActivity.getUniqueCampaignList().get("more"); | 81 | + CampaignList cl = WarplyManagerHelper.getUniqueCampaignList().get("more"); |
| 85 | Campaign camp = null; | 82 | Campaign camp = null; |
| 86 | if (cl != null) { | 83 | if (cl != null) { |
| 87 | for (Campaign cn : cl) { | 84 | for (Campaign cn : cl) { |
| ... | @@ -95,20 +92,10 @@ public class LoyaltyActivity extends Activity implements View.OnClickListener, | ... | @@ -95,20 +92,10 @@ public class LoyaltyActivity extends Activity implements View.OnClickListener, |
| 95 | if (camp == null) | 92 | if (camp == null) |
| 96 | return; | 93 | return; |
| 97 | 94 | ||
| 98 | - String tempUrl = camp.getIndexUrl(); | 95 | + String tempUrl = WarplyManagerHelper.constructCampaignUrl(camp); |
| 99 | 96 | ||
| 100 | - tempUrl = tempUrl | 97 | + if (WarplyManagerHelper.getConsumer() != null) |
| 101 | - + "?web_id=" + WarpUtils.getWebId(this) | 98 | + tempUrl = tempUrl + "&auth_token=" + (WarplyManagerHelper.getConsumer().getUuid()); |
| 102 | - + "&app_uuid=" + WarplyProperty.getAppUuid(this) | ||
| 103 | - + "&api_key=" + WarpUtils.getApiKey(this) | ||
| 104 | - + "&session_uuid=" + camp.getSessionUUID() | ||
| 105 | - + "&access_token=" + WarplyDBHelper.getInstance(this).getAuthValue("access_token") | ||
| 106 | - + "&refresh_token=" + WarplyDBHelper.getInstance(this).getAuthValue("refresh_token") | ||
| 107 | - + "&client_id=" + WarplyDBHelper.getInstance(this).getClientValue("client_id") | ||
| 108 | - + "&client_secret=" + WarplyDBHelper.getInstance(this).getClientValue("client_secret"); | ||
| 109 | - | ||
| 110 | - if (BaseFragmentActivity.getConsumer() != null) | ||
| 111 | - tempUrl = tempUrl + "&auth_token=" + (BaseFragmentActivity.getConsumer().getUuid()); | ||
| 112 | else | 99 | else |
| 113 | tempUrl = tempUrl + "&auth_token="; | 100 | tempUrl = tempUrl + "&auth_token="; |
| 114 | 101 | ||
| ... | @@ -155,15 +142,15 @@ public class LoyaltyActivity extends Activity implements View.OnClickListener, | ... | @@ -155,15 +142,15 @@ public class LoyaltyActivity extends Activity implements View.OnClickListener, |
| 155 | // =========================================================== | 142 | // =========================================================== |
| 156 | 143 | ||
| 157 | private void initViews() { | 144 | private void initViews() { |
| 158 | - if (BaseFragmentActivity.getConsumer() != null) | 145 | + if (WarplyManagerHelper.getConsumer() != null) |
| 159 | mTvUsername.setText(String.format(getResources().getString(R.string.cos_profile_loyalty_name), | 146 | mTvUsername.setText(String.format(getResources().getString(R.string.cos_profile_loyalty_name), |
| 160 | - BaseFragmentActivity.getConsumer().getFirstName(), BaseFragmentActivity.getConsumer().getLastName())); | 147 | + WarplyManagerHelper.getConsumer().getFirstName(), WarplyManagerHelper.getConsumer().getLastName())); |
| 161 | 148 | ||
| 162 | mIvBack.setOnClickListener(this); | 149 | mIvBack.setOnClickListener(this); |
| 163 | mTvAnalysisButton.setOnClickListener(this); | 150 | mTvAnalysisButton.setOnClickListener(this); |
| 164 | 151 | ||
| 165 | mRecyclerCoupons.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)); | 152 | mRecyclerCoupons.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)); |
| 166 | - mAdapterCoupons = new HomeCouponAdapter(this, BaseFragmentActivity.getCouponList()); | 153 | + mAdapterCoupons = new HomeCouponAdapter(this, WarplyManagerHelper.getCouponList()); |
| 167 | mRecyclerCoupons.setAdapter(mAdapterCoupons); | 154 | mRecyclerCoupons.setAdapter(mAdapterCoupons); |
| 168 | mAdapterCoupons.getPositionClicks() | 155 | mAdapterCoupons.getPositionClicks() |
| 169 | .doOnNext(coupon -> { | 156 | .doOnNext(coupon -> { |
| ... | @@ -176,7 +163,7 @@ public class LoyaltyActivity extends Activity implements View.OnClickListener, | ... | @@ -176,7 +163,7 @@ public class LoyaltyActivity extends Activity implements View.OnClickListener, |
| 176 | .subscribe(); | 163 | .subscribe(); |
| 177 | 164 | ||
| 178 | mRecyclerBurntCoupons.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)); | 165 | mRecyclerBurntCoupons.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)); |
| 179 | - mAdapterBurntCoupons = new HomeCouponAdapter(this, BaseFragmentActivity.getCouponList(), true); | 166 | + mAdapterBurntCoupons = new HomeCouponAdapter(this, WarplyManagerHelper.getCouponList(), true); |
| 180 | mRecyclerBurntCoupons.setAdapter(mAdapterBurntCoupons); | 167 | mRecyclerBurntCoupons.setAdapter(mAdapterBurntCoupons); |
| 181 | 168 | ||
| 182 | ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, | 169 | ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, | ... | ... |
| ... | @@ -11,35 +11,26 @@ import android.widget.RelativeLayout; | ... | @@ -11,35 +11,26 @@ import android.widget.RelativeLayout; |
| 11 | import android.widget.TextView; | 11 | import android.widget.TextView; |
| 12 | 12 | ||
| 13 | import androidx.annotation.NonNull; | 13 | import androidx.annotation.NonNull; |
| 14 | +import androidx.constraintlayout.widget.ConstraintLayout; | ||
| 14 | import androidx.fragment.app.Fragment; | 15 | import androidx.fragment.app.Fragment; |
| 15 | import androidx.recyclerview.widget.LinearLayoutManager; | 16 | import androidx.recyclerview.widget.LinearLayoutManager; |
| 16 | import androidx.recyclerview.widget.RecyclerView; | 17 | import androidx.recyclerview.widget.RecyclerView; |
| 17 | 18 | ||
| 18 | -import org.json.JSONException; | ||
| 19 | - | ||
| 20 | -import java.io.Serializable; | ||
| 21 | - | ||
| 22 | import ly.warp.sdk.R; | 19 | import ly.warp.sdk.R; |
| 23 | -import ly.warp.sdk.activities.BaseFragmentActivity; | 20 | +import ly.warp.sdk.activities.ActiveCouponsActivity; |
| 24 | import ly.warp.sdk.activities.BillPaymentActivity; | 21 | import ly.warp.sdk.activities.BillPaymentActivity; |
| 25 | -import ly.warp.sdk.activities.CouponInfoActivity; | ||
| 26 | import ly.warp.sdk.activities.WarpViewActivity; | 22 | import ly.warp.sdk.activities.WarpViewActivity; |
| 27 | -import ly.warp.sdk.db.WarplyDBHelper; | 23 | +import ly.warp.sdk.utils.WarplyManagerHelper; |
| 28 | -import ly.warp.sdk.io.models.Coupon; | ||
| 29 | -import ly.warp.sdk.io.models.CouponList; | ||
| 30 | -import ly.warp.sdk.utils.WarpUtils; | ||
| 31 | -import ly.warp.sdk.utils.WarplyProperty; | ||
| 32 | import ly.warp.sdk.views.adapters.HomeCampaignAdapter; | 24 | import ly.warp.sdk.views.adapters.HomeCampaignAdapter; |
| 33 | -import ly.warp.sdk.views.adapters.HomeCouponAdapter; | ||
| 34 | 25 | ||
| 35 | public class HomeFragment extends Fragment implements View.OnClickListener { | 26 | public class HomeFragment extends Fragment implements View.OnClickListener { |
| 36 | 27 | ||
| 37 | private RelativeLayout mOptionOne, mOptionTwo, mOptionThree; | 28 | private RelativeLayout mOptionOne, mOptionTwo, mOptionThree; |
| 38 | - private RecyclerView mRecyclerCampaigns, mRecyclerCoupons; | 29 | + private RecyclerView mRecyclerCampaigns; |
| 39 | - private HomeCouponAdapter mAdapterCoupons; | ||
| 40 | private HomeCampaignAdapter mAdapterCampaigns; | 30 | private HomeCampaignAdapter mAdapterCampaigns; |
| 41 | private LinearLayout mLlBillPayment; | 31 | private LinearLayout mLlBillPayment; |
| 42 | - private TextView mTvUsername; | 32 | + private TextView mTvUsername, mTvActiveCoupons; |
| 33 | + private ConstraintLayout mClActiveCoupons; | ||
| 43 | 34 | ||
| 44 | @Override | 35 | @Override |
| 45 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { | 36 | public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { |
| ... | @@ -49,52 +40,47 @@ public class HomeFragment extends Fragment implements View.OnClickListener { | ... | @@ -49,52 +40,47 @@ public class HomeFragment extends Fragment implements View.OnClickListener { |
| 49 | public void onViewCreated(@NonNull View view, Bundle savedInstanceState) { | 40 | public void onViewCreated(@NonNull View view, Bundle savedInstanceState) { |
| 50 | super.onViewCreated(view, savedInstanceState); | 41 | super.onViewCreated(view, savedInstanceState); |
| 51 | 42 | ||
| 52 | - mOptionOne = (RelativeLayout) view.findViewById(R.id.info_button); | 43 | + mOptionOne = view.findViewById(R.id.info_button); |
| 53 | - TextView mOptionOneText = (TextView) mOptionOne.findViewById(R.id.option_text); | 44 | + TextView mOptionOneText = mOptionOne.findViewById(R.id.option_text); |
| 54 | - ImageView mOptionOneImage = (ImageView) mOptionOne.findViewById(R.id.option_icon); | 45 | + ImageView mOptionOneImage = mOptionOne.findViewById(R.id.option_icon); |
| 55 | mOptionOneText.setText("2"); | 46 | mOptionOneText.setText("2"); |
| 56 | mOptionOneImage.setImageResource(R.drawable.mobile_option); | 47 | mOptionOneImage.setImageResource(R.drawable.mobile_option); |
| 57 | 48 | ||
| 58 | - mOptionTwo = (RelativeLayout) view.findViewById(R.id.info_button2); | 49 | + mOptionTwo = view.findViewById(R.id.info_button2); |
| 59 | - TextView mOptionTwoText = (TextView) mOptionTwo.findViewById(R.id.option_text); | 50 | + TextView mOptionTwoText = mOptionTwo.findViewById(R.id.option_text); |
| 60 | - ImageView mOptionTwoImage = (ImageView) mOptionTwo.findViewById(R.id.option_icon); | 51 | + ImageView mOptionTwoImage = mOptionTwo.findViewById(R.id.option_icon); |
| 61 | mOptionTwoText.setText("1"); | 52 | mOptionTwoText.setText("1"); |
| 62 | mOptionTwoImage.setImageResource(R.drawable.phone_option); | 53 | mOptionTwoImage.setImageResource(R.drawable.phone_option); |
| 63 | 54 | ||
| 64 | - mOptionThree = (RelativeLayout) view.findViewById(R.id.info_button3); | 55 | + mOptionThree = view.findViewById(R.id.info_button3); |
| 65 | - TextView mOptionThreeText = (TextView) mOptionThree.findViewById(R.id.option_text); | 56 | + TextView mOptionThreeText = mOptionThree.findViewById(R.id.option_text); |
| 66 | - ImageView mOptionThreeImage = (ImageView) mOptionThree.findViewById(R.id.option_icon); | 57 | + ImageView mOptionThreeImage = mOptionThree.findViewById(R.id.option_icon); |
| 67 | mOptionThreeText.setText("1"); | 58 | mOptionThreeText.setText("1"); |
| 68 | mOptionThreeImage.setImageResource(R.drawable.tv_option); | 59 | mOptionThreeImage.setImageResource(R.drawable.tv_option); |
| 69 | 60 | ||
| 61 | + mClActiveCoupons = view.findViewById(R.id.cl_coupon); | ||
| 62 | + mTvActiveCoupons = mClActiveCoupons.findViewById(R.id.tv_active_coupons); | ||
| 63 | + mTvActiveCoupons.setText(String.format(getResources().getString(R.string.cos_active_coupons), String.valueOf(WarplyManagerHelper.getCouponList().size()))); | ||
| 64 | + mClActiveCoupons.setOnClickListener(this); | ||
| 65 | + | ||
| 70 | mLlBillPayment = view.findViewById(R.id.ll_bill_payment); | 66 | mLlBillPayment = view.findViewById(R.id.ll_bill_payment); |
| 71 | mLlBillPayment.setOnClickListener(this); | 67 | mLlBillPayment.setOnClickListener(this); |
| 72 | 68 | ||
| 73 | mTvUsername = view.findViewById(R.id.welcome_user_txt); | 69 | mTvUsername = view.findViewById(R.id.welcome_user_txt); |
| 74 | - if (BaseFragmentActivity.getConsumer() != null) | 70 | + if (WarplyManagerHelper.getConsumer() != null) |
| 75 | mTvUsername.setText(String.format(getResources().getString(R.string.welcome_user), | 71 | mTvUsername.setText(String.format(getResources().getString(R.string.welcome_user), |
| 76 | - BaseFragmentActivity.getConsumer().getFirstName() + " " + BaseFragmentActivity.getConsumer().getLastName())); | 72 | + WarplyManagerHelper.getConsumer().getFirstName() + " " + WarplyManagerHelper.getConsumer().getLastName())); |
| 77 | 73 | ||
| 78 | mRecyclerCampaigns = view.findViewById(R.id.rv_home_campaigns); | 74 | mRecyclerCampaigns = view.findViewById(R.id.rv_home_campaigns); |
| 79 | mRecyclerCampaigns.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false)); | 75 | mRecyclerCampaigns.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false)); |
| 80 | - mAdapterCampaigns = new HomeCampaignAdapter(getContext(), BaseFragmentActivity.getUniqueCampaignList().get("homescreen")); | 76 | + mAdapterCampaigns = new HomeCampaignAdapter(getContext(), WarplyManagerHelper.getUniqueCampaignList().get("homescreen")); |
| 81 | mRecyclerCampaigns.setAdapter(mAdapterCampaigns); | 77 | mRecyclerCampaigns.setAdapter(mAdapterCampaigns); |
| 82 | mAdapterCampaigns.getPositionClicks() | 78 | mAdapterCampaigns.getPositionClicks() |
| 83 | .doOnNext(campaign -> { | 79 | .doOnNext(campaign -> { |
| 84 | - String tempUrl = campaign.getIndexUrl(); | 80 | + String tempUrl = WarplyManagerHelper.constructCampaignUrl(campaign); |
| 85 | - | 81 | + |
| 86 | - tempUrl = tempUrl | 82 | + if (WarplyManagerHelper.getConsumer() != null) |
| 87 | - + "?web_id=" + WarpUtils.getWebId(getContext()) | 83 | + tempUrl = tempUrl + "&auth_token=" + (WarplyManagerHelper.getConsumer().getUuid()); |
| 88 | - + "&app_uuid=" + WarplyProperty.getAppUuid(getContext()) | ||
| 89 | - + "&api_key=" + WarpUtils.getApiKey(getContext()) | ||
| 90 | - + "&session_uuid=" + campaign.getSessionUUID() | ||
| 91 | - + "&access_token=" + WarplyDBHelper.getInstance(getContext()).getAuthValue("access_token") | ||
| 92 | - + "&refresh_token=" + WarplyDBHelper.getInstance(getContext()).getAuthValue("refresh_token") | ||
| 93 | - + "&client_id=" + WarplyDBHelper.getInstance(getContext()).getClientValue("client_id") | ||
| 94 | - + "&client_secret=" + WarplyDBHelper.getInstance(getContext()).getClientValue("client_secret"); | ||
| 95 | - | ||
| 96 | - if (BaseFragmentActivity.getConsumer() != null) | ||
| 97 | - tempUrl = tempUrl + "&auth_token=" + (BaseFragmentActivity.getConsumer().getUuid()); | ||
| 98 | else | 84 | else |
| 99 | tempUrl = tempUrl + "&auth_token="; | 85 | tempUrl = tempUrl + "&auth_token="; |
| 100 | 86 | ||
| ... | @@ -103,20 +89,6 @@ public class HomeFragment extends Fragment implements View.OnClickListener { | ... | @@ -103,20 +89,6 @@ public class HomeFragment extends Fragment implements View.OnClickListener { |
| 103 | .doOnError(error -> { | 89 | .doOnError(error -> { |
| 104 | }) | 90 | }) |
| 105 | .subscribe(); | 91 | .subscribe(); |
| 106 | - | ||
| 107 | - mRecyclerCoupons = view.findViewById(R.id.rv_home_coupons); | ||
| 108 | - mRecyclerCoupons.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false)); | ||
| 109 | - mAdapterCoupons = new HomeCouponAdapter(getContext(), BaseFragmentActivity.getCouponList()); | ||
| 110 | - mRecyclerCoupons.setAdapter(mAdapterCoupons); | ||
| 111 | - mAdapterCoupons.getPositionClicks() | ||
| 112 | - .doOnNext(coupon -> { | ||
| 113 | - Intent intent = new Intent(getContext(), CouponInfoActivity.class); | ||
| 114 | - intent.putExtra("coupon", (Serializable) coupon); | ||
| 115 | - startActivity(intent); | ||
| 116 | - }) | ||
| 117 | - .doOnError(error -> { | ||
| 118 | - }) | ||
| 119 | - .subscribe(); | ||
| 120 | } | 92 | } |
| 121 | 93 | ||
| 122 | @Override | 94 | @Override |
| ... | @@ -129,6 +101,12 @@ public class HomeFragment extends Fragment implements View.OnClickListener { | ... | @@ -129,6 +101,12 @@ public class HomeFragment extends Fragment implements View.OnClickListener { |
| 129 | if (view.getId() == R.id.ll_bill_payment) { | 101 | if (view.getId() == R.id.ll_bill_payment) { |
| 130 | Intent intent = new Intent(getContext(), BillPaymentActivity.class); | 102 | Intent intent = new Intent(getContext(), BillPaymentActivity.class); |
| 131 | startActivity(intent); | 103 | startActivity(intent); |
| 104 | + return; | ||
| 105 | + } | ||
| 106 | + if (view.getId() == R.id.cl_coupon) { | ||
| 107 | + Intent intent = new Intent(getContext(), ActiveCouponsActivity.class); | ||
| 108 | + intent.putExtra("couponlist", WarplyManagerHelper.getCouponList()); | ||
| 109 | + startActivity(intent); | ||
| 132 | } | 110 | } |
| 133 | } | 111 | } |
| 134 | 112 | ... | ... |
| ... | @@ -5,7 +5,7 @@ import android.os.Bundle; | ... | @@ -5,7 +5,7 @@ import android.os.Bundle; |
| 5 | import android.view.LayoutInflater; | 5 | import android.view.LayoutInflater; |
| 6 | import android.view.View; | 6 | import android.view.View; |
| 7 | import android.view.ViewGroup; | 7 | import android.view.ViewGroup; |
| 8 | -import android.widget.LinearLayout; | 8 | +import android.widget.ImageView; |
| 9 | import android.widget.TextView; | 9 | import android.widget.TextView; |
| 10 | 10 | ||
| 11 | import androidx.annotation.Nullable; | 11 | import androidx.annotation.Nullable; |
| ... | @@ -15,12 +15,10 @@ import androidx.recyclerview.widget.LinearLayoutManager; | ... | @@ -15,12 +15,10 @@ import androidx.recyclerview.widget.LinearLayoutManager; |
| 15 | import androidx.recyclerview.widget.RecyclerView; | 15 | import androidx.recyclerview.widget.RecyclerView; |
| 16 | 16 | ||
| 17 | import ly.warp.sdk.R; | 17 | import ly.warp.sdk.R; |
| 18 | -import ly.warp.sdk.activities.BaseFragmentActivity; | 18 | +import ly.warp.sdk.activities.ListForYouActivity; |
| 19 | import ly.warp.sdk.activities.LoyaltyActivity; | 19 | import ly.warp.sdk.activities.LoyaltyActivity; |
| 20 | import ly.warp.sdk.activities.WarpViewActivity; | 20 | import ly.warp.sdk.activities.WarpViewActivity; |
| 21 | -import ly.warp.sdk.db.WarplyDBHelper; | 21 | +import ly.warp.sdk.utils.WarplyManagerHelper; |
| 22 | -import ly.warp.sdk.utils.WarpUtils; | ||
| 23 | -import ly.warp.sdk.utils.WarplyProperty; | ||
| 24 | import ly.warp.sdk.views.adapters.ProfileCampaignAdapter; | 22 | import ly.warp.sdk.views.adapters.ProfileCampaignAdapter; |
| 25 | 23 | ||
| 26 | public class LoyaltyFragment extends Fragment implements View.OnClickListener { | 24 | public class LoyaltyFragment extends Fragment implements View.OnClickListener { |
| ... | @@ -35,8 +33,8 @@ public class LoyaltyFragment extends Fragment implements View.OnClickListener { | ... | @@ -35,8 +33,8 @@ public class LoyaltyFragment extends Fragment implements View.OnClickListener { |
| 35 | 33 | ||
| 36 | private RecyclerView mRecyclerDeals, mRecyclerGifts, mRecyclerMore; | 34 | private RecyclerView mRecyclerDeals, mRecyclerGifts, mRecyclerMore; |
| 37 | private ProfileCampaignAdapter mAdapterDeals, mAdapterGifts, mAdapterMore; | 35 | private ProfileCampaignAdapter mAdapterDeals, mAdapterGifts, mAdapterMore; |
| 38 | - private LinearLayout mLlMoreDeals, mLlMoreGifts, mLlMore; | 36 | + private ImageView mIvMoreDeals, mIvMoreGifts, mIvMore; |
| 39 | - private ConstraintLayout mClRewardsWallet; | 37 | + private ConstraintLayout mClRewardsWallet, mClDealsOuter, mClGiftsOuter, mClMoreOuter; |
| 40 | private TextView mTvUsername; | 38 | private TextView mTvUsername; |
| 41 | 39 | ||
| 42 | // =========================================================== | 40 | // =========================================================== |
| ... | @@ -56,37 +54,29 @@ public class LoyaltyFragment extends Fragment implements View.OnClickListener { | ... | @@ -56,37 +54,29 @@ public class LoyaltyFragment extends Fragment implements View.OnClickListener { |
| 56 | mClRewardsWallet.setOnClickListener(this); | 54 | mClRewardsWallet.setOnClickListener(this); |
| 57 | 55 | ||
| 58 | mTvUsername = view.findViewById(R.id.tv_name); | 56 | mTvUsername = view.findViewById(R.id.tv_name); |
| 59 | - if (BaseFragmentActivity.getConsumer() != null) | 57 | + if (WarplyManagerHelper.getConsumer() != null) |
| 60 | mTvUsername.setText(String.format(getResources().getString(R.string.cos_profile_name), | 58 | mTvUsername.setText(String.format(getResources().getString(R.string.cos_profile_name), |
| 61 | - BaseFragmentActivity.getConsumer().getFirstName() + " " + BaseFragmentActivity.getConsumer().getLastName())); | 59 | + WarplyManagerHelper.getConsumer().getFirstName() + " " + WarplyManagerHelper.getConsumer().getLastName())); |
| 62 | 60 | ||
| 63 | - mLlMoreDeals = view.findViewById(R.id.ll_more); | 61 | + mIvMoreDeals = view.findViewById(R.id.iv_more); |
| 64 | - mLlMoreDeals.setOnClickListener(this); | 62 | + mIvMoreDeals.setOnClickListener(this); |
| 65 | - mLlMoreGifts = view.findViewById(R.id.ll_more2); | 63 | + mIvMoreGifts = view.findViewById(R.id.iv_more2); |
| 66 | - mLlMoreGifts.setOnClickListener(this); | 64 | + mIvMoreGifts.setOnClickListener(this); |
| 67 | - mLlMore = view.findViewById(R.id.ll_more3); | 65 | + mIvMore = view.findViewById(R.id.iv_more3); |
| 68 | - mLlMore.setOnClickListener(this); | 66 | + mIvMore.setOnClickListener(this); |
| 69 | 67 | ||
| 68 | + mClDealsOuter = view.findViewById(R.id.cl_recycler_inner); | ||
| 70 | mRecyclerDeals = view.findViewById(R.id.rv_deals); | 69 | mRecyclerDeals = view.findViewById(R.id.rv_deals); |
| 70 | + if (WarplyManagerHelper.getUniqueCampaignList().get("deals_for_you") != null && WarplyManagerHelper.getUniqueCampaignList().get("deals_for_you").size() > 0) { | ||
| 71 | mRecyclerDeals.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false)); | 71 | mRecyclerDeals.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false)); |
| 72 | - mAdapterDeals = new ProfileCampaignAdapter(getContext(), BaseFragmentActivity.getUniqueCampaignList().get("deals")); | 72 | + mAdapterDeals = new ProfileCampaignAdapter(getContext(), WarplyManagerHelper.getUniqueCampaignList().get("deals_for_you")); |
| 73 | mRecyclerDeals.setAdapter(mAdapterDeals); | 73 | mRecyclerDeals.setAdapter(mAdapterDeals); |
| 74 | mAdapterDeals.getPositionClicks() | 74 | mAdapterDeals.getPositionClicks() |
| 75 | .doOnNext(deal -> { | 75 | .doOnNext(deal -> { |
| 76 | - String tempUrl = deal.getIndexUrl(); | 76 | + String tempUrl = WarplyManagerHelper.constructCampaignUrl(deal); |
| 77 | - | 77 | + |
| 78 | - tempUrl = tempUrl | 78 | + if (WarplyManagerHelper.getConsumer() != null) |
| 79 | - + "?web_id=" + WarpUtils.getWebId(getContext()) | 79 | + tempUrl = tempUrl + "&auth_token=" + (WarplyManagerHelper.getConsumer().getUuid()); |
| 80 | - + "&app_uuid=" + WarplyProperty.getAppUuid(getContext()) | ||
| 81 | - + "&api_key=" + WarpUtils.getApiKey(getContext()) | ||
| 82 | - + "&session_uuid=" + deal.getSessionUUID() | ||
| 83 | - + "&access_token=" + WarplyDBHelper.getInstance(getContext()).getAuthValue("access_token") | ||
| 84 | - + "&refresh_token=" + WarplyDBHelper.getInstance(getContext()).getAuthValue("refresh_token") | ||
| 85 | - + "&client_id=" + WarplyDBHelper.getInstance(getContext()).getClientValue("client_id") | ||
| 86 | - + "&client_secret=" + WarplyDBHelper.getInstance(getContext()).getClientValue("client_secret"); | ||
| 87 | - | ||
| 88 | - if (BaseFragmentActivity.getConsumer() != null) | ||
| 89 | - tempUrl = tempUrl + "&auth_token=" + (BaseFragmentActivity.getConsumer().getUuid()); | ||
| 90 | else | 80 | else |
| 91 | tempUrl = tempUrl + "&auth_token="; | 81 | tempUrl = tempUrl + "&auth_token="; |
| 92 | 82 | ||
| ... | @@ -95,27 +85,22 @@ public class LoyaltyFragment extends Fragment implements View.OnClickListener { | ... | @@ -95,27 +85,22 @@ public class LoyaltyFragment extends Fragment implements View.OnClickListener { |
| 95 | .doOnError(error -> { | 85 | .doOnError(error -> { |
| 96 | }) | 86 | }) |
| 97 | .subscribe(); | 87 | .subscribe(); |
| 88 | + } else { | ||
| 89 | + mClDealsOuter.setVisibility(View.GONE); | ||
| 90 | + } | ||
| 98 | 91 | ||
| 92 | + mClGiftsOuter = view.findViewById(R.id.cl_recycler_inner2); | ||
| 99 | mRecyclerGifts = view.findViewById(R.id.rv_gifts); | 93 | mRecyclerGifts = view.findViewById(R.id.rv_gifts); |
| 94 | + if (WarplyManagerHelper.getUniqueCampaignList().get("gifts_for_you") != null && WarplyManagerHelper.getUniqueCampaignList().get("gifts_for_you").size() > 0) { | ||
| 100 | mRecyclerGifts.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false)); | 95 | mRecyclerGifts.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false)); |
| 101 | - mAdapterGifts = new ProfileCampaignAdapter(getContext(), BaseFragmentActivity.getUniqueCampaignList().get("gifts")); | 96 | + mAdapterGifts = new ProfileCampaignAdapter(getContext(), WarplyManagerHelper.getUniqueCampaignList().get("gifts_for_you")); |
| 102 | mRecyclerGifts.setAdapter(mAdapterGifts); | 97 | mRecyclerGifts.setAdapter(mAdapterGifts); |
| 103 | mAdapterGifts.getPositionClicks() | 98 | mAdapterGifts.getPositionClicks() |
| 104 | .doOnNext(gift -> { | 99 | .doOnNext(gift -> { |
| 105 | - String tempUrl = gift.getIndexUrl(); | 100 | + String tempUrl = WarplyManagerHelper.constructCampaignUrl(gift); |
| 106 | - | 101 | + |
| 107 | - tempUrl = tempUrl | 102 | + if (WarplyManagerHelper.getConsumer() != null) |
| 108 | - + "?web_id=" + WarpUtils.getWebId(getContext()) | 103 | + tempUrl = tempUrl + "&auth_token=" + (WarplyManagerHelper.getConsumer().getUuid()); |
| 109 | - + "&app_uuid=" + WarplyProperty.getAppUuid(getContext()) | ||
| 110 | - + "&api_key=" + WarpUtils.getApiKey(getContext()) | ||
| 111 | - + "&session_uuid=" + gift.getSessionUUID() | ||
| 112 | - + "&access_token=" + WarplyDBHelper.getInstance(getContext()).getAuthValue("access_token") | ||
| 113 | - + "&refresh_token=" + WarplyDBHelper.getInstance(getContext()).getAuthValue("refresh_token") | ||
| 114 | - + "&client_id=" + WarplyDBHelper.getInstance(getContext()).getClientValue("client_id") | ||
| 115 | - + "&client_secret=" + WarplyDBHelper.getInstance(getContext()).getClientValue("client_secret"); | ||
| 116 | - | ||
| 117 | - if (BaseFragmentActivity.getConsumer() != null) | ||
| 118 | - tempUrl = tempUrl + "&auth_token=" + (BaseFragmentActivity.getConsumer().getUuid()); | ||
| 119 | else | 104 | else |
| 120 | tempUrl = tempUrl + "&auth_token="; | 105 | tempUrl = tempUrl + "&auth_token="; |
| 121 | 106 | ||
| ... | @@ -124,27 +109,22 @@ public class LoyaltyFragment extends Fragment implements View.OnClickListener { | ... | @@ -124,27 +109,22 @@ public class LoyaltyFragment extends Fragment implements View.OnClickListener { |
| 124 | .doOnError(error -> { | 109 | .doOnError(error -> { |
| 125 | }) | 110 | }) |
| 126 | .subscribe(); | 111 | .subscribe(); |
| 112 | + } else { | ||
| 113 | + mClGiftsOuter.setVisibility(View.GONE); | ||
| 114 | + } | ||
| 127 | 115 | ||
| 116 | + mClMoreOuter = view.findViewById(R.id.cl_recycler_inner3); | ||
| 128 | mRecyclerMore = view.findViewById(R.id.rv_more); | 117 | mRecyclerMore = view.findViewById(R.id.rv_more); |
| 118 | + if (WarplyManagerHelper.getUniqueCampaignList().get("more_for_you") != null && WarplyManagerHelper.getUniqueCampaignList().get("more_for_you").size() > 0) { | ||
| 129 | mRecyclerMore.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false)); | 119 | mRecyclerMore.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false)); |
| 130 | - mAdapterMore = new ProfileCampaignAdapter(getContext(), BaseFragmentActivity.getUniqueCampaignList().get("more")); | 120 | + mAdapterMore = new ProfileCampaignAdapter(getContext(), WarplyManagerHelper.getUniqueCampaignList().get("more_for_you")); |
| 131 | mRecyclerMore.setAdapter(mAdapterMore); | 121 | mRecyclerMore.setAdapter(mAdapterMore); |
| 132 | mAdapterMore.getPositionClicks() | 122 | mAdapterMore.getPositionClicks() |
| 133 | .doOnNext(more -> { | 123 | .doOnNext(more -> { |
| 134 | - String tempUrl = more.getIndexUrl(); | 124 | + String tempUrl = WarplyManagerHelper.constructCampaignUrl(more); |
| 135 | - | 125 | + |
| 136 | - tempUrl = tempUrl | 126 | + if (WarplyManagerHelper.getConsumer() != null) |
| 137 | - + "?web_id=" + WarpUtils.getWebId(getContext()) | 127 | + tempUrl = tempUrl + "&auth_token=" + (WarplyManagerHelper.getConsumer().getUuid()); |
| 138 | - + "&app_uuid=" + WarplyProperty.getAppUuid(getContext()) | ||
| 139 | - + "&api_key=" + WarpUtils.getApiKey(getContext()) | ||
| 140 | - + "&session_uuid=" + more.getSessionUUID() | ||
| 141 | - + "&access_token=" + WarplyDBHelper.getInstance(getContext()).getAuthValue("access_token") | ||
| 142 | - + "&refresh_token=" + WarplyDBHelper.getInstance(getContext()).getAuthValue("refresh_token") | ||
| 143 | - + "&client_id=" + WarplyDBHelper.getInstance(getContext()).getClientValue("client_id") | ||
| 144 | - + "&client_secret=" + WarplyDBHelper.getInstance(getContext()).getClientValue("client_secret"); | ||
| 145 | - | ||
| 146 | - if (BaseFragmentActivity.getConsumer() != null) | ||
| 147 | - tempUrl = tempUrl + "&auth_token=" + (BaseFragmentActivity.getConsumer().getUuid()); | ||
| 148 | else | 128 | else |
| 149 | tempUrl = tempUrl + "&auth_token="; | 129 | tempUrl = tempUrl + "&auth_token="; |
| 150 | 130 | ||
| ... | @@ -153,6 +133,9 @@ public class LoyaltyFragment extends Fragment implements View.OnClickListener { | ... | @@ -153,6 +133,9 @@ public class LoyaltyFragment extends Fragment implements View.OnClickListener { |
| 153 | .doOnError(error -> { | 133 | .doOnError(error -> { |
| 154 | }) | 134 | }) |
| 155 | .subscribe(); | 135 | .subscribe(); |
| 136 | + } else { | ||
| 137 | + mClMoreOuter.setVisibility(View.GONE); | ||
| 138 | + } | ||
| 156 | } | 139 | } |
| 157 | 140 | ||
| 158 | @Override | 141 | @Override |
| ... | @@ -160,6 +143,12 @@ public class LoyaltyFragment extends Fragment implements View.OnClickListener { | ... | @@ -160,6 +143,12 @@ public class LoyaltyFragment extends Fragment implements View.OnClickListener { |
| 160 | if (view.getId() == R.id.cl_rewards_wallet) { | 143 | if (view.getId() == R.id.cl_rewards_wallet) { |
| 161 | Intent intent = new Intent(getContext(), LoyaltyActivity.class); | 144 | Intent intent = new Intent(getContext(), LoyaltyActivity.class); |
| 162 | startActivity(intent); | 145 | startActivity(intent); |
| 146 | + return; | ||
| 147 | + } | ||
| 148 | + if (view.getId() == R.id.iv_more2) { | ||
| 149 | + Intent intent = new Intent(getContext(), ListForYouActivity.class); | ||
| 150 | + intent.putExtra("title", getString(R.string.cos_gifts_title)); | ||
| 151 | + startActivity(intent); | ||
| 163 | } | 152 | } |
| 164 | } | 153 | } |
| 165 | 154 | ... | ... |
| ... | @@ -25,9 +25,12 @@ | ... | @@ -25,9 +25,12 @@ |
| 25 | 25 | ||
| 26 | package ly.warp.sdk.io.models; | 26 | package ly.warp.sdk.io.models; |
| 27 | 27 | ||
| 28 | +import android.text.TextUtils; | ||
| 29 | + | ||
| 28 | import androidx.annotation.NonNull; | 30 | import androidx.annotation.NonNull; |
| 29 | 31 | ||
| 30 | import org.json.JSONArray; | 32 | import org.json.JSONArray; |
| 33 | +import org.json.JSONException; | ||
| 31 | import org.json.JSONObject; | 34 | import org.json.JSONObject; |
| 32 | 35 | ||
| 33 | import java.util.ArrayList; | 36 | import java.util.ArrayList; |
| ... | @@ -74,6 +77,25 @@ public class CouponList extends ArrayList<Coupon> { | ... | @@ -74,6 +77,25 @@ public class CouponList extends ArrayList<Coupon> { |
| 74 | } | 77 | } |
| 75 | } | 78 | } |
| 76 | 79 | ||
| 80 | + public CouponList(String couponListJSONObject, boolean customCast) { | ||
| 81 | + this(); | ||
| 82 | + | ||
| 83 | + if (couponListJSONObject == null || TextUtils.isEmpty(couponListJSONObject)) | ||
| 84 | + return; | ||
| 85 | + | ||
| 86 | + JSONArray jArray = null; | ||
| 87 | + try { | ||
| 88 | + jArray = new JSONArray(couponListJSONObject); | ||
| 89 | + } catch (JSONException e) { | ||
| 90 | + e.printStackTrace(); | ||
| 91 | + } | ||
| 92 | + if (jArray != null) { | ||
| 93 | + for (int i = 0, lim = jArray.length(); i < lim; ++i) { | ||
| 94 | + add(new Coupon(jArray.optJSONObject(i))); | ||
| 95 | + } | ||
| 96 | + } | ||
| 97 | + } | ||
| 98 | + | ||
| 77 | @NonNull | 99 | @NonNull |
| 78 | public String getRequestSignature() { | 100 | public String getRequestSignature() { |
| 79 | return mRequestSignature; | 101 | return mRequestSignature; | ... | ... |
| ... | @@ -63,6 +63,7 @@ public class Couponset implements Parcelable, Serializable { | ... | @@ -63,6 +63,7 @@ public class Couponset implements Parcelable, Serializable { |
| 63 | private static final String POINTS = "points"; | 63 | private static final String POINTS = "points"; |
| 64 | private static final String POINTS_CAUSE = "points_cause"; | 64 | private static final String POINTS_CAUSE = "points_cause"; |
| 65 | private static final String EXPIRATION = "expiration"; | 65 | private static final String EXPIRATION = "expiration"; |
| 66 | + private static final String VALUE = "value"; | ||
| 66 | private static final String THIRD_PARTY_SERVICE = "third_party_service"; | 67 | private static final String THIRD_PARTY_SERVICE = "third_party_service"; |
| 67 | private static final String NAME = "name"; | 68 | private static final String NAME = "name"; |
| 68 | private static final String DESCRIPTION = "description"; | 69 | private static final String DESCRIPTION = "description"; |
| ... | @@ -133,7 +134,14 @@ public class Couponset implements Parcelable, Serializable { | ... | @@ -133,7 +134,14 @@ public class Couponset implements Parcelable, Serializable { |
| 133 | this.limits = json.optJSONObject(LIMITS); | 134 | this.limits = json.optJSONObject(LIMITS); |
| 134 | this.points = json.optInt(POINTS); | 135 | this.points = json.optInt(POINTS); |
| 135 | this.points_cause = json.optString(POINTS_CAUSE); | 136 | this.points_cause = json.optString(POINTS_CAUSE); |
| 136 | - this.expiration = json.optString(EXPIRATION); | 137 | + JSONObject exp = null; |
| 138 | + try { | ||
| 139 | + exp = new JSONObject(json.optString(EXPIRATION)); | ||
| 140 | + this.expiration = exp.optString(VALUE); | ||
| 141 | + } catch (JSONException e) { | ||
| 142 | + e.printStackTrace(); | ||
| 143 | + this.expiration = ""; | ||
| 144 | + } | ||
| 137 | this.third_party_service = json.optBoolean(THIRD_PARTY_SERVICE); | 145 | this.third_party_service = json.optBoolean(THIRD_PARTY_SERVICE); |
| 138 | this.name = json.optString(NAME); | 146 | this.name = json.optString(NAME); |
| 139 | this.description = json.optString(DESCRIPTION); | 147 | this.description = json.optString(DESCRIPTION); | ... | ... |
| 1 | +/* | ||
| 2 | + * Copyright 2010-2022 Warply Ltd. All rights reserved. | ||
| 3 | + * | ||
| 4 | + * Redistribution and use in source and binary forms, without modification, are | ||
| 5 | + * permitted provided that the following conditions are met: | ||
| 6 | + * | ||
| 7 | + * 1. Redistributions of source code must retain the above copyright notice, | ||
| 8 | + * this list of conditions and the following disclaimer. | ||
| 9 | + * | ||
| 10 | + * 2. Redistributions in binary form must reproduce the above copyright notice, | ||
| 11 | + * this list of conditions and the following disclaimer in the documentation | ||
| 12 | + * and/or other materials provided with the distribution. | ||
| 13 | + * | ||
| 14 | + * THIS SOFTWARE IS PROVIDED BY THE WARPLY LTD ``AS IS'' AND ANY EXPRESS OR | ||
| 15 | + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | ||
| 16 | + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO | ||
| 17 | + * EVENT SHALL WARPLY LTD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, | ||
| 18 | + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||
| 19 | + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, | ||
| 20 | + * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||
| 21 | + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||
| 22 | + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, | ||
| 23 | + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||
| 24 | + */ | ||
| 25 | + | ||
| 26 | +package ly.warp.sdk.utils; | ||
| 27 | + | ||
| 28 | +import java.util.HashMap; | ||
| 29 | + | ||
| 30 | +import ly.warp.sdk.Warply; | ||
| 31 | +import ly.warp.sdk.db.WarplyDBHelper; | ||
| 32 | +import ly.warp.sdk.io.models.Campaign; | ||
| 33 | +import ly.warp.sdk.io.models.CampaignList; | ||
| 34 | +import ly.warp.sdk.io.models.Consumer; | ||
| 35 | +import ly.warp.sdk.io.models.CouponList; | ||
| 36 | +import ly.warp.sdk.io.models.CouponsetsList; | ||
| 37 | + | ||
| 38 | +/** | ||
| 39 | + * Created by Panagiotis Triantafyllou on 18-Apr-22. | ||
| 40 | + */ | ||
| 41 | + | ||
| 42 | +public class WarplyManagerHelper { | ||
| 43 | + private static Consumer mConsumer; | ||
| 44 | + private static HashMap<String, CampaignList> mUniqueCampaignList = new HashMap<String, CampaignList>(); | ||
| 45 | + private static CouponList mCouponList = new CouponList(); | ||
| 46 | + private static CouponsetsList mCouponsetsList = new CouponsetsList(); | ||
| 47 | + | ||
| 48 | + public static String constructCampaignUrl(Campaign item) { | ||
| 49 | + String url = item.getIndexUrl() | ||
| 50 | + + "?web_id=" + WarpUtils.getWebId(Warply.getWarplyContext()) | ||
| 51 | + + "&app_uuid=" + WarplyProperty.getAppUuid(Warply.getWarplyContext()) | ||
| 52 | + + "&api_key=" + WarpUtils.getApiKey(Warply.getWarplyContext()) | ||
| 53 | + + "&session_uuid=" + item.getSessionUUID() | ||
| 54 | + + "&access_token=" + WarplyDBHelper.getInstance(Warply.getWarplyContext()).getAuthValue("access_token") | ||
| 55 | + + "&refresh_token=" + WarplyDBHelper.getInstance(Warply.getWarplyContext()).getAuthValue("refresh_token") | ||
| 56 | + + "&client_id=" + WarplyDBHelper.getInstance(Warply.getWarplyContext()).getClientValue("client_id") | ||
| 57 | + + "&client_secret=" + WarplyDBHelper.getInstance(Warply.getWarplyContext()).getClientValue("client_secret"); | ||
| 58 | + return url; | ||
| 59 | + } | ||
| 60 | + | ||
| 61 | + public static Consumer getConsumer() { | ||
| 62 | + return mConsumer; | ||
| 63 | + } | ||
| 64 | + | ||
| 65 | + public static HashMap<String, CampaignList> getUniqueCampaignList() { | ||
| 66 | + return mUniqueCampaignList; | ||
| 67 | + } | ||
| 68 | + | ||
| 69 | + public static CouponList getCouponList() { | ||
| 70 | + return mCouponList; | ||
| 71 | + } | ||
| 72 | + | ||
| 73 | + public static void setConsumer(Consumer consumer) { | ||
| 74 | + mConsumer = consumer; | ||
| 75 | + } | ||
| 76 | + | ||
| 77 | + public static void setUniqueCampaignList(HashMap<String, CampaignList> uniqueCouponList) { | ||
| 78 | + mUniqueCampaignList = uniqueCouponList; | ||
| 79 | + } | ||
| 80 | + | ||
| 81 | + public static void setCouponList(CouponList couponList) { | ||
| 82 | + mCouponList = couponList; | ||
| 83 | + } | ||
| 84 | + | ||
| 85 | + public static CouponsetsList getCouponsets() { | ||
| 86 | + return mCouponsetsList; | ||
| 87 | + } | ||
| 88 | + | ||
| 89 | + public static void setCouponsets(CouponsetsList couponsets) { | ||
| 90 | + mCouponsetsList = couponsets; | ||
| 91 | + } | ||
| 92 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +package ly.warp.sdk.views.adapters; | ||
| 2 | + | ||
| 3 | +import android.content.Context; | ||
| 4 | +import android.text.Html; | ||
| 5 | +import android.text.TextUtils; | ||
| 6 | +import android.view.LayoutInflater; | ||
| 7 | +import android.view.View; | ||
| 8 | +import android.view.ViewGroup; | ||
| 9 | +import android.widget.ImageView; | ||
| 10 | +import android.widget.TextView; | ||
| 11 | + | ||
| 12 | +import androidx.recyclerview.widget.RecyclerView; | ||
| 13 | + | ||
| 14 | +import com.bumptech.glide.Glide; | ||
| 15 | +import com.bumptech.glide.load.engine.DiskCacheStrategy; | ||
| 16 | + | ||
| 17 | +import java.text.ParseException; | ||
| 18 | +import java.text.SimpleDateFormat; | ||
| 19 | +import java.util.Date; | ||
| 20 | +import java.util.concurrent.TimeUnit; | ||
| 21 | + | ||
| 22 | +import io.reactivex.Observable; | ||
| 23 | +import io.reactivex.subjects.PublishSubject; | ||
| 24 | +import ly.warp.sdk.R; | ||
| 25 | +import ly.warp.sdk.io.models.Coupon; | ||
| 26 | +import ly.warp.sdk.io.models.CouponList; | ||
| 27 | +import ly.warp.sdk.io.models.Couponset; | ||
| 28 | +import ly.warp.sdk.io.models.CouponsetsList; | ||
| 29 | + | ||
| 30 | +public class CouponsetsAdapter extends RecyclerView.Adapter<CouponsetsAdapter.CouponsetViewHolder> { | ||
| 31 | + | ||
| 32 | + private Context mContext; | ||
| 33 | + private CouponsetsList mCouponsets; | ||
| 34 | + private final PublishSubject<Couponset> onClickSubject = PublishSubject.create(); | ||
| 35 | + | ||
| 36 | + public CouponsetsAdapter(Context mContext, CouponsetsList couponsets) { | ||
| 37 | + this.mContext = mContext; | ||
| 38 | + this.mCouponsets = couponsets; | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + public class CouponsetViewHolder extends RecyclerView.ViewHolder { | ||
| 42 | + private ImageView ivCouponLogo; | ||
| 43 | + private TextView tvCouponTitle, tvCouponValue, tvCouponDate, tvCouponDescription; | ||
| 44 | + | ||
| 45 | + public CouponsetViewHolder(View view) { | ||
| 46 | + super(view); | ||
| 47 | + ivCouponLogo = view.findViewById(R.id.iv_active_coupon); | ||
| 48 | + tvCouponTitle = view.findViewById(R.id.tv_active_coupons_title); | ||
| 49 | + tvCouponValue = view.findViewById(R.id.tv_active_coupons_value); | ||
| 50 | + tvCouponDate = view.findViewById(R.id.tv_active_coupons_date); | ||
| 51 | + tvCouponDescription = view.findViewById(R.id.tv_active_coupons_description); | ||
| 52 | + } | ||
| 53 | + } | ||
| 54 | + | ||
| 55 | + @Override | ||
| 56 | + public int getItemCount() { | ||
| 57 | + if (mCouponsets == null) | ||
| 58 | + return 0; | ||
| 59 | + else | ||
| 60 | + return mCouponsets.size(); | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + | ||
| 64 | + public Couponset getItem(int id) { | ||
| 65 | + return mCouponsets.get(id); | ||
| 66 | + } | ||
| 67 | + | ||
| 68 | + public void updateData(CouponsetsList couponsets) { | ||
| 69 | + mCouponsets.clear(); | ||
| 70 | + mCouponsets.addAll(couponsets); | ||
| 71 | + notifyDataSetChanged(); | ||
| 72 | + } | ||
| 73 | + | ||
| 74 | + | ||
| 75 | + @Override | ||
| 76 | + public CouponsetViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | ||
| 77 | + View itemView; | ||
| 78 | + itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.active_coupon_layout, parent, false); | ||
| 79 | + return new CouponsetViewHolder(itemView); | ||
| 80 | + } | ||
| 81 | + | ||
| 82 | + @Override | ||
| 83 | + public void onBindViewHolder(final CouponsetViewHolder holder, int position) { | ||
| 84 | + Couponset couponsetItem = mCouponsets.get(position); | ||
| 85 | + | ||
| 86 | + if (couponsetItem != null) { | ||
| 87 | + if (!TextUtils.isEmpty(couponsetItem.getImgPreview())) { | ||
| 88 | + Glide.with(mContext) | ||
| 89 | +// .setDefaultRequestOptions( | ||
| 90 | +// RequestOptions | ||
| 91 | +// .placeholderOf(R.drawable.ic_default_contact_photo) | ||
| 92 | +// .error(R.drawable.ic_default_contact_photo)) | ||
| 93 | + .load(couponsetItem.getImgPreview()) | ||
| 94 | + .diskCacheStrategy(DiskCacheStrategy.DATA) | ||
| 95 | + .into(holder.ivCouponLogo); | ||
| 96 | + } else { | ||
| 97 | + Glide.with(mContext) | ||
| 98 | + .load(R.drawable.ic_cosmote_logo_horizontal_grey) | ||
| 99 | + .into(holder.ivCouponLogo); | ||
| 100 | + } | ||
| 101 | + | ||
| 102 | + holder.tvCouponTitle.setText(couponsetItem.getName()); | ||
| 103 | + holder.tvCouponDescription.setText(Html.fromHtml(couponsetItem.getDescription())); | ||
| 104 | + Date date = null; | ||
| 105 | + try { | ||
| 106 | + date = new SimpleDateFormat().parse(couponsetItem.getExpiration()); | ||
| 107 | + holder.tvCouponDate.setText(String.format(mContext.getString(R.string.cos_active_coupon_date), String.valueOf(getDifferenceDays(date, new Date())))); | ||
| 108 | + } catch (ParseException e) { | ||
| 109 | + e.printStackTrace(); | ||
| 110 | + } | ||
| 111 | + | ||
| 112 | + holder.tvCouponValue.setText(couponsetItem.getDiscount()); | ||
| 113 | + holder.itemView.setOnClickListener(v -> onClickSubject.onNext(couponsetItem)); | ||
| 114 | + } | ||
| 115 | + } | ||
| 116 | + | ||
| 117 | + public Observable<Couponset> getPositionClicks() { | ||
| 118 | + return onClickSubject.cache(); | ||
| 119 | + } | ||
| 120 | + | ||
| 121 | + private long getDifferenceDays(Date d1, Date d2) { | ||
| 122 | + long diff = d2.getTime() - d1.getTime(); | ||
| 123 | + return TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS); | ||
| 124 | + } | ||
| 125 | +} |
| 1 | +package ly.warp.sdk.views.adapters.mix; | ||
| 2 | + | ||
| 3 | +import android.content.Context; | ||
| 4 | +import android.text.TextUtils; | ||
| 5 | +import android.view.LayoutInflater; | ||
| 6 | +import android.view.View; | ||
| 7 | +import android.view.ViewGroup; | ||
| 8 | +import android.widget.ImageView; | ||
| 9 | +import android.widget.TextView; | ||
| 10 | + | ||
| 11 | +import androidx.core.content.ContextCompat; | ||
| 12 | +import androidx.recyclerview.widget.RecyclerView; | ||
| 13 | + | ||
| 14 | +import com.bumptech.glide.Glide; | ||
| 15 | +import com.bumptech.glide.load.engine.DiskCacheStrategy; | ||
| 16 | + | ||
| 17 | +import java.text.ParseException; | ||
| 18 | +import java.text.SimpleDateFormat; | ||
| 19 | +import java.util.Date; | ||
| 20 | +import java.util.concurrent.TimeUnit; | ||
| 21 | + | ||
| 22 | +import io.reactivex.Observable; | ||
| 23 | +import io.reactivex.subjects.PublishSubject; | ||
| 24 | +import ly.warp.sdk.R; | ||
| 25 | +import ly.warp.sdk.activities.BaseFragmentActivity; | ||
| 26 | +import ly.warp.sdk.io.models.Coupon; | ||
| 27 | +import ly.warp.sdk.io.models.CouponList; | ||
| 28 | + | ||
| 29 | +public class ActiveCouponAdapter extends RecyclerView.Adapter<ActiveCouponAdapter.ActiveCouponViewHolder> { | ||
| 30 | + | ||
| 31 | + private Context mContext; | ||
| 32 | + private CouponList mCoupons; | ||
| 33 | + private final PublishSubject<Coupon> onClickSubject = PublishSubject.create(); | ||
| 34 | + | ||
| 35 | + public ActiveCouponAdapter(Context mContext, CouponList campaignList) { | ||
| 36 | + this.mContext = mContext; | ||
| 37 | + this.mCoupons = campaignList; | ||
| 38 | + } | ||
| 39 | + | ||
| 40 | + public class ActiveCouponViewHolder extends RecyclerView.ViewHolder { | ||
| 41 | + private ImageView ivCouponLogo; | ||
| 42 | + private TextView tvCouponTitle, tvCouponValue, tvCouponDate, tvCouponDescription; | ||
| 43 | + | ||
| 44 | + public ActiveCouponViewHolder(View view) { | ||
| 45 | + super(view); | ||
| 46 | + ivCouponLogo = view.findViewById(R.id.iv_active_coupon); | ||
| 47 | + tvCouponTitle = view.findViewById(R.id.tv_active_coupons_title); | ||
| 48 | + tvCouponValue = view.findViewById(R.id.tv_active_coupons_value); | ||
| 49 | + tvCouponDate = view.findViewById(R.id.tv_active_coupons_date); | ||
| 50 | + tvCouponDescription = view.findViewById(R.id.tv_active_coupons_description); | ||
| 51 | + } | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + @Override | ||
| 55 | + public int getItemCount() { | ||
| 56 | + if (mCoupons == null) | ||
| 57 | + return 0; | ||
| 58 | + else | ||
| 59 | + return mCoupons.size(); | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + | ||
| 63 | + public Coupon getItem(int id) { | ||
| 64 | + return mCoupons.get(id); | ||
| 65 | + } | ||
| 66 | + | ||
| 67 | + public void updateData(CouponList couponList) { | ||
| 68 | + mCoupons.clear(); | ||
| 69 | + mCoupons.addAll(couponList); | ||
| 70 | + notifyDataSetChanged(); | ||
| 71 | + } | ||
| 72 | + | ||
| 73 | + | ||
| 74 | + @Override | ||
| 75 | + public ActiveCouponViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { | ||
| 76 | + View itemView; | ||
| 77 | + itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.active_coupon_layout, parent, false); | ||
| 78 | + return new ActiveCouponViewHolder(itemView); | ||
| 79 | + } | ||
| 80 | + | ||
| 81 | + @Override | ||
| 82 | + public void onBindViewHolder(final ActiveCouponViewHolder holder, int position) { | ||
| 83 | + Coupon couponItem = mCoupons.get(position); | ||
| 84 | + | ||
| 85 | + if (couponItem != null) { | ||
| 86 | + if (!TextUtils.isEmpty(couponItem.getImage())) { | ||
| 87 | + Glide.with(mContext) | ||
| 88 | +// .setDefaultRequestOptions( | ||
| 89 | +// RequestOptions | ||
| 90 | +// .placeholderOf(R.drawable.ic_default_contact_photo) | ||
| 91 | +// .error(R.drawable.ic_default_contact_photo)) | ||
| 92 | + .load(couponItem.getImage()) | ||
| 93 | + .diskCacheStrategy(DiskCacheStrategy.DATA) | ||
| 94 | + .into(holder.ivCouponLogo); | ||
| 95 | + } else { | ||
| 96 | + Glide.with(mContext) | ||
| 97 | + .load(R.drawable.ic_cosmote_logo_horizontal_grey) | ||
| 98 | + .into(holder.ivCouponLogo); | ||
| 99 | + } | ||
| 100 | + | ||
| 101 | + holder.tvCouponTitle.setText(couponItem.getName()); | ||
| 102 | + holder.tvCouponDescription.setText(couponItem.getDescription()); | ||
| 103 | + Date date = null; | ||
| 104 | + try { | ||
| 105 | + date = new SimpleDateFormat().parse(couponItem.getExpiration()); | ||
| 106 | + holder.tvCouponDate.setText(String.format(mContext.getString(R.string.cos_active_coupon_date), String.valueOf(getDifferenceDays(date, new Date())))); | ||
| 107 | + } catch (ParseException e) { | ||
| 108 | + e.printStackTrace(); | ||
| 109 | + } | ||
| 110 | + | ||
| 111 | + holder.tvCouponValue.setText(couponItem.getDiscount()); | ||
| 112 | + holder.itemView.setOnClickListener(v -> onClickSubject.onNext(couponItem)); | ||
| 113 | + } | ||
| 114 | + } | ||
| 115 | + | ||
| 116 | + public Observable<Coupon> getPositionClicks() { | ||
| 117 | + return onClickSubject.cache(); | ||
| 118 | + } | ||
| 119 | + | ||
| 120 | + private long getDifferenceDays(Date d1, Date d2) { | ||
| 121 | + long diff = d2.getTime() - d1.getTime(); | ||
| 122 | + return TimeUnit.DAYS.convert(diff, TimeUnit.MILLISECONDS); | ||
| 123 | + } | ||
| 124 | +} |
353 Bytes
4.84 KB
5.72 KB
17.7 KB
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<selector xmlns:android="http://schemas.android.com/apk/res/android"> | ||
| 3 | + <item android:drawable="@drawable/shape_cos_green_tr" android:state_pressed="true" /> | ||
| 4 | + <item android:drawable="@drawable/shape_cos_green" 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="7dp" /> | ||
| 5 | + | ||
| 6 | + <solid | ||
| 7 | + android:width="2dp" | ||
| 8 | + android:color="@color/cos_green5" /> | ||
| 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="7dp" /> | ||
| 5 | + | ||
| 6 | + <solid | ||
| 7 | + android:width="2dp" | ||
| 8 | + android:color="@color/cos_green5_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:topLeftRadius="30dp" /> | ||
| 5 | + | ||
| 6 | + <gradient | ||
| 7 | + android:startColor="@color/skyblue" | ||
| 8 | + android:endColor="@color/cos_green4" | ||
| 9 | + android:type="linear" | ||
| 10 | + android:angle="270"/> | ||
| 11 | + | ||
| 12 | +<!-- <stroke--> | ||
| 13 | +<!-- android:width="1dp"--> | ||
| 14 | +<!-- android:color="@color/cos_green" />--> | ||
| 15 | +</shape> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | + xmlns:app="http://schemas.android.com/apk/res-auto" | ||
| 4 | + xmlns:tools="http://schemas.android.com/tools" | ||
| 5 | + android:layout_width="match_parent" | ||
| 6 | + android:layout_height="140dp" | ||
| 7 | + android:layout_marginBottom="16dp" | ||
| 8 | + android:background="@drawable/ic_coupon_background"> | ||
| 9 | + | ||
| 10 | + <androidx.constraintlayout.widget.Guideline | ||
| 11 | + android:id="@+id/gl_vertical_72_percent" | ||
| 12 | + android:layout_width="wrap_content" | ||
| 13 | + android:layout_height="wrap_content" | ||
| 14 | + android:orientation="vertical" | ||
| 15 | + app:layout_constraintGuide_percent="0.72" /> | ||
| 16 | + | ||
| 17 | + <ImageView | ||
| 18 | + android:id="@+id/iv_active_coupon" | ||
| 19 | + android:layout_width="80dp" | ||
| 20 | + android:layout_height="80dp" | ||
| 21 | + android:layout_marginStart="24dp" | ||
| 22 | + app:layout_constraintBottom_toBottomOf="parent" | ||
| 23 | + app:layout_constraintStart_toStartOf="parent" | ||
| 24 | + app:layout_constraintTop_toTopOf="parent" | ||
| 25 | + tools:src="@drawable/ic_gifts_for_you" /> | ||
| 26 | + | ||
| 27 | + <View | ||
| 28 | + android:id="@+id/v_separator" | ||
| 29 | + android:layout_width="1dp" | ||
| 30 | + android:layout_height="match_parent" | ||
| 31 | + android:layout_marginVertical="16dp" | ||
| 32 | + android:layout_marginStart="8dp" | ||
| 33 | + android:background="@color/grey2" | ||
| 34 | + app:layout_constraintBottom_toBottomOf="parent" | ||
| 35 | + app:layout_constraintStart_toEndOf="@+id/iv_active_coupon" | ||
| 36 | + app:layout_constraintTop_toTopOf="parent" /> | ||
| 37 | + | ||
| 38 | + <LinearLayout | ||
| 39 | + android:id="@+id/ll_coupon_info" | ||
| 40 | + android:layout_width="0dp" | ||
| 41 | + android:layout_height="wrap_content" | ||
| 42 | + android:layout_marginStart="16dp" | ||
| 43 | + android:orientation="vertical" | ||
| 44 | + app:layout_constraintBottom_toBottomOf="parent" | ||
| 45 | + app:layout_constraintEnd_toStartOf="@+id/gl_vertical_72_percent" | ||
| 46 | + app:layout_constraintStart_toEndOf="@+id/v_separator" | ||
| 47 | + app:layout_constraintTop_toTopOf="parent"> | ||
| 48 | + | ||
| 49 | + <TextView | ||
| 50 | + android:id="@+id/tv_active_coupons_title" | ||
| 51 | + android:layout_width="wrap_content" | ||
| 52 | + android:layout_height="wrap_content" | ||
| 53 | + android:maxLines="2" | ||
| 54 | + android:textColor="#3A5266" | ||
| 55 | + android:textFontWeight="600" | ||
| 56 | + android:textSize="16sp" | ||
| 57 | + tools:text="Εκπτωτικο κουπονι 10$ για αγορες στα ΙΚΕΑ" /> | ||
| 58 | + | ||
| 59 | + <TextView | ||
| 60 | + android:id="@+id/tv_active_coupons_value" | ||
| 61 | + android:layout_width="wrap_content" | ||
| 62 | + android:layout_height="wrap_content" | ||
| 63 | + android:textColor="#3A5266" | ||
| 64 | + android:textSize="28sp" | ||
| 65 | + android:textStyle="bold" | ||
| 66 | + tools:text="10$" /> | ||
| 67 | + | ||
| 68 | + <TextView | ||
| 69 | + android:id="@+id/tv_active_coupons_date" | ||
| 70 | + android:layout_width="wrap_content" | ||
| 71 | + android:layout_height="wrap_content" | ||
| 72 | + android:textColor="#617181" | ||
| 73 | + android:textFontWeight="600" | ||
| 74 | + android:textSize="12sp" | ||
| 75 | + tools:text="@string/cos_active_coupon_date" /> | ||
| 76 | + </LinearLayout> | ||
| 77 | + | ||
| 78 | + <TextView | ||
| 79 | + android:id="@+id/tv_active_coupons_description" | ||
| 80 | + android:layout_width="0dp" | ||
| 81 | + android:layout_height="wrap_content" | ||
| 82 | + android:layout_marginStart="24dp" | ||
| 83 | + android:layout_marginEnd="32dp" | ||
| 84 | + android:maxLines="4" | ||
| 85 | + android:textColor="#617181" | ||
| 86 | + android:textFontWeight="600" | ||
| 87 | + android:textSize="12sp" | ||
| 88 | + app:layout_constraintBottom_toBottomOf="parent" | ||
| 89 | + app:layout_constraintEnd_toEndOf="parent" | ||
| 90 | + app:layout_constraintStart_toEndOf="@+id/gl_vertical_72_percent" | ||
| 91 | + app:layout_constraintTop_toTopOf="parent" | ||
| 92 | + tools:text="Εκπτωση με ελάχιστες αγορές 100€" /> | ||
| 93 | +</androidx.constraintlayout.widget.ConstraintLayout> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | + xmlns:app="http://schemas.android.com/apk/res-auto" | ||
| 4 | + android:id="@+id/cl_bill_payment" | ||
| 5 | + android:layout_width="match_parent" | ||
| 6 | + android:layout_height="match_parent"> | ||
| 7 | + | ||
| 8 | + <androidx.constraintlayout.widget.ConstraintLayout | ||
| 9 | + android:id="@+id/cl_bill_header" | ||
| 10 | + android:layout_width="match_parent" | ||
| 11 | + android:layout_height="80dp" | ||
| 12 | + app:layout_constraintTop_toTopOf="parent"> | ||
| 13 | + | ||
| 14 | + <ImageView | ||
| 15 | + android:id="@+id/iv_coupons_close" | ||
| 16 | + android:layout_width="21dp" | ||
| 17 | + android:layout_height="20dp" | ||
| 18 | + android:layout_marginStart="24dp" | ||
| 19 | + android:layout_marginTop="4dp" | ||
| 20 | + android:src="@drawable/ic_back" | ||
| 21 | + app:layout_constraintStart_toStartOf="parent" | ||
| 22 | + app:layout_constraintTop_toTopOf="@+id/textView3" /> | ||
| 23 | + | ||
| 24 | + <TextView | ||
| 25 | + android:id="@+id/textView3" | ||
| 26 | + android:layout_width="206dp" | ||
| 27 | + android:layout_height="32dp" | ||
| 28 | + android:gravity="center" | ||
| 29 | + android:text="Όλα τα κουπόνια μου" | ||
| 30 | + android:textColor="@color/grey" | ||
| 31 | + android:textSize="17sp" | ||
| 32 | + android:textStyle="bold" | ||
| 33 | + app:layout_constraintBottom_toBottomOf="parent" | ||
| 34 | + app:layout_constraintEnd_toEndOf="parent" | ||
| 35 | + app:layout_constraintHorizontal_bias="0.356" | ||
| 36 | + app:layout_constraintStart_toEndOf="@+id/iv_coupons_close" | ||
| 37 | + app:layout_constraintTop_toTopOf="parent" /> | ||
| 38 | + </androidx.constraintlayout.widget.ConstraintLayout> | ||
| 39 | + | ||
| 40 | + <androidx.constraintlayout.widget.ConstraintLayout | ||
| 41 | + android:layout_width="match_parent" | ||
| 42 | + android:layout_height="match_parent" | ||
| 43 | + android:layout_below="@+id/cl_bill_header" | ||
| 44 | + android:layout_marginTop="1dp" | ||
| 45 | + android:background="@drawable/shape_cos_loyalty" | ||
| 46 | + android:orientation="vertical"> | ||
| 47 | + | ||
| 48 | + <androidx.recyclerview.widget.RecyclerView | ||
| 49 | + android:id="@+id/rv_active_coupons" | ||
| 50 | + android:layout_width="match_parent" | ||
| 51 | + android:layout_height="0dp" | ||
| 52 | + android:paddingTop="48dp" | ||
| 53 | + app:layout_constraintBottom_toBottomOf="parent" | ||
| 54 | + app:layout_constraintEnd_toEndOf="parent" | ||
| 55 | + app:layout_constraintStart_toStartOf="parent" | ||
| 56 | + app:layout_constraintTop_toTopOf="parent" /> | ||
| 57 | + </androidx.constraintlayout.widget.ConstraintLayout> | ||
| 58 | + | ||
| 59 | + <TextView | ||
| 60 | + android:id="@+id/tv_no_coupons" | ||
| 61 | + android:layout_width="wrap_content" | ||
| 62 | + android:layout_height="wrap_content" | ||
| 63 | + android:layout_centerInParent="true" | ||
| 64 | + android:text="Δεν υπάρχουν κουπόνια" | ||
| 65 | + android:textColor="@color/grey" | ||
| 66 | + android:textSize="18sp" | ||
| 67 | + android:visibility="gone" | ||
| 68 | + android:textStyle="bold" /> | ||
| 69 | +</RelativeLayout> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | 1 | <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| 2 | xmlns:app="http://schemas.android.com/apk/res-auto" | 2 | xmlns:app="http://schemas.android.com/apk/res-auto" |
| 3 | + xmlns:tools="http://schemas.android.com/tools" | ||
| 3 | android:layout_width="match_parent" | 4 | android:layout_width="match_parent" |
| 4 | android:layout_height="match_parent" | 5 | android:layout_height="match_parent" |
| 5 | - xmlns:tools="http://schemas.android.com/tools" | ||
| 6 | android:background="@android:color/white"> | 6 | android:background="@android:color/white"> |
| 7 | 7 | ||
| 8 | <androidx.constraintlayout.widget.ConstraintLayout | 8 | <androidx.constraintlayout.widget.ConstraintLayout |
| ... | @@ -54,15 +54,15 @@ | ... | @@ -54,15 +54,15 @@ |
| 54 | app:layout_constraintStart_toStartOf="parent" | 54 | app:layout_constraintStart_toStartOf="parent" |
| 55 | app:layout_constraintTop_toTopOf="parent"> | 55 | app:layout_constraintTop_toTopOf="parent"> |
| 56 | 56 | ||
| 57 | - <ImageView | 57 | + <com.github.siyamed.shapeimageview.mask.PorterShapeImageView |
| 58 | android:id="@+id/imageView6" | 58 | android:id="@+id/imageView6" |
| 59 | android:layout_width="match_parent" | 59 | android:layout_width="match_parent" |
| 60 | android:layout_height="224dp" | 60 | android:layout_height="224dp" |
| 61 | - android:clipToOutline="true" | ||
| 62 | android:scaleType="centerCrop" | 61 | android:scaleType="centerCrop" |
| 63 | - android:src="@drawable/carousel_banner" | ||
| 64 | app:layout_constraintStart_toStartOf="parent" | 62 | app:layout_constraintStart_toStartOf="parent" |
| 65 | - app:layout_constraintTop_toTopOf="parent" /> | 63 | + app:layout_constraintTop_toTopOf="parent" |
| 64 | + app:siShape="@drawable/shape_top_left_rounded" | ||
| 65 | + tools:src="@drawable/carousel_banner" /> | ||
| 66 | 66 | ||
| 67 | <TextView | 67 | <TextView |
| 68 | android:id="@+id/textView13" | 68 | android:id="@+id/textView13" |
| ... | @@ -184,29 +184,29 @@ | ... | @@ -184,29 +184,29 @@ |
| 184 | android:textStyle="bold" /> | 184 | android:textStyle="bold" /> |
| 185 | </LinearLayout> | 185 | </LinearLayout> |
| 186 | 186 | ||
| 187 | - <LinearLayout | 187 | + <!-- <LinearLayout--> |
| 188 | - android:id="@+id/ll_get_gift" | 188 | + <!-- android:id="@+id/ll_get_gift"--> |
| 189 | - android:layout_width="match_parent" | 189 | + <!-- android:layout_width="match_parent"--> |
| 190 | - android:layout_height="50dp" | 190 | + <!-- android:layout_height="50dp"--> |
| 191 | - android:layout_marginHorizontal="32dp" | 191 | + <!-- android:layout_marginHorizontal="32dp"--> |
| 192 | - android:layout_marginTop="24dp" | 192 | + <!-- android:layout_marginTop="24dp"--> |
| 193 | - android:background="@drawable/shape_cos_gradient2" | 193 | + <!-- android:background="@drawable/shape_cos_gradient2"--> |
| 194 | - android:gravity="center" | 194 | + <!-- android:gravity="center"--> |
| 195 | - android:orientation="horizontal" | 195 | + <!-- android:orientation="horizontal"--> |
| 196 | - app:layout_constraintEnd_toEndOf="parent" | 196 | + <!-- app:layout_constraintEnd_toEndOf="parent"--> |
| 197 | - app:layout_constraintHorizontal_bias="0.516" | 197 | + <!-- app:layout_constraintHorizontal_bias="0.516"--> |
| 198 | - app:layout_constraintStart_toStartOf="parent" | 198 | + <!-- app:layout_constraintStart_toStartOf="parent"--> |
| 199 | - app:layout_constraintTop_toBottomOf="@+id/ll_gift_it"> | 199 | + <!-- app:layout_constraintTop_toBottomOf="@+id/ll_gift_it">--> |
| 200 | - | 200 | + |
| 201 | - <TextView | 201 | + <!-- <TextView--> |
| 202 | - android:layout_width="wrap_content" | 202 | + <!-- android:layout_width="wrap_content"--> |
| 203 | - android:layout_height="wrap_content" | 203 | + <!-- android:layout_height="wrap_content"--> |
| 204 | - android:gravity="center" | 204 | + <!-- android:gravity="center"--> |
| 205 | - android:text="Πάρε το δώρο σου" | 205 | + <!-- android:text="Πάρε το δώρο σου"--> |
| 206 | - android:textColor="@color/white" | 206 | + <!-- android:textColor="@color/white"--> |
| 207 | - android:textSize="17dp" | 207 | + <!-- android:textSize="17dp"--> |
| 208 | - android:textStyle="bold" /> | 208 | + <!-- android:textStyle="bold" />--> |
| 209 | - </LinearLayout> | 209 | + <!-- </LinearLayout>--> |
| 210 | 210 | ||
| 211 | <TextView | 211 | <TextView |
| 212 | android:id="@+id/tv_terms" | 212 | android:id="@+id/tv_terms" |
| ... | @@ -219,7 +219,7 @@ | ... | @@ -219,7 +219,7 @@ |
| 219 | android:textSize="15sp" | 219 | android:textSize="15sp" |
| 220 | app:layout_constraintEnd_toEndOf="parent" | 220 | app:layout_constraintEnd_toEndOf="parent" |
| 221 | app:layout_constraintStart_toStartOf="parent" | 221 | app:layout_constraintStart_toStartOf="parent" |
| 222 | - app:layout_constraintTop_toBottomOf="@+id/ll_get_gift" /> | 222 | + app:layout_constraintTop_toBottomOf="@+id/ll_gift_it" /> |
| 223 | 223 | ||
| 224 | <ImageView | 224 | <ImageView |
| 225 | android:id="@+id/iv_barcode" | 225 | android:id="@+id/iv_barcode" | ... | ... |
| 1 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 2 | + xmlns:app="http://schemas.android.com/apk/res-auto" | ||
| 3 | + xmlns:tools="http://schemas.android.com/tools" | ||
| 4 | + android:layout_width="match_parent" | ||
| 5 | + android:layout_height="match_parent" | ||
| 6 | + android:background="@android:color/white"> | ||
| 7 | + | ||
| 8 | + <androidx.constraintlayout.widget.ConstraintLayout | ||
| 9 | + android:id="@+id/cl_loyalty_wallet_header" | ||
| 10 | + android:layout_width="match_parent" | ||
| 11 | + android:layout_height="50dp" | ||
| 12 | + android:background="@android:color/white"> | ||
| 13 | + | ||
| 14 | + <ImageView | ||
| 15 | + android:id="@+id/iv_couponset_info_back" | ||
| 16 | + android:layout_width="20dp" | ||
| 17 | + android:layout_height="20dp" | ||
| 18 | + android:layout_marginStart="16dp" | ||
| 19 | + android:src="@drawable/ic_back" | ||
| 20 | + app:layout_constraintBottom_toBottomOf="parent" | ||
| 21 | + app:layout_constraintStart_toStartOf="parent" | ||
| 22 | + app:layout_constraintTop_toTopOf="parent" /> | ||
| 23 | + | ||
| 24 | + <TextView | ||
| 25 | + android:layout_width="wrap_content" | ||
| 26 | + android:layout_height="wrap_content" | ||
| 27 | + android:text="@string/cos_coupon_info_title" | ||
| 28 | + android:textColor="@color/grey" | ||
| 29 | + android:textSize="17sp" | ||
| 30 | + android:textStyle="bold" | ||
| 31 | + app:layout_constraintBottom_toBottomOf="parent" | ||
| 32 | + app:layout_constraintEnd_toEndOf="parent" | ||
| 33 | + app:layout_constraintStart_toStartOf="parent" | ||
| 34 | + app:layout_constraintTop_toTopOf="parent" /> | ||
| 35 | + </androidx.constraintlayout.widget.ConstraintLayout> | ||
| 36 | + | ||
| 37 | + <ScrollView | ||
| 38 | + android:layout_width="match_parent" | ||
| 39 | + android:layout_height="match_parent" | ||
| 40 | + android:layout_below="@+id/cl_loyalty_wallet_header" | ||
| 41 | + android:fillViewport="true"> | ||
| 42 | + | ||
| 43 | + <RelativeLayout | ||
| 44 | + android:layout_width="match_parent" | ||
| 45 | + android:layout_height="match_parent" | ||
| 46 | + android:background="@android:color/white"> | ||
| 47 | + | ||
| 48 | + <androidx.constraintlayout.widget.ConstraintLayout | ||
| 49 | + android:id="@+id/cl_loyalty_info_view_inner" | ||
| 50 | + android:layout_width="match_parent" | ||
| 51 | + android:layout_height="match_parent" | ||
| 52 | + android:background="@drawable/shape_cos_coupon_info" | ||
| 53 | + app:layout_constraintEnd_toEndOf="parent" | ||
| 54 | + app:layout_constraintStart_toStartOf="parent" | ||
| 55 | + app:layout_constraintTop_toTopOf="parent"> | ||
| 56 | + | ||
| 57 | + <com.github.siyamed.shapeimageview.mask.PorterShapeImageView | ||
| 58 | + android:id="@+id/imageView6" | ||
| 59 | + android:layout_width="match_parent" | ||
| 60 | + android:layout_height="224dp" | ||
| 61 | + android:scaleType="centerCrop" | ||
| 62 | + android:src="@drawable/carousel_banner" | ||
| 63 | + app:layout_constraintStart_toStartOf="parent" | ||
| 64 | + app:layout_constraintTop_toTopOf="parent" | ||
| 65 | + app:siShape="@drawable/shape_top_left_rounded" /> | ||
| 66 | + | ||
| 67 | + <TextView | ||
| 68 | + android:id="@+id/textView13" | ||
| 69 | + android:layout_width="match_parent" | ||
| 70 | + android:layout_height="wrap_content" | ||
| 71 | + android:layout_marginTop="32dp" | ||
| 72 | + android:paddingHorizontal="32dp" | ||
| 73 | + android:textColor="#415564" | ||
| 74 | + android:textSize="18sp" | ||
| 75 | + android:textStyle="bold" | ||
| 76 | + app:layout_constraintEnd_toEndOf="parent" | ||
| 77 | + app:layout_constraintHorizontal_bias="0.509" | ||
| 78 | + app:layout_constraintStart_toStartOf="parent" | ||
| 79 | + app:layout_constraintTop_toBottomOf="@+id/imageView6" | ||
| 80 | + tools:text="Πάρε δωρεάν μηνιαία πακέτα με πάνες στα supermarket Σκλαβενίτης!" /> | ||
| 81 | + | ||
| 82 | + <TextView | ||
| 83 | + android:id="@+id/textView14" | ||
| 84 | + android:layout_width="match_parent" | ||
| 85 | + android:layout_height="wrap_content" | ||
| 86 | + android:layout_marginTop="16dp" | ||
| 87 | + android:paddingHorizontal="32dp" | ||
| 88 | + android:textColor="#415564" | ||
| 89 | + android:textSize="16sp" | ||
| 90 | + app:layout_constraintEnd_toEndOf="parent" | ||
| 91 | + app:layout_constraintStart_toStartOf="parent" | ||
| 92 | + app:layout_constraintTop_toBottomOf="@+id/textView13" | ||
| 93 | + tools:text="Χρησιμοποίησε τον παρακάτω κωδικό και πάρε δωρεάν πακέτο πάνες Pampers αποκλειστικά στα Supermarket Σκλαβενίτης" /> | ||
| 94 | + | ||
| 95 | + <LinearLayout | ||
| 96 | + android:id="@+id/ll_get_gift" | ||
| 97 | + android:layout_width="match_parent" | ||
| 98 | + android:layout_height="50dp" | ||
| 99 | + android:layout_marginHorizontal="32dp" | ||
| 100 | + android:layout_marginBottom="32dp" | ||
| 101 | + android:background="@drawable/selector_button_green" | ||
| 102 | + android:gravity="center" | ||
| 103 | + android:orientation="horizontal" | ||
| 104 | + app:layout_constraintBottom_toTopOf="@+id/tv_terms" | ||
| 105 | + app:layout_constraintEnd_toEndOf="parent" | ||
| 106 | + app:layout_constraintStart_toStartOf="parent"> | ||
| 107 | + | ||
| 108 | + <TextView | ||
| 109 | + android:layout_width="wrap_content" | ||
| 110 | + android:layout_height="wrap_content" | ||
| 111 | + android:gravity="center" | ||
| 112 | + android:text="@string/cos_redeem_coupon" | ||
| 113 | + android:textColor="@color/white" | ||
| 114 | + android:textSize="17dp" | ||
| 115 | + android:textStyle="bold" /> | ||
| 116 | + </LinearLayout> | ||
| 117 | + | ||
| 118 | + <TextView | ||
| 119 | + android:id="@+id/tv_terms" | ||
| 120 | + android:layout_width="wrap_content" | ||
| 121 | + android:layout_height="wrap_content" | ||
| 122 | + android:layout_marginBottom="32dp" | ||
| 123 | + android:text="@string/cos_coupon_terms_title" | ||
| 124 | + android:textColor="#415564" | ||
| 125 | + android:textFontWeight="600" | ||
| 126 | + android:textSize="15sp" | ||
| 127 | + app:layout_constraintBottom_toBottomOf="parent" | ||
| 128 | + app:layout_constraintEnd_toEndOf="parent" | ||
| 129 | + app:layout_constraintStart_toStartOf="parent" /> | ||
| 130 | + | ||
| 131 | + <ProgressBar | ||
| 132 | + android:id="@+id/pb_loading" | ||
| 133 | + android:layout_width="48dp" | ||
| 134 | + android:layout_height="48dp" | ||
| 135 | + android:indeterminate="true" | ||
| 136 | + android:indeterminateTint="@color/cos_green5" | ||
| 137 | + android:indeterminateTintMode="src_atop" | ||
| 138 | + android:visibility="gone" | ||
| 139 | + app:layout_constraintBottom_toBottomOf="parent" | ||
| 140 | + app:layout_constraintEnd_toEndOf="parent" | ||
| 141 | + app:layout_constraintStart_toStartOf="parent" | ||
| 142 | + app:layout_constraintTop_toTopOf="parent" | ||
| 143 | + tools:visibility="visible" /> | ||
| 144 | + </androidx.constraintlayout.widget.ConstraintLayout> | ||
| 145 | + </RelativeLayout> | ||
| 146 | + </ScrollView> | ||
| 147 | +</RelativeLayout> |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | + xmlns:app="http://schemas.android.com/apk/res-auto" | ||
| 4 | + xmlns:tools="http://schemas.android.com/tools" | ||
| 5 | + android:layout_width="match_parent" | ||
| 6 | + android:layout_height="match_parent" | ||
| 7 | + android:background="@android:color/white" | ||
| 8 | + android:fillViewport="true"> | ||
| 9 | + | ||
| 10 | + <LinearLayout | ||
| 11 | + android:id="@+id/cl_bill_payment" | ||
| 12 | + android:layout_width="match_parent" | ||
| 13 | + android:layout_height="match_parent" | ||
| 14 | + android:orientation="vertical"> | ||
| 15 | + | ||
| 16 | + <androidx.constraintlayout.widget.ConstraintLayout | ||
| 17 | + android:id="@+id/cl_bill_header" | ||
| 18 | + android:layout_width="match_parent" | ||
| 19 | + android:layout_height="80dp" | ||
| 20 | + app:layout_constraintTop_toTopOf="parent"> | ||
| 21 | + | ||
| 22 | + <ImageView | ||
| 23 | + android:id="@+id/iv_list_close" | ||
| 24 | + android:layout_width="21dp" | ||
| 25 | + android:layout_height="20dp" | ||
| 26 | + android:layout_marginStart="24dp" | ||
| 27 | + android:layout_marginTop="4dp" | ||
| 28 | + android:src="@drawable/ic_back" | ||
| 29 | + app:layout_constraintStart_toStartOf="parent" | ||
| 30 | + app:layout_constraintTop_toTopOf="@+id/textView3" /> | ||
| 31 | + | ||
| 32 | + <TextView | ||
| 33 | + android:id="@+id/textView3" | ||
| 34 | + android:layout_width="206dp" | ||
| 35 | + android:layout_height="32dp" | ||
| 36 | + android:gravity="center" | ||
| 37 | + android:textColor="@color/grey" | ||
| 38 | + android:textSize="17sp" | ||
| 39 | + android:textStyle="bold" | ||
| 40 | + app:layout_constraintBottom_toBottomOf="parent" | ||
| 41 | + app:layout_constraintEnd_toEndOf="parent" | ||
| 42 | + app:layout_constraintHorizontal_bias="0.356" | ||
| 43 | + app:layout_constraintStart_toEndOf="@+id/iv_list_close" | ||
| 44 | + app:layout_constraintTop_toTopOf="parent" /> | ||
| 45 | + </androidx.constraintlayout.widget.ConstraintLayout> | ||
| 46 | + | ||
| 47 | + <RelativeLayout | ||
| 48 | + android:layout_width="match_parent" | ||
| 49 | + android:layout_height="match_parent" | ||
| 50 | + android:background="@drawable/shape_cos_profile_gradient" | ||
| 51 | + android:orientation="vertical" | ||
| 52 | + android:paddingBottom="24dp"> | ||
| 53 | + | ||
| 54 | + <androidx.constraintlayout.widget.ConstraintLayout | ||
| 55 | + android:id="@+id/cl_recycler_inner" | ||
| 56 | + android:layout_width="match_parent" | ||
| 57 | + android:layout_height="wrap_content" | ||
| 58 | + android:layout_marginTop="36dp" | ||
| 59 | + android:paddingBottom="4dp" | ||
| 60 | + app:layout_constraintLeft_toLeftOf="parent" | ||
| 61 | + app:layout_constraintRight_toRightOf="parent" | ||
| 62 | + app:layout_constraintTop_toTopOf="parent"> | ||
| 63 | + | ||
| 64 | + <TextView | ||
| 65 | + android:id="@+id/tv_gifts_title" | ||
| 66 | + android:layout_width="wrap_content" | ||
| 67 | + android:layout_height="wrap_content" | ||
| 68 | + android:layout_marginStart="10dp" | ||
| 69 | + android:text="@string/cos_gifts_title2" | ||
| 70 | + android:textColor="@android:color/white" | ||
| 71 | + android:textSize="18sp" | ||
| 72 | + android:textStyle="bold" | ||
| 73 | + app:layout_constraintStart_toStartOf="parent" | ||
| 74 | + app:layout_constraintTop_toTopOf="parent" /> | ||
| 75 | + | ||
| 76 | + <androidx.recyclerview.widget.RecyclerView | ||
| 77 | + android:id="@+id/rv_gifts" | ||
| 78 | + android:layout_width="match_parent" | ||
| 79 | + android:layout_height="wrap_content" | ||
| 80 | + android:layout_marginTop="24dp" | ||
| 81 | + android:clipToPadding="false" | ||
| 82 | + android:orientation="horizontal" | ||
| 83 | + android:paddingEnd="10dp" | ||
| 84 | + app:layout_constraintBottom_toBottomOf="parent" | ||
| 85 | + app:layout_constraintLeft_toLeftOf="parent" | ||
| 86 | + app:layout_constraintRight_toRightOf="parent" | ||
| 87 | + app:layout_constraintTop_toBottomOf="@+id/tv_gifts_title" /> | ||
| 88 | + </androidx.constraintlayout.widget.ConstraintLayout> | ||
| 89 | + | ||
| 90 | + <androidx.constraintlayout.widget.ConstraintLayout | ||
| 91 | + android:id="@+id/cl_recycler_inner2" | ||
| 92 | + android:layout_width="match_parent" | ||
| 93 | + android:layout_height="wrap_content" | ||
| 94 | + android:layout_below="@+id/cl_recycler_inner" | ||
| 95 | + android:layout_marginTop="36dp" | ||
| 96 | + android:paddingBottom="4dp" | ||
| 97 | + app:layout_constraintLeft_toLeftOf="parent" | ||
| 98 | + app:layout_constraintRight_toRightOf="parent" | ||
| 99 | + app:layout_constraintTop_toTopOf="parent"> | ||
| 100 | + | ||
| 101 | + <TextView | ||
| 102 | + android:id="@+id/tv_rewards_title" | ||
| 103 | + android:layout_width="wrap_content" | ||
| 104 | + android:layout_height="wrap_content" | ||
| 105 | + android:layout_marginStart="10dp" | ||
| 106 | + android:text="@string/cos_rewards_title" | ||
| 107 | + android:textColor="@android:color/white" | ||
| 108 | + android:textSize="18sp" | ||
| 109 | + android:textStyle="bold" | ||
| 110 | + app:layout_constraintStart_toStartOf="parent" | ||
| 111 | + app:layout_constraintTop_toTopOf="parent" /> | ||
| 112 | + | ||
| 113 | + <androidx.recyclerview.widget.RecyclerView | ||
| 114 | + android:id="@+id/rv_rewards" | ||
| 115 | + android:layout_width="match_parent" | ||
| 116 | + android:layout_height="wrap_content" | ||
| 117 | + android:layout_marginTop="24dp" | ||
| 118 | + android:clipToPadding="false" | ||
| 119 | + android:orientation="horizontal" | ||
| 120 | + android:paddingEnd="10dp" | ||
| 121 | + app:layout_constraintBottom_toBottomOf="parent" | ||
| 122 | + app:layout_constraintLeft_toLeftOf="parent" | ||
| 123 | + app:layout_constraintRight_toRightOf="parent" | ||
| 124 | + app:layout_constraintTop_toBottomOf="@+id/tv_rewards_title" /> | ||
| 125 | + </androidx.constraintlayout.widget.ConstraintLayout> | ||
| 126 | + | ||
| 127 | + <androidx.constraintlayout.widget.ConstraintLayout | ||
| 128 | + android:id="@+id/cl_recycler_inner3" | ||
| 129 | + android:layout_width="match_parent" | ||
| 130 | + android:layout_height="wrap_content" | ||
| 131 | + android:layout_below="@+id/cl_recycler_inner2" | ||
| 132 | + android:layout_marginTop="36dp" | ||
| 133 | + android:paddingBottom="4dp" | ||
| 134 | + app:layout_constraintLeft_toLeftOf="parent" | ||
| 135 | + app:layout_constraintRight_toRightOf="parent" | ||
| 136 | + app:layout_constraintTop_toTopOf="parent"> | ||
| 137 | + | ||
| 138 | + <TextView | ||
| 139 | + android:id="@+id/tv_coupons_title" | ||
| 140 | + android:layout_width="wrap_content" | ||
| 141 | + android:layout_height="wrap_content" | ||
| 142 | + android:layout_marginStart="10dp" | ||
| 143 | + android:text="@string/cos_coupons_title" | ||
| 144 | + android:textColor="@android:color/white" | ||
| 145 | + android:textSize="18sp" | ||
| 146 | + android:textStyle="bold" | ||
| 147 | + app:layout_constraintStart_toStartOf="parent" | ||
| 148 | + app:layout_constraintTop_toTopOf="parent" /> | ||
| 149 | + | ||
| 150 | + <androidx.recyclerview.widget.RecyclerView | ||
| 151 | + android:id="@+id/rv_coupons" | ||
| 152 | + android:layout_width="match_parent" | ||
| 153 | + android:layout_height="wrap_content" | ||
| 154 | + android:layout_marginTop="24dp" | ||
| 155 | + android:clipToPadding="false" | ||
| 156 | + android:orientation="horizontal" | ||
| 157 | + android:paddingEnd="24dp" | ||
| 158 | + app:layout_constraintBottom_toBottomOf="parent" | ||
| 159 | + app:layout_constraintLeft_toLeftOf="parent" | ||
| 160 | + app:layout_constraintRight_toRightOf="parent" | ||
| 161 | + app:layout_constraintTop_toBottomOf="@+id/tv_coupons_title" /> | ||
| 162 | + </androidx.constraintlayout.widget.ConstraintLayout> | ||
| 163 | + </RelativeLayout> | ||
| 164 | + </LinearLayout> | ||
| 165 | +</ScrollView> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | + xmlns:app="http://schemas.android.com/apk/res-auto" | ||
| 4 | + xmlns:tools="http://schemas.android.com/tools" | ||
| 5 | + android:layout_width="match_parent" | ||
| 6 | + android:layout_height="wrap_content" | ||
| 7 | + android:layout_gravity="center_horizontal" | ||
| 8 | + android:paddingHorizontal="16dp" | ||
| 9 | + android:paddingVertical="56dp"> | ||
| 10 | + | ||
| 11 | + <TextView | ||
| 12 | + android:id="@+id/tv_dl_title" | ||
| 13 | + android:layout_width="match_parent" | ||
| 14 | + android:layout_height="55dp" | ||
| 15 | + android:layout_alignParentStart="true" | ||
| 16 | + android:layout_alignParentTop="true" | ||
| 17 | + android:layout_alignParentEnd="true" | ||
| 18 | + android:layout_marginHorizontal="48dp" | ||
| 19 | + android:gravity="center" | ||
| 20 | + tools:text="@string/cos_dlg_success_title" | ||
| 21 | + android:textColor="#0072C9" | ||
| 22 | + android:textSize="25sp" | ||
| 23 | + android:textStyle="bold" | ||
| 24 | + app:layout_constraintTop_toTopOf="parent" /> | ||
| 25 | + | ||
| 26 | + <TextView | ||
| 27 | + android:id="@+id/tv_dl_subtitle" | ||
| 28 | + android:layout_width="match_parent" | ||
| 29 | + android:layout_height="wrap_content" | ||
| 30 | + android:layout_below="@+id/tv_dl_title" | ||
| 31 | + android:layout_alignParentStart="true" | ||
| 32 | + android:layout_alignParentEnd="true" | ||
| 33 | + android:layout_marginHorizontal="48dp" | ||
| 34 | + android:layout_marginTop="16dp" | ||
| 35 | + android:layout_marginBottom="24dp" | ||
| 36 | + android:gravity="center" | ||
| 37 | + tools:text="@string/cos_dlg_success_subtitle" | ||
| 38 | + android:textColor="#5B5B5B" | ||
| 39 | + android:textFontWeight="500" | ||
| 40 | + android:textSize="18sp" /> | ||
| 41 | + | ||
| 42 | + <LinearLayout | ||
| 43 | + android:id="@+id/ll_dl_redeem" | ||
| 44 | + android:layout_width="match_parent" | ||
| 45 | + android:layout_height="50dp" | ||
| 46 | + android:layout_below="@+id/tv_dl_subtitle" | ||
| 47 | + android:layout_marginHorizontal="32dp" | ||
| 48 | + android:layout_marginTop="24dp" | ||
| 49 | + android:background="@drawable/selector_button_green" | ||
| 50 | + android:gravity="center" | ||
| 51 | + android:orientation="horizontal"> | ||
| 52 | + | ||
| 53 | + <TextView | ||
| 54 | + android:layout_width="wrap_content" | ||
| 55 | + android:layout_height="wrap_content" | ||
| 56 | + android:gravity="center" | ||
| 57 | + android:text="ΟΚ" | ||
| 58 | + android:textColor="@color/white" | ||
| 59 | + android:textSize="17dp" | ||
| 60 | + android:textStyle="bold" /> | ||
| 61 | + </LinearLayout> | ||
| 62 | + | ||
| 63 | +</RelativeLayout> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -35,8 +35,7 @@ | ... | @@ -35,8 +35,7 @@ |
| 35 | android:paddingLeft="10dp" | 35 | android:paddingLeft="10dp" |
| 36 | app:layout_constraintEnd_toStartOf="@+id/iv_settings" | 36 | app:layout_constraintEnd_toStartOf="@+id/iv_settings" |
| 37 | app:layout_constraintStart_toEndOf="@+id/user_img" | 37 | app:layout_constraintStart_toEndOf="@+id/user_img" |
| 38 | - app:layout_constraintTop_toTopOf="@+id/user_img" | 38 | + app:layout_constraintTop_toTopOf="@+id/user_img"> |
| 39 | - tools:layout_editor_absoluteY="-10dp"> | ||
| 40 | 39 | ||
| 41 | <TextView | 40 | <TextView |
| 42 | android:id="@+id/welcome_user_txt" | 41 | android:id="@+id/welcome_user_txt" |
| ... | @@ -45,8 +44,8 @@ | ... | @@ -45,8 +44,8 @@ |
| 45 | android:layout_marginBottom="8dp" | 44 | android:layout_marginBottom="8dp" |
| 46 | android:maxLines="1" | 45 | android:maxLines="1" |
| 47 | android:scrollHorizontally="true" | 46 | android:scrollHorizontally="true" |
| 48 | - tools:text="@string/welcome_user" | 47 | + android:textColor="#415564" |
| 49 | - android:textColor="#415564" /> | 48 | + tools:text="@string/welcome_user" /> |
| 50 | 49 | ||
| 51 | <ImageView | 50 | <ImageView |
| 52 | android:id="@+id/cosmote_one" | 51 | android:id="@+id/cosmote_one" |
| ... | @@ -121,7 +120,8 @@ | ... | @@ -121,7 +120,8 @@ |
| 121 | android:id="@+id/rl_home_coupons" | 120 | android:id="@+id/rl_home_coupons" |
| 122 | android:layout_width="match_parent" | 121 | android:layout_width="match_parent" |
| 123 | android:layout_height="wrap_content" | 122 | android:layout_height="wrap_content" |
| 124 | - android:layout_below="@id/rl_home_campaigns"> | 123 | + android:layout_below="@id/rl_home_campaigns" |
| 124 | + android:visibility="gone"> | ||
| 125 | 125 | ||
| 126 | <androidx.recyclerview.widget.RecyclerView | 126 | <androidx.recyclerview.widget.RecyclerView |
| 127 | android:id="@+id/rv_home_coupons" | 127 | android:id="@+id/rv_home_coupons" |
| ... | @@ -141,12 +141,57 @@ | ... | @@ -141,12 +141,57 @@ |
| 141 | android:layout_below="@id/rl_home_coupons" | 141 | android:layout_below="@id/rl_home_coupons" |
| 142 | android:layout_marginHorizontal="8dp" /> | 142 | android:layout_marginHorizontal="8dp" /> |
| 143 | 143 | ||
| 144 | + <androidx.constraintlayout.widget.ConstraintLayout | ||
| 145 | + android:id="@+id/cl_coupon" | ||
| 146 | + android:layout_width="match_parent" | ||
| 147 | + android:layout_height="140dp" | ||
| 148 | + android:layout_below="@+id/rl_home_info_widget" | ||
| 149 | + android:layout_marginTop="24dp" | ||
| 150 | + android:background="@drawable/ic_coupon_background"> | ||
| 151 | + | ||
| 152 | + <LinearLayout | ||
| 153 | + android:layout_width="wrap_content" | ||
| 154 | + android:layout_height="wrap_content" | ||
| 155 | + android:layout_marginStart="40dp" | ||
| 156 | + android:orientation="vertical" | ||
| 157 | + app:layout_constraintBottom_toBottomOf="parent" | ||
| 158 | + app:layout_constraintStart_toStartOf="parent" | ||
| 159 | + app:layout_constraintTop_toTopOf="parent"> | ||
| 160 | + | ||
| 161 | + <TextView | ||
| 162 | + android:id="@+id/tv_active_coupons" | ||
| 163 | + android:layout_width="wrap_content" | ||
| 164 | + android:layout_height="wrap_content" | ||
| 165 | + android:layout_marginBottom="8dp" | ||
| 166 | + android:textColor="#3A5266" | ||
| 167 | + android:textFontWeight="600" | ||
| 168 | + android:textSize="16sp" | ||
| 169 | + tools:text="@string/cos_active_coupons" /> | ||
| 170 | + | ||
| 171 | + <TextView | ||
| 172 | + android:layout_width="wrap_content" | ||
| 173 | + android:layout_height="wrap_content" | ||
| 174 | + android:layout_marginTop="8dp" | ||
| 175 | + android:text="Δες τα όλα ->" | ||
| 176 | + android:textColor="#3A5266" /> | ||
| 177 | + </LinearLayout> | ||
| 178 | + | ||
| 179 | + <ImageView | ||
| 180 | + android:layout_width="90dp" | ||
| 181 | + android:layout_height="90dp" | ||
| 182 | + android:layout_marginEnd="32dp" | ||
| 183 | + android:src="@drawable/ic_gifts_for_you" | ||
| 184 | + app:layout_constraintBottom_toBottomOf="parent" | ||
| 185 | + app:layout_constraintEnd_toEndOf="parent" | ||
| 186 | + app:layout_constraintTop_toTopOf="parent" /> | ||
| 187 | + </androidx.constraintlayout.widget.ConstraintLayout> | ||
| 188 | + | ||
| 144 | <TextView | 189 | <TextView |
| 145 | android:id="@+id/hsv_title" | 190 | android:id="@+id/hsv_title" |
| 146 | android:layout_width="match_parent" | 191 | android:layout_width="match_parent" |
| 147 | android:layout_height="40dp" | 192 | android:layout_height="40dp" |
| 148 | - android:layout_below="@+id/rl_home_info_widget" | 193 | + android:layout_below="@+id/cl_coupon" |
| 149 | - android:layout_marginTop="25dp" | 194 | + android:layout_marginTop="24dp" |
| 150 | android:background="@android:color/white" | 195 | android:background="@android:color/white" |
| 151 | android:paddingHorizontal="25dp" | 196 | android:paddingHorizontal="25dp" |
| 152 | android:paddingTop="10dp" | 197 | android:paddingTop="10dp" | ... | ... |
This diff is collapsed. Click to expand it.
| ... | @@ -21,4 +21,9 @@ | ... | @@ -21,4 +21,9 @@ |
| 21 | <color name="grey_tr">#A3415564</color> | 21 | <color name="grey_tr">#A3415564</color> |
| 22 | <color name="grey_light2">#F9F9F9</color> | 22 | <color name="grey_light2">#F9F9F9</color> |
| 23 | <color name="grey_tr2">#D4415564</color> | 23 | <color name="grey_tr2">#D4415564</color> |
| 24 | + <color name="grey2">#707070</color> | ||
| 25 | + <color name="skyblue">#1AADCC</color> | ||
| 26 | + <color name="cos_green4">#6DBC7A</color> | ||
| 27 | + <color name="cos_green5">#79BF14</color> | ||
| 28 | + <color name="cos_green5_tr">#6679BF14</color> | ||
| 24 | </resources> | 29 | </resources> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -10,7 +10,7 @@ | ... | @@ -10,7 +10,7 @@ |
| 10 | <string name="cos_profile_name">%1$s</string> | 10 | <string name="cos_profile_name">%1$s</string> |
| 11 | <string name="cos_profile_type">Traveller</string> | 11 | <string name="cos_profile_type">Traveller</string> |
| 12 | <string name="header_add">Προσθήκη</string> | 12 | <string name="header_add">Προσθήκη</string> |
| 13 | - <string name="cos_profile_reward">My reward wallet</string> | 13 | + <string name="cos_profile_reward">My Loyalty\nWallet</string> |
| 14 | <string name="cos_deals_title">Deals for You</string> | 14 | <string name="cos_deals_title">Deals for You</string> |
| 15 | <string name="cos_profile_more">Δες περισσότερα</string> | 15 | <string name="cos_profile_more">Δες περισσότερα</string> |
| 16 | <string name="cos_gifts_title">Gifts for You</string> | 16 | <string name="cos_gifts_title">Gifts for You</string> |
| ... | @@ -27,6 +27,19 @@ | ... | @@ -27,6 +27,19 @@ |
| 27 | <string name="cos_coupon_info_title">Εκπτωτικό κουπόνι</string> | 27 | <string name="cos_coupon_info_title">Εκπτωτικό κουπόνι</string> |
| 28 | <string name="cos_coupon_date">Το κουπόνι ισχύει έως %1$s</string> | 28 | <string name="cos_coupon_date">Το κουπόνι ισχύει έως %1$s</string> |
| 29 | <string name="cos_dl_title">Μόλις έλαβες δώρο %1$s συμμετοχές στο My Lucky Day Draw!</string> | 29 | <string name="cos_dl_title">Μόλις έλαβες δώρο %1$s συμμετοχές στο My Lucky Day Draw!</string> |
| 30 | + <string name="cos_active_coupons">Έχεις %1$s ενεργά\nκουπόνια</string> | ||
| 31 | + <string name="cos_active_coupon_date">Λήγει σε %1$s ημέρες</string> | ||
| 32 | + <string name="cos_gifts_title2">ΔΩΡΑ</string> | ||
| 33 | + <string name="cos_rewards_title">ΕΠΙΒΡΑΒΕΥΣΕΙΣ</string> | ||
| 34 | + <string name="cos_coupons_title">ΚΟΥΠΟΝΙΑ</string> | ||
| 35 | + <string name="cos_coupon_terms_title">Όροι χρήσης</string> | ||
| 36 | + <string name="cos_redeem_coupon">Απόκτησέ το</string> | ||
| 37 | + <string name="cos_dlg_success_title">Συγχαρητήρια</string> | ||
| 38 | + <string name="cos_dlg_success_subtitle">Το κουπόνι εξαργυρώθηκε με επιτυχία</string> | ||
| 39 | + <string name="cos_dlg_error_title">Αποτυχία</string> | ||
| 40 | + <string name="cos_dlg_error_subtitle">Κάτι πήγε στραβά</string> | ||
| 41 | + <string name="cos_dlg_error_subtitle_non_buyable">Το κουπόνι δεν είναι διαθέσιμο για αγορά</string> | ||
| 42 | + <string name="cos_dlg_error_subtitle_no_points">Δεν έχεις αρκετούς πόντους</string> | ||
| 30 | 43 | ||
| 31 | <string-array name="coupons_array"> | 44 | <string-array name="coupons_array"> |
| 32 | <item>Κουπόνια</item> | 45 | <item>Κουπόνια</item> | ... | ... |
| 1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | <resources> | 2 | <resources> |
| 3 | 3 | ||
| 4 | - <!-- Transparent theme - Does not work in jar export --> | ||
| 5 | - <!--<style name="Theme.Transparent" parent="android:Theme">--> | ||
| 6 | - <!--<item name="android:windowIsTranslucent">true</item>--> | ||
| 7 | - <!--<item name="android:windowBackground">@android:color/transparent</item>--> | ||
| 8 | - <!--<item name="android:windowContentOverlay">@null</item>--> | ||
| 9 | - <!--<item name="android:windowNoTitle">true</item>--> | ||
| 10 | - <!--<item name="android:windowIsFloating">true</item>--> | ||
| 11 | - <!--<item name="android:backgroundDimEnabled">false</item>--> | ||
| 12 | - <!--</style>--> | ||
| 13 | - | ||
| 14 | <style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> | 4 | <style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> |
| 15 | <item name="android:layout_gravity">right</item> | 5 | <item name="android:layout_gravity">right</item> |
| 16 | <!--<item name="colorAccent">#23a890</item>--> | 6 | <!--<item name="colorAccent">#23a890</item>--> | ... | ... |
-
Please register or login to post a comment