Skip to content

Commit 071d097

Browse files
authored
Merge pull request #185 from jeremiahVaris/hot-fix
Fix payment types checking
2 parents ddda0fc + 0adafa1 commit 071d097

File tree

2 files changed

+39
-20
lines changed

2 files changed

+39
-20
lines changed

rave_android/src/main/java/com/flutterwave/raveandroid/RavePayActivity.java

Lines changed: 13 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,6 @@
77
import android.graphics.Typeface;
88
import android.os.Build;
99
import android.os.Bundle;
10-
import androidx.constraintlayout.widget.ConstraintLayout;
11-
import androidx.constraintlayout.widget.ConstraintSet;
12-
import androidx.constraintlayout.widget.Guideline;
13-
import androidx.transition.AutoTransition;
14-
import androidx.transition.TransitionManager;
15-
import androidx.fragment.app.FragmentTransaction;
16-
import androidx.core.view.ViewCompat;
17-
import androidx.appcompat.app.AppCompatActivity;
1810
import android.text.Spannable;
1911
import android.text.SpannableStringBuilder;
2012
import android.text.style.StyleSpan;
@@ -23,17 +15,26 @@
2315
import android.view.View;
2416
import android.widget.TextView;
2517

18+
import androidx.appcompat.app.AppCompatActivity;
19+
import androidx.constraintlayout.widget.ConstraintLayout;
20+
import androidx.constraintlayout.widget.ConstraintSet;
21+
import androidx.constraintlayout.widget.Guideline;
22+
import androidx.core.view.ViewCompat;
23+
import androidx.fragment.app.FragmentTransaction;
24+
import androidx.transition.AutoTransition;
25+
import androidx.transition.TransitionManager;
26+
2627
import com.flutterwave.raveandroid.account.AccountFragment;
2728
import com.flutterwave.raveandroid.ach.AchFragment;
2829
import com.flutterwave.raveandroid.banktransfer.BankTransferFragment;
2930
import com.flutterwave.raveandroid.barter.BarterFragment;
3031
import com.flutterwave.raveandroid.card.CardFragment;
31-
import com.flutterwave.raveandroid.data.PaymentTypesCurrencyChecker;
3232
import com.flutterwave.raveandroid.data.events.ScreenLaunchEvent;
3333
import com.flutterwave.raveandroid.data.events.ScreenMinimizeEvent;
3434
import com.flutterwave.raveandroid.data.events.SessionFinishedEvent;
3535
import com.flutterwave.raveandroid.di.components.DaggerRaveUiComponent;
3636
import com.flutterwave.raveandroid.di.components.RaveUiComponent;
37+
import com.flutterwave.raveandroid.di.modules.AndroidModule;
3738
import com.flutterwave.raveandroid.francMobileMoney.FrancMobileMoneyFragment;
3839
import com.flutterwave.raveandroid.ghmobilemoney.GhMobileMoneyFragment;
3940
import com.flutterwave.raveandroid.mpesa.MpesaFragment;
@@ -42,7 +43,6 @@
4243
import com.flutterwave.raveandroid.rave_logger.Event;
4344
import com.flutterwave.raveandroid.rave_logger.EventLogger;
4445
import com.flutterwave.raveandroid.rave_logger.di.EventLoggerModule;
45-
import com.flutterwave.raveandroid.di.modules.AndroidModule;
4646
import com.flutterwave.raveandroid.rave_presentation.di.DaggerRaveComponent;
4747
import com.flutterwave.raveandroid.rave_presentation.di.RaveComponent;
4848
import com.flutterwave.raveandroid.rave_remote.di.RemoteModule;
@@ -548,18 +548,12 @@ private void generatePaymentTiles() {
548548
// Reverse payment types order since payment types are added from the bottom
549549
Collections.reverse(orderedPaymentTypesList);
550550

551-
ArrayList<Integer> currencyCheckedPaymentTypesList =
552-
new PaymentTypesCurrencyChecker().applyCurrencyChecks(
553-
orderedPaymentTypesList,
554-
ravePayInitializer.getCurrency()
555-
);
556-
557-
tileCount = currencyCheckedPaymentTypesList.size();
551+
tileCount = orderedPaymentTypesList.size();
558552
if (tileCount > 8) paymentTilesTextSize = 18f;
559553
else paymentTilesTextSize = 20f;
560554

561-
for (int index = 0; index < currencyCheckedPaymentTypesList.size(); index++)
562-
addPaymentType(currencyCheckedPaymentTypesList.get(index));
555+
for (int index = 0; index < orderedPaymentTypesList.size(); index++)
556+
addPaymentType(orderedPaymentTypesList.get(index));
563557
}
564558

565559
private void addPaymentType(int paymentType) {

rave_android/src/main/java/com/flutterwave/raveandroid/RaveUiManager.java

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
import android.app.Activity;
44
import android.content.Intent;
55
import android.util.Log;
6+
import android.widget.Toast;
67

78
import androidx.fragment.app.Fragment;
89

10+
import com.flutterwave.raveandroid.data.PaymentTypesCurrencyChecker;
911
import com.flutterwave.raveandroid.rave_java_commons.Meta;
1012
import com.flutterwave.raveandroid.rave_java_commons.SubAccount;
1113
import com.flutterwave.raveandroid.rave_presentation.RavePayManager;
@@ -128,7 +130,7 @@ public RaveUiManager setPhoneNumber(String phoneNumber) {
128130
return this;
129131
}
130132

131-
public RavePayManager setPhoneNumber(String phoneNumber, Boolean isEditable) {
133+
public RaveUiManager setPhoneNumber(String phoneNumber, Boolean isEditable) {
132134
this.phoneNumber = phoneNumber;
133135
this.allowEditPhone = isEditable;
134136
return this;
@@ -270,6 +272,21 @@ public RaveUiManager acceptBarterPayments(boolean withBarter) {
270272
}
271273

272274
public RaveUiManager initialize() {
275+
filterPaymentTypes();
276+
277+
if (orderedPaymentTypesList.size() == 0) {
278+
if (activity != null) {
279+
Toast.makeText(activity, "No valid payment types for the selected currency.", Toast.LENGTH_LONG).show();
280+
} else if (supportFragment != null && supportFragment.getContext() != null) {
281+
Toast.makeText(supportFragment.getContext(), "No valid payment types for the selected currency.", Toast.LENGTH_LONG).show();
282+
} else if (fragment != null && fragment.getActivity() != null) {
283+
Toast.makeText(fragment.getActivity(), "No valid payment types for the selected currency.", Toast.LENGTH_LONG).show();
284+
} else {
285+
Log.d(RAVEPAY, "No valid payment types for the selected currency.");
286+
}
287+
return this;
288+
}
289+
273290
if (activity != null) {
274291
Intent intent = new Intent(activity, RavePayActivity.class);
275292
intent.putExtra(RAVE_PARAMS, Parcels.wrap(createRavePayInitializer()));
@@ -288,6 +305,14 @@ public RaveUiManager initialize() {
288305
return this;
289306
}
290307

308+
private void filterPaymentTypes() {
309+
orderedPaymentTypesList =
310+
new PaymentTypesCurrencyChecker().applyCurrencyChecks(
311+
orderedPaymentTypesList,
312+
currency
313+
);
314+
}
315+
291316
private RavePayInitializer createRavePayInitializer() {
292317
return new RavePayInitializer(
293318
getEmail(),

0 commit comments

Comments
 (0)