Showing
11 changed files
with
334 additions
and
313 deletions
| ... | @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' | ... | @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' |
| 2 | 2 | ||
| 3 | ext { | 3 | ext { |
| 4 | PUBLISH_GROUP_ID = 'ly.warp' | 4 | PUBLISH_GROUP_ID = 'ly.warp' |
| 5 | - PUBLISH_VERSION = '4.5.4.6rc4' | 5 | + PUBLISH_VERSION = '4.5.4.6rc5' |
| 6 | PUBLISH_ARTIFACT_ID = 'warply-android-sdk' | 6 | PUBLISH_ARTIFACT_ID = 'warply-android-sdk' |
| 7 | } | 7 | } |
| 8 | 8 | ||
| ... | @@ -45,7 +45,8 @@ dependencies { | ... | @@ -45,7 +45,8 @@ dependencies { |
| 45 | implementation 'androidx.appcompat:appcompat:1.4.1' | 45 | implementation 'androidx.appcompat:appcompat:1.4.1' |
| 46 | implementation 'androidx.recyclerview:recyclerview:1.2.1' | 46 | implementation 'androidx.recyclerview:recyclerview:1.2.1' |
| 47 | implementation 'androidx.cardview:cardview:1.0.0' | 47 | implementation 'androidx.cardview:cardview:1.0.0' |
| 48 | - api "androidx.security:security-crypto:1.1.0-alpha03" // For minSDK 23 use 1.0.0, for minSDK 21 use 1.1.0 that is currently in alpha | 48 | + api "androidx.security:security-crypto:1.1.0-alpha03" |
| 49 | + // For minSDK 23 use 1.0.0, for minSDK 21 use 1.1.0 that is currently in alpha | ||
| 49 | api 'org.altbeacon:android-beacon-library:2.19.3' | 50 | api 'org.altbeacon:android-beacon-library:2.19.3' |
| 50 | api 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2' | 51 | api 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2' |
| 51 | implementation 'de.hdodenhof:circleimageview:3.1.0' | 52 | implementation 'de.hdodenhof:circleimageview:3.1.0' |
| ... | @@ -59,12 +60,14 @@ dependencies { | ... | @@ -59,12 +60,14 @@ dependencies { |
| 59 | 60 | ||
| 60 | //------------------------------ Firebase -----------------------------// | 61 | //------------------------------ Firebase -----------------------------// |
| 61 | api platform('com.google.firebase:firebase-bom:29.0.3') | 62 | api platform('com.google.firebase:firebase-bom:29.0.3') |
| 62 | - implementation 'com.google.firebase:firebase-messaging' | 63 | + implementation('com.google.firebase:firebase-messaging') { |
| 64 | + exclude group: 'com.google.android.gms', module: 'play-services-location' | ||
| 65 | + } | ||
| 63 | 66 | ||
| 64 | //------------------------------ GMS -----------------------------// | 67 | //------------------------------ GMS -----------------------------// |
| 65 | api 'com.google.android.gms:play-services-base:18.1.0' | 68 | api 'com.google.android.gms:play-services-base:18.1.0' |
| 66 | - implementation 'com.google.android.gms:play-services-location:21.0.0' | 69 | + implementation 'com.google.android.gms:play-services-location:19.0.1' |
| 67 | - implementation 'com.google.android.gms:play-services-maps:18.1.0' | 70 | + implementation 'com.google.android.gms:play-services-maps:18.0.2' |
| 68 | api 'com.google.maps.android:android-maps-utils:0.5' | 71 | api 'com.google.maps.android:android-maps-utils:0.5' |
| 69 | 72 | ||
| 70 | //------------------------------ Work Manager -----------------------------// | 73 | //------------------------------ Work Manager -----------------------------// | ... | ... |
| ... | @@ -225,16 +225,18 @@ public class ContextualActivity extends Activity implements View.OnClickListener | ... | @@ -225,16 +225,18 @@ public class ContextualActivity extends Activity implements View.OnClickListener |
| 225 | } | 225 | } |
| 226 | 226 | ||
| 227 | private void askActivateDialog() { | 227 | private void askActivateDialog() { |
| 228 | - mAlertDialogAskActivate = new AlertDialog.Builder(this) | 228 | + if (!isFinishing()) { |
| 229 | - .setTitle(R.string.cos_dlg_activate_telco_title) | 229 | + mAlertDialogAskActivate = new AlertDialog.Builder(this) |
| 230 | - .setMessage(R.string.cos_dlg_activate_telco_subtitle) | 230 | + .setTitle(R.string.cos_dlg_activate_telco_title) |
| 231 | - .setPositiveButton(R.string.cos_dlg_positive_button, (dialogPositive, whichPositive) -> { | 231 | + .setMessage(R.string.cos_dlg_activate_telco_subtitle) |
| 232 | - activateGift(); | 232 | + .setPositiveButton(R.string.cos_dlg_positive_button, (dialogPositive, whichPositive) -> { |
| 233 | - }) | 233 | + activateGift(); |
| 234 | - .setNegativeButton(R.string.cos_dlg_negative_button2, (dialogNegative, whichNegative) -> { | 234 | + }) |
| 235 | - dialogNegative.dismiss(); | 235 | + .setNegativeButton(R.string.cos_dlg_negative_button2, (dialogNegative, whichNegative) -> { |
| 236 | - }) | 236 | + dialogNegative.dismiss(); |
| 237 | - .show(); | 237 | + }) |
| 238 | + .show(); | ||
| 239 | + } | ||
| 238 | } | 240 | } |
| 239 | 241 | ||
| 240 | private void errorActivatingDialog() { | 242 | private void errorActivatingDialog() { |
| ... | @@ -264,13 +266,15 @@ public class ContextualActivity extends Activity implements View.OnClickListener | ... | @@ -264,13 +266,15 @@ public class ContextualActivity extends Activity implements View.OnClickListener |
| 264 | analyticsEvent.setParameter("successful", "true"); | 266 | analyticsEvent.setParameter("successful", "true"); |
| 265 | EventBus.getDefault().post(new WarplyEventBusManager(analyticsEvent)); | 267 | EventBus.getDefault().post(new WarplyEventBusManager(analyticsEvent)); |
| 266 | 268 | ||
| 267 | - mAlertDialogSuccessActivating = new AlertDialog.Builder(this) | 269 | + if (!isFinishing()) { |
| 268 | - .setTitle(R.string.cos_dlg_activate_success_title) | 270 | + mAlertDialogSuccessActivating = new AlertDialog.Builder(this) |
| 269 | - .setMessage(R.string.cos_dlg_activate_success_subtitle) | 271 | + .setTitle(R.string.cos_dlg_activate_success_title) |
| 270 | - .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 272 | + .setMessage(R.string.cos_dlg_activate_success_subtitle) |
| 271 | - dialogPositive.dismiss(); | 273 | + .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
| 272 | - }) | 274 | + dialogPositive.dismiss(); |
| 273 | - .show(); | 275 | + }) |
| 276 | + .show(); | ||
| 277 | + } | ||
| 274 | } | 278 | } |
| 275 | 279 | ||
| 276 | // =========================================================== | 280 | // =========================================================== | ... | ... |
| ... | @@ -216,84 +216,96 @@ public class CouponShareActivity extends Activity implements View.OnClickListene | ... | @@ -216,84 +216,96 @@ public class CouponShareActivity extends Activity implements View.OnClickListene |
| 216 | } | 216 | } |
| 217 | 217 | ||
| 218 | private void acceptSharingDialog() { | 218 | private void acceptSharingDialog() { |
| 219 | - mAlertDialogSuccessSharing = new AlertDialog.Builder(this) | 219 | + if (!isFinishing()) { |
| 220 | - .setTitle(R.string.cos_dlg_success_title) | 220 | + mAlertDialogSuccessSharing = new AlertDialog.Builder(this) |
| 221 | - .setMessage(R.string.cos_dlg_positive_coupon_text) | 221 | + .setTitle(R.string.cos_dlg_success_title) |
| 222 | - .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 222 | + .setMessage(R.string.cos_dlg_positive_coupon_text) |
| 223 | - dialogPositive.dismiss(); | 223 | + .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
| 224 | - if (mIsFromWallet) { | 224 | + dialogPositive.dismiss(); |
| 225 | - setResult(RESULT_OK, new Intent()); | 225 | + if (mIsFromWallet) { |
| 226 | - onBackPressed(); | 226 | + setResult(RESULT_OK, new Intent()); |
| 227 | - } | 227 | + onBackPressed(); |
| 228 | - }) | 228 | + } |
| 229 | - .show(); | 229 | + }) |
| 230 | + .show(); | ||
| 231 | + } | ||
| 230 | } | 232 | } |
| 231 | 233 | ||
| 232 | private void errorSharingDialog() { | 234 | private void errorSharingDialog() { |
| 233 | - mAlertDialogErrorSharing = new AlertDialog.Builder(this) | 235 | + if (!isFinishing()) { |
| 234 | - .setTitle(R.string.cos_dlg_error_title) | 236 | + mAlertDialogErrorSharing = new AlertDialog.Builder(this) |
| 235 | - .setMessage(R.string.cos_dlg_error_subtitle) | 237 | + .setTitle(R.string.cos_dlg_error_title) |
| 236 | - .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 238 | + .setMessage(R.string.cos_dlg_error_subtitle) |
| 237 | - dialogPositive.dismiss(); | 239 | + .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
| 238 | - }) | 240 | + dialogPositive.dismiss(); |
| 239 | - .show(); | 241 | + }) |
| 242 | + .show(); | ||
| 243 | + } | ||
| 240 | } | 244 | } |
| 241 | 245 | ||
| 242 | private void wrongNumberDialog(String message) { | 246 | private void wrongNumberDialog(String message) { |
| 243 | - mAlertDialogWrongNumberSharing = new AlertDialog.Builder(this) | 247 | + if (!isFinishing()) { |
| 244 | - .setTitle(R.string.cos_dlg_error_title) | 248 | + mAlertDialogWrongNumberSharing = new AlertDialog.Builder(this) |
| 245 | - .setMessage(message) | 249 | + .setTitle(R.string.cos_dlg_error_title) |
| 246 | - .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 250 | + .setMessage(message) |
| 247 | - dialogPositive.dismiss(); | 251 | + .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
| 248 | - }) | 252 | + dialogPositive.dismiss(); |
| 249 | - .show(); | 253 | + }) |
| 254 | + .show(); | ||
| 255 | + } | ||
| 250 | } | 256 | } |
| 251 | 257 | ||
| 252 | private void errorSharingDialog2() { | 258 | private void errorSharingDialog2() { |
| 253 | - mAlertDialogErrorSharing = new AlertDialog.Builder(this) | 259 | + if (!isFinishing()) { |
| 254 | - .setTitle(R.string.cos_dlg_error_title2) | 260 | + mAlertDialogErrorSharing = new AlertDialog.Builder(this) |
| 255 | - .setMessage(R.string.cos_dlg_error_subtitle2) | 261 | + .setTitle(R.string.cos_dlg_error_title2) |
| 256 | - .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 262 | + .setMessage(R.string.cos_dlg_error_subtitle2) |
| 257 | - dialogPositive.dismiss(); | 263 | + .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
| 258 | - }) | 264 | + dialogPositive.dismiss(); |
| 259 | - .show(); | 265 | + }) |
| 266 | + .show(); | ||
| 267 | + } | ||
| 260 | } | 268 | } |
| 261 | 269 | ||
| 262 | private void showNoAssetsDialog() { | 270 | private void showNoAssetsDialog() { |
| 263 | - mAlertDialogNoAssets = new AlertDialog.Builder(this) | 271 | + if (!isFinishing()) { |
| 264 | - .setTitle(R.string.cos_coupon_gift) | 272 | + mAlertDialogNoAssets = new AlertDialog.Builder(this) |
| 265 | - .setMessage(R.string.cos_share_no_assets) | 273 | + .setTitle(R.string.cos_coupon_gift) |
| 266 | - .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 274 | + .setMessage(R.string.cos_share_no_assets) |
| 267 | - dialogPositive.dismiss(); | 275 | + .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
| 268 | - onBackPressed(); | 276 | + dialogPositive.dismiss(); |
| 269 | - }) | 277 | + onBackPressed(); |
| 270 | - .show(); | 278 | + }) |
| 279 | + .show(); | ||
| 280 | + } | ||
| 271 | } | 281 | } |
| 272 | 282 | ||
| 273 | private void askSharingDialog() { | 283 | private void askSharingDialog() { |
| 274 | - mAlertDialogCouponAskSharing = new AlertDialog.Builder(this) | 284 | + if (!isFinishing()) { |
| 275 | - .setTitle(R.string.cos_dlg_positive_coupon_title) | 285 | + mAlertDialogCouponAskSharing = new AlertDialog.Builder(this) |
| 276 | - .setMessage(R.string.cos_dlg_positive_coupon_subtitle) | 286 | + .setTitle(R.string.cos_dlg_positive_coupon_title) |
| 277 | - .setPositiveButton(R.string.cos_dlg_negative_button3, (dialogPositive, whichPositive) -> { | 287 | + .setMessage(R.string.cos_dlg_positive_coupon_subtitle) |
| 278 | - WarplyAnalyticsManager.logTrackersEvent(this, "click", ("ShareCoupon") | 288 | + .setPositiveButton(R.string.cos_dlg_negative_button3, (dialogPositive, whichPositive) -> { |
| 279 | - .concat(":") | 289 | + WarplyAnalyticsManager.logTrackersEvent(this, "click", ("ShareCoupon") |
| 280 | - .concat(mCoupon.getName())); | 290 | + .concat(":") |
| 281 | - | 291 | + .concat(mCoupon.getName())); |
| 282 | - new Thread(() -> { | 292 | + |
| 283 | - if (!Thread.currentThread().isInterrupted()) { | 293 | + new Thread(() -> { |
| 284 | - WarplyManager.cosmoteCouponSharing(new CosmoteCouponSharingRequest() | 294 | + if (!Thread.currentThread().isInterrupted()) { |
| 285 | - .setCoupon(mCoupon.getCoupon()) | 295 | + WarplyManager.cosmoteCouponSharing(new CosmoteCouponSharingRequest() |
| 286 | - .setSender(mSender) | 296 | + .setCoupon(mCoupon.getCoupon()) |
| 287 | - .setReceiver(mEdtReceiver.getText().toString()) | 297 | + .setSender(mSender) |
| 288 | - , mCouponSharingCallback); | 298 | + .setReceiver(mEdtReceiver.getText().toString()) |
| 289 | - } | 299 | + , mCouponSharingCallback); |
| 290 | - Thread.currentThread().interrupt(); | 300 | + } |
| 291 | - }).start(); | 301 | + Thread.currentThread().interrupt(); |
| 292 | - }) | 302 | + }).start(); |
| 293 | - .setNegativeButton(R.string.cos_dlg_negative_button2, (dialogNegative, whichNegative) -> { | 303 | + }) |
| 294 | - dialogNegative.dismiss(); | 304 | + .setNegativeButton(R.string.cos_dlg_negative_button2, (dialogNegative, whichNegative) -> { |
| 295 | - }) | 305 | + dialogNegative.dismiss(); |
| 296 | - .show(); | 306 | + }) |
| 307 | + .show(); | ||
| 308 | + } | ||
| 297 | } | 309 | } |
| 298 | 310 | ||
| 299 | private final CallbackReceiver<Consumer> mConsumerCallback = new CallbackReceiver<Consumer>() { | 311 | private final CallbackReceiver<Consumer> mConsumerCallback = new CallbackReceiver<Consumer>() { | ... | ... |
| ... | @@ -236,17 +236,19 @@ public class CouponsetInfoActivity extends Activity implements View.OnClickListe | ... | @@ -236,17 +236,19 @@ public class CouponsetInfoActivity extends Activity implements View.OnClickListe |
| 236 | analyticsEvent.setParameter("successful", "true"); | 236 | analyticsEvent.setParameter("successful", "true"); |
| 237 | EventBus.getDefault().post(new WarplyEventBusManager(analyticsEvent)); | 237 | EventBus.getDefault().post(new WarplyEventBusManager(analyticsEvent)); |
| 238 | 238 | ||
| 239 | - mAlertDialogCouponset = new AlertDialog.Builder(this) | 239 | + if (!isFinishing()) { |
| 240 | - .setTitle(R.string.cos_dlg_success_couponset_title) | 240 | + mAlertDialogCouponset = new AlertDialog.Builder(this) |
| 241 | - .setMessage(R.string.cos_dlg_success_couponset_subtitle) | 241 | + .setTitle(R.string.cos_dlg_success_couponset_title) |
| 242 | - .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 242 | + .setMessage(R.string.cos_dlg_success_couponset_subtitle) |
| 243 | - dialogPositive.dismiss(); | 243 | + .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
| 244 | - if (success) { | 244 | + dialogPositive.dismiss(); |
| 245 | + if (success) { | ||
| 245 | // setResult(RESULT_OK, new Intent()); | 246 | // setResult(RESULT_OK, new Intent()); |
| 246 | - onBackPressed(); | 247 | + onBackPressed(); |
| 247 | - } | 248 | + } |
| 248 | - }) | 249 | + }) |
| 249 | - .show(); | 250 | + .show(); |
| 251 | + } | ||
| 250 | } else { | 252 | } else { |
| 251 | LoyaltySDKFirebaseEventModel analyticsEvent = new LoyaltySDKFirebaseEventModel(); | 253 | LoyaltySDKFirebaseEventModel analyticsEvent = new LoyaltySDKFirebaseEventModel(); |
| 252 | analyticsEvent.setEventName("loyalty_offer_activated"); | 254 | analyticsEvent.setEventName("loyalty_offer_activated"); |
| ... | @@ -256,51 +258,61 @@ public class CouponsetInfoActivity extends Activity implements View.OnClickListe | ... | @@ -256,51 +258,61 @@ public class CouponsetInfoActivity extends Activity implements View.OnClickListe |
| 256 | EventBus.getDefault().post(new WarplyEventBusManager(analyticsEvent)); | 258 | EventBus.getDefault().post(new WarplyEventBusManager(analyticsEvent)); |
| 257 | 259 | ||
| 258 | if (status == 3) { | 260 | if (status == 3) { |
| 259 | - mAlertDialogCouponset = new AlertDialog.Builder(this) | 261 | + if (!isFinishing()) { |
| 260 | - .setTitle(R.string.cos_dlg_error_title) | 262 | + mAlertDialogCouponset = new AlertDialog.Builder(this) |
| 261 | - .setMessage(R.string.cos_dlg_error_subtitle_non_buyable) | 263 | + .setTitle(R.string.cos_dlg_error_title) |
| 262 | - .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 264 | + .setMessage(R.string.cos_dlg_error_subtitle_non_buyable) |
| 263 | - dialogPositive.dismiss(); | 265 | + .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
| 264 | - }) | 266 | + dialogPositive.dismiss(); |
| 265 | - .show(); | 267 | + }) |
| 268 | + .show(); | ||
| 269 | + } | ||
| 266 | } else if (status == 5) { | 270 | } else if (status == 5) { |
| 267 | - mAlertDialogCouponset = new AlertDialog.Builder(this) | 271 | + if (!isFinishing()) { |
| 268 | - .setTitle(R.string.cos_dlg_error_title) | 272 | + mAlertDialogCouponset = new AlertDialog.Builder(this) |
| 269 | - .setMessage(R.string.cos_dlg_error_subtitle_no_points) | 273 | + .setTitle(R.string.cos_dlg_error_title) |
| 270 | - .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 274 | + .setMessage(R.string.cos_dlg_error_subtitle_no_points) |
| 271 | - dialogPositive.dismiss(); | 275 | + .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
| 272 | - }) | 276 | + dialogPositive.dismiss(); |
| 273 | - .show(); | 277 | + }) |
| 278 | + .show(); | ||
| 279 | + } | ||
| 274 | } else if (status == 6) { | 280 | } else if (status == 6) { |
| 275 | - mAlertDialogCouponset = new AlertDialog.Builder(this) | 281 | + if (!isFinishing()) { |
| 276 | - .setTitle(R.string.cos_dlg_coupon_depleted_title) | 282 | + mAlertDialogCouponset = new AlertDialog.Builder(this) |
| 277 | - .setMessage(R.string.cos_dlg_coupon_depleted_message) | 283 | + .setTitle(R.string.cos_dlg_coupon_depleted_title) |
| 278 | - .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 284 | + .setMessage(R.string.cos_dlg_coupon_depleted_message) |
| 279 | - dialogPositive.dismiss(); | 285 | + .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
| 280 | - }) | 286 | + dialogPositive.dismiss(); |
| 281 | - .show(); | 287 | + }) |
| 288 | + .show(); | ||
| 289 | + } | ||
| 282 | } else { | 290 | } else { |
| 283 | - mAlertDialogCouponset = new AlertDialog.Builder(this) | 291 | + if (!isFinishing()) { |
| 284 | - .setTitle(R.string.cos_dlg_error_title) | 292 | + mAlertDialogCouponset = new AlertDialog.Builder(this) |
| 285 | - .setMessage(R.string.cos_dlg_error_subtitle) | 293 | + .setTitle(R.string.cos_dlg_error_title) |
| 286 | - .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 294 | + .setMessage(R.string.cos_dlg_error_subtitle) |
| 287 | - dialogPositive.dismiss(); | 295 | + .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
| 288 | - }) | 296 | + dialogPositive.dismiss(); |
| 289 | - .show(); | 297 | + }) |
| 298 | + .show(); | ||
| 299 | + } | ||
| 290 | } | 300 | } |
| 291 | } | 301 | } |
| 292 | } | 302 | } |
| 293 | 303 | ||
| 294 | private void nonTelcoDialog() { | 304 | private void nonTelcoDialog() { |
| 295 | - mAlertDialogNonTelco = new AlertDialog.Builder(this) | 305 | + if (!isFinishing()) { |
| 296 | - .setTitle(R.string.cos_dlg_non_telco_title) | 306 | + mAlertDialogNonTelco = new AlertDialog.Builder(this) |
| 297 | - .setMessage(R.string.cos_dlg_non_telco) | 307 | + .setTitle(R.string.cos_dlg_non_telco_title) |
| 298 | - .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 308 | + .setMessage(R.string.cos_dlg_non_telco) |
| 299 | - dialogPositive.dismiss(); | 309 | + .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
| 300 | - onBackPressed(); | 310 | + dialogPositive.dismiss(); |
| 301 | - }) | 311 | + onBackPressed(); |
| 302 | - .setCancelable(false) | 312 | + }) |
| 303 | - .show(); | 313 | + .setCancelable(false) |
| 314 | + .show(); | ||
| 315 | + } | ||
| 304 | } | 316 | } |
| 305 | 317 | ||
| 306 | // =========================================================== | 318 | // =========================================================== | ... | ... |
| ... | @@ -514,15 +514,17 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener, Vie | ... | @@ -514,15 +514,17 @@ public class LoyaltyWallet extends Activity implements View.OnClickListener, Vie |
| 514 | } | 514 | } |
| 515 | 515 | ||
| 516 | private void nonTelcoDialog() { | 516 | private void nonTelcoDialog() { |
| 517 | - mAlertDialogNonTelco = new AlertDialog.Builder(this) | 517 | + if (!isFinishing()) { |
| 518 | - .setTitle(R.string.cos_dlg_non_telco_title) | 518 | + mAlertDialogNonTelco = new AlertDialog.Builder(this) |
| 519 | - .setMessage(R.string.cos_dlg_non_telco) | 519 | + .setTitle(R.string.cos_dlg_non_telco_title) |
| 520 | - .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 520 | + .setMessage(R.string.cos_dlg_non_telco) |
| 521 | - dialogPositive.dismiss(); | 521 | + .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
| 522 | - onBackPressed(); | 522 | + dialogPositive.dismiss(); |
| 523 | - }) | 523 | + onBackPressed(); |
| 524 | - .setCancelable(false) | 524 | + }) |
| 525 | - .show(); | 525 | + .setCancelable(false) |
| 526 | + .show(); | ||
| 527 | + } | ||
| 526 | } | 528 | } |
| 527 | 529 | ||
| 528 | // =========================================================== | 530 | // =========================================================== | ... | ... |
| ... | @@ -265,20 +265,22 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe | ... | @@ -265,20 +265,22 @@ public class ShopsActivity extends FragmentActivity implements View.OnClickListe |
| 265 | // =========================================================== | 265 | // =========================================================== |
| 266 | 266 | ||
| 267 | private void showNoShopsAvailableDialog() { | 267 | private void showNoShopsAvailableDialog() { |
| 268 | - mAlertDialogNoShopsAvailable = new AlertDialog.Builder(this) | 268 | + if (!isFinishing()) { |
| 269 | - .setTitle(R.string.cos_dlg_no_shops_title) | 269 | + mAlertDialogNoShopsAvailable = new AlertDialog.Builder(this) |
| 270 | - .setMessage(R.string.cos_dlg_no_shops) | 270 | + .setTitle(R.string.cos_dlg_no_shops_title) |
| 271 | - .setCancelable(false) | 271 | + .setMessage(R.string.cos_dlg_no_shops) |
| 272 | - .setPositiveButton(R.string.cos_dlg_no_shops_positive, (dialogPositive, whichPositive) -> { | 272 | + .setCancelable(false) |
| 273 | - dialogPositive.dismiss(); | 273 | + .setPositiveButton(R.string.cos_dlg_no_shops_positive, (dialogPositive, whichPositive) -> { |
| 274 | - openWebsite(); | 274 | + dialogPositive.dismiss(); |
| 275 | - | 275 | + openWebsite(); |
| 276 | - }) | 276 | + |
| 277 | - .setNegativeButton(R.string.cos_dlg_negative_button2, (dialogNegative, whichNegative) -> { | 277 | + }) |
| 278 | - dialogNegative.dismiss(); | 278 | + .setNegativeButton(R.string.cos_dlg_negative_button2, (dialogNegative, whichNegative) -> { |
| 279 | - onBackPressed(); | 279 | + dialogNegative.dismiss(); |
| 280 | - }) | 280 | + onBackPressed(); |
| 281 | - .show(); | 281 | + }) |
| 282 | + .show(); | ||
| 283 | + } | ||
| 282 | } | 284 | } |
| 283 | 285 | ||
| 284 | private void openWebsite() { | 286 | private void openWebsite() { | ... | ... |
| ... | @@ -259,16 +259,18 @@ public class TelcoActivity extends Activity implements View.OnClickListener { | ... | @@ -259,16 +259,18 @@ public class TelcoActivity extends Activity implements View.OnClickListener { |
| 259 | } | 259 | } |
| 260 | 260 | ||
| 261 | private void askActivateDialog() { | 261 | private void askActivateDialog() { |
| 262 | - mAlertDialogAskActivate = new AlertDialog.Builder(this) | 262 | + if (!isFinishing()) { |
| 263 | - .setTitle(R.string.cos_dlg_activate_telco_title) | 263 | + mAlertDialogAskActivate = new AlertDialog.Builder(this) |
| 264 | - .setMessage(R.string.cos_dlg_activate_telco_subtitle) | 264 | + .setTitle(R.string.cos_dlg_activate_telco_title) |
| 265 | - .setPositiveButton(R.string.cos_dlg_positive_button, (dialogPositive, whichPositive) -> { | 265 | + .setMessage(R.string.cos_dlg_activate_telco_subtitle) |
| 266 | - activateGift(); | 266 | + .setPositiveButton(R.string.cos_dlg_positive_button, (dialogPositive, whichPositive) -> { |
| 267 | - }) | 267 | + activateGift(); |
| 268 | - .setNegativeButton(R.string.cos_dlg_negative_button2, (dialogNegative, whichNegative) -> { | 268 | + }) |
| 269 | - dialogNegative.dismiss(); | 269 | + .setNegativeButton(R.string.cos_dlg_negative_button2, (dialogNegative, whichNegative) -> { |
| 270 | - }) | 270 | + dialogNegative.dismiss(); |
| 271 | - .show(); | 271 | + }) |
| 272 | + .show(); | ||
| 273 | + } | ||
| 272 | } | 274 | } |
| 273 | 275 | ||
| 274 | private void errorActivatingDialog() { | 276 | private void errorActivatingDialog() { |
| ... | @@ -279,13 +281,15 @@ public class TelcoActivity extends Activity implements View.OnClickListener { | ... | @@ -279,13 +281,15 @@ public class TelcoActivity extends Activity implements View.OnClickListener { |
| 279 | analyticsEvent.setParameter("successful", "false"); | 281 | analyticsEvent.setParameter("successful", "false"); |
| 280 | EventBus.getDefault().post(new WarplyEventBusManager(analyticsEvent)); | 282 | EventBus.getDefault().post(new WarplyEventBusManager(analyticsEvent)); |
| 281 | 283 | ||
| 282 | - mAlertDialogErrorActivating = new AlertDialog.Builder(this) | 284 | + if (!isFinishing()) { |
| 283 | - .setTitle(R.string.cos_dlg_error_title) | 285 | + mAlertDialogErrorActivating = new AlertDialog.Builder(this) |
| 284 | - .setMessage(R.string.cos_dlg_error_subtitle) | 286 | + .setTitle(R.string.cos_dlg_error_title) |
| 285 | - .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 287 | + .setMessage(R.string.cos_dlg_error_subtitle) |
| 286 | - dialogPositive.dismiss(); | 288 | + .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
| 287 | - }) | 289 | + dialogPositive.dismiss(); |
| 288 | - .show(); | 290 | + }) |
| 291 | + .show(); | ||
| 292 | + } | ||
| 289 | } | 293 | } |
| 290 | 294 | ||
| 291 | private void successActivatingDialog() { | 295 | private void successActivatingDialog() { |
| ... | @@ -296,13 +300,15 @@ public class TelcoActivity extends Activity implements View.OnClickListener { | ... | @@ -296,13 +300,15 @@ public class TelcoActivity extends Activity implements View.OnClickListener { |
| 296 | analyticsEvent.setParameter("successful", "true"); | 300 | analyticsEvent.setParameter("successful", "true"); |
| 297 | EventBus.getDefault().post(new WarplyEventBusManager(analyticsEvent)); | 301 | EventBus.getDefault().post(new WarplyEventBusManager(analyticsEvent)); |
| 298 | 302 | ||
| 299 | - mAlertDialogSuccessActivating = new AlertDialog.Builder(this) | 303 | + if (!isFinishing()) { |
| 300 | - .setTitle(R.string.cos_dlg_activate_success_title) | 304 | + mAlertDialogSuccessActivating = new AlertDialog.Builder(this) |
| 301 | - .setMessage(R.string.cos_dlg_activate_success_subtitle) | 305 | + .setTitle(R.string.cos_dlg_activate_success_title) |
| 302 | - .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { | 306 | + .setMessage(R.string.cos_dlg_activate_success_subtitle) |
| 303 | - dialogPositive.dismiss(); | 307 | + .setPositiveButton(R.string.cos_dlg_positive_button2, (dialogPositive, whichPositive) -> { |
| 304 | - }) | 308 | + dialogPositive.dismiss(); |
| 305 | - .show(); | 309 | + }) |
| 310 | + .show(); | ||
| 311 | + } | ||
| 306 | } | 312 | } |
| 307 | 313 | ||
| 308 | // =========================================================== | 314 | // =========================================================== | ... | ... |
| ... | @@ -16,8 +16,8 @@ | ... | @@ -16,8 +16,8 @@ |
| 16 | android:layout_width="48dp" | 16 | android:layout_width="48dp" |
| 17 | android:layout_height="48dp" | 17 | android:layout_height="48dp" |
| 18 | android:layout_marginStart="16dp" | 18 | android:layout_marginStart="16dp" |
| 19 | - android:src="@drawable/ic_back" | ||
| 20 | android:scaleType="centerInside" | 19 | android:scaleType="centerInside" |
| 20 | + android:src="@drawable/ic_back" | ||
| 21 | app:layout_constraintBottom_toBottomOf="parent" | 21 | app:layout_constraintBottom_toBottomOf="parent" |
| 22 | app:layout_constraintStart_toStartOf="parent" | 22 | app:layout_constraintStart_toStartOf="parent" |
| 23 | app:layout_constraintTop_toTopOf="parent" /> | 23 | app:layout_constraintTop_toTopOf="parent" /> |
| ... | @@ -39,160 +39,134 @@ | ... | @@ -39,160 +39,134 @@ |
| 39 | android:layout_width="match_parent" | 39 | android:layout_width="match_parent" |
| 40 | android:layout_height="match_parent" | 40 | android:layout_height="match_parent" |
| 41 | android:layout_below="@+id/cl_loyalty_wallet_header" | 41 | android:layout_below="@+id/cl_loyalty_wallet_header" |
| 42 | + android:background="@android:color/white" | ||
| 42 | android:fillViewport="true"> | 43 | android:fillViewport="true"> |
| 43 | 44 | ||
| 44 | - <RelativeLayout | 45 | + <LinearLayout |
| 46 | + android:id="@+id/cl_loyalty_info_view_inner" | ||
| 45 | android:layout_width="match_parent" | 47 | android:layout_width="match_parent" |
| 46 | - android:layout_height="match_parent" | 48 | + android:layout_height="wrap_content" |
| 47 | - android:background="@android:color/white"> | 49 | + android:background="@android:color/white" |
| 50 | + android:gravity="center_horizontal" | ||
| 51 | + android:orientation="vertical" | ||
| 52 | + android:paddingBottom="48dp"> | ||
| 48 | 53 | ||
| 49 | - <!-- android:background="@drawable/shape_cos_loyalty_white"--> | 54 | + <ImageView |
| 50 | - <androidx.constraintlayout.widget.ConstraintLayout | 55 | + android:id="@+id/imageView6" |
| 51 | - android:id="@+id/cl_loyalty_info_view_inner" | ||
| 52 | android:layout_width="match_parent" | 56 | android:layout_width="match_parent" |
| 53 | - android:layout_height="match_parent" | 57 | + android:layout_height="253dp" |
| 54 | - app:layout_constraintEnd_toEndOf="parent" | 58 | + android:layout_marginTop="0.5dp" |
| 55 | - app:layout_constraintStart_toStartOf="parent" | 59 | + android:scaleType="centerCrop" |
| 56 | - app:layout_constraintTop_toTopOf="parent"> | 60 | + tools:src="@drawable/carousel_banner" /> |
| 57 | - | 61 | + |
| 58 | - <ImageView | 62 | + <TextView |
| 59 | - android:id="@+id/imageView6" | 63 | + android:id="@+id/textView13" |
| 60 | - android:layout_width="match_parent" | 64 | + fontPath="fonts/pf_square_sans_pro_medium.ttf" |
| 61 | - android:layout_height="253dp" | 65 | + android:layout_width="match_parent" |
| 62 | - android:layout_marginTop="0.5dp" | 66 | + android:layout_height="wrap_content" |
| 63 | - android:scaleType="centerCrop" | 67 | + android:layout_marginTop="32dp" |
| 64 | - app:layout_constraintStart_toStartOf="parent" | 68 | + android:gravity="center" |
| 65 | - app:layout_constraintTop_toTopOf="parent" | 69 | + android:paddingHorizontal="32dp" |
| 66 | - tools:src="@drawable/carousel_banner" /> | 70 | + android:textColor="#415564" |
| 67 | - | 71 | + android:textSize="18sp" |
| 68 | - <LinearLayout | 72 | + tools:text="Πάρε δωρεάν μηνιαία πακέτα με πάνες στα supermarket Σκλαβενίτης!" /> |
| 69 | - android:layout_width="match_parent" | 73 | + |
| 70 | - android:layout_height="wrap_content" | 74 | + <TextView |
| 71 | - android:background="@drawable/ic_line" | 75 | + android:id="@+id/textView14" |
| 72 | - app:layout_constraintEnd_toEndOf="parent" | 76 | + fontPath="fonts/pf_square_sans_pro_regular.ttf" |
| 73 | - app:layout_constraintStart_toStartOf="parent" | 77 | + android:layout_width="match_parent" |
| 74 | - app:layout_constraintTop_toTopOf="@+id/imageView6"> | 78 | + android:layout_height="wrap_content" |
| 75 | - | 79 | + android:layout_marginTop="16dp" |
| 76 | - </LinearLayout> | 80 | + android:gravity="center" |
| 81 | + android:paddingHorizontal="32dp" | ||
| 82 | + android:textColor="#415564" | ||
| 83 | + android:textSize="16sp" | ||
| 84 | + tools:text="Χρησιμοποίησε τον παρακάτω κωδικό και πάρε δωρεάν πακέτο πάνες Pampers αποκλειστικά στα Supermarket Σκλαβενίτης" /> | ||
| 85 | + | ||
| 86 | + <LinearLayout | ||
| 87 | + android:id="@+id/ll_get_gift" | ||
| 88 | + android:layout_width="240dp" | ||
| 89 | + android:layout_height="50dp" | ||
| 90 | + android:layout_marginHorizontal="32dp" | ||
| 91 | + android:layout_marginTop="@dimen/marginTop" | ||
| 92 | + android:background="@drawable/selector_button_green" | ||
| 93 | + android:gravity="center" | ||
| 94 | + android:orientation="horizontal"> | ||
| 77 | 95 | ||
| 78 | <TextView | 96 | <TextView |
| 79 | - android:id="@+id/textView13" | ||
| 80 | fontPath="fonts/pf_square_sans_pro_medium.ttf" | 97 | fontPath="fonts/pf_square_sans_pro_medium.ttf" |
| 81 | - android:layout_width="match_parent" | 98 | + android:layout_width="wrap_content" |
| 82 | - android:layout_height="wrap_content" | ||
| 83 | - android:layout_marginTop="32dp" | ||
| 84 | - android:gravity="center" | ||
| 85 | - android:paddingHorizontal="32dp" | ||
| 86 | - android:textColor="#415564" | ||
| 87 | - android:textSize="18sp" | ||
| 88 | - app:layout_constraintEnd_toEndOf="parent" | ||
| 89 | - app:layout_constraintHorizontal_bias="0.509" | ||
| 90 | - app:layout_constraintStart_toStartOf="parent" | ||
| 91 | - app:layout_constraintTop_toBottomOf="@+id/imageView6" | ||
| 92 | - tools:text="Πάρε δωρεάν μηνιαία πακέτα με πάνες στα supermarket Σκλαβενίτης!" /> | ||
| 93 | - | ||
| 94 | - <TextView | ||
| 95 | - android:id="@+id/textView14" | ||
| 96 | - fontPath="fonts/pf_square_sans_pro_regular.ttf" | ||
| 97 | - android:layout_width="match_parent" | ||
| 98 | android:layout_height="wrap_content" | 99 | android:layout_height="wrap_content" |
| 99 | - android:layout_marginTop="16dp" | ||
| 100 | android:gravity="center" | 100 | android:gravity="center" |
| 101 | - android:paddingHorizontal="32dp" | 101 | + android:text="@string/cos_redeem_coupon" |
| 102 | - android:textColor="#415564" | 102 | + android:textColor="@color/white" |
| 103 | - android:textSize="16sp" | 103 | + android:textSize="17dp" /> |
| 104 | - app:layout_constraintEnd_toEndOf="parent" | 104 | + </LinearLayout> |
| 105 | - app:layout_constraintStart_toStartOf="parent" | 105 | + |
| 106 | - app:layout_constraintTop_toBottomOf="@+id/textView13" | 106 | + <RelativeLayout |
| 107 | - tools:text="Χρησιμοποίησε τον παρακάτω κωδικό και πάρε δωρεάν πακέτο πάνες Pampers αποκλειστικά στα Supermarket Σκλαβενίτης" /> | 107 | + android:id="@+id/rl_terms" |
| 108 | + android:layout_width="wrap_content" | ||
| 109 | + android:layout_height="wrap_content" | ||
| 110 | + android:layout_marginTop="32dp" | ||
| 111 | + android:gravity="center"> | ||
| 108 | 112 | ||
| 109 | <LinearLayout | 113 | <LinearLayout |
| 110 | - android:id="@+id/ll_get_gift" | 114 | + android:id="@+id/ll_terms_inner" |
| 111 | - android:layout_width="240dp" | 115 | + android:layout_width="wrap_content" |
| 112 | - android:layout_height="50dp" | 116 | + android:layout_height="wrap_content" |
| 113 | - android:layout_marginHorizontal="32dp" | 117 | + android:layout_centerHorizontal="true" |
| 114 | - android:layout_marginBottom="32dp" | ||
| 115 | - android:background="@drawable/selector_button_green" | ||
| 116 | android:gravity="center" | 118 | android:gravity="center" |
| 117 | - android:orientation="horizontal" | 119 | + android:orientation="horizontal"> |
| 118 | - app:layout_constraintBottom_toTopOf="@+id/rl_terms" | ||
| 119 | - app:layout_constraintEnd_toEndOf="parent" | ||
| 120 | - app:layout_constraintStart_toStartOf="parent"> | ||
| 121 | 120 | ||
| 122 | <TextView | 121 | <TextView |
| 122 | + android:id="@+id/tv_terms" | ||
| 123 | fontPath="fonts/pf_square_sans_pro_medium.ttf" | 123 | fontPath="fonts/pf_square_sans_pro_medium.ttf" |
| 124 | android:layout_width="wrap_content" | 124 | android:layout_width="wrap_content" |
| 125 | android:layout_height="wrap_content" | 125 | android:layout_height="wrap_content" |
| 126 | - android:gravity="center" | 126 | + android:text="@string/cos_coupon_terms_title" |
| 127 | - android:text="@string/cos_redeem_coupon" | 127 | + android:textColor="@color/grey" |
| 128 | - android:textColor="@color/white" | 128 | + android:textSize="16sp" /> |
| 129 | - android:textSize="17dp" /> | 129 | + |
| 130 | + <ImageView | ||
| 131 | + android:id="@+id/iv_terms_arrow" | ||
| 132 | + android:layout_width="14dp" | ||
| 133 | + android:layout_height="14dp" | ||
| 134 | + android:layout_marginStart="6dp" | ||
| 135 | + android:src="@drawable/ic_down_dark_new" /> | ||
| 130 | </LinearLayout> | 136 | </LinearLayout> |
| 131 | 137 | ||
| 132 | - <RelativeLayout | 138 | + <TextView |
| 133 | - android:id="@+id/rl_terms" | 139 | + android:id="@+id/tv_terms_value" |
| 140 | + fontPath="fonts/pf_square_sans_pro_regular.ttf" | ||
| 134 | android:layout_width="wrap_content" | 141 | android:layout_width="wrap_content" |
| 135 | android:layout_height="wrap_content" | 142 | android:layout_height="wrap_content" |
| 136 | - android:layout_marginVertical="32dp" | 143 | + android:layout_below="@+id/ll_terms_inner" |
| 137 | - android:gravity="center" | 144 | + android:layout_marginHorizontal="64dp" |
| 138 | - app:layout_constraintBottom_toBottomOf="parent" | 145 | + android:layout_marginTop="16dp" |
| 139 | - app:layout_constraintEnd_toEndOf="parent" | 146 | + android:textColor="@color/grey" |
| 140 | - app:layout_constraintStart_toStartOf="parent"> | ||
| 141 | - | ||
| 142 | - <LinearLayout | ||
| 143 | - android:id="@+id/ll_terms_inner" | ||
| 144 | - android:layout_width="wrap_content" | ||
| 145 | - android:layout_height="wrap_content" | ||
| 146 | - android:layout_centerHorizontal="true" | ||
| 147 | - android:gravity="center" | ||
| 148 | - android:orientation="horizontal"> | ||
| 149 | - | ||
| 150 | - <TextView | ||
| 151 | - android:id="@+id/tv_terms" | ||
| 152 | - fontPath="fonts/pf_square_sans_pro_medium.ttf" | ||
| 153 | - android:layout_width="wrap_content" | ||
| 154 | - android:layout_height="wrap_content" | ||
| 155 | - android:text="@string/cos_coupon_terms_title" | ||
| 156 | - android:textColor="@color/grey" | ||
| 157 | - android:textSize="16sp" /> | ||
| 158 | - | ||
| 159 | - <ImageView | ||
| 160 | - android:id="@+id/iv_terms_arrow" | ||
| 161 | - android:layout_width="14dp" | ||
| 162 | - android:layout_height="14dp" | ||
| 163 | - android:layout_marginStart="6dp" | ||
| 164 | - android:layout_marginTop="2dp" | ||
| 165 | - android:src="@drawable/ic_down_dark_new" /> | ||
| 166 | - </LinearLayout> | ||
| 167 | - | ||
| 168 | - <TextView | ||
| 169 | - android:id="@+id/tv_terms_value" | ||
| 170 | - fontPath="fonts/pf_square_sans_pro_regular.ttf" | ||
| 171 | - android:layout_width="wrap_content" | ||
| 172 | - android:layout_height="wrap_content" | ||
| 173 | - android:layout_below="@+id/ll_terms_inner" | ||
| 174 | - android:layout_marginTop="16dp" | ||
| 175 | - android:layout_marginHorizontal="64dp" | ||
| 176 | - android:textColor="@color/grey" | ||
| 177 | - android:visibility="gone" | ||
| 178 | - tools:text="@string/cos_coupon_date" | ||
| 179 | - tools:visibility="visible" /> | ||
| 180 | - </RelativeLayout> | ||
| 181 | - | ||
| 182 | - <ProgressBar | ||
| 183 | - android:id="@+id/pb_loading" | ||
| 184 | - android:layout_width="48dp" | ||
| 185 | - android:layout_height="48dp" | ||
| 186 | - android:indeterminate="true" | ||
| 187 | - android:indeterminateTint="@color/cos_green5" | ||
| 188 | - android:indeterminateTintMode="src_atop" | ||
| 189 | android:visibility="gone" | 147 | android:visibility="gone" |
| 190 | - app:layout_constraintBottom_toBottomOf="parent" | 148 | + tools:text="@string/cos_coupon_date" |
| 191 | - app:layout_constraintEnd_toEndOf="parent" | 149 | + tools:visibility="gone" /> |
| 192 | - app:layout_constraintStart_toStartOf="parent" | 150 | + </RelativeLayout> |
| 193 | - app:layout_constraintTop_toTopOf="parent" | 151 | + </LinearLayout> |
| 194 | - tools:visibility="visible" /> | ||
| 195 | - </androidx.constraintlayout.widget.ConstraintLayout> | ||
| 196 | - </RelativeLayout> | ||
| 197 | </ScrollView> | 152 | </ScrollView> |
| 153 | + | ||
| 154 | + <LinearLayout | ||
| 155 | + android:layout_width="match_parent" | ||
| 156 | + android:layout_height="wrap_content" | ||
| 157 | + android:layout_marginTop="48dp" | ||
| 158 | + android:background="@drawable/ic_line"> | ||
| 159 | + | ||
| 160 | + </LinearLayout> | ||
| 161 | + | ||
| 162 | + <ProgressBar | ||
| 163 | + android:id="@+id/pb_loading" | ||
| 164 | + android:layout_width="48dp" | ||
| 165 | + android:layout_height="48dp" | ||
| 166 | + android:layout_centerInParent="true" | ||
| 167 | + android:indeterminate="true" | ||
| 168 | + android:indeterminateTint="@color/cos_green5" | ||
| 169 | + android:indeterminateTintMode="src_atop" | ||
| 170 | + android:visibility="gone" | ||
| 171 | + tools:visibility="visible" /> | ||
| 198 | </RelativeLayout> | 172 | </RelativeLayout> | ... | ... |
-
Please register or login to post a comment