|
1 | 1 | package io.snabble.sdk.ui.payment; |
2 | 2 |
|
| 3 | +import android.content.Context; |
3 | 4 | import android.os.Bundle; |
4 | 5 |
|
| 6 | +import androidx.appcompat.app.AlertDialog; |
| 7 | + |
5 | 8 | import io.snabble.sdk.PaymentMethod; |
6 | 9 | import io.snabble.sdk.Project; |
| 10 | +import io.snabble.sdk.ui.R; |
7 | 11 | import io.snabble.sdk.ui.SnabbleUI; |
| 12 | +import io.snabble.sdk.ui.utils.KeyguardUtils; |
8 | 13 |
|
9 | 14 | public class PaymentInputViewHelper { |
10 | | - public static void openPaymentInputView(PaymentMethod paymentMethod, Project project) { |
| 15 | + public static void openPaymentInputView(Context context, PaymentMethod paymentMethod, Project project) { |
11 | 16 | SnabbleUI.Callback callback = SnabbleUI.getUiCallback(); |
12 | 17 | if (callback != null) { |
13 | | - Bundle args = new Bundle(); |
14 | | - switch (paymentMethod) { |
15 | | - case VISA: |
16 | | - args.putString(CreditCardInputView.ARG_PROJECT_ID, project.getId()); |
17 | | - args.putSerializable(CreditCardInputView.ARG_PAYMENT_TYPE, PaymentMethod.VISA); |
18 | | - callback.execute(SnabbleUI.Action.SHOW_CREDIT_CARD_INPUT, args); |
19 | | - break; |
20 | | - case AMEX: |
21 | | - args.putString(CreditCardInputView.ARG_PROJECT_ID, project.getId()); |
22 | | - args.putSerializable(CreditCardInputView.ARG_PAYMENT_TYPE, PaymentMethod.AMEX); |
23 | | - callback.execute(SnabbleUI.Action.SHOW_CREDIT_CARD_INPUT, args); |
24 | | - break; |
25 | | - case MASTERCARD: |
26 | | - args.putString(CreditCardInputView.ARG_PROJECT_ID, project.getId()); |
27 | | - args.putSerializable(CreditCardInputView.ARG_PAYMENT_TYPE, PaymentMethod.MASTERCARD); |
28 | | - callback.execute(SnabbleUI.Action.SHOW_CREDIT_CARD_INPUT, args); |
29 | | - break; |
30 | | - case PAYDIREKT: |
31 | | - callback.execute(SnabbleUI.Action.SHOW_PAYDIREKT_INPUT, null); |
32 | | - break; |
33 | | - case DE_DIRECT_DEBIT: |
34 | | - callback.execute(SnabbleUI.Action.SHOW_SEPA_CARD_INPUT, null); |
35 | | - break; |
| 18 | + if (KeyguardUtils.isDeviceSecure()) { |
| 19 | + Bundle args = new Bundle(); |
| 20 | + switch (paymentMethod) { |
| 21 | + case VISA: |
| 22 | + args.putString(CreditCardInputView.ARG_PROJECT_ID, project.getId()); |
| 23 | + args.putSerializable(CreditCardInputView.ARG_PAYMENT_TYPE, PaymentMethod.VISA); |
| 24 | + callback.execute(SnabbleUI.Action.SHOW_CREDIT_CARD_INPUT, args); |
| 25 | + break; |
| 26 | + case AMEX: |
| 27 | + args.putString(CreditCardInputView.ARG_PROJECT_ID, project.getId()); |
| 28 | + args.putSerializable(CreditCardInputView.ARG_PAYMENT_TYPE, PaymentMethod.AMEX); |
| 29 | + callback.execute(SnabbleUI.Action.SHOW_CREDIT_CARD_INPUT, args); |
| 30 | + break; |
| 31 | + case MASTERCARD: |
| 32 | + args.putString(CreditCardInputView.ARG_PROJECT_ID, project.getId()); |
| 33 | + args.putSerializable(CreditCardInputView.ARG_PAYMENT_TYPE, PaymentMethod.MASTERCARD); |
| 34 | + callback.execute(SnabbleUI.Action.SHOW_CREDIT_CARD_INPUT, args); |
| 35 | + break; |
| 36 | + case PAYDIREKT: |
| 37 | + callback.execute(SnabbleUI.Action.SHOW_PAYDIREKT_INPUT, null); |
| 38 | + break; |
| 39 | + case DE_DIRECT_DEBIT: |
| 40 | + callback.execute(SnabbleUI.Action.SHOW_SEPA_CARD_INPUT, null); |
| 41 | + break; |
| 42 | + } |
| 43 | + } else { |
| 44 | + new AlertDialog.Builder(context) |
| 45 | + .setMessage(R.string.Snabble_Keyguard_requireScreenLock) |
| 46 | + .setPositiveButton(R.string.Snabble_OK, null) |
| 47 | + .setCancelable(false) |
| 48 | + .show(); |
36 | 49 | } |
| 50 | + |
37 | 51 | } |
38 | 52 | } |
39 | 53 | } |
0 commit comments