|
1 | 1 | package com.surialabs.rn.braintree; |
2 | 2 |
|
3 | | -import android.content.Intent; |
4 | | -import android.content.Context; |
5 | 3 | import android.app.Activity; |
| 4 | +import android.content.Context; |
| 5 | +import android.content.Intent; |
6 | 6 |
|
7 | | -import com.braintreepayments.api.PaymentRequest; |
8 | | -import com.braintreepayments.api.models.PaymentMethodNonce; |
9 | | -import com.braintreepayments.api.BraintreePaymentActivity; |
10 | 7 | import com.braintreepayments.api.BraintreeFragment; |
11 | | -import com.braintreepayments.api.exceptions.InvalidArgumentException; |
12 | | -import com.braintreepayments.api.models.CardBuilder; |
| 8 | +import com.braintreepayments.api.BraintreePaymentActivity; |
13 | 9 | import com.braintreepayments.api.Card; |
| 10 | +import com.braintreepayments.api.PaymentRequest; |
| 11 | +import com.braintreepayments.api.exceptions.InvalidArgumentException; |
14 | 12 | import com.braintreepayments.api.interfaces.PaymentMethodNonceCreatedListener; |
15 | | - |
| 13 | +import com.braintreepayments.api.models.CardBuilder; |
| 14 | +import com.braintreepayments.api.models.PaymentMethodNonce; |
| 15 | +import com.facebook.react.bridge.BaseActivityEventListener; |
16 | 16 | import com.facebook.react.bridge.Callback; |
17 | 17 | import com.facebook.react.bridge.ReactApplicationContext; |
18 | 18 | import com.facebook.react.bridge.ReactContextBaseJavaModule; |
19 | 19 | import com.facebook.react.bridge.ReactMethod; |
20 | | -import com.facebook.react.bridge.ActivityEventListener; |
21 | 20 |
|
22 | | -public class Braintree extends ReactContextBaseJavaModule implements ActivityEventListener { |
| 21 | +public class Braintree extends ReactContextBaseJavaModule { |
23 | 22 | private static final int PAYMENT_REQUEST = 1; |
24 | 23 | private String token; |
25 | 24 |
|
26 | 25 | private Callback successCallback; |
27 | 26 | private Callback errorCallback; |
28 | 27 |
|
29 | | - private Context mActivityContext; |
30 | | - |
31 | 28 | private BraintreeFragment mBraintreeFragment; |
32 | 29 |
|
33 | 30 | public Braintree(ReactApplicationContext reactContext) { |
34 | 31 | super(reactContext); |
35 | | - reactContext.addActivityEventListener(this); |
| 32 | + reactContext.addActivityEventListener(new BraintreeActivityListener()); |
36 | 33 | } |
37 | 34 |
|
38 | 35 | @Override |
@@ -96,31 +93,28 @@ public void paymentRequest(final Callback successCallback, final Callback errorC |
96 | 93 | ); |
97 | 94 | } |
98 | 95 |
|
99 | | - @Override |
100 | | - public void onActivityResult(final int requestCode, final int resultCode, final Intent data) { |
101 | | - if (requestCode == PAYMENT_REQUEST) { |
102 | | - switch (resultCode) { |
103 | | - case Activity.RESULT_OK: |
104 | | - PaymentMethodNonce paymentMethodNonce = data.getParcelableExtra( |
105 | | - BraintreePaymentActivity.EXTRA_PAYMENT_METHOD_NONCE |
106 | | - ); |
107 | | - this.successCallback.invoke(paymentMethodNonce.getNonce()); |
108 | | - break; |
109 | | - case BraintreePaymentActivity.BRAINTREE_RESULT_DEVELOPER_ERROR: |
110 | | - case BraintreePaymentActivity.BRAINTREE_RESULT_SERVER_ERROR: |
111 | | - case BraintreePaymentActivity.BRAINTREE_RESULT_SERVER_UNAVAILABLE: |
112 | | - this.errorCallback.invoke( |
113 | | - data.getSerializableExtra(BraintreePaymentActivity.EXTRA_ERROR_MESSAGE) |
114 | | - ); |
115 | | - break; |
116 | | - default: |
117 | | - break; |
| 96 | + private class BraintreeActivityListener extends BaseActivityEventListener { |
| 97 | + @Override |
| 98 | + public void onActivityResult(Activity activity, final int requestCode, final int resultCode, final Intent data) { |
| 99 | + if (requestCode == PAYMENT_REQUEST) { |
| 100 | + switch (resultCode) { |
| 101 | + case Activity.RESULT_OK: |
| 102 | + PaymentMethodNonce paymentMethodNonce = data.getParcelableExtra( |
| 103 | + BraintreePaymentActivity.EXTRA_PAYMENT_METHOD_NONCE |
| 104 | + ); |
| 105 | + successCallback.invoke(paymentMethodNonce.getNonce()); |
| 106 | + break; |
| 107 | + case BraintreePaymentActivity.BRAINTREE_RESULT_DEVELOPER_ERROR: |
| 108 | + case BraintreePaymentActivity.BRAINTREE_RESULT_SERVER_ERROR: |
| 109 | + case BraintreePaymentActivity.BRAINTREE_RESULT_SERVER_UNAVAILABLE: |
| 110 | + errorCallback.invoke( |
| 111 | + data.getSerializableExtra(BraintreePaymentActivity.EXTRA_ERROR_MESSAGE) |
| 112 | + ); |
| 113 | + break; |
| 114 | + default: |
| 115 | + break; |
| 116 | + } |
118 | 117 | } |
119 | 118 | } |
120 | 119 | } |
121 | | - |
122 | | - @Override |
123 | | - public void onNewIntent(Intent intent){ |
124 | | - |
125 | | - } |
126 | 120 | } |
0 commit comments