Skip to content

Commit 166b259

Browse files
Call showLoading on TransactionCallback when starting communicating with server (#154)
* Call `showLoading()` on `TransactionCallback` when starting communicating with server * Bump version to 3.3.1 (23)
1 parent bf27347 commit 166b259

File tree

4 files changed

+23
-8
lines changed

4 files changed

+23
-8
lines changed

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@ ext {
6464
compileSdkVersion = 29
6565
minSdkVersion = 16
6666
targetSdkVersion = 29
67-
versionCode = 22
67+
versionCode = 23
6868

6969
buildToolsVersion = "29.0.2"
70-
versionName = "3.3.0"
70+
versionName = "3.3.1"
7171
}
7272

7373
Object getEnvOrDefault(String propertyName, Object defaultValue) {

example/src/main/java/co/paystack/example/MainActivity.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.app.ProgressDialog;
44
import android.os.AsyncTask;
55
import android.os.Bundle;
6+
import android.util.Log;
67
import android.view.Menu;
78
import android.view.View;
89
import android.widget.Button;
@@ -51,7 +52,7 @@ public class MainActivity extends AppCompatActivity {
5152
private TextView mTextReference;
5253
private Charge charge;
5354
private Transaction transaction;
54-
55+
private static final String TAG = "MainActivity";
5556

5657
@Override
5758
protected void onCreate(Bundle savedInstanceState) {
@@ -213,6 +214,7 @@ public void beforeValidate(Transaction transaction) {
213214

214215
@Override
215216
public void showLoading(Boolean isProcessing) {
217+
Log.i(TAG, "Paystack SDK loading: " + isProcessing);
216218
if (isProcessing) {
217219
Toast.makeText(MainActivity.this, "Processing...", Toast.LENGTH_LONG).show();
218220
}

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ android.useAndroidX=true
2525
org.gradle.daemon=true
2626
org.gradle.jvmargs=-Xmx2560m
2727
GROUP=co.paystack.android
28-
VERSION_NAME=3.3.0
28+
VERSION_NAME=3.3.1
2929
POM_DESCRIPTION=Android SDK for Paystack
3030
POM_URL=https://github.com/PaystackHQ/paystack-android
3131
POM_SCM_URL=https://github.com/PaystackHQ/paystack-android

paystack/src/main/java/co/paystack/android/TransactionManager.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ public void onSuccess(TransactionInitResponse data) {
133133
deviceId,
134134
null
135135
);
136-
paystackRepository.processCardCharge(params, cardProcessCallback);
136+
processCharge(params);
137137
}
138138

139139
@Override
@@ -143,6 +143,7 @@ public void onError(@NotNull Throwable exception) {
143143
}
144144
};
145145

146+
transactionCallback.showLoading(true);
146147
if (charge.getAccessCode() == null || charge.getAccessCode().isEmpty()) {
147148
paystackRepository.initializeTransaction(publicKey, charge, deviceId, callback);
148149
} else {
@@ -220,6 +221,7 @@ private void authenticateTransaction(ChargeParams chargeParams, ChargeResponse c
220221

221222
private void validateOtp(String token, ChargeParams chargeParams) {
222223
try {
224+
transactionCallback.showLoading(true);
223225
paystackRepository.validateTransaction(chargeParams, token, cardProcessCallback);
224226
} catch (Exception ce) {
225227
Log.e(LOG_TAG, ce.getMessage(), ce);
@@ -229,6 +231,7 @@ private void validateOtp(String token, ChargeParams chargeParams) {
229231

230232
private void chargeWithAvs(Address address, ChargeParams chargeParams) {
231233
try {
234+
transactionCallback.showLoading(true);
232235
paystackRepository.validateAddress(chargeParams, address, cardProcessCallback);
233236
} catch (Exception e) {
234237
Log.e(LOG_TAG, e.getMessage(), e);
@@ -240,7 +243,7 @@ private void reQueryChargeOnServer(ChargeParams chargeParams) {
240243
try {
241244
new CountDownTimer(5000, 5000) {
242245
public void onFinish() {
243-
paystackRepository.requeryTransaction(chargeParams, cardProcessCallback);
246+
requeryTransaction(chargeParams);
244247
}
245248

246249
public void onTick(long millisUntilFinished) {
@@ -252,10 +255,19 @@ public void onTick(long millisUntilFinished) {
252255
}
253256
}
254257

258+
private void requeryTransaction(ChargeParams chargeParams) {
259+
transactionCallback.showLoading(true);
260+
paystackRepository.requeryTransaction(chargeParams, cardProcessCallback);
261+
}
262+
263+
private void processCharge(ChargeParams params) {
264+
transactionCallback.showLoading(true);
265+
paystackRepository.processCardCharge(params, cardProcessCallback);
266+
}
267+
255268
private void notifyProcessingError(Throwable t) {
256269
setProcessingOff();
257270
transactionCallback.showLoading(false);
258-
259271
transactionCallback.onError(t, EMPTY_TRANSACTION);
260272
}
261273

@@ -338,7 +350,8 @@ protected String doInBackground(Void... params) {
338350
protected void onPostExecute(String pin) {
339351
super.onPostExecute(pin);
340352
if (pin != null && (4 == pin.length())) {
341-
paystackRepository.processCardCharge(chargeParams.addPin(Crypto.encrypt(pin)), cardProcessCallback);
353+
ChargeParams params = chargeParams.addPin(Crypto.encrypt(pin));
354+
processCharge(params);
342355
} else {
343356
notifyProcessingError(new Exception("PIN must be exactly 4 digits"));
344357
}

0 commit comments

Comments
 (0)