From dca0a88e8a1cb48474a6ad5be99aa51070acfa51 Mon Sep 17 00:00:00 2001 From: taiwoadebayo Date: Wed, 15 Jan 2020 11:30:17 +0100 Subject: [PATCH 1/8] saved cards --- .../java/com/flutterwave/raveandroid/RavePayActivity.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayActivity.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayActivity.java index c3db2e9c..9362ad32 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayActivity.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayActivity.java @@ -581,7 +581,6 @@ private View createPaymentTileView(String title) { private void generateGuides(int count) { - for (int i = 0; i <= count; i++) { Guideline guideline = createGuideline(this, HORIZONTAL); root.addView(guideline); @@ -626,9 +625,6 @@ private void buildGraph() { } - - - @Override public void onBackPressed() { setRavePayResult(RavePayActivity.RESULT_CANCELLED, new Intent()); From 2f9785d46dad3df9f1c45e5e90ecdcec39424110 Mon Sep 17 00:00:00 2001 From: Jeremiah Ifeanyichukwu Date: Thu, 16 Jan 2020 07:12:38 +0100 Subject: [PATCH 2/8] Collect phone number from Card Fragment --- .../java/com/flutterwave/raveandroid/card/CardFragment.java | 6 ++++++ .../com/flutterwave/raveandroid/card/CardPresenter.java | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardFragment.java index cf32c2b8..84715c6d 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardFragment.java @@ -72,6 +72,7 @@ import static com.flutterwave.raveandroid.RaveConstants.fieldCardExpiry; import static com.flutterwave.raveandroid.RaveConstants.fieldCvv; import static com.flutterwave.raveandroid.RaveConstants.fieldEmail; +import static com.flutterwave.raveandroid.RaveConstants.fieldPhone; import static com.flutterwave.raveandroid.RaveConstants.fieldcardNoStripped; import static com.flutterwave.raveandroid.verification.VerificationActivity.EXTRA_IS_STAGING; @@ -120,6 +121,8 @@ public class CardFragment extends Fragment implements View.OnClickListener, Card private LinearLayout saveNewCardLayout; private EditText saveCardEmailEt; private EditText saveCardPhoneNoEt; + private TextInputLayout saveCardEmailTil; + private TextInputLayout saveCardPhoneNoTil; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, @@ -218,6 +221,8 @@ private void initializeViews() { saveCardSwitch = (SwitchCompat) v.findViewById(R.id.rave_saveCardSwitch); saveCardPhoneNoEt = (EditText) v.findViewById(R.id.save_card_phoneNoTV); saveCardEmailEt = (EditText) v.findViewById(R.id.save_card_emailTv); + saveCardPhoneNoTil = (TextInputLayout) v.findViewById(R.id.save_card_phoneNoTil); + saveCardEmailTil = (TextInputLayout) v.findViewById(R.id.save_card_emailTil); saveNewCardLayout = (LinearLayout) v.findViewById(R.id.rave_layout_for_saving_card); @@ -260,6 +265,7 @@ private void collectData() { dataHashMap.put(fieldCvv, new ViewObject(cvvTil.getId(), cvvTv.getText().toString(), TextInputLayout.class)); dataHashMap.put(fieldCardExpiry, new ViewObject(cardExpiryTil.getId(), cardExpiryTv.getText().toString(), TextInputLayout.class)); dataHashMap.put(fieldcardNoStripped, new ViewObject(cardNoTil.getId(), cardNoTv.getText().toString(), TextInputLayout.class)); + dataHashMap.put(fieldPhone, new ViewObject(saveCardPhoneNoTil.getId(), saveCardPhoneNoEt.getText().toString(), TextInputLayout.class)); presenter.onDataCollected(dataHashMap); } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardPresenter.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardPresenter.java index d0ab517c..76651a7b 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardPresenter.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardPresenter.java @@ -64,6 +64,7 @@ import static com.flutterwave.raveandroid.RaveConstants.fieldCardExpiry; import static com.flutterwave.raveandroid.RaveConstants.fieldCvv; import static com.flutterwave.raveandroid.RaveConstants.fieldEmail; +import static com.flutterwave.raveandroid.RaveConstants.fieldPhone; import static com.flutterwave.raveandroid.RaveConstants.fieldcardNoStripped; import static com.flutterwave.raveandroid.RaveConstants.invalidChargeCode; import static com.flutterwave.raveandroid.RaveConstants.noResponse; @@ -454,6 +455,11 @@ public void processTransaction(HashMap dataHashMap, RavePayI ravePayInitializer.setAmount(Double.parseDouble(dataHashMap.get(fieldAmount).getData())); + if (dataHashMap.containsKey(fieldPhone)) { + String phoneNumber = dataHashMap.get(fieldPhone).getData(); + if (!phoneNumber.isEmpty()) ravePayInitializer.setPhoneNumber(phoneNumber); + } + String deviceID = deviceIdGetter.getDeviceId(); From 277f869a22d7408a4b4d49f292250158f19afa56 Mon Sep 17 00:00:00 2001 From: Jeremiah Ifeanyichukwu Date: Thu, 16 Jan 2020 10:57:38 +0100 Subject: [PATCH 3/8] Fix: Pass correct email value for card Save --- .../java/com/flutterwave/raveandroid/card/CardFragment.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardFragment.java index 84715c6d..a7cba27a 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardFragment.java @@ -748,7 +748,7 @@ public void onPaymentSuccessful(String status, String flwRef, String responseAsJ presenter.setCardSaveInProgress(true); presenter.saveCardToRave( ravePayInitializer.getPhoneNumber(), - ravePayInitializer.getPhoneNumber(), + ravePayInitializer.getEmail(), flwRef, ravePayInitializer.getPublicKey(), responseAsJSONString); From f681b7cfbbc4679616d951133ea5d654e832890d Mon Sep 17 00:00:00 2001 From: taiwoadebayo Date: Wed, 29 Jan 2020 11:26:13 +0100 Subject: [PATCH 4/8] the pollingProgressDialog dismisses `IF` pollingProgressDialog.isShowing() --- .../java/com/flutterwave/raveandroid/RaveConstants.java | 7 +++++-- .../java/com/flutterwave/raveandroid/ach/AchFragment.java | 2 +- .../francMobileMoney/FrancMobileMoneyFragment.java | 3 +++ .../raveandroid/ghmobilemoney/GhMobileMoneyFragment.java | 2 +- .../com/flutterwave/raveandroid/mpesa/MpesaFragment.java | 3 +++ .../raveandroid/rwfmobilemoney/RwfMobileMoneyFragment.java | 2 +- .../raveandroid/ugmobilemoney/UgMobileMoneyFragment.java | 4 +++- .../java/com/flutterwave/raveandroid/uk/UkFragment.java | 3 +++ .../com/flutterwave/raveandroid/ussd/UssdFragment.java | 3 +++ .../raveandroid/zmmobilemoney/ZmMobileMoneyFragment.java | 2 +- 10 files changed, 24 insertions(+), 7 deletions(-) diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java index a441e09f..7cdc3c90 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java @@ -9,8 +9,11 @@ public class RaveConstants { public static final int SAVED_CARD_CHARGE = 5699; - public static String PUBLIC_KEY = "FLWPUBK-e634d14d9ded04eaf05d5b63a0a06d2f-X"; //test - public static String ENCRYPTION_KEY = "bb9714020722eb4cf7a169f2";//test +// public static String PUBLIC_KEY = "FLWPUBK-e634d14d9ded04eaf05d5b63a0a06d2f-X"; //test +// public static String ENCRYPTION_KEY = "bb9714020722eb4cf7a169f2";//test + + public static String PUBLIC_KEY = "FLWPUBK-a273601bbbf662ed3d74690bf83e1c95-X"; //test + public static String ENCRYPTION_KEY = "592a99df91fe30fa74485a0a";//test // public static String STAGING_URL = "https://ravesandbox.azurewebsites.net"; // public static String LIVE_URL = "https://raveapi.azurewebsites.net"; public static String STAGING_URL = "https://ravesandboxapi.flutterwave.com"; diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/ach/AchFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/ach/AchFragment.java index 66431c21..974c8a3d 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/ach/AchFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/ach/AchFragment.java @@ -171,7 +171,7 @@ public void showWebView(String authUrl, String flwRef) { private void dismissDialog() { - if (progressDialog != null) { + if (progressDialog != null && progressDialog.isShowing()) { progressDialog.dismiss(); } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/francMobileMoney/FrancMobileMoneyFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/francMobileMoney/FrancMobileMoneyFragment.java index 73ac37b4..d737b7f0 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/francMobileMoney/FrancMobileMoneyFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/francMobileMoney/FrancMobileMoneyFragment.java @@ -236,6 +236,9 @@ public void onPaymentSuccessful(String status, String flwRef, String responseAsS @Override public void onPaymentFailed(String message, String responseAsJSONString) { + if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { + pollingProgressDialog.dismiss(); + } Intent intent = new Intent(); intent.putExtra(response, responseAsJSONString); if (getActivity() != null) { diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyFragment.java index bb0df24c..a56299f9 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyFragment.java @@ -309,7 +309,7 @@ public void onPaymentSuccessful(String status, String flwRef, String responseAsS @Override public void onPaymentFailed(String message, String responseAsJSONString) { - if (pollingProgressDialog != null && !pollingProgressDialog.isShowing()) { + if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { pollingProgressDialog.dismiss(); } Intent intent = new Intent(); diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaFragment.java index ab28408d..e0542ee9 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaFragment.java @@ -237,6 +237,9 @@ public void onPaymentSuccessful(String status, String flwRef, String responseAsS @Override public void onPaymentFailed(String message, String responseAsJSONString) { + if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { + pollingProgressDialog.dismiss(); + } Intent intent = new Intent(); intent.putExtra(response, responseAsJSONString); if (getActivity() != null) { diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/rwfmobilemoney/RwfMobileMoneyFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/rwfmobilemoney/RwfMobileMoneyFragment.java index 1758fe4e..3df5193a 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/rwfmobilemoney/RwfMobileMoneyFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/rwfmobilemoney/RwfMobileMoneyFragment.java @@ -223,7 +223,7 @@ public void onPaymentSuccessful(String status, String flwRef, String responseAsS @Override public void onPaymentFailed(String message, String responseAsJSONString) { - if (pollingProgressDialog != null && !pollingProgressDialog.isShowing()) { + if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { pollingProgressDialog.dismiss(); } Intent intent = new Intent(); diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyFragment.java index 4bc49c4a..92febd6e 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyFragment.java @@ -238,7 +238,9 @@ public void onPaymentSuccessful(String status, String flwRef, String responseAsS @Override public void onPaymentFailed(String message, String responseAsJSONString) { - if (pollingProgressDialog != null && !pollingProgressDialog.isShowing()) { pollingProgressDialog.dismiss(); } + if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { + pollingProgressDialog.dismiss(); + } Intent intent = new Intent(); intent.putExtra(RaveConstants.response, responseAsJSONString); if (getActivity() != null) { diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/uk/UkFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/uk/UkFragment.java index 7b23de83..ce0533a8 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/uk/UkFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/uk/UkFragment.java @@ -256,6 +256,9 @@ public void onPaymentSuccessful(String status, String flwRef, String responseAsS @Override public void onPaymentFailed(String message, String responseAsJSONString) { + if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { + pollingProgressDialog.dismiss(); + } Intent intent = new Intent(); intent.putExtra(response, responseAsJSONString); if (getActivity() != null) { diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/ussd/UssdFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/ussd/UssdFragment.java index 3827d404..77be63a2 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/ussd/UssdFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/ussd/UssdFragment.java @@ -368,6 +368,9 @@ public void onClick(DialogInterface dialog, int which) { @Override public void onPaymentFailed(String message, final String responseAsJSONString) { + if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { + pollingProgressDialog.dismiss(); + } Intent intent = new Intent(); intent.putExtra("response", responseAsJSONString); if (getActivity() != null) { diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/zmmobilemoney/ZmMobileMoneyFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/zmmobilemoney/ZmMobileMoneyFragment.java index ff445f39..3ff86779 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/zmmobilemoney/ZmMobileMoneyFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/zmmobilemoney/ZmMobileMoneyFragment.java @@ -282,7 +282,7 @@ public void onPaymentSuccessful(String status, String flwRef, String responseAsS @Override public void onPaymentFailed(String message, String responseAsJSONString) { - if (pollingProgressDialog != null && !pollingProgressDialog.isShowing()) { + if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { pollingProgressDialog.dismiss(); } Intent intent = new Intent(); From fe85a2bfa3446c11180dc6c0e088fa146c31445c Mon Sep 17 00:00:00 2001 From: taiwoadebayo Date: Wed, 29 Jan 2020 11:29:15 +0100 Subject: [PATCH 5/8] use default test key --- .../java/com/flutterwave/raveandroid/RaveConstants.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java index 7cdc3c90..a441e09f 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java @@ -9,11 +9,8 @@ public class RaveConstants { public static final int SAVED_CARD_CHARGE = 5699; -// public static String PUBLIC_KEY = "FLWPUBK-e634d14d9ded04eaf05d5b63a0a06d2f-X"; //test -// public static String ENCRYPTION_KEY = "bb9714020722eb4cf7a169f2";//test - - public static String PUBLIC_KEY = "FLWPUBK-a273601bbbf662ed3d74690bf83e1c95-X"; //test - public static String ENCRYPTION_KEY = "592a99df91fe30fa74485a0a";//test + public static String PUBLIC_KEY = "FLWPUBK-e634d14d9ded04eaf05d5b63a0a06d2f-X"; //test + public static String ENCRYPTION_KEY = "bb9714020722eb4cf7a169f2";//test // public static String STAGING_URL = "https://ravesandbox.azurewebsites.net"; // public static String LIVE_URL = "https://raveapi.azurewebsites.net"; public static String STAGING_URL = "https://ravesandboxapi.flutterwave.com"; From b6e123ee623504f5059537b000cded8ad9fb10b8 Mon Sep 17 00:00:00 2001 From: taiwoadebayo Date: Wed, 29 Jan 2020 11:56:56 +0100 Subject: [PATCH 6/8] added a one second delay before every round of polling and formatted code lines --- .../raveandroid/FeeCheckRequestBody.java | 30 +- .../com/flutterwave/raveandroid/Meta.java | 7 +- .../com/flutterwave/raveandroid/Payload.java | 459 +++++++----------- .../raveandroid/PayloadBuilder.java | 262 +++++----- .../raveandroid/RaveConstants.java | 7 +- .../flutterwave/raveandroid/RaveFragment.java | 10 +- .../raveandroid/RavePayActivity.java | 20 +- .../raveandroid/RavePayInitializer.java | 22 +- .../raveandroid/RavePayManager.java | 34 +- .../flutterwave/raveandroid/WebFragment.java | 48 +- .../raveandroid/account/AccountContract.java | 2 + .../raveandroid/account/AccountFragment.java | 5 +- .../raveandroid/account/AccountPresenter.java | 5 +- .../account/BanksRecyclerAdapter.java | 4 +- .../raveandroid/ach/AchFragment.java | 4 +- .../raveandroid/ach/AchPresenter.java | 16 +- .../banktransfer/BankTransferContract.java | 18 + .../banktransfer/BankTransferPresenter.java | 11 +- .../raveandroid/barter/BarterFragment.java | 12 +- .../raveandroid/card/CardFragment.java | 93 ++-- .../raveandroid/card/CardPresenter.java | 18 +- .../card/CreditCardTextWatcher.java | 5 +- .../raveandroid/card/CreditCardView.java | 5 +- .../card/SavedCardRecyclerAdapter.java | 10 +- .../flutterwave/raveandroid/data/Bank.java | 8 +- .../raveandroid/data/Callbacks.java | 7 + .../raveandroid/data/CardDetsToSave.java | 14 +- .../raveandroid/data/DataRequest.java | 11 + .../raveandroid/data/ErrorBody.java | 13 +- .../raveandroid/data/FeePayload.java | 5 +- .../raveandroid/data/RequeryRequestBody.java | 6 +- .../data/RequeryRequestBodyv2.java | 3 +- .../data/SharedPrefsRequestImpl.java | 6 +- .../raveandroid/data/ValidateChargeBody.java | 7 +- .../FrancMobileMoneyFragment.java | 8 +- .../ghmobilemoney/GhMobileMoneyContract.java | 16 + .../ghmobilemoney/GhMobileMoneyFragment.java | 37 +- .../ghmobilemoney/GhMobileMoneyPresenter.java | 5 +- .../raveandroid/mpesa/MpesaContract.java | 16 + .../raveandroid/mpesa/MpesaFragment.java | 10 +- .../raveandroid/mpesa/MpesaPresenter.java | 25 +- .../raveandroid/responses/ChargeResponse.java | 156 +++--- .../responses/FeeCheckResponse.java | 42 +- .../responses/MobileMoneyChargeResponse.java | 33 +- .../responses/RequeryResponse.java | 59 +-- .../responses/RequeryResponsev2.java | 13 +- .../raveandroid/responses/SubAccount.java | 12 +- .../RwfMobileMoneyFragment.java | 8 +- .../ugmobilemoney/UgMobileMoneyContract.java | 16 + .../ugmobilemoney/UgMobileMoneyFragment.java | 36 +- .../ugmobilemoney/UgMobileMoneyPresenter.java | 32 +- .../raveandroid/uk/UkFragment.java | 8 +- .../raveandroid/ussd/UssdContract.java | 2 - .../raveandroid/ussd/UssdPresenter.java | 4 +- .../raveandroid/verification/OTPFragment.java | 5 +- .../raveandroid/verification/PinFragment.java | 10 +- .../verification/VerificationActivity.java | 5 +- .../verification/web/WebFragment.java | 97 ++-- .../zmmobilemoney/ZmMobileMoneyFragment.java | 8 +- 59 files changed, 895 insertions(+), 955 deletions(-) diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/FeeCheckRequestBody.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/FeeCheckRequestBody.java index 0a3d7281..28087eb4 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/FeeCheckRequestBody.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/FeeCheckRequestBody.java @@ -16,53 +16,43 @@ public class FeeCheckRequestBody { private String currency; - public String getAmount () - { + public String getAmount() { return amount; } - public void setAmount (String amount) - { + public void setAmount(String amount) { this.amount = amount; } - public String getPBFPubKey () - { + public String getPBFPubKey() { return PBFPubKey; } - public void setPBFPubKey (String PBFPubKey) - { + public void setPBFPubKey(String PBFPubKey) { this.PBFPubKey = PBFPubKey; } - public String getPtype () - { + public String getPtype() { return ptype; } - public void setPtype (String ptype) - { + public void setPtype(String ptype) { this.ptype = ptype; } - public String getCard6 () - { + public String getCard6() { return card6; } - public void setCard6 (String card6) - { + public void setCard6(String card6) { this.card6 = card6; } - public String getCurrency () - { + public String getCurrency() { return currency; } - public void setCurrency (String currency) - { + public void setCurrency(String currency) { this.currency = currency; } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/Meta.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/Meta.java index ef117546..4127c552 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/Meta.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/Meta.java @@ -6,13 +6,14 @@ public class Meta { + String metavalue; + String metaname; + public Meta(String metaname, String metavalue) { this.metaname = metaname; this.metavalue = metavalue; } - String metavalue; - public String getMetavalue() { return metavalue; } @@ -28,6 +29,4 @@ public String getMetaname() { public void setMetaname(String metaname) { this.metaname = metaname; } - - String metaname; } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/Payload.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/Payload.java index c867178c..28833ac7 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/Payload.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/Payload.java @@ -10,32 +10,70 @@ * Created by hamzafetuga on 05/07/2017. */ -public class Payload -{ +public class Payload { + public String is_mobile_money_gh; + public String is_mobile_money_ug; + public String network; + public String voucher; + public boolean is_bank_transfer; + String token; + String SECKEY; private Boolean is_permanent; private Integer duration; private Integer frequency; - private boolean is_ussd; private String orderRef; private String is_barter; private String card_hash; - - public String getCardBIN() { - return cardBIN; - } - private String cardBIN; - private boolean is_us_bank_charge; private boolean is_saved_card_charge; - private boolean is_uk_bank_charge2; - private String remember_device_mobile_key; - private String device_key; private String otp; + private String remember_device_email; + private String charge_type; + private String bvn; + private String is_remembered; + private String payment_plan; + private String is_mpesa; + private String is_mpesa_lipa; + private String billingcity; + private String billingaddress; + private String billingstate; + private String billingcountry; + private String passcode; + private String pin; + private String redirect_url = RaveConstants.RAVE_3DS_CALLBACK; + private String PBFSecKey; + @SerializedName("suggested_auth") + private String suggestedAuth; + private List meta; + private List subaccounts; + private String billingzip; + private boolean is_mobile_money_franco; + private String payment_type; + private String phonenumber; + private String narration; + private String is_internet_banking; + private String expirymonth; + private String PBFPubKey; + private String IP; + private String accountnumber; + private String accountname; + private String accountbank; + private String lastname; + private String firstname; + private String currency; + private String country; + private String amount; + private String email; + private String expiryyear; + private String cvv; + private String device_fingerprint; + private String cardno; + private String txRef; // Constructor for saved card charge public Payload(List meta, @@ -66,77 +104,6 @@ public Payload(List meta, this.meta = meta; } - public String getOtp() { - return otp; - } - - private String remember_device_email; - - private String charge_type; - - public String getRemember_device_mobile_key() { - return remember_device_mobile_key; - } - - private String bvn; - - public void setRemember_device_mobile_key(String remember_device_mobile_key) { - this.remember_device_mobile_key = remember_device_mobile_key; - } - - public void setOtp(String otp) { - this.otp = otp; - } - - public String getDevice_key() { - return device_key; - } - - - public String getRemember_device_email() { - return remember_device_email; - } - - public void setRemember_device_email(String remember_device_email) { - this.remember_device_email = remember_device_email; - } - - public String getIs_remembered() { - return is_remembered; - } - - public void setIs_remembered(String is_remembered) { - this.is_remembered = is_remembered; - } - - private String is_remembered; - - private String payment_plan; - - public String getIs_mpesa() { - return is_mpesa; - } - - public void setIs_mpesa(String is_mpesa) { - this.is_mpesa = is_mpesa; - } - - public String getIs_mpesa_lipa() { - return is_mpesa_lipa; - } - - public void setIs_mpesa_lipa(String is_mpesa_lipa) { - this.is_mpesa_lipa = is_mpesa_lipa; - } - - private String is_mpesa; - - private String is_mpesa_lipa; - - public void setDevice_key(String device_key) { - this.device_key = device_key; - } - public Payload(List meta, List subaccounts, String narration, String expirymonth, String PBFPubKey, String IP, String lastname, String firstname, String currency, String country, String amount, @@ -168,52 +135,6 @@ public Payload(List meta, List subaccounts, String narration, } - - public String getBillingcity() { - return billingcity; - } - - public void setBillingcity(String billingcity) { - this.billingcity = billingcity; - } - - public String getBillingaddress() { - return billingaddress; - } - - public void setBillingaddress(String billingaddress) { - this.billingaddress = billingaddress; - } - - public String getBVN() { - return bvn; - } - - public void setBVN(String bvn){ - this.bvn = bvn; - } - - public String getBillingstate() { - return billingstate; - } - - public void setBillingstate(String billingstate) { - this.billingstate = billingstate; - } - - public String getBillingcountry() { - return billingcountry; - } - - public void setBillingcountry(String billingcountry) { - this.billingcountry = billingcountry; - } - - private String billingcity; - private String billingaddress; - private String billingstate; - private String billingcountry; - public Payload(List meta, List subaccounts, String narration, String IP, String accountnumber, String accountbank, String lastname, String firstname, String currency, String country, String amount, String email, String device_fingerprint, String txRef, String PBFPubKey, @@ -315,12 +236,118 @@ public Payload(List meta, List subaccounts, String narration, } + public String getCardBIN() { + return cardBIN; + } + public void setCardBIN(String cardBIN) { + this.cardBIN = cardBIN; + } + + public String getOtp() { + return otp; + } + + public void setOtp(String otp) { + this.otp = otp; + } + + public String getRemember_device_mobile_key() { + return remember_device_mobile_key; + } + + public void setRemember_device_mobile_key(String remember_device_mobile_key) { + this.remember_device_mobile_key = remember_device_mobile_key; + } + + public String getDevice_key() { + return device_key; + } + + public void setDevice_key(String device_key) { + this.device_key = device_key; + } + + public String getRemember_device_email() { + return remember_device_email; + } + + public void setRemember_device_email(String remember_device_email) { + this.remember_device_email = remember_device_email; + } + + public String getIs_remembered() { + return is_remembered; + } + + public void setIs_remembered(String is_remembered) { + this.is_remembered = is_remembered; + } + + public String getIs_mpesa() { + return is_mpesa; + } + + public void setIs_mpesa(String is_mpesa) { + this.is_mpesa = is_mpesa; + } + + public String getIs_mpesa_lipa() { + return is_mpesa_lipa; + } + + public void setIs_mpesa_lipa(String is_mpesa_lipa) { + this.is_mpesa_lipa = is_mpesa_lipa; + } + + public String getBillingcity() { + return billingcity; + } + + public void setBillingcity(String billingcity) { + this.billingcity = billingcity; + } + + public String getBillingaddress() { + return billingaddress; + } + + public void setBillingaddress(String billingaddress) { + this.billingaddress = billingaddress; + } + + public String getBVN() { + return bvn; + } + + public void setBVN(String bvn) { + this.bvn = bvn; + } + + public String getBillingstate() { + return billingstate; + } + + public void setBillingstate(String billingstate) { + this.billingstate = billingstate; + } + + public String getBillingcountry() { + return billingcountry; + } + + public void setBillingcountry(String billingcountry) { + this.billingcountry = billingcountry; + } public String getToken() { return token; } + public void setToken(String token) { + this.token = token; + } + public String getPasscode() { return passcode; } @@ -329,8 +356,6 @@ public void setPasscode(String passcode) { this.passcode = passcode; } - private String passcode; - public String getPayment_plan() { return payment_plan; } @@ -343,16 +368,10 @@ public String getCharge_type() { return charge_type; } - public void setCharge_type(String charge_type){ + public void setCharge_type(String charge_type) { this.charge_type = charge_type; } - public void setToken(String token) { - this.token = token; - } - - String token; - public List getMeta() { return meta; } @@ -373,10 +392,6 @@ public void setPin(String pin) { this.pin = pin; } - private String pin; - - private String redirect_url = RaveConstants.RAVE_3DS_CALLBACK; - public String getPBFSecKey() { return PBFSecKey; } @@ -389,17 +404,6 @@ public void setSECKEY(String SECKEY) { this.SECKEY = SECKEY; } - String SECKEY; - - private String PBFSecKey; - - @SerializedName("suggested_auth") - private String suggestedAuth; - - private List meta; - - private List subaccounts; - public String getBillingzip() { return billingzip; } @@ -408,8 +412,6 @@ public void setBillingzip(String billingzip) { this.billingzip = billingzip; } - private String billingzip; - public String getPayment_type() { return payment_type; } @@ -418,10 +420,6 @@ public void setPayment_type(String payment_type) { this.payment_type = payment_type; } - private boolean is_mobile_money_franco; - - private String payment_type; - public boolean getIs_mobile_money_franco() { return is_mobile_money_franco; } @@ -438,26 +436,10 @@ public void setPhonenumber(String phonenumber) { this.phonenumber = phonenumber; } - private String phonenumber; - - private String narration; - public void setIs_internet_banking(String is_internet_banking) { this.is_internet_banking = is_internet_banking; } - private String is_internet_banking; - - private String expirymonth; - - private String PBFPubKey; - - private String IP; - - private String accountnumber; - - private String accountname; - public String getAccountnumber() { return accountnumber; } @@ -474,167 +456,115 @@ public void setAccountbank(String accountbank) { this.accountbank = accountbank; } - private String accountbank; - - private String lastname; - - private String firstname; - - private String currency; - - private String country; - - private String amount; - - private String email; - - private String expiryyear; - - private String cvv; - - private String device_fingerprint; - - private String cardno; - - private String txRef; - - public String getExpirymonth () - { + public String getExpirymonth() { return expirymonth; } - public void setExpirymonth (String expirymonth) - { + public void setExpirymonth(String expirymonth) { this.expirymonth = expirymonth; } - public String getPBFPubKey () - { + public String getPBFPubKey() { return PBFPubKey; } - public void setPBFPubKey (String PBFPubKey) - { + public void setPBFPubKey(String PBFPubKey) { this.PBFPubKey = PBFPubKey; } - public String getIP () - { + public String getIP() { return IP; } - public void setIP (String IP) - { + public void setIP(String IP) { this.IP = IP; } - public String getLastname () - { + public String getLastname() { return lastname; } - public void setLastname (String lastname) - { + public void setLastname(String lastname) { this.lastname = lastname; } - public String getFirstname () - { + public String getFirstname() { return firstname; } - public void setFirstname (String firstname) - { + public void setFirstname(String firstname) { this.firstname = firstname; } - public String getCurrency () - { + public String getCurrency() { return currency; } - public void setCurrency (String currency) - { + public void setCurrency(String currency) { this.currency = currency; } - public String getCountry () - { + public String getCountry() { return country; } - public void setCountry (String country) - { + public void setCountry(String country) { this.country = country; } - public String getAmount () - { + public String getAmount() { return amount; } - public void setAmount (String amount) - { + public void setAmount(String amount) { this.amount = amount; } - public String getEmail () - { + public String getEmail() { return email; } - public void setEmail (String email) - { + public void setEmail(String email) { this.email = email; } - public String getExpiryyear () - { + public String getExpiryyear() { return expiryyear; } - public void setExpiryyear (String expiryyear) - { + public void setExpiryyear(String expiryyear) { this.expiryyear = expiryyear; } - public String getCvv () - { + public String getCvv() { return cvv; } - public void setCvv (String cvv) - { + public void setCvv(String cvv) { this.cvv = cvv; } - public String getDevice_fingerprint () - { + public String getDevice_fingerprint() { return device_fingerprint; } - public void setDevice_fingerprint (String device_fingerprint) - { + public void setDevice_fingerprint(String device_fingerprint) { this.device_fingerprint = device_fingerprint; } - public String getCardno () - { + public String getCardno() { return cardno; } - public void setCardno (String cardno) - { + public void setCardno(String cardno) { this.cardno = cardno; } - public String getTxRef () - { + public String getTxRef() { return txRef; } - public void setTxRef (String txRef) - { + public void setTxRef(String txRef) { this.txRef = txRef; } @@ -643,27 +573,14 @@ public void setSuggestedAuth(String suggestedAuth) { } @Override - public String toString() - { - return "ClassPojo [expirymonth = "+expirymonth+", PBFPubKey = "+PBFPubKey+", IP = "+IP+", lastname = "+lastname+", firstname = "+firstname+", currency = "+currency+", country = "+country+", amount = "+amount+", email = "+email+", expiryyear = "+expiryyear+", cvv = "+cvv+", device_fingerprint = "+device_fingerprint+", cardno = "+cardno+", txRef = "+txRef+"]"; - } - - public void setCardBIN(String cardBIN) { - this.cardBIN = cardBIN; + public String toString() { + return "ClassPojo [expirymonth = " + expirymonth + ", PBFPubKey = " + PBFPubKey + ", IP = " + IP + ", lastname = " + lastname + ", firstname = " + firstname + ", currency = " + currency + ", country = " + country + ", amount = " + amount + ", email = " + email + ", expiryyear = " + expiryyear + ", cvv = " + cvv + ", device_fingerprint = " + device_fingerprint + ", cardno = " + cardno + ", txRef = " + txRef + "]"; } - public String is_mobile_money_gh; - - public String is_mobile_money_ug; - public void setNetwork(String network) { this.network = network; } - public String network; - - public String voucher; - public void setVoucher(String voucher) { this.voucher = voucher; } @@ -684,8 +601,6 @@ public void setIs_us_bank_charge(boolean is_us_bank_charge) { this.is_us_bank_charge = is_us_bank_charge; } - public boolean is_bank_transfer; - public String getCard_hash() { return card_hash; } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/PayloadBuilder.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/PayloadBuilder.java index bebd118f..3752ac15 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/PayloadBuilder.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/PayloadBuilder.java @@ -33,44 +33,13 @@ public class PayloadBuilder { private boolean isPermanent; private int frequency; private int duration; - - public PayloadBuilder setIs_mobile_money_gh(String is_mobile_money_gh) { - this.is_mobile_money_gh = is_mobile_money_gh; - return this; - } - - public PayloadBuilder setIs_mobile_money_ug(String is_mobile_money_ug) { - this.is_mobile_money_ug = is_mobile_money_ug; - return this; - } - private String is_mobile_money_rwf; - - public PayloadBuilder setIs_bank_transfer(boolean is_bank_transfer) { - this.is_bank_transfer = is_bank_transfer; - return this; - } - - private String is_mobile_money_gh; private String is_mobile_money_ug; - - public PayloadBuilder setIs_mobile_money_rwf(String is_mobile_money_rwf) { - this.is_mobile_money_rwf = is_mobile_money_rwf; - return this; - } - private String phonenumber; - private String txRef; private String meta = ""; private String subAccounts = ""; - - public PayloadBuilder setCustomer_phone(String customer_phone) { - this.customer_phone = customer_phone; - return this; - } - private String customer_phone; private String narration; private String pin; @@ -78,28 +47,8 @@ public PayloadBuilder setCustomer_phone(String customer_phone) { private String accountnumber; private String accountname; - public PayloadBuilder setAccountnumber(String accountnumber) { - this.accountnumber = accountnumber; - return this; - } - - public PayloadBuilder setAccountbank(String accountbank) { - this.accountbank = accountbank; - return this; - } - - public PayloadBuilder setPin(String pin) { - this.pin = pin; - return this; - } - - public PayloadBuilder setExpirymonth(String expirymonth) { - this.expirymonth = expirymonth; - return this; - } - - public PayloadBuilder setVoucher(String voucher) { - this.voucher = voucher; + public PayloadBuilder setIs_mobile_money_rwf(String is_mobile_money_rwf) { + this.is_mobile_money_rwf = is_mobile_money_rwf; return this; } @@ -118,16 +67,6 @@ public PayloadBuilder setBVN(String bvn) { return this; } - public PayloadBuilder setLastname(String lastname) { - this.lastname = lastname; - return this; - } - - public PayloadBuilder setFirstname(String firstname) { - this.firstname = firstname; - return this; - } - public PayloadBuilder setIsPreAuth(boolean isPreAuth) { this.isPreAuth = isPreAuth; return this; @@ -138,61 +77,11 @@ public PayloadBuilder setIsUsBankCharge(boolean is_us_bank_charge) { return this; } - public PayloadBuilder setCurrency(String currency) { - this.currency = currency; - return this; - } - - public PayloadBuilder setPhonenumber(String phonenumber) { - this.phonenumber = phonenumber; - return this; - } - - public PayloadBuilder setCountry(String country) { - this.country = country; - return this; - } - - public PayloadBuilder setAmount(String amount) { - this.amount = amount; - return this; - } - - public PayloadBuilder setEmail(String email) { - this.email = email; - return this; - } - - public PayloadBuilder setExpiryyear(String expiryyear) { - this.expiryyear = expiryyear; - return this; - } - - public PayloadBuilder setCvv(String cvv) { - this.cvv = cvv; - return this; - } - public PayloadBuilder setPaymentPlan(String payment_plan) { this.payment_plan = payment_plan; return this; } - public PayloadBuilder setDevice_fingerprint(String device_fingerprint) { - this.device_fingerprint = device_fingerprint; - return this; - } - - public PayloadBuilder setCardno(String cardno) { - this.cardno = cardno; - return this; - } - - public PayloadBuilder setTxRef(String txRef) { - this.txRef = txRef; - return this; - } - public String getAccountname() { return accountname; } @@ -253,7 +142,6 @@ public Payload createBankTransferPayload() { return payload; } - public Payload createUssdPayload() { List metaObj = Utils.pojofyMetaString(meta); List subaccountsObj = Utils.pojofySubaccountString(subAccounts); @@ -381,26 +269,11 @@ public Payload createSavedCardChargePayload() { } - public PayloadBuilder setMeta(String meta) { - this.meta = meta; - return this; - } - public PayloadBuilder setSubAccount(String subAccounts) { this.subAccounts = subAccounts; return this; } - public PayloadBuilder setNarration(String narration) { - this.narration = narration; - return this; - } - - public PayloadBuilder setNetwork(String network) { - this.network = network; - return this; - } - public String getOtp() { return otp; } @@ -423,10 +296,20 @@ public SavedCard getSavedCard() { return savedCard; } + public PayloadBuilder setSavedCard(SavedCard savedCard) { + this.savedCard = savedCard; + return this; + } + public String getExpirymonth() { return expirymonth; } + public PayloadBuilder setExpirymonth(String expirymonth) { + this.expirymonth = expirymonth; + return this; + } + public String getPbfPubKey() { return pbfPubKey; } @@ -439,42 +322,92 @@ public String getLastname() { return lastname; } + public PayloadBuilder setLastname(String lastname) { + this.lastname = lastname; + return this; + } + public String getFirstname() { return firstname; } + public PayloadBuilder setFirstname(String firstname) { + this.firstname = firstname; + return this; + } + public String getCurrency() { return currency; } + public PayloadBuilder setCurrency(String currency) { + this.currency = currency; + return this; + } + public String getCountry() { return country; } + public PayloadBuilder setCountry(String country) { + this.country = country; + return this; + } + public String getAmount() { return amount; } + public PayloadBuilder setAmount(String amount) { + this.amount = amount; + return this; + } + public String getEmail() { return email; } + public PayloadBuilder setEmail(String email) { + this.email = email; + return this; + } + public String getExpiryyear() { return expiryyear; } + public PayloadBuilder setExpiryyear(String expiryyear) { + this.expiryyear = expiryyear; + return this; + } + public String getCvv() { return cvv; } + public PayloadBuilder setCvv(String cvv) { + this.cvv = cvv; + return this; + } + public String getDevice_fingerprint() { return device_fingerprint; } + public PayloadBuilder setDevice_fingerprint(String device_fingerprint) { + this.device_fingerprint = device_fingerprint; + return this; + } + public String getCardno() { return cardno; } + public PayloadBuilder setCardno(String cardno) { + this.cardno = cardno; + return this; + } + public String getPayment_plan() { return payment_plan; } @@ -483,6 +416,11 @@ public String getNetwork() { return network; } + public PayloadBuilder setNetwork(String network) { + this.network = network; + return this; + } + public String getBvn() { return bvn; } @@ -491,6 +429,11 @@ public String getVoucher() { return voucher; } + public PayloadBuilder setVoucher(String voucher) { + this.voucher = voucher; + return this; + } + public boolean isPreAuth() { return isPreAuth; } @@ -503,26 +446,56 @@ public boolean isIs_bank_transfer() { return is_bank_transfer; } + public PayloadBuilder setIs_bank_transfer(boolean is_bank_transfer) { + this.is_bank_transfer = is_bank_transfer; + return this; + } + public String getIs_mobile_money_gh() { return is_mobile_money_gh; } + public PayloadBuilder setIs_mobile_money_gh(String is_mobile_money_gh) { + this.is_mobile_money_gh = is_mobile_money_gh; + return this; + } + public String getIs_mobile_money_ug() { return is_mobile_money_ug; } + public PayloadBuilder setIs_mobile_money_ug(String is_mobile_money_ug) { + this.is_mobile_money_ug = is_mobile_money_ug; + return this; + } + public String getPhonenumber() { return phonenumber; } + public PayloadBuilder setPhonenumber(String phonenumber) { + this.phonenumber = phonenumber; + return this; + } + public String getTxRef() { return txRef; } + public PayloadBuilder setTxRef(String txRef) { + this.txRef = txRef; + return this; + } + public String getMeta() { return meta; } + public PayloadBuilder setMeta(String meta) { + this.meta = meta; + return this; + } + public String getSubAccounts() { return subAccounts; } @@ -531,22 +504,47 @@ public String getCustomer_phone() { return customer_phone; } + public PayloadBuilder setCustomer_phone(String customer_phone) { + this.customer_phone = customer_phone; + return this; + } + public String getNarration() { return narration; } + public PayloadBuilder setNarration(String narration) { + this.narration = narration; + return this; + } + public String getPin() { return pin; } + public PayloadBuilder setPin(String pin) { + this.pin = pin; + return this; + } + public String getAccountbank() { return accountbank; } + public PayloadBuilder setAccountbank(String accountbank) { + this.accountbank = accountbank; + return this; + } + public String getAccountnumber() { return accountnumber; } + public PayloadBuilder setAccountnumber(String accountnumber) { + this.accountnumber = accountnumber; + return this; + } + public PayloadBuilder setIsPermanent(boolean permanent) { this.isPermanent = permanent; return this; @@ -556,7 +554,6 @@ public boolean getPermanent() { return isPermanent; } - public int getFrequency() { return frequency; } @@ -574,9 +571,4 @@ public PayloadBuilder setDuration(int duration) { this.duration = duration; return this; } - - public PayloadBuilder setSavedCard(SavedCard savedCard) { - this.savedCard = savedCard; - return this; - } } \ No newline at end of file diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java index a441e09f..7cdc3c90 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java @@ -9,8 +9,11 @@ public class RaveConstants { public static final int SAVED_CARD_CHARGE = 5699; - public static String PUBLIC_KEY = "FLWPUBK-e634d14d9ded04eaf05d5b63a0a06d2f-X"; //test - public static String ENCRYPTION_KEY = "bb9714020722eb4cf7a169f2";//test +// public static String PUBLIC_KEY = "FLWPUBK-e634d14d9ded04eaf05d5b63a0a06d2f-X"; //test +// public static String ENCRYPTION_KEY = "bb9714020722eb4cf7a169f2";//test + + public static String PUBLIC_KEY = "FLWPUBK-a273601bbbf662ed3d74690bf83e1c95-X"; //test + public static String ENCRYPTION_KEY = "592a99df91fe30fa74485a0a";//test // public static String STAGING_URL = "https://ravesandbox.azurewebsites.net"; // public static String LIVE_URL = "https://raveapi.azurewebsites.net"; public static String STAGING_URL = "https://ravesandboxapi.flutterwave.com"; diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveFragment.java index de7a742b..b70b7cf7 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveFragment.java @@ -11,6 +11,11 @@ public class RaveFragment { Fragment fragment; String title; + public RaveFragment(Fragment fragment, String title) { + this.fragment = fragment; + this.title = title; + } + public Fragment getFragment() { return fragment; } @@ -19,9 +24,4 @@ public String getTitle() { return title; } - public RaveFragment(Fragment fragment, String title) { - this.fragment = fragment; - this.title = title; - } - } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayActivity.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayActivity.java index 9362ad32..70741829 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayActivity.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayActivity.java @@ -75,29 +75,25 @@ public class RavePayActivity extends AppCompatActivity { public static String BASE_URL; + public static int RESULT_SUCCESS = 111; + public static int RESULT_ERROR = 222; + public static int RESULT_CANCELLED = 333; View.OnClickListener onClickListener; + RavePayInitializer ravePayInitializer; + int theme; + AppComponent appComponent; + @Inject + EventLogger eventLogger; private HashMap guidelineMap = new HashMap<>(); private ArrayList paymentTiles = new ArrayList<>(); private HashMap tileMap = new HashMap<>(); private Guideline topGuide; - RavePayInitializer ravePayInitializer; private Guideline bottomGuide; private ConstraintLayout root; - - - public static int RESULT_SUCCESS = 111; - public static int RESULT_ERROR = 222; - public static int RESULT_CANCELLED = 333; private int tileCount = 0; - int theme; private float paymentTilesTextSize; private long transitionDuration = 350; - AppComponent appComponent; - - @Inject - EventLogger eventLogger; - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayInitializer.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayInitializer.java index 0ca060a6..b1784869 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayInitializer.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayInitializer.java @@ -12,7 +12,6 @@ public class RavePayInitializer { private final ArrayList orderedPaymentTypesList = new ArrayList<>(); String phoneNumber = ""; - private boolean saveCardFeatureAllowed = true; String email; double amount; String publicKey; @@ -34,6 +33,7 @@ public class RavePayInitializer { boolean isPermanent; int frequency; int duration; + private boolean saveCardFeatureAllowed = true; public RavePayInitializer(String email, double amount, String publicKey, String encryptionKey, String txRef, String narration, @@ -89,22 +89,26 @@ public void setMeta(String meta) { this.meta = meta; } - public String getSubAccount(){return subAccounts;} + public String getSubAccount() { + return subAccounts; + } - public void setSubAccount(String subAccounts){this.subAccounts=subAccounts;} + public void setSubAccount(String subAccounts) { + this.subAccounts = subAccounts; + } public boolean isStaging() { return staging; } - public ArrayList getOrderedPaymentTypesList() { - return orderedPaymentTypesList; - } - public void setStaging(boolean staging) { this.staging = staging; } + public ArrayList getOrderedPaymentTypesList() { + return orderedPaymentTypesList; + } + public int getTheme() { return theme; } @@ -215,7 +219,9 @@ public void setPreAuth(boolean isPreAuth) { this.isPreAuth = isPreAuth; } - public boolean getIsPreAuth() { return isPreAuth; } + public boolean getIsPreAuth() { + return isPreAuth; + } public boolean getIsDisplayFee() { return displayFee; diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayManager.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayManager.java index a5efed10..d9e2c967 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayManager.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/RavePayManager.java @@ -36,6 +36,11 @@ import static com.flutterwave.raveandroid.RaveConstants.STAGING_URL; public class RavePayManager { + boolean allowSaveCard = true; + boolean staging = true; + boolean isPreAuth = false; + boolean showStagingLabel = true; + boolean displayFee = true; private String email; private double amount = -1; private String publicKey; @@ -46,7 +51,6 @@ public class RavePayManager { private String country = "NG"; private String fName = ""; private String lName = ""; - boolean allowSaveCard = true; private String meta = ""; private String subAccounts = ""; private String payment_plan; @@ -54,16 +58,24 @@ public class RavePayManager { private Fragment supportFragment; private android.app.Fragment fragment; private int theme = R.style.DefaultTheme; - boolean staging = true; - boolean isPreAuth = false; private String phoneNumber = ""; - boolean showStagingLabel = true; - boolean displayFee = true; private boolean isPermanent = false; private int duration = 0; private int frequency = 0; private ArrayList orderedPaymentTypesList = new ArrayList<>(); + public RavePayManager(Activity activity) { + this.activity = activity; + } + + public RavePayManager(Fragment fragment) { + this.supportFragment = fragment; + } + + public RavePayManager(android.app.Fragment fragment) { + this.fragment = fragment; + } + public ArrayList getOrderedPaymentTypesList() { return orderedPaymentTypesList; } @@ -83,18 +95,6 @@ public RavePayManager withTheme(int theme) { return this; } - public RavePayManager(Activity activity) { - this.activity = activity; - } - - public RavePayManager(Fragment fragment) { - this.supportFragment = fragment; - } - - public RavePayManager(android.app.Fragment fragment) { - this.fragment = fragment; - } - public RavePayManager acceptAchPayments(boolean withAch) { if (!orderedPaymentTypesList.contains(PAYMENT_TYPE_ACH) && withAch) orderedPaymentTypesList.add(PAYMENT_TYPE_ACH); diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/WebFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/WebFragment.java index 66830d59..35f47b45 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/WebFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/WebFragment.java @@ -96,6 +96,29 @@ public void goBack() { } } + public void showProgressIndicator(boolean active) { + + try { + if (getActivity().isFinishing()) { + return; + } + + if (progessDialog == null) { + progessDialog = new ProgressDialog(getActivity()); + progessDialog.setCanceledOnTouchOutside(false); + progessDialog.setMessage("Please wait..."); + } + + if (active && !progessDialog.isShowing()) { + progessDialog.show(); + } else { + progessDialog.dismiss(); + } + } catch (NullPointerException e) { + e.printStackTrace(); + } + } + // Manages the behavior when URLs are loaded private class MyBrowser extends WebViewClient { @SuppressWarnings("deprecation") @@ -134,29 +157,4 @@ public void onPageFinished(WebView view, String url) { } } } - - - public void showProgressIndicator(boolean active) { - - try { - if (getActivity().isFinishing()) { - return; - } - - if (progessDialog == null) { - progessDialog = new ProgressDialog(getActivity()); - progessDialog.setCanceledOnTouchOutside(false); - progessDialog.setMessage("Please wait..."); - } - - if (active && !progessDialog.isShowing()) { - progessDialog.show(); - } else { - progessDialog.dismiss(); - } - } - catch (NullPointerException e) { - e.printStackTrace(); - } - } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/account/AccountContract.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/account/AccountContract.java index 77c987de..4e58ecd4 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/account/AccountContract.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/account/AccountContract.java @@ -19,7 +19,9 @@ public interface AccountContract { interface View { void showToast(String message); + void showBanks(List banks); + void showProgressIndicator(boolean active); void onGetBanksRequestFailed(String message); diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/account/AccountFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/account/AccountFragment.java index b2aa6543..ddea986e 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/account/AccountFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/account/AccountFragment.java @@ -63,11 +63,10 @@ */ public class AccountFragment extends Fragment implements AccountContract.View, DatePickerDialog.OnDateSetListener, View.OnClickListener, View.OnFocusChangeListener { - @Inject - AccountPresenter presenter; - public static final int FOR_0TP = 222; public static final int FOR_INTERNET_BANKING = 111; + @Inject + AccountPresenter presenter; private View v; private String flwRef; private EditText bankEt; diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/account/AccountPresenter.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/account/AccountPresenter.java index fc807643..b395d411 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/account/AccountPresenter.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/account/AccountPresenter.java @@ -70,9 +70,6 @@ public class AccountPresenter implements AccountContract.UserActionsListener { - private Context context; - private AccountContract.View mView; - @Inject EmailValidator emailValidator; @Inject @@ -103,6 +100,8 @@ public class AccountPresenter implements AccountContract.UserActionsListener { PayloadToJsonConverter payloadToJsonConverter; @Inject PayloadEncryptor payloadEncryptor; + private Context context; + private AccountContract.View mView; @Inject public AccountPresenter(Context context, AccountContract.View mView) { diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/account/BanksRecyclerAdapter.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/account/BanksRecyclerAdapter.java index 91ca6218..2e9bc037 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/account/BanksRecyclerAdapter.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/account/BanksRecyclerAdapter.java @@ -52,13 +52,13 @@ public void setBankSelectedListener(Callbacks.BankSelectedListener bankSelectedL } public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { - private TextView bankNameTv; Bank bank; + private TextView bankNameTv; ViewHolder(View v) { super(v); - bankNameTv = (TextView) v.findViewById(R.id.bankNameTv); + bankNameTv = v.findViewById(R.id.bankNameTv); v.setOnClickListener(this); } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/ach/AchFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/ach/AchFragment.java index 974c8a3d..18cb39b0 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/ach/AchFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/ach/AchFragment.java @@ -39,9 +39,9 @@ public class AchFragment extends Fragment implements AchContract.View, View.OnClickListener , View.OnFocusChangeListener { + public static final int FOR_ACH = 892; @Inject AchPresenter presenter; - private View v; private Button payButton; private TextInputLayout amountTil; @@ -50,8 +50,6 @@ public class AchFragment extends Fragment implements AchContract.View, View.OnCl private ProgressDialog progressDialog; private RavePayInitializer ravePayInitializer; - public static final int FOR_ACH = 892; - @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/ach/AchPresenter.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/ach/AchPresenter.java index da04d460..9ac0ad89 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/ach/AchPresenter.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/ach/AchPresenter.java @@ -31,11 +31,8 @@ public class AchPresenter implements AchContract.UserActionsListener { Context context; - private AchContract.View mView; - @Inject SharedPrefsRequestImpl sharedMgr; - @Inject EventLogger eventLogger; @Inject @@ -50,6 +47,7 @@ public class AchPresenter implements AchContract.UserActionsListener { PayloadToJsonConverter payloadToJsonConverter; @Inject PayloadEncryptor payloadEncryptor; + private AchContract.View mView; @Inject public AchPresenter(Context context, AchContract.View mView) { @@ -155,17 +153,14 @@ public void onSuccess(ChargeResponse response, String responseAsJSONString) { if (isDisplayFee) { mView.showFee(authUrl, flwRef, chargedAmount, currency); - } - else { + } else { mView.showWebView(authUrl, flwRef); } - } - else { + } else { mView.onPaymentError(RaveConstants.no_authurl_was_returnedmsg); } - } - else { + } else { mView.onPaymentError(RaveConstants.noResponse); } @@ -223,8 +218,7 @@ public void verifyRequeryResponse(RequeryResponse response, String responseAsJSO if (wasTxSuccessful) { mView.onPaymentSuccessful(response.getStatus(), flwRef, responseAsJSONString); - } - else { + } else { mView.onPaymentFailed(response.getStatus(), responseAsJSONString); } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/banktransfer/BankTransferContract.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/banktransfer/BankTransferContract.java index a9da9d8a..aa54faac 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/banktransfer/BankTransferContract.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/banktransfer/BankTransferContract.java @@ -14,18 +14,31 @@ public interface BankTransferContract { interface View { void showProgressIndicator(boolean active); + void showPollingIndicator(boolean active); + void onPaymentError(String message); + void showToast(String message); + void onPaymentSuccessful(String status, String flwRef, String responseAsString); + void displayFee(String charge_amount, Payload payload); + void showFetchFeeFailed(String s); + void onPaymentFailed(String message, String responseAsJSONString); + void onTransferDetailsReceived(String amount, String accountNumber, String bankName, String beneficiaryName); + void onPollingTimeout(String flwRef, String txRef, String responseAsJSONString); + void onAmountValidationSuccessful(String valueOf); + void showFieldError(int viewID, String message, Class viewType); + void onValidationSuccessful(HashMap dataHashMap); + void onAmountValidationFailed(); void onPollingCanceled(String flwRef, String txRef, final String responseAsJSONString); @@ -35,10 +48,15 @@ interface UserActionsListener { void fetchFee(Payload payload); void requeryTx(String flwRef, String txRef, String publicKey, boolean pollingCancelled, long requeryCountdownTime); + void payWithBankTransfer(Payload body, String encryptionKey); + void init(RavePayInitializer ravePayInitializer); + void processTransaction(HashMap dataHashMap, RavePayInitializer ravePayInitializer); + void onDataCollected(HashMap dataHashMap); + void startPaymentVerification(); void cancelPolling(); diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/banktransfer/BankTransferPresenter.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/banktransfer/BankTransferPresenter.java index af9c4609..7d3b51e3 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/banktransfer/BankTransferPresenter.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/banktransfer/BankTransferPresenter.java @@ -44,25 +44,24 @@ public class BankTransferPresenter implements BankTransferContract.UserActionsLi private static final String TX_REF = "txref"; private static final String FLW_REF = "flwref"; private static final String PUBLIC_KEY = "pbfkey"; - + public boolean pollingCancelled = false; + public boolean hasTransferDetails = false; @Inject EventLogger eventLogger; @Inject AmountValidator amountValidator; @Inject NetworkRequestImpl networkRequest; - public boolean pollingCancelled = false; - public boolean hasTransferDetails = false; @Inject DeviceIdGetter deviceIdGetter; BankTransferContract.View mView; - private String txRef = null, flwRef = null, publicKey = null; - private long requeryCountdownTime = 0; @Inject PayloadToJson payloadToJson; - private String beneficiaryName, accountNumber, amount, bankName; @Inject PayloadEncryptor payloadEncryptor; + private String txRef = null, flwRef = null, publicKey = null; + private long requeryCountdownTime = 0; + private String beneficiaryName, accountNumber, amount, bankName; @Inject public BankTransferPresenter(Context context, BankTransferContract.View mView) { diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/barter/BarterFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/barter/BarterFragment.java index 59929a6a..f520cadf 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/barter/BarterFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/barter/BarterFragment.java @@ -40,11 +40,9 @@ public class BarterFragment extends Fragment implements BarterContract.View { + public static final int FOR_BARTER_CHECKOUT = 5555; @Inject BarterPresenter presenter; - - public static final int FOR_BARTER_CHECKOUT = 5555; - private View v; private Button payButton; private TextInputLayout amountTil; @@ -290,7 +288,13 @@ public void onPaymentFailed(String responseAsJSONString) { @Override public void onPollingRoundComplete(String flwRef, String publicKey) { if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { - presenter.requeryTx(flwRef, publicKey); + try { + Thread.sleep(1000); + presenter.requeryTx(flwRef, publicKey); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardFragment.java index a7cba27a..4a8ff27b 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardFragment.java @@ -82,20 +82,20 @@ */ public class CardFragment extends Fragment implements View.OnClickListener, CardContract.View, View.OnFocusChangeListener { - @Inject - CardPresenter presenter; - public static final int FOR_PIN = 444; public static final int FOR_OTP = 666; public static final int FOR_AVBVV = 333; public static final int FOR_INTERNET_BANKING = 555; + public static final String INTENT_SENDER = "cardFrag"; private static final int FOR_SAVED_CARDS = 777; private static final String STATE_PRESENTER_SAVEDCARDS = "presenter_saved_cards"; - public static final String INTENT_SENDER = "cardFrag"; private static final String RAVEPAY = "ravepay"; - private View v; + @Inject + CardPresenter presenter; TextView useASavedCardTv; TextView useAnotherCardTv; + Boolean hasSavedCards = false; + private View v; private Button payButton; private TextView pcidss_tv; private AlertDialog dialog; @@ -107,7 +107,6 @@ public class CardFragment extends Fragment implements View.OnClickListener, Card private ProgressDialog progessDialog; private TextInputLayout amountTil; private TextInputEditText amountEt; - private String flwRef; private Payload payLoad; private TextInputEditText cardNoTv; @@ -117,7 +116,6 @@ public class CardFragment extends Fragment implements View.OnClickListener, Card private FrameLayout progressContainer; private RavePayInitializer ravePayInitializer; private boolean shouldISaveThisCard = false; - Boolean hasSavedCards = false; private LinearLayout saveNewCardLayout; private EditText saveCardEmailEt; private EditText saveCardPhoneNoEt; @@ -215,15 +213,15 @@ private void initializeViews() { emailEt = v.findViewById(R.id.rave_emailEt); cvvTil = v.findViewById(R.id.rave_cvvTil); cvvTv = v.findViewById(R.id.rave_cvvTv); - useAnotherCardTv = (TextView) v.findViewById(R.id.rave_use_new_card_tv); - useASavedCardTv = (TextView) v.findViewById(R.id.rave_use_saved_card_tv); + useAnotherCardTv = v.findViewById(R.id.rave_use_new_card_tv); + useASavedCardTv = v.findViewById(R.id.rave_use_saved_card_tv); useASavedCardTv.setVisibility(GONE); - saveCardSwitch = (SwitchCompat) v.findViewById(R.id.rave_saveCardSwitch); - saveCardPhoneNoEt = (EditText) v.findViewById(R.id.save_card_phoneNoTV); - saveCardEmailEt = (EditText) v.findViewById(R.id.save_card_emailTv); - saveCardPhoneNoTil = (TextInputLayout) v.findViewById(R.id.save_card_phoneNoTil); - saveCardEmailTil = (TextInputLayout) v.findViewById(R.id.save_card_emailTil); - saveNewCardLayout = (LinearLayout) v.findViewById(R.id.rave_layout_for_saving_card); + saveCardSwitch = v.findViewById(R.id.rave_saveCardSwitch); + saveCardPhoneNoEt = v.findViewById(R.id.save_card_phoneNoTV); + saveCardEmailEt = v.findViewById(R.id.save_card_emailTv); + saveCardPhoneNoTil = v.findViewById(R.id.save_card_phoneNoTil); + saveCardEmailTil = v.findViewById(R.id.save_card_emailTil); + saveNewCardLayout = v.findViewById(R.id.rave_layout_for_saving_card); } @@ -738,7 +736,7 @@ public void onTokenRetrievalError(String s) { * @param status = status of the transaction * @param flwRef = reference of the payment transaction * @param responseAsJSONString = full json response from the payment transaction - * @param ravePayInitializer The ravePayInitializer used to initiate payment + * @param ravePayInitializer The ravePayInitializer used to initiate payment */ @Override public void onPaymentSuccessful(String status, String flwRef, String responseAsJSONString, RavePayInitializer ravePayInitializer) { @@ -850,6 +848,37 @@ public void onAVSVBVSecureCodeModelUsed(String authurl, String flwRef) { startActivityForResult(intent, FOR_INTERNET_BANKING); } + @Override + public void onFocusChange(View view, boolean hasFocus) { + int i = view.getId(); + + String fieldName = ""; + + if (i == R.id.rave_cvvTv) { + fieldName = "CVV"; + } else if (i == R.id.rave_amountEt) { + fieldName = "Amount"; + } else if (i == R.id.rave_emailEt) { + fieldName = "Email"; + } else if (i == R.id.rave_cardNoTv) { + fieldName = "Card Number"; + } else if (i == R.id.rave_cardExpiryTv) { + fieldName = "Card Expiry"; + } + + if (hasFocus) { + presenter.logEvent(new StartTypingEvent(fieldName).getEvent(), ravePayInitializer.getPublicKey()); + } + } + + @Override + public void onChargeCardSuccessful(ChargeResponse response) { + presenter + .requeryTx(response.getData().getFlwRef(), + ravePayInitializer.getPublicKey() + ); + } + private class ExpiryWatcher implements TextWatcher { private final Calendar calendar; @@ -921,36 +950,4 @@ public void afterTextChanged(Editable editable) { } - @Override - public void onFocusChange(View view, boolean hasFocus) { - int i = view.getId(); - - String fieldName = ""; - - if (i == R.id.rave_cvvTv) { - fieldName = "CVV"; - } else if (i == R.id.rave_amountEt) { - fieldName = "Amount"; - } else if (i == R.id.rave_emailEt) { - fieldName = "Email"; - } else if (i == R.id.rave_cardNoTv) { - fieldName = "Card Number"; - } else if (i == R.id.rave_cardExpiryTv) { - fieldName = "Card Expiry"; - } - - if (hasFocus) { - presenter.logEvent(new StartTypingEvent(fieldName).getEvent(), ravePayInitializer.getPublicKey()); - } - } - - @Override - public void onChargeCardSuccessful(ChargeResponse response) { - presenter - .requeryTx(response.getData().getFlwRef(), - ravePayInitializer.getPublicKey() - ); - } - - } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardPresenter.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardPresenter.java index 76651a7b..7b7f3d47 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardPresenter.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CardPresenter.java @@ -86,8 +86,6 @@ public class CardPresenter implements CardContract.UserActionsListener { - private CardContract.View mView; - @Inject EventLogger eventLogger; @Inject @@ -102,7 +100,6 @@ public class CardPresenter implements CardContract.UserActionsListener { CardExpiryValidator cardExpiryValidator; @Inject CardNoValidator cardNoValidator; - private Context context; @Inject DeviceIdGetter deviceIdGetter; @Inject @@ -116,9 +113,17 @@ public class CardPresenter implements CardContract.UserActionsListener { @Inject Gson gson; List savedCards; + private CardContract.View mView; + private Context context; private boolean cardSaveInProgress = false; private String requeryInstruction = "Transaction is under processing, please use transaction requery to check status"; + @Inject + public CardPresenter(Context context, CardContract.View mView) { + this.mView = mView; + this.context = context; + } + public boolean isCardSaveInProgress() { return cardSaveInProgress; } @@ -127,13 +132,6 @@ public void setCardSaveInProgress(boolean cardSaveInProgress) { this.cardSaveInProgress = cardSaveInProgress; } - - @Inject - public CardPresenter(Context context, CardContract.View mView) { - this.mView = mView; - this.context = context; - } - @Override public void chargeCard(final Payload payload, final String encryptionKey) { diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CreditCardTextWatcher.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CreditCardTextWatcher.java index b6734114..4ebc6354 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CreditCardTextWatcher.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CreditCardTextWatcher.java @@ -6,7 +6,6 @@ import android.text.TextWatcher; import android.util.SparseArray; - import com.flutterwave.raveandroid.R; import java.util.regex.Pattern; @@ -19,12 +18,12 @@ class CreditCardTextWatcher implements TextWatcher { private static final char space = ' '; private final int mDefaultDrawableResId = R.drawable.creditcard; + String lastFormattedText; private int mCurrentDrawableResId = 0; private Drawable mCurrentDrawable; - String lastFormattedText; private SparseArray mCCPatterns = null; - CreditCardTextWatcher(){ + CreditCardTextWatcher() { init(); } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CreditCardView.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CreditCardView.java index a4467042..88ba6545 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CreditCardView.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/card/CreditCardView.java @@ -9,7 +9,6 @@ import android.util.Log; import android.util.SparseArray; - import com.flutterwave.raveandroid.R; import java.util.regex.Matcher; @@ -22,12 +21,12 @@ public class CreditCardView extends TextInputEditText { - private SparseArray mCCPatterns = null; //default credit card image private final int mDefaultDrawableResId = R.drawable.creditcard; + String lastFormattedText; + private SparseArray mCCPatterns = null; private int mCurrentDrawableResId = 0; private Drawable mCurrentDrawable; - String lastFormattedText; public CreditCardView(Context context) { super(context); diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/card/SavedCardRecyclerAdapter.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/card/SavedCardRecyclerAdapter.java index 7b50ceca..8ce15e06 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/card/SavedCardRecyclerAdapter.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/card/SavedCardRecyclerAdapter.java @@ -18,7 +18,7 @@ * Created by hamzafetuga on 25/07/2017. */ -public class SavedCardRecyclerAdapter extends RecyclerView.Adapter{ +public class SavedCardRecyclerAdapter extends RecyclerView.Adapter { private List cards; private Callbacks.SavedCardSelectedListener savedCardSelectedListener; @@ -54,17 +54,17 @@ public void setSavedCardSelectedListener(Callbacks.SavedCardSelectedListener sav public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { + SavedCard card; private TextView cardTypeTv; private TextView maskedPanTv; private ImageView cardBrandIv; - SavedCard card; ViewHolder(View v) { super(v); - cardTypeTv = (TextView) v.findViewById(R.id.card_type_tv); - maskedPanTv = (TextView) v.findViewById(R.id.masked_pan_tv); - cardBrandIv = (ImageView) v.findViewById(R.id.rave_card_brand_imageview); + cardTypeTv = v.findViewById(R.id.card_type_tv); + maskedPanTv = v.findViewById(R.id.masked_pan_tv); + cardBrandIv = v.findViewById(R.id.rave_card_brand_imageview); v.setOnClickListener(this); } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/Bank.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/Bank.java index 4a62ce78..0a6c8dfb 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/Bank.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/Bank.java @@ -18,6 +18,10 @@ public String getBankcode() { return bankcode; } + public void setBankcode(String bankcode) { + this.bankcode = bankcode; + } + public boolean isInternetbanking() { return internetbanking; } @@ -25,8 +29,4 @@ public boolean isInternetbanking() { public void setInternetbanking(boolean internetbanking) { this.internetbanking = internetbanking; } - - public void setBankcode(String bankcode) { - this.bankcode = bankcode; - } } \ No newline at end of file diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/Callbacks.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/Callbacks.java index 66b8f023..f6254300 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/Callbacks.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/Callbacks.java @@ -20,21 +20,25 @@ public class Callbacks { public interface OnGhanaChargeRequestComplete { void onSuccess(MobileMoneyChargeResponse response, String responseAsJSONString); + void onError(String message, String responseAsJSONString); } public interface OnChargeRequestComplete { void onSuccess(ChargeResponse response, String responseAsJSONString); + void onError(String message, String responseAsJSONString); } public interface OnValidateChargeCardRequestComplete { void onSuccess(ChargeResponse response, String responseAsJSONString); + void onError(String message, String responseAsJSONString); } public interface OnRequeryRequestComplete { void onSuccess(RequeryResponse response, String responseAsJSONString); + void onError(String message, String responseAsJSONString); } @@ -58,11 +62,13 @@ public interface OnSendRaveOTPRequestComplete { public interface OnRequeryRequestv2Complete { void onSuccess(RequeryResponsev2 response, String responseAsJSONString); + void onError(String message, String responseAsJSONString); } public interface OnGetBanksRequestComplete { void onSuccess(List banks); + void onError(String message); } @@ -76,6 +82,7 @@ public interface SavedCardSelectedListener { public interface OnGetFeeRequestComplete { void onSuccess(FeeCheckResponse response); + void onError(String message); } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/CardDetsToSave.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/CardDetsToSave.java index 17062d76..3c063f85 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/CardDetsToSave.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/CardDetsToSave.java @@ -6,6 +6,12 @@ public class CardDetsToSave { String first6; + String last4; + + public CardDetsToSave(String first6, String last4) { + this.first6 = first6; + this.last4 = last4; + } public String getFirst6() { return first6; @@ -15,13 +21,5 @@ public String getLast4() { return last4; } - String last4; - - public CardDetsToSave(String first6, String last4) { - this.first6 = first6; - this.last4 = last4; - } - - } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/DataRequest.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/DataRequest.java index 682a1601..51eba980 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/DataRequest.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/DataRequest.java @@ -18,16 +18,25 @@ interface NetworkRequest { void chargeWithPolling(ChargeRequestBody chargeRequestBody, Callbacks.OnChargeRequestComplete callback); void chargeMobileMoneyWallet(ChargeRequestBody chargeRequestBody, Callbacks.OnGhanaChargeRequestComplete callback); + void validateChargeCard(ValidateChargeBody cardRequestBody, Callbacks.OnValidateChargeCardRequestComplete callback); + void validateAccountCard(ValidateChargeBody cardRequestBody, Callbacks.OnValidateChargeCardRequestComplete callback); void sendRaveOtp(SendOtpRequestBody requestBody, Callbacks.OnSendRaveOTPRequestComplete callback); + void requeryTx(RequeryRequestBody requeryRequestBody, Callbacks.OnRequeryRequestComplete callback); + void requeryPayWithBankTx(RequeryRequestBody requeryRequestBody, Callbacks.OnRequeryRequestComplete callback); + void requeryTxv2(RequeryRequestBodyv2 requeryRequestBody, Callbacks.OnRequeryRequestv2Complete callback); + void getBanks(Callbacks.OnGetBanksRequestComplete callback); + void chargeAccount(ChargeRequestBody accountRequestBody, Callbacks.OnChargeRequestComplete callback); + void chargeToken(Payload payload, Callbacks.OnChargeRequestComplete callback); + void getFee(FeeCheckRequestBody body, Callbacks.OnGetFeeRequestComplete callback); void logEvent(EventBody body, Callbacks.OnLogEventComplete callback); @@ -44,7 +53,9 @@ interface SharedPrefsRequest { void saveCardToSharedPreference(List card, String email, String publicKey); List getSavedCards(String phoneNumber, String publicKey); + void saveFlwRef(String flwRef); + String fetchFlwRef(); void savePhoneNumber(String phoneNumber); diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/ErrorBody.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/ErrorBody.java index 7a7bdaea..5367b6aa 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/ErrorBody.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/ErrorBody.java @@ -5,13 +5,15 @@ */ public class ErrorBody { + String status; + String message; + Data data; + public ErrorBody(String status, String message) { this.status = status; this.message = message; } - String status; - public String getStatus() { return status; } @@ -28,25 +30,20 @@ public void setMessage(String message) { this.message = message; } - String message; - public Data getData() { return data; } - Data data; - // String data; public static class Data { boolean is_error; + String code; public String getCode() { return code; } - - String code; } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/FeePayload.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/FeePayload.java index 0803ae7f..2b48972f 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/FeePayload.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/FeePayload.java @@ -9,6 +9,8 @@ public class FeePayload { String amount; String PBFPubKey; String currency; + String ptype; + String card6; public String getAmount() { return amount; @@ -50,8 +52,5 @@ public void setCard6(String card6) { this.card6 = card6; } - String ptype; - String card6; - } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/RequeryRequestBody.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/RequeryRequestBody.java index 3df9355e..571922ee 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/RequeryRequestBody.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/RequeryRequestBody.java @@ -6,6 +6,8 @@ public class RequeryRequestBody { + String PBFPubKey; + String flw_ref; private String order_ref; public String getPBFPubKey() { @@ -16,8 +18,6 @@ public void setPBFPubKey(String PBFPubKey) { this.PBFPubKey = PBFPubKey; } - String PBFPubKey; - public String getFlw_ref() { return flw_ref; } @@ -26,8 +26,6 @@ public void setFlw_ref(String flw_ref) { this.flw_ref = flw_ref; } - String flw_ref; - public String getOrder_ref() { return order_ref; } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/RequeryRequestBodyv2.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/RequeryRequestBodyv2.java index 2ac41c00..101ed547 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/RequeryRequestBodyv2.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/RequeryRequestBodyv2.java @@ -7,6 +7,7 @@ public class RequeryRequestBodyv2 { String SECKEY; + String txref; public String getSECKEY() { return SECKEY; @@ -23,6 +24,4 @@ public String getTxref() { public void setTxref(String txref) { this.txref = txref; } - - String txref; } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/SharedPrefsRequestImpl.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/SharedPrefsRequestImpl.java index 191bdfb4..dc90a200 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/SharedPrefsRequestImpl.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/SharedPrefsRequestImpl.java @@ -54,7 +54,8 @@ public void saveCardToSharedPreference(List cardsToSave, String phone init(); Gson gson = new Gson(); - Type type = new TypeToken>() {}.getType(); + Type type = new TypeToken>() { + }.getType(); String savedCardsJson = gson.toJson(savedCards, type); editor.putString(SAVED_CARDS_PREFIX + phoneNumber + publicKey, savedCardsJson).apply(); @@ -71,8 +72,7 @@ public List getSavedCards(String phoneNumber, String publicKey) { Type type = new TypeToken>() { }.getType(); return gson.fromJson(savedCardsJson, type); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); return new ArrayList<>(); } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/ValidateChargeBody.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/ValidateChargeBody.java index 4e1320ac..24eb9950 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/data/ValidateChargeBody.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/data/ValidateChargeBody.java @@ -6,6 +6,9 @@ public class ValidateChargeBody { String transaction_reference; + String transactionreference; + String PBFPubKey; + String otp; public String getTransactionreference() { return transactionreference; @@ -15,10 +18,6 @@ public void setTransactionreference(String transactionreference) { this.transactionreference = transactionreference; } - String transactionreference; - String PBFPubKey; - String otp; - public String getTransaction_reference() { return transaction_reference; } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/francMobileMoney/FrancMobileMoneyFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/francMobileMoney/FrancMobileMoneyFragment.java index d737b7f0..92524e18 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/francMobileMoney/FrancMobileMoneyFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/francMobileMoney/FrancMobileMoneyFragment.java @@ -285,7 +285,13 @@ public void onClick(DialogInterface dialog, int which) { public void onPollingRoundComplete(String flwRef, String txRef, String publicKey) { if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { - presenter.requeryTx(flwRef, txRef, publicKey); + try { + Thread.sleep(1000); + presenter.requeryTx(flwRef, txRef, publicKey); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyContract.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyContract.java index 4fcc967e..f8cc846e 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyContract.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyContract.java @@ -15,26 +15,42 @@ public interface GhMobileMoneyContract { interface View { void showToast(String message); + void showFetchFeeFailed(String s); + void onPaymentError(String message); + void showPollingIndicator(boolean active); + void showProgressIndicator(boolean active); + void onAmountValidationSuccessful(String valueOf); + void displayFee(String charge_amount, Payload payload); + void onPaymentFailed(String message, String responseAsJSONString); + void showFieldError(int viewID, String message, Class viewtype); + void onValidationSuccessful(HashMap dataHashMap); + void onPollingRoundComplete(String flwRef, String txRef, String publicKey); + void onPaymentSuccessful(String status, String flwRef, String responseAsString); } interface UserActionsListener { void fetchFee(Payload payload); + void init(RavePayInitializer ravePayInitializer); + void onDataCollected(HashMap dataHashMap); + void requeryTx(String flwRef, String txRef, String publicKey); + void chargeGhMobileMoney(Payload payload, String encryptionKey); + void processTransaction(HashMap dataHashMap, RavePayInitializer ravePayInitializer); void onAttachView(View view); diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyFragment.java index a56299f9..028576a5 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyFragment.java @@ -61,7 +61,7 @@ public class GhMobileMoneyFragment extends Fragment implements GhMobileMoneyCont private TextInputLayout voucherTil; private TextInputEditText voucherEt; private ProgressDialog progressDialog; - private ProgressDialog pollingProgressDialog ; + private ProgressDialog pollingProgressDialog; private String network; private String validateInstructions; @@ -122,6 +122,7 @@ private void initializeViews() { amountEt = v.findViewById(R.id.rave_amountEt); phoneEt = v.findViewById(R.id.rave_phoneEt); } + private void setUpNetworks() { ArrayAdapter adapter = ArrayAdapter.createFromResource(requireActivity(), R.array.gh_mobile_money_networks, android.R.layout.simple_spinner_item); @@ -143,13 +144,11 @@ public void onItemSelected(AdapterView parent, View view, int position, long presenter.logEvent(new ListItemSelectedEvent("Network").getEvent(), ravePayInitializer.getPublicKey()); validateInstructions = getResources().getString(R.string.mtn_validate_instructions); showInstructionsAndVoucher(false); - } - else if (network.equalsIgnoreCase(RaveConstants.tigo)) { + } else if (network.equalsIgnoreCase(RaveConstants.tigo)) { presenter.logEvent(new ListItemSelectedEvent("Network").getEvent(), ravePayInitializer.getPublicKey()); - validateInstructions = getResources().getString(R.string.tigo_validate_instructions); + validateInstructions = getResources().getString(R.string.tigo_validate_instructions); showInstructionsAndVoucher(false); - } - else if (network.equalsIgnoreCase(RaveConstants.vodafone)) { + } else if (network.equalsIgnoreCase(RaveConstants.vodafone)) { presenter.logEvent(new ListItemSelectedEvent("Network").getEvent(), ravePayInitializer.getPublicKey()); validateInstructions = getResources().getString(R.string.checkStatus); showInstructionsAndVoucher(true); @@ -200,12 +199,11 @@ private void collectData() { @Override public void showFieldError(int viewID, String message, Class viewType) { - if (viewType == TextInputLayout.class){ - TextInputLayout view = v.findViewById(viewID); + if (viewType == TextInputLayout.class) { + TextInputLayout view = v.findViewById(viewID); view.setError(message); - } - else if (viewType == EditText.class){ - EditText view = v.findViewById(viewID); + } else if (viewType == EditText.class) { + EditText view = v.findViewById(viewID); view.setError(message); } @@ -223,8 +221,7 @@ private void showInstructionsAndVoucher(boolean show) { presenter.logEvent(new InstructionsDisplayedEvent("Gh Momo").getEvent(), ravePayInitializer.getPublicKey()); voucherTil.setVisibility(View.VISIBLE); instructionsTv.setVisibility(View.VISIBLE); - } - else { + } else { voucherTil.setVisibility(View.GONE); instructionsTv.setVisibility(View.GONE); } @@ -239,7 +236,7 @@ public void showProgressIndicator(boolean active) { } } - if(progressDialog == null) { + if (progressDialog == null) { progressDialog = new ProgressDialog(getActivity()); progressDialog.setCanceledOnTouchOutside(false); progressDialog.setMessage(getResources().getString(R.string.wait)); @@ -247,8 +244,7 @@ public void showProgressIndicator(boolean active) { if (active && !progressDialog.isShowing()) { progressDialog.show(); - } - else { + } else { progressDialog.dismiss(); } } @@ -359,7 +355,14 @@ public void onClick(DialogInterface dialog, int which) { @Override public void onPollingRoundComplete(String flwRef, String txRef, String publicKey) { if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { - presenter.requeryTx(flwRef, txRef, publicKey); + + try { + Thread.sleep(1000); + presenter.requeryTx(flwRef, txRef, publicKey); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyPresenter.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyPresenter.java index 14dc22b1..ca9ec110 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyPresenter.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyPresenter.java @@ -49,9 +49,6 @@ */ public class GhMobileMoneyPresenter implements GhMobileMoneyContract.UserActionsListener { - private Context context; - private GhMobileMoneyContract.View mView; - @Inject EventLogger eventLogger; @Inject @@ -66,6 +63,8 @@ public class GhMobileMoneyPresenter implements GhMobileMoneyContract.UserActions DeviceIdGetter deviceIdGetter; @Inject PayloadEncryptor payloadEncryptor; + private Context context; + private GhMobileMoneyContract.View mView; @Inject public GhMobileMoneyPresenter(Context context, GhMobileMoneyContract.View mView) { diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaContract.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaContract.java index d84ab8cf..24956452 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaContract.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaContract.java @@ -15,25 +15,41 @@ public interface MpesaContract { interface View { void showToast(String message); + void showFetchFeeFailed(String s); + void onPaymentError(String message); + void showPollingIndicator(boolean active); + void showProgressIndicator(boolean active); + void onAmountValidationSuccessful(String amountToPay); + void displayFee(String charge_amount, Payload payload); + void onPaymentFailed(String message, String responseAsJSONString); + void onValidationSuccessful(HashMap dataHashMap); + void showFieldError(int viewID, String message, Class viewType); + void onPollingRoundComplete(String flwRef, String txRef, String encryptionKey); + void onPaymentSuccessful(String status, String flwRef, String responseAsString); } interface UserActionsListener { void fetchFee(Payload payload); + void init(RavePayInitializer ravePayInitializer); + void onDataCollected(HashMap dataHashMap); + void chargeMpesa(Payload payload, String encryptionKey); + void requeryTx(String flwRef, String txRef, String publicKey); + void processTransaction(HashMap dataHashMap, RavePayInitializer ravePayInitializer); void onAttachView(View view); diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaFragment.java index e0542ee9..ae38c176 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaFragment.java @@ -55,7 +55,7 @@ public class MpesaFragment extends Fragment implements MpesaContract.View, View. private TextInputEditText phoneEt; private TextInputEditText amountEt; private ProgressDialog progressDialog; - private ProgressDialog pollingProgressDialog ; + private ProgressDialog pollingProgressDialog; private int rave_phoneEtInt; private RavePayInitializer ravePayInitializer; @@ -286,7 +286,13 @@ public void onClick(DialogInterface dialog, int which) { public void onPollingRoundComplete(String flwRef, String txRef, String publicKey) { if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { - presenter.requeryTx(flwRef, txRef, publicKey); + try { + Thread.sleep(1000); + presenter.requeryTx(flwRef, txRef, publicKey); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaPresenter.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaPresenter.java index 2a70bb9b..007ae8a2 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaPresenter.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaPresenter.java @@ -45,9 +45,6 @@ public class MpesaPresenter implements MpesaContract.UserActionsListener { - private Context context; - private MpesaContract.View mView; - @Inject EventLogger eventLogger; @Inject @@ -60,6 +57,8 @@ public class MpesaPresenter implements MpesaContract.UserActionsListener { DeviceIdGetter deviceIdGetter; @Inject PayloadEncryptor payloadEncryptor; + private Context context; + private MpesaContract.View mView; @Inject public MpesaPresenter(Context context, MpesaContract.View mView) { @@ -84,8 +83,7 @@ public void onSuccess(FeeCheckResponse response) { try { mView.displayFee(response.getData().getCharge_amount(), payload); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); mView.showFetchFeeFailed(transactionError); } @@ -130,8 +128,7 @@ public void onSuccess(ChargeResponse response, String responseAsJSONString) { String flwRef = response.getData().getFlwRef(); String txRef = response.getData().getTx_ref(); requeryTx(flwRef, txRef, payload.getPBFPubKey()); - } - else { + } else { mView.onPaymentError(noResponse); } @@ -146,7 +143,6 @@ public void onError(String message, String responseAsJSONString) { } - @Override public void requeryTx(final String flwRef, final String txRef, final String publicKey) { @@ -163,15 +159,12 @@ public void requeryTx(final String flwRef, final String txRef, final String publ public void onSuccess(RequeryResponse response, String responseAsJSONString) { if (response.getData() == null) { mView.onPaymentFailed(response.getStatus(), responseAsJSONString); - } - else if (response.getData().getChargeResponseCode().equals("02")){ + } else if (response.getData().getChargeResponseCode().equals("02")) { mView.onPollingRoundComplete(flwRef, txRef, publicKey); - } - else if (response.getData().getChargeResponseCode().equals("00")) { + } else if (response.getData().getChargeResponseCode().equals("00")) { mView.showPollingIndicator(false); mView.onPaymentSuccessful(flwRef, txRef, responseAsJSONString); - } - else { + } else { mView.showProgressIndicator(false); mView.onPaymentFailed(response.getData().getStatus(), responseAsJSONString); } @@ -219,7 +212,7 @@ public void onDataCollected(HashMap dataHashMap) { @Override public void processTransaction(HashMap dataHashMap, RavePayInitializer ravePayInitializer) { - if (ravePayInitializer!=null) { + if (ravePayInitializer != null) { ravePayInitializer.setAmount(Double.parseDouble(dataHashMap.get(fieldAmount).getData())); @@ -261,7 +254,7 @@ public void processTransaction(HashMap dataHashMap, RavePayI @Override public void init(RavePayInitializer ravePayInitializer) { - if (ravePayInitializer!=null) { + if (ravePayInitializer != null) { logEvent(new ScreenLaunchEvent("MPesa Fragment").getEvent(), ravePayInitializer.getPublicKey()); diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/ChargeResponse.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/ChargeResponse.java index 69774974..9d27f7d6 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/ChargeResponse.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/ChargeResponse.java @@ -36,6 +36,8 @@ public void setData(Data data) { public static class AccountValidateInstructions { + String instruction; + public String getInstruction() { return instruction; } @@ -44,8 +46,6 @@ public void setInstruction(String instruction) { this.instruction = instruction; } - String instruction; - } public static class Data { @@ -62,14 +62,22 @@ public static class Data { String response_message; String accountnumber; String bankname; + String note; + String amount; + String validateInstruction; + String transaction_reference; + String payment_code; + AccountValidateInstructions validateInstructions; + String txRef; + String chargeResponseMessage; + String authurl; + String appFee; + String currency; + String charged_amount; + String redirectUrl; private String redirect_url; private String requery_url; - - public void setFlw_reference(String flw_reference) { - this.flw_reference = flw_reference; - } - public String getReference_code() { return payment_code; } @@ -86,22 +94,6 @@ public void setUssdData(Data data) { this.data = data; } - public void setResponse_code(String response_code) { - this.response_code = response_code; - } - - public void setResponse_message(String response_message) { - this.response_message = response_message; - } - - public void setBankname(String bankname) { - this.bankname = bankname; - } - - public void setAmount(String amount) { - this.amount = amount; - } - public String getTxRef() { return txRef; } @@ -110,10 +102,6 @@ public void setTxRef(String txRef) { this.txRef = txRef; } - public void setChargeResponseMessage(String chargeResponseMessage) { - this.chargeResponseMessage = chargeResponseMessage; - } - public String getCharged_amount() { return charged_amount; } @@ -122,17 +110,6 @@ public void setCharged_amount(String charged_amount) { this.charged_amount = charged_amount; } - public void setRedirectUrl(String redirectUrl) { - this.redirectUrl = redirectUrl; - } - - - String note; - String amount; - String validateInstruction; - String transaction_reference; - String payment_code; - public Data getData() { return data; } @@ -149,49 +126,78 @@ public String getTransaction_reference() { return transaction_reference; } - - public void setValidateInstruction(String validateInstruction) { - this.validateInstruction = validateInstruction; - } - public String getFlw_reference() { return flw_reference; } + public void setFlw_reference(String flw_reference) { + this.flw_reference = flw_reference; + } + public String getResponse_code() { return response_code; } + public void setResponse_code(String response_code) { + this.response_code = response_code; + } + public String getResponse_message() { return response_message; } + public void setResponse_message(String response_message) { + this.response_message = response_message; + } + public String getAccountnumber() { return accountnumber; } + public void setAccountnumber(String accountnumber) { + this.accountnumber = accountnumber; + } + public String getBankname() { return bankname; } + public void setBankname(String bankname) { + this.bankname = bankname; + } + public String getNote() { return note; } + public void setNote(String note) { + this.note = note; + } + public String getAmount() { return amount; } + public void setAmount(String amount) { + this.amount = amount; + } + public AccountValidateInstructions getValidateInstructions() { return validateInstructions; } - AccountValidateInstructions validateInstructions; + public void setValidateInstructions(AccountValidateInstructions validateInstructions) { + this.validateInstructions = validateInstructions; + } public String getValidateInstruction() { return validateInstruction; } + public void setValidateInstruction(String validateInstruction) { + this.validateInstruction = validateInstruction; + } + public String getTx_ref() { return txRef; } @@ -200,48 +206,62 @@ public void setTx_ref(String txRef) { this.txRef = txRef; } - String txRef; - String chargeResponseMessage; - String authurl; - String appFee; - String currency; - String charged_amount; - public String getRedirectUrl() { return redirectUrl; } - String redirectUrl; + public void setRedirectUrl(String redirectUrl) { + this.redirectUrl = redirectUrl; + } public String getAuthurl() { return authurl; } + public void setAuthurl(String authurl) { + this.authurl = authurl; + } + public String getFlwRef() { return flwRef; } - public void setValidateInstructions(AccountValidateInstructions validateInstructions) { - this.validateInstructions = validateInstructions; + public void setFlwRef(String flwRef) { + this.flwRef = flwRef; } public String getChargeResponseMessage() { return chargeResponseMessage; } + public void setChargeResponseMessage(String chargeResponseMessage) { + this.chargeResponseMessage = chargeResponseMessage; + } + public String getAuthModelUsed() { return authModelUsed; } + public void setAuthModelUsed(String authModelUsed) { + this.authModelUsed = authModelUsed; + } + public String getChargeResponseCode() { return chargeResponseCode; } + public void setChargeResponseCode(String chargeResponseCode) { + this.chargeResponseCode = chargeResponseCode; + } public String getSuggested_auth() { return suggested_auth; } + public void setSuggested_auth(String suggested_auth) { + this.suggested_auth = suggested_auth; + } + public String getAppFee() { return appFee; } @@ -266,38 +286,10 @@ public void setChargedAmount(String charged_amount) { this.charged_amount = charged_amount; } - public void setChargeResponseCode(String chargeResponseCode) { - this.chargeResponseCode = chargeResponseCode; - } - - public void setAuthModelUsed(String authModelUsed) { - this.authModelUsed = authModelUsed; - } - - public void setSuggested_auth(String suggested_auth) { - this.suggested_auth = suggested_auth; - } - - public void setAuthurl(String authurl) { - this.authurl = authurl; - } - - public void setFlwRef(String flwRef) { - this.flwRef = flwRef; - } - - public void setNote(String note) { - this.note = note; - } - public void setBankName(String bankName) { this.bankname = bankName; } - public void setAccountnumber(String accountnumber) { - this.accountnumber = accountnumber; - } - public String getRedirect_url() { return redirect_url; } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/FeeCheckResponse.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/FeeCheckResponse.java index 219220b4..41054b4a 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/FeeCheckResponse.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/FeeCheckResponse.java @@ -12,33 +12,27 @@ public class FeeCheckResponse { private Data data; - public String getMessage () - { + public String getMessage() { return message; } - public void setMessage (String message) - { + public void setMessage(String message) { this.message = message; } - public String getStatus () - { + public String getStatus() { return status; } - public void setStatus (String status) - { + public void setStatus(String status) { this.status = status; } - public Data getData () - { + public Data getData() { return data; } - public void setData (Data data) - { + public void setData(Data data) { this.data = data; } @@ -51,43 +45,35 @@ public static class Data { private String ravefee; - public String getFee () - { + public String getFee() { return fee; } - public void setFee (String fee) - { + public void setFee(String fee) { this.fee = fee; } - public String getCharge_amount () - { + public String getCharge_amount() { return charge_amount; } - public void setCharge_amount (String charge_amount) - { + public void setCharge_amount(String charge_amount) { this.charge_amount = charge_amount; } - public String getMerchantfee () - { + public String getMerchantfee() { return merchantfee; } - public void setMerchantfee (String merchantfee) - { + public void setMerchantfee(String merchantfee) { this.merchantfee = merchantfee; } - public String getRavefee () - { + public String getRavefee() { return ravefee; } - public void setRavefee (String ravefee) - { + public void setRavefee(String ravefee) { this.ravefee = ravefee; } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/MobileMoneyChargeResponse.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/MobileMoneyChargeResponse.java index 62e62b4a..07c0e0df 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/MobileMoneyChargeResponse.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/MobileMoneyChargeResponse.java @@ -38,14 +38,10 @@ public static class Data { String chargeResponseCode; String authModelUsed; String flwRef; - - public void setFlwRef(String flwRef) { - this.flwRef = flwRef; - } - - public void setAuthurl(String authurl) { - this.authurl = authurl; - } + String txRef; + String chargeResponseMessage; + String authurl; + String redirectUrl; public String getTx_ref() { return txRef; @@ -55,28 +51,26 @@ public void setTx_ref(String txRef) { this.txRef = txRef; } - String txRef; - String chargeResponseMessage; - String authurl; - public String getRedirectUrl() { return redirectUrl; } - public void setChargeResponseCode(String chargeResponseCode) { - this.chargeResponseCode = chargeResponseCode; - } - - String redirectUrl; - public String getAuthurl() { return authurl; } + public void setAuthurl(String authurl) { + this.authurl = authurl; + } + public String getFlwRef() { return flwRef; } + public void setFlwRef(String flwRef) { + this.flwRef = flwRef; + } + public String getChargeResponseMessage() { return chargeResponseMessage; } @@ -89,6 +83,9 @@ public String getChargeResponseCode() { return chargeResponseCode; } + public void setChargeResponseCode(String chargeResponseCode) { + this.chargeResponseCode = chargeResponseCode; + } public String getSuggested_auth() { return suggested_auth; diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/RequeryResponse.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/RequeryResponse.java index 1cd05140..5534bc92 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/RequeryResponse.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/RequeryResponse.java @@ -9,25 +9,26 @@ public class RequeryResponse { String status; + Data data; public Data getData() { return data; } - Data data; + public void setData(Data data) { + this.data = data; + } public String getStatus() { return status; } - - public void setData(Data data) { - this.data = data; - } - public static class Data { Data data; + String chargeResponseCode; + CardDets card; + String status; public Data getData() { return data; @@ -37,18 +38,18 @@ public void setData(Data data) { this.data = data; } - String chargeResponseCode; + public String getChargeResponseCode() { + return chargeResponseCode; + } - public String getChargeResponseCode() { return chargeResponseCode; } + public void setChargeResponseCode(String chargeResponseCode) { + this.chargeResponseCode = chargeResponseCode; + } public CardDets getCard() { return card; } - CardDets card; - - String status; - public String getStatus() { return status; } @@ -56,65 +57,51 @@ public String getStatus() { public void setStatus(String status) { this.status = status; } - - public void setChargeResponseCode(String chargeResponseCode) { - this.chargeResponseCode = chargeResponseCode; - } } - public static class Card_tokens - { + public static class Card_tokens { private String embedtoken; private String shortcode; - public String getEmbedtoken () - { + public String getEmbedtoken() { return embedtoken; } - public String getShortcode () - { + public String getShortcode() { return shortcode; } } - public static class CardDets - { + public static class CardDets { private String cardBIN; private List card_tokens; private String brand; - public String getCardBIN () - { + public String getCardBIN() { return cardBIN; } - public void setCardBIN (String cardBIN) - { + public void setCardBIN(String cardBIN) { this.cardBIN = cardBIN; } - public List getCard_tokens () - { + public List getCard_tokens() { return card_tokens; } - public void setCard_tokens (List card_tokens) - { + public void setCard_tokens(List card_tokens) { this.card_tokens = card_tokens; } - public String getBrand () - { + public String getBrand() { return brand; } - public void setBrand (String brand) - { + public void setBrand(String brand) { this.brand = brand; } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/RequeryResponsev2.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/RequeryResponsev2.java index 0ad1b147..17ef855a 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/RequeryResponsev2.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/RequeryResponsev2.java @@ -6,6 +6,10 @@ public class RequeryResponsev2 { + String status; + String message; + Data data; + public String getStatus() { return status; } @@ -22,10 +26,6 @@ public void setMessage(String message) { this.message = message; } - String status; - String message; - Data data; - public Data getData() { return data; } @@ -38,6 +38,8 @@ public static class Data { String txref; String flwref; + String chargecode; + String status; public String getTxref() { return txref; @@ -70,8 +72,5 @@ public String getStatus() { public void setStatus(String status) { this.status = status; } - - String chargecode; - String status; } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/SubAccount.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/SubAccount.java index 3bd5a28f..65736144 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/SubAccount.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/responses/SubAccount.java @@ -4,8 +4,8 @@ import com.google.gson.annotations.SerializedName; public class SubAccount { - public static final String FLAT="flat"; - public static final String PERCENTAGE="percentage"; + public static final String FLAT = "flat"; + public static final String PERCENTAGE = "percentage"; @SerializedName("id") @Expose @@ -20,17 +20,17 @@ public class SubAccount { @Expose private String transactionCharge; - public SubAccount(){ + public SubAccount() { } - public SubAccount(String id, String transactionSplitRatio){ + public SubAccount(String id, String transactionSplitRatio) { this.id = id; this.transactionSplitRatio = transactionSplitRatio; } - public SubAccount(String id, String transactionSplitRatio, String transactionChargeType, String transactionCharge){ - this.id=id; + public SubAccount(String id, String transactionSplitRatio, String transactionChargeType, String transactionCharge) { + this.id = id; this.transactionSplitRatio = transactionSplitRatio; this.transactionChargeType = transactionChargeType; this.transactionCharge = transactionCharge; diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/rwfmobilemoney/RwfMobileMoneyFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/rwfmobilemoney/RwfMobileMoneyFragment.java index 3df5193a..1967ef1e 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/rwfmobilemoney/RwfMobileMoneyFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/rwfmobilemoney/RwfMobileMoneyFragment.java @@ -273,7 +273,13 @@ public void onClick(DialogInterface dialog, int which) { @Override public void onPollingRoundComplete(String flwRef, String txRef, String publicKey) { if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { - presenter.requeryTx(flwRef, txRef, publicKey); + try { + Thread.sleep(1000); + presenter.requeryTx(flwRef, txRef, publicKey); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyContract.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyContract.java index 99c02fe3..0ffb3175 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyContract.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyContract.java @@ -15,25 +15,41 @@ public interface UgMobileMoneyContract { interface View { void showToast(String message); + void showFetchFeeFailed(String s); + void onPaymentError(String message); + void showPollingIndicator(boolean active); + void showProgressIndicator(boolean active); + void onAmountValidationSuccessful(String amountToPay); + void displayFee(String charge_amount, Payload payload); + void showFieldError(int viewID, String message, Class viewType); + void onPaymentFailed(String message, String responseAsJSONString); + void onValidationSuccessful(HashMap dataHashMap); + void onPollingRoundComplete(String flwRef, String txRef, String publicKey); + void onPaymentSuccessful(String status, String flwRef, String responseAsString); } interface UserActionsListener { void fetchFee(Payload payload); + void init(RavePayInitializer ravePayInitializer); + void onDataCollected(HashMap dataHashMap); + void requeryTx(String flwRef, String txRef, String publicKey); + void chargeUgMobileMoney(Payload payload, String encryptionKey); + void processTransaction(HashMap dataHashMap, RavePayInitializer ravePayInitializer); void onAttachView(View view); diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyFragment.java index 92febd6e..4c967d73 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyFragment.java @@ -42,6 +42,8 @@ */ public class UgMobileMoneyFragment extends Fragment implements UgMobileMoneyContract.View, View.OnClickListener, View.OnFocusChangeListener { + @Inject + UgMobileMoneyPresenter presenter; private View v; private Button payButton; private TextView instructionsTv; @@ -50,12 +52,7 @@ public class UgMobileMoneyFragment extends Fragment implements UgMobileMoneyCont private TextInputEditText phoneEt; private TextInputEditText amountEt; private ProgressDialog progressDialog; - private ProgressDialog pollingProgressDialog ; - - - @Inject - UgMobileMoneyPresenter presenter; - + private ProgressDialog pollingProgressDialog; private String validateInstructions; private RavePayInitializer ravePayInitializer; @@ -103,12 +100,12 @@ private void setListeners() { } private void initializeViews() { - instructionsTv = v.findViewById(R.id.instructionsTv); - amountTil = v.findViewById(R.id.rave_amountTil); + instructionsTv = v.findViewById(R.id.instructionsTv); + amountTil = v.findViewById(R.id.rave_amountTil); payButton = v.findViewById(R.id.rave_payButton); - phoneTil = v.findViewById(R.id.rave_phoneTil); + phoneTil = v.findViewById(R.id.rave_phoneTil); amountEt = v.findViewById(R.id.rave_amountEt); - phoneEt = v.findViewById(R.id.rave_phoneEt); + phoneEt = v.findViewById(R.id.rave_phoneEt); } @Override @@ -124,8 +121,7 @@ private void showInstructionsAndVoucher(boolean show) { if (show) { instructionsTv.setVisibility(View.VISIBLE); - } - else { + } else { instructionsTv.setVisibility(View.GONE); } } @@ -168,8 +164,10 @@ public void onAmountValidationSuccessful(String amountToPay) { @Override public void showProgressIndicator(boolean active) { - if (getActivity().isFinishing()) { return; } - if(progressDialog == null) { + if (getActivity().isFinishing()) { + return; + } + if (progressDialog == null) { progressDialog = new ProgressDialog(getActivity()); progressDialog.setCanceledOnTouchOutside(false); progressDialog.setMessage(getResources().getString(R.string.wait)); @@ -177,8 +175,7 @@ public void showProgressIndicator(boolean active) { if (active && !progressDialog.isShowing()) { progressDialog.show(); - } - else { + } else { progressDialog.dismiss(); } } @@ -288,7 +285,12 @@ public void onClick(DialogInterface dialog, int which) { @Override public void onPollingRoundComplete(String flwRef, String txRef, String publicKey) { if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { - presenter.requeryTx(flwRef, txRef, publicKey); + try { + Thread.sleep(1000); + presenter.requeryTx(flwRef, txRef, publicKey); + } catch (InterruptedException ignore) { + + } } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyPresenter.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyPresenter.java index 558d71db..13ef0f58 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyPresenter.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyPresenter.java @@ -48,9 +48,6 @@ public class UgMobileMoneyPresenter implements UgMobileMoneyContract.UserActionsListener { - private Context context; - private UgMobileMoneyContract.View mView; - @Inject EventLogger eventLogger; @Inject @@ -63,6 +60,8 @@ public class UgMobileMoneyPresenter implements UgMobileMoneyContract.UserActions DeviceIdGetter deviceIdGetter; @Inject PayloadEncryptor payloadEncryptor; + private Context context; + private UgMobileMoneyContract.View mView; @Inject public UgMobileMoneyPresenter(Context context, UgMobileMoneyContract.View mView) { @@ -87,8 +86,7 @@ public void onSuccess(FeeCheckResponse response) { try { mView.displayFee(response.getData().getCharge_amount(), payload); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); mView.showFetchFeeFailed(transactionError); } @@ -130,8 +128,7 @@ public void onSuccess(MobileMoneyChargeResponse response, String responseAsJSONS String flwRef = response.getData().getFlwRef(); String txRef = response.getData().getTx_ref(); requeryTx(flwRef, txRef, payload.getPBFPubKey()); - } - else { + } else { mView.onPaymentError(noResponse); } @@ -161,16 +158,13 @@ public void requeryTx(final String flwRef, final String txRef, final String publ public void onSuccess(RequeryResponse response, String responseAsJSONString) { if (response.getData() == null) { mView.onPaymentFailed(response.getStatus(), responseAsJSONString); - } - else if (response.getData().getChargeResponseCode().equals("02")){ + } else if (response.getData().getChargeResponseCode().equals("02")) { // Log.d("Requery response",responseAsJSONString); mView.onPollingRoundComplete(flwRef, txRef, publicKey); - } - else if (response.getData().getChargeResponseCode().equals("00")) { + } else if (response.getData().getChargeResponseCode().equals("00")) { mView.showPollingIndicator(false); mView.onPaymentSuccessful(flwRef, txRef, responseAsJSONString); - } - else { + } else { mView.showProgressIndicator(false); mView.onPaymentFailed(response.getData().getStatus(), responseAsJSONString); } @@ -186,7 +180,7 @@ public void onError(String message, String responseAsJSONString) { @Override public void onDataCollected(HashMap dataHashMap) { - boolean valid = true; + boolean valid = true; int amountID = dataHashMap.get(fieldAmount).getViewId(); String amount = dataHashMap.get(fieldAmount).getData(); @@ -205,20 +199,20 @@ public void onDataCollected(HashMap dataHashMap) { } if (!isPhoneValid) { - valid = false; + valid = false; mView.showFieldError(phoneID, validPhonePrompt, phoneViewType); } - if (valid) { - mView.onValidationSuccessful(dataHashMap); - } + if (valid) { + mView.onValidationSuccessful(dataHashMap); + } } @Override public void processTransaction(HashMap dataHashMap, RavePayInitializer ravePayInitializer) { - if (ravePayInitializer!=null) { + if (ravePayInitializer != null) { ravePayInitializer.setAmount(Double.parseDouble(dataHashMap.get(RaveConstants.fieldAmount).getData())); diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/uk/UkFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/uk/UkFragment.java index ce0533a8..e6f1839a 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/uk/UkFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/uk/UkFragment.java @@ -306,7 +306,13 @@ public void onClick(DialogInterface dialog, int which) { public void onPollingRoundComplete(String flwRef, String txRef, String publicKey) { if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { - presenter.requeryTx(flwRef, txRef, publicKey); + try { + Thread.sleep(1000); + presenter.requeryTx(flwRef, txRef, publicKey); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/ussd/UssdContract.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/ussd/UssdContract.java index cbbc999c..508949e0 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/ussd/UssdContract.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/ussd/UssdContract.java @@ -1,5 +1,3 @@ - - package com.flutterwave.raveandroid.ussd; import com.flutterwave.raveandroid.Payload; diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/ussd/UssdPresenter.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/ussd/UssdPresenter.java index 06e5c6c2..1214d4b5 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/ussd/UssdPresenter.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/ussd/UssdPresenter.java @@ -34,11 +34,8 @@ import static com.flutterwave.raveandroid.RaveConstants.transactionError; public class UssdPresenter implements UssdContract.UserActionsListener { - private Context context; public UssdContract.View mView; - public boolean pollingCancelled = false; - @Inject EventLogger eventLogger; @Inject @@ -51,6 +48,7 @@ public class UssdPresenter implements UssdContract.UserActionsListener { DeviceIdGetter deviceIdGetter; @Inject NetworkRequestImpl networkRequest; + private Context context; private String txRef = null, flwRef = null, publicKey = null, ussdCode = null, referenceCode = null; private long requeryCountdownTime = 0; diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/OTPFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/OTPFragment.java index 4dbd6918..0457f57c 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/OTPFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/OTPFragment.java @@ -31,7 +31,7 @@ public class OTPFragment extends Fragment implements View.OnClickListener { public static final String EXTRA_OTP = "extraOTP"; public static final String IS_SAVED_CARD_CHARGE = "is_saved_card_charge"; - private Boolean isSavedCardCharge = false; + public static final String EXTRA_CHARGE_MESSAGE = "extraChargeMessage"; TextInputEditText otpEt; TextInputLayout otpTil; TextView chargeMessage; @@ -39,10 +39,9 @@ public class OTPFragment extends Fragment implements View.OnClickListener { @Inject EventLogger logger; - - public static final String EXTRA_CHARGE_MESSAGE = "extraChargeMessage"; View v; String otp; + private Boolean isSavedCardCharge = false; public OTPFragment() { // Required empty public constructor diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/PinFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/PinFragment.java index 068cff03..5b9914d6 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/PinFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/PinFragment.java @@ -13,7 +13,6 @@ import com.flutterwave.raveandroid.R; import com.flutterwave.raveandroid.RavePayActivity; - import com.flutterwave.raveandroid.data.EventLogger; import com.flutterwave.raveandroid.data.events.Event; import com.flutterwave.raveandroid.data.events.ScreenLaunchEvent; @@ -29,9 +28,9 @@ */ public class PinFragment extends Fragment { public static final String EXTRA_PIN = "extraPin"; - private String pin; @Inject EventLogger logger; + private String pin; public PinFragment() { // Required empty public constructor @@ -61,8 +60,7 @@ public void onClick(View v) { if (pin.length() != 4) { pinTil.setError("Enter a valid pin"); - } - else { + } else { goBack(); } } @@ -97,9 +95,9 @@ & getArguments().getString(PUBLIC_KEY_EXTRA) != null } } - public void goBack(){ + public void goBack() { Intent intent = new Intent(); - intent.putExtra(EXTRA_PIN,pin); + intent.putExtra(EXTRA_PIN, pin); logEvent(new SubmitEvent("PIN").getEvent()); if (getActivity() != null) { getActivity().setResult(RavePayActivity.RESULT_SUCCESS, intent); diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/VerificationActivity.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/VerificationActivity.java index ad19ee3b..abc9fb4f 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/VerificationActivity.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/VerificationActivity.java @@ -20,16 +20,15 @@ import static com.flutterwave.raveandroid.RaveConstants.STAGING_URL; public class VerificationActivity extends AppCompatActivity { - private static final String TAG = VerificationActivity.class.getName(); public static final String ACTIVITY_MOTIVE = "activityMotive"; public static final String PUBLIC_KEY_EXTRA = "publicKey"; public static final String EXTRA_IS_STAGING = "isStaging"; public static final String INTENT_SENDER = "sender"; + private static final String TAG = VerificationActivity.class.getName(); public static String BASE_URL; - private Fragment fragment; AppComponent appComponent; - RavePayInitializer ravePayInitializer; + private Fragment fragment; @Override protected void onCreate(Bundle savedInstanceState) { diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/web/WebFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/web/WebFragment.java index d01617f6..301adea7 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/web/WebFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/web/WebFragment.java @@ -101,50 +101,6 @@ private void hideWebview() { webView.setVisibility(View.INVISIBLE); } - // Manages the behavior when URLs are loaded - private class MyBrowser extends WebViewClient { - @SuppressWarnings("deprecation") - @Override - public boolean shouldOverrideUrlLoading(WebView view, String url) { - if (url.contains(RaveConstants.RAVE_3DS_CALLBACK)) { - hideWebview(); - } - view.loadUrl(url); - return true; - } - - @TargetApi(Build.VERSION_CODES.N) - @Override - public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { - - if (request.getUrl().toString().contains(RaveConstants.RAVE_3DS_CALLBACK)) { - hideWebview(); - } - view.loadUrl(request.getUrl().toString()); - return true; - } - - @Override - public void onPageStarted(WebView view, String url, Bitmap favicon) { - super.onPageStarted(view, url, favicon); - Log.d("started URLS", url); - showProgressIndicator(true); - } - - @Override - public void onPageFinished(WebView view, String url) { - super.onPageFinished(view, url); - -// Log.d("URLS", url); - showProgressIndicator(false); - - Log.d("finished URLS", url); - if (url.contains(RaveConstants.RAVE_3DS_CALLBACK)) { - goBack(); - } - } - } - public void goBack() { Intent intent = new Intent(); if (getActivity() != null) { @@ -162,7 +118,6 @@ private void goBack(int result, String responseAsJSONString) { } } - public void showProgressIndicator(boolean active) { try { @@ -198,7 +153,13 @@ public void onPaymentFailed(String message, String responseAsJSONString) { @Override public void onPollingRoundComplete(String flwRef, String publicKey) { - presenter.requeryTx(flwRef, publicKey); + try { + Thread.sleep(1000); + presenter.requeryTx(flwRef, publicKey); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } @Override @@ -214,4 +175,48 @@ public void onDetach() { presenter.onDetachView(); } } + + // Manages the behavior when URLs are loaded + private class MyBrowser extends WebViewClient { + @SuppressWarnings("deprecation") + @Override + public boolean shouldOverrideUrlLoading(WebView view, String url) { + if (url.contains(RaveConstants.RAVE_3DS_CALLBACK)) { + hideWebview(); + } + view.loadUrl(url); + return true; + } + + @TargetApi(Build.VERSION_CODES.N) + @Override + public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { + + if (request.getUrl().toString().contains(RaveConstants.RAVE_3DS_CALLBACK)) { + hideWebview(); + } + view.loadUrl(request.getUrl().toString()); + return true; + } + + @Override + public void onPageStarted(WebView view, String url, Bitmap favicon) { + super.onPageStarted(view, url, favicon); + Log.d("started URLS", url); + showProgressIndicator(true); + } + + @Override + public void onPageFinished(WebView view, String url) { + super.onPageFinished(view, url); + +// Log.d("URLS", url); + showProgressIndicator(false); + + Log.d("finished URLS", url); + if (url.contains(RaveConstants.RAVE_3DS_CALLBACK)) { + goBack(); + } + } + } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/zmmobilemoney/ZmMobileMoneyFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/zmmobilemoney/ZmMobileMoneyFragment.java index 3ff86779..921cdc76 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/zmmobilemoney/ZmMobileMoneyFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/zmmobilemoney/ZmMobileMoneyFragment.java @@ -331,7 +331,13 @@ public void onClick(DialogInterface dialog, int which) { @Override public void onPollingRoundComplete(String flwRef, String txRef, String publicKey) { if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { - presenter.requeryTx(flwRef, txRef, publicKey); + try { + Thread.sleep(1000); + presenter.requeryTx(flwRef, txRef, publicKey); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } } From 09e3be88ed357cb2cbda4699906570cbe87349d8 Mon Sep 17 00:00:00 2001 From: taiwoadebayo Date: Wed, 29 Jan 2020 11:58:47 +0100 Subject: [PATCH 7/8] use default test keys --- .../java/com/flutterwave/raveandroid/RaveConstants.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java index 7cdc3c90..a441e09f 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java @@ -9,11 +9,8 @@ public class RaveConstants { public static final int SAVED_CARD_CHARGE = 5699; -// public static String PUBLIC_KEY = "FLWPUBK-e634d14d9ded04eaf05d5b63a0a06d2f-X"; //test -// public static String ENCRYPTION_KEY = "bb9714020722eb4cf7a169f2";//test - - public static String PUBLIC_KEY = "FLWPUBK-a273601bbbf662ed3d74690bf83e1c95-X"; //test - public static String ENCRYPTION_KEY = "592a99df91fe30fa74485a0a";//test + public static String PUBLIC_KEY = "FLWPUBK-e634d14d9ded04eaf05d5b63a0a06d2f-X"; //test + public static String ENCRYPTION_KEY = "bb9714020722eb4cf7a169f2";//test // public static String STAGING_URL = "https://ravesandbox.azurewebsites.net"; // public static String LIVE_URL = "https://raveapi.azurewebsites.net"; public static String STAGING_URL = "https://ravesandboxapi.flutterwave.com"; From d18c0fe2c64db41c1b36179dbd457d0a0db3be72 Mon Sep 17 00:00:00 2001 From: taiwoadebayo Date: Mon, 10 Feb 2020 10:42:32 +0100 Subject: [PATCH 8/8] adjusted sleep to post delayed to avoid delay on the ui --- .../flutterwave/raveandroid/RaveConstants.java | 7 +++++-- .../raveandroid/barter/BarterFragment.java | 17 ++++++++++------- .../FrancMobileMoneyFragment.java | 17 ++++++++++------- .../ghmobilemoney/GhMobileMoneyFragment.java | 16 +++++++++------- .../raveandroid/mpesa/MpesaFragment.java | 17 ++++++++++------- .../rwfmobilemoney/RwfMobileMoneyFragment.java | 17 ++++++++++------- .../ugmobilemoney/UgMobileMoneyFragment.java | 15 +++++++++------ .../flutterwave/raveandroid/uk/UkFragment.java | 17 ++++++++++------- .../verification/web/WebFragment.java | 17 ++++++++++------- .../zmmobilemoney/ZmMobileMoneyFragment.java | 17 ++++++++++------- 10 files changed, 93 insertions(+), 64 deletions(-) diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java index a441e09f..72a9ac77 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/RaveConstants.java @@ -9,8 +9,11 @@ public class RaveConstants { public static final int SAVED_CARD_CHARGE = 5699; - public static String PUBLIC_KEY = "FLWPUBK-e634d14d9ded04eaf05d5b63a0a06d2f-X"; //test - public static String ENCRYPTION_KEY = "bb9714020722eb4cf7a169f2";//test + // public static String PUBLIC_KEY = "FLWPUBK-e634d14d9ded04eaf05d5b63a0a06d2f-X"; //test +// public static String ENCRYPTION_KEY = "bb9714020722eb4cf7a169f2";//test +// + public static String PUBLIC_KEY = "FLWPUBK-9f0d0dd7dc219618b2b7892df65c0db3-X"; //test + public static String ENCRYPTION_KEY = "d19b1c9adf4128ceccc41634";//test // public static String STAGING_URL = "https://ravesandbox.azurewebsites.net"; // public static String LIVE_URL = "https://raveapi.azurewebsites.net"; public static String STAGING_URL = "https://ravesandboxapi.flutterwave.com"; diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/barter/BarterFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/barter/BarterFragment.java index f520cadf..545c003b 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/barter/BarterFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/barter/BarterFragment.java @@ -5,6 +5,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; +import android.os.Handler; import android.support.design.widget.TextInputEditText; import android.support.design.widget.TextInputLayout; import android.support.v4.app.Fragment; @@ -286,14 +287,16 @@ public void onPaymentFailed(String responseAsJSONString) { } @Override - public void onPollingRoundComplete(String flwRef, String publicKey) { + public void onPollingRoundComplete(final String flwRef, final String publicKey) { if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { - try { - Thread.sleep(1000); - presenter.requeryTx(flwRef, publicKey); - } catch (InterruptedException e) { - e.printStackTrace(); - } + + Handler handler = new Handler(); + Runnable r = new Runnable() { + public void run() { + presenter.requeryTx(flwRef, publicKey); + } + }; + handler.postDelayed(r, 1000); } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/francMobileMoney/FrancMobileMoneyFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/francMobileMoney/FrancMobileMoneyFragment.java index 92524e18..73115b40 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/francMobileMoney/FrancMobileMoneyFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/francMobileMoney/FrancMobileMoneyFragment.java @@ -5,6 +5,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; +import android.os.Handler; import android.support.design.widget.TextInputEditText; import android.support.design.widget.TextInputLayout; import android.support.v4.app.Fragment; @@ -282,15 +283,17 @@ public void onClick(DialogInterface dialog, int which) { } @Override - public void onPollingRoundComplete(String flwRef, String txRef, String publicKey) { + public void onPollingRoundComplete(final String flwRef, final String txRef, final String publicKey) { if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { - try { - Thread.sleep(1000); - presenter.requeryTx(flwRef, txRef, publicKey); - } catch (InterruptedException e) { - e.printStackTrace(); - } + + Handler handler = new Handler(); + Runnable r = new Runnable() { + public void run() { + presenter.requeryTx(flwRef, txRef, publicKey); + } + }; + handler.postDelayed(r, 1000); } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyFragment.java index 028576a5..d6c21965 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/ghmobilemoney/GhMobileMoneyFragment.java @@ -5,6 +5,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; +import android.os.Handler; import android.support.design.widget.TextInputEditText; import android.support.design.widget.TextInputLayout; import android.support.v4.app.Fragment; @@ -353,15 +354,16 @@ public void onClick(DialogInterface dialog, int which) { } @Override - public void onPollingRoundComplete(String flwRef, String txRef, String publicKey) { + public void onPollingRoundComplete(final String flwRef, final String txRef, final String publicKey) { if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { - try { - Thread.sleep(1000); - presenter.requeryTx(flwRef, txRef, publicKey); - } catch (InterruptedException e) { - e.printStackTrace(); - } + Handler handler = new Handler(); + Runnable r = new Runnable() { + public void run() { + presenter.requeryTx(flwRef, txRef, publicKey); + } + }; + handler.postDelayed(r, 1000); } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaFragment.java index ae38c176..4b409d87 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/mpesa/MpesaFragment.java @@ -5,6 +5,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; +import android.os.Handler; import android.support.design.widget.TextInputEditText; import android.support.design.widget.TextInputLayout; import android.support.v4.app.Fragment; @@ -283,15 +284,17 @@ public void onClick(DialogInterface dialog, int which) { } @Override - public void onPollingRoundComplete(String flwRef, String txRef, String publicKey) { + public void onPollingRoundComplete(final String flwRef, final String txRef, final String publicKey) { if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { - try { - Thread.sleep(1000); - presenter.requeryTx(flwRef, txRef, publicKey); - } catch (InterruptedException e) { - e.printStackTrace(); - } + + Handler handler = new Handler(); + Runnable r = new Runnable() { + public void run() { + presenter.requeryTx(flwRef, txRef, publicKey); + } + }; + handler.postDelayed(r, 1000); } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/rwfmobilemoney/RwfMobileMoneyFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/rwfmobilemoney/RwfMobileMoneyFragment.java index 1967ef1e..cf537dae 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/rwfmobilemoney/RwfMobileMoneyFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/rwfmobilemoney/RwfMobileMoneyFragment.java @@ -5,6 +5,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; +import android.os.Handler; import android.support.design.widget.TextInputEditText; import android.support.design.widget.TextInputLayout; import android.support.v4.app.Fragment; @@ -271,14 +272,16 @@ public void onClick(DialogInterface dialog, int which) { } @Override - public void onPollingRoundComplete(String flwRef, String txRef, String publicKey) { + public void onPollingRoundComplete(final String flwRef, final String txRef, final String publicKey) { if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { - try { - Thread.sleep(1000); - presenter.requeryTx(flwRef, txRef, publicKey); - } catch (InterruptedException e) { - e.printStackTrace(); - } + + Handler handler = new Handler(); + Runnable r = new Runnable() { + public void run() { + presenter.requeryTx(flwRef, txRef, publicKey); + } + }; + handler.postDelayed(r, 1000); } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyFragment.java index 4c967d73..ab724a78 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/ugmobilemoney/UgMobileMoneyFragment.java @@ -5,6 +5,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; +import android.os.Handler; import android.support.design.widget.TextInputEditText; import android.support.design.widget.TextInputLayout; import android.support.v4.app.Fragment; @@ -283,14 +284,16 @@ public void onClick(DialogInterface dialog, int which) { } @Override - public void onPollingRoundComplete(String flwRef, String txRef, String publicKey) { + public void onPollingRoundComplete(final String flwRef, final String txRef, final String publicKey) { if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { - try { - Thread.sleep(1000); - presenter.requeryTx(flwRef, txRef, publicKey); - } catch (InterruptedException ignore) { - } + Handler handler = new Handler(); + Runnable r = new Runnable() { + public void run() { + presenter.requeryTx(flwRef, txRef, publicKey); + } + }; + handler.postDelayed(r, 1000); } } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/uk/UkFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/uk/UkFragment.java index e6f1839a..8ccb28ec 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/uk/UkFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/uk/UkFragment.java @@ -6,6 +6,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; +import android.os.Handler; import android.support.design.widget.TextInputEditText; import android.support.design.widget.TextInputLayout; import android.support.v4.app.Fragment; @@ -303,15 +304,17 @@ public void onClick(DialogInterface dialog, int which) { } @Override - public void onPollingRoundComplete(String flwRef, String txRef, String publicKey) { + public void onPollingRoundComplete(final String flwRef, final String txRef, final String publicKey) { if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { - try { - Thread.sleep(1000); - presenter.requeryTx(flwRef, txRef, publicKey); - } catch (InterruptedException e) { - e.printStackTrace(); - } + + Handler handler = new Handler(); + Runnable r = new Runnable() { + public void run() { + presenter.requeryTx(flwRef, txRef, publicKey); + } + }; + handler.postDelayed(r, 1000); } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/web/WebFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/web/WebFragment.java index 301adea7..8819fe41 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/web/WebFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/verification/web/WebFragment.java @@ -7,6 +7,7 @@ import android.graphics.Bitmap; import android.os.Build; import android.os.Bundle; +import android.os.Handler; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; @@ -152,13 +153,15 @@ public void onPaymentFailed(String message, String responseAsJSONString) { } @Override - public void onPollingRoundComplete(String flwRef, String publicKey) { - try { - Thread.sleep(1000); - presenter.requeryTx(flwRef, publicKey); - } catch (InterruptedException e) { - e.printStackTrace(); - } + public void onPollingRoundComplete(final String flwRef, final String publicKey) { + + Handler handler = new Handler(); + Runnable r = new Runnable() { + public void run() { + presenter.requeryTx(flwRef, publicKey); + } + }; + handler.postDelayed(r, 1000); } diff --git a/raveandroid/src/main/java/com/flutterwave/raveandroid/zmmobilemoney/ZmMobileMoneyFragment.java b/raveandroid/src/main/java/com/flutterwave/raveandroid/zmmobilemoney/ZmMobileMoneyFragment.java index 921cdc76..aa4564b1 100644 --- a/raveandroid/src/main/java/com/flutterwave/raveandroid/zmmobilemoney/ZmMobileMoneyFragment.java +++ b/raveandroid/src/main/java/com/flutterwave/raveandroid/zmmobilemoney/ZmMobileMoneyFragment.java @@ -5,6 +5,7 @@ import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; +import android.os.Handler; import android.support.design.widget.TextInputEditText; import android.support.design.widget.TextInputLayout; import android.support.v4.app.Fragment; @@ -329,14 +330,16 @@ public void onClick(DialogInterface dialog, int which) { } @Override - public void onPollingRoundComplete(String flwRef, String txRef, String publicKey) { + public void onPollingRoundComplete(final String flwRef, final String txRef, final String publicKey) { if (pollingProgressDialog != null && pollingProgressDialog.isShowing()) { - try { - Thread.sleep(1000); - presenter.requeryTx(flwRef, txRef, publicKey); - } catch (InterruptedException e) { - e.printStackTrace(); - } + + Handler handler = new Handler(); + Runnable r = new Runnable() { + public void run() { + presenter.requeryTx(flwRef, txRef, publicKey); + } + }; + handler.postDelayed(r, 1000); } }