Skip to content

Commit e9f72fd

Browse files
committed
resolve conflict
2 parents 144f914 + ed4af8f commit e9f72fd

File tree

3 files changed

+66
-11
lines changed

3 files changed

+66
-11
lines changed

raveandroid/src/main/java/com/flutterwave/raveandroid/banktransfer/BankTransferContract.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.flutterwave.raveandroid.banktransfer;
22

3+
import android.os.Bundle;
4+
35
import com.flutterwave.raveandroid.Payload;
46
import com.flutterwave.raveandroid.RavePayInitializer;
57
import com.flutterwave.raveandroid.ViewObject;
@@ -39,6 +41,10 @@ interface UserActionsListener {
3941

4042
void cancelPolling();
4143

44+
Bundle getState();
45+
46+
void restoreState(Bundle savedInstanceState);
47+
4248
void onAttachView(View view);
4349

4450
void onDetachView();

raveandroid/src/main/java/com/flutterwave/raveandroid/banktransfer/BankTransferFragment.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import android.content.DialogInterface;
66
import android.content.Intent;
77
import android.os.Bundle;
8+
import android.support.annotation.NonNull;
89
import android.support.constraint.ConstraintLayout;
910
import android.support.design.widget.TextInputEditText;
1011
import android.support.design.widget.TextInputLayout;
@@ -62,6 +63,9 @@ public BankTransferFragment() {
6263
public View onCreateView(LayoutInflater inflater, ViewGroup container,
6364
Bundle savedInstanceState) {
6465
presenter = new BankTransferPresenter(getActivity(), this);
66+
if (savedInstanceState != null) {
67+
presenter.restoreState(savedInstanceState);
68+
}
6569

6670
// Inflate the layout for this fragment
6771
v = inflater.inflate(R.layout.fragment_bank_transfer, container, false);
@@ -209,6 +213,11 @@ public void onClick(View view) {
209213
});
210214
}
211215

216+
@Override
217+
public void onSaveInstanceState(@NonNull Bundle outState) {
218+
super.onSaveInstanceState(outState);
219+
outState.putAll(presenter.getState());
220+
}
212221

213222
@Override
214223
public void showProgressIndicator(boolean active) {
@@ -271,14 +280,12 @@ public void onTransferDetailsReceived(String amount, String accountNumber, Strin
271280
}
272281

273282
private void showTransferDetails(String amount, String accountNumber, String bankName, String beneficiaryName) {
274-
275-
276283
amountTv.setText(amount);
277284
beneficiaryNameTv.setText(beneficiaryName);
278285
bankNameTv.setText(bankName);
279286
accountNumberTv.setText(accountNumber);
280287
transferInstructionTv.setText(
281-
String.format("%s %s", getString(R.string.bank_transfer_instructions_placeholder), beneficiaryName)
288+
getString(R.string.bank_transfer_instructions_placeholder) + " " + beneficiaryName
282289
);
283290

284291
initiateChargeLayout.setVisibility(GONE);

raveandroid/src/main/java/com/flutterwave/raveandroid/banktransfer/BankTransferPresenter.java

Lines changed: 50 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.flutterwave.raveandroid.banktransfer;
22

33
import android.content.Context;
4+
import android.os.Bundle;
45
import android.util.Log;
56

67
import com.flutterwave.raveandroid.FeeCheckRequestBody;
@@ -21,17 +22,22 @@
2122

2223
import java.util.HashMap;
2324

24-
/**
25-
* Created by hfetuga on 27/06/2018.
26-
*/
27-
2825
public class BankTransferPresenter implements BankTransferContract.UserActionsListener {
26+
private static final String ACCOUNT_NUMBER = "account_number";
27+
private static final String BANK_NAME = "bank_name";
28+
private static final String BENEFICIARY_NAME = "benef_name";
29+
private static final String AMOUNT = "amount";
30+
private static final String TX_REF = "txref";
31+
private static final String FLW_REF = "flwref";
32+
private static final String PUBLIC_KEY = "pbfkey";
2933
private Context context;
3034
private BankTransferContract.View mView;
3135
private AmountValidator amountValidator = new AmountValidator();
3236
private String txRef = null, flwRef = null, publicKey = null;
3337
private long requeryCountdownTime = 0;
3438
private boolean pollingCancelled = false;
39+
private String beneficiaryName, accountNumber, amount, bankName;
40+
private boolean hasTransferDetails = false;
3541

3642
BankTransferPresenter(Context context, BankTransferContract.View mView) {
3743
this.context = context;
@@ -90,17 +96,21 @@ public void onSuccess(ChargeResponse response, String responseAsJSONString) {
9096

9197
if (response.getData() != null) {
9298
Log.d("resp", responseAsJSONString);
99+
hasTransferDetails = true;
93100

94101
flwRef = response.getData().getFlw_reference();
95102
txRef = response.getData().getTx_ref();
96103
publicKey = payload.getPBFPubKey();
97-
String beneficiaryName = response.getData().getNote().substring(
104+
beneficiaryName = response.getData().getNote().substring(
98105
response.getData().getNote().indexOf("to ") + 3
99106
);
107+
amount = response.getData().getAmount();
108+
accountNumber = response.getData().getAccountnumber();
109+
bankName = response.getData().getBankname();
100110
mView.onTransferDetailsReceived(
101-
response.getData().getAmount(),
102-
response.getData().getAccountnumber(),
103-
response.getData().getBankname(),
111+
amount,
112+
accountNumber,
113+
bankName,
104114
beneficiaryName);
105115
} else {
106116
mView.onPaymentError("No response data was returned");
@@ -128,6 +138,38 @@ public void cancelPolling() {
128138
pollingCancelled = true;
129139
}
130140

141+
@Override
142+
public Bundle getState() {
143+
if (hasTransferDetails) {
144+
Bundle state = new Bundle();
145+
state.putString(ACCOUNT_NUMBER, accountNumber);
146+
state.putString(BANK_NAME, bankName);
147+
state.putString(BENEFICIARY_NAME, beneficiaryName);
148+
state.putString(AMOUNT, amount);
149+
state.putString(TX_REF, txRef);
150+
state.putString(FLW_REF, flwRef);
151+
state.putString(PUBLIC_KEY, publicKey);
152+
return state;
153+
} else return null;
154+
}
155+
156+
@Override
157+
public void restoreState(Bundle savedInstanceState) {
158+
if (savedInstanceState != null) {
159+
hasTransferDetails = true;
160+
accountNumber = savedInstanceState.getString(ACCOUNT_NUMBER);
161+
bankName = savedInstanceState.getString(BANK_NAME);
162+
beneficiaryName = savedInstanceState.getString(BENEFICIARY_NAME);
163+
amount = savedInstanceState.getString(AMOUNT);
164+
txRef = savedInstanceState.getString(TX_REF);
165+
flwRef = savedInstanceState.getString(FLW_REF);
166+
publicKey = savedInstanceState.getString(PUBLIC_KEY);
167+
168+
mView.onTransferDetailsReceived(amount, accountNumber, bankName, beneficiaryName);
169+
}
170+
171+
}
172+
131173
@Override
132174
public void requeryTx() {
133175

0 commit comments

Comments
 (0)