Skip to content

Commit f0cb635

Browse files
committed
execute pending checkouts, prepare 0.16.0-beta1
1 parent 3ffe88d commit f0cb635

File tree

7 files changed

+54
-10
lines changed

7 files changed

+54
-10
lines changed

CHANGELOG.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,26 @@
11
# Changelog
22
All notable changes to this project will be documented in this file.
33

4+
## [0.16.0-beta1]
5+
6+
### Breaking Changes
7+
- Added showCreditCardInput() to SnabbleUICallback. If you don't use credit card payments, you
8+
can leave the implementation empty.
9+
10+
### Added
11+
- Experimental support for credit card payments. To enable set Config.enableExperimentalCreditCardPayment.
12+
Only supported on API 21+.
13+
14+
- Checkouts are now persisted and will be transferred at a later time.
15+
- Now always showing a payment method selection when entering a new payment method.
16+
417
## [0.15.3]
518

619
### Added
720
- ProductNotFound events are now posted when a scanned product is not found
821

922
### Changed
10-
- ReceiptInfo.getDate() is now deprecated, use getTimestamp instead.
23+
- ReceiptInfo.getDate() is now deprecated, use getTimestamp() instead.
1124

1225
## [0.15.2]
1326

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ allprojects {
2323
}
2424

2525
project.ext {
26-
sdkVersion='0.15.3'
26+
sdkVersion='0.16.0-beta1'
2727
versionCode=1
2828

2929
compileSdkVersion=28

core/src/main/java/io/snabble/sdk/Checkout.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -514,7 +514,7 @@ public String getQRCodePOSContent() {
514514
}
515515

516516
public void processPendingCheckouts() {
517-
517+
checkoutRetryer.processPendingCheckouts();
518518
}
519519

520520
/**

core/src/main/java/io/snabble/sdk/CheckoutRetryer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ private class SavedCart {
4848
savedCarts = new CopyOnWriteArrayList<>();
4949
}
5050

51-
processSavedCheckouts();
51+
processPendingCheckouts();
5252
}
5353

5454
public void add(ShoppingCart.BackendCart backendCart) {
@@ -64,7 +64,7 @@ private void save() {
6464
.apply();
6565
}
6666

67-
public void processSavedCheckouts() {
67+
public void processPendingCheckouts() {
6868
handler.post(new Runnable() {
6969
@Override
7070
public void run() {

core/src/main/java/io/snabble/sdk/Snabble.java

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
package io.snabble.sdk;
22

3+
import android.annotation.SuppressLint;
34
import android.app.Activity;
45
import android.app.Application;
6+
import android.content.BroadcastReceiver;
7+
import android.content.Context;
8+
import android.content.Intent;
9+
import android.content.IntentFilter;
510
import android.content.pm.PackageInfo;
611
import android.content.pm.PackageManager;
12+
import android.net.ConnectivityManager;
13+
import android.net.NetworkInfo;
714
import android.util.Base64;
815

916
import com.google.gson.JsonArray;
@@ -132,6 +139,7 @@ protected void onError() {
132139
}
133140

134141
app.registerActivityLifecycleCallbacks(activityLifecycleCallbacks);
142+
app.registerReceiver(networkChangeReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
135143
}
136144

137145
public String getVersionName() {
@@ -385,7 +393,7 @@ private void checkCartTimeouts() {
385393
}
386394
}
387395

388-
private void processSavedCheckouts() {
396+
private void processPendingCheckouts() {
389397
for (Project project : projects) {
390398
project.getCheckout().processPendingCheckouts();
391399
}
@@ -414,9 +422,29 @@ public interface OnMetadataUpdateListener {
414422
public void onActivityStarted(Activity activity) {
415423
updateMetadata();
416424
checkCartTimeouts();
425+
processPendingCheckouts();
417426
}
418427
};
419428

429+
@SuppressLint("MissingPermission")
430+
private BroadcastReceiver networkChangeReceiver = new BroadcastReceiver() {
431+
@Override
432+
public void onReceive(Context context, Intent intent) {
433+
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
434+
435+
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
436+
if (activeNetwork != null) {
437+
onConnectionStateChanged(activeNetwork.isConnected());
438+
}
439+
}
440+
};
441+
442+
private void onConnectionStateChanged(boolean isConnected) {
443+
if (isConnected) {
444+
processPendingCheckouts();
445+
}
446+
}
447+
420448
/**
421449
* Enables debug logging.
422450
*/

ui/src/main/java/io/snabble/sdk/ui/checkout/CheckoutView.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515
import android.widget.ViewAnimator;
1616

1717
import io.snabble.sdk.Checkout;
18-
import io.snabble.sdk.Project;
19-
import io.snabble.sdk.encodedcodes.EncodedCodesOptions;
2018
import io.snabble.sdk.ui.R;
2119
import io.snabble.sdk.ui.SnabbleUI;
2220
import io.snabble.sdk.ui.telemetry.Telemetry;

ui/src/main/java/io/snabble/sdk/ui/checkout/PaymentMethodView.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,8 +191,13 @@ public void onClick(View v) {
191191
};
192192
break;
193193
default:
194-
checkout.pay(e.paymentMethod, e.paymentCredentials);
195-
Telemetry.event(Telemetry.Event.SelectedPaymentMethod, e.paymentMethod);
194+
e.onClickListener = new OnClickListener() {
195+
@Override
196+
public void onClick(View v) {
197+
checkout.pay(e.paymentMethod, e.paymentCredentials);
198+
Telemetry.event(Telemetry.Event.SelectedPaymentMethod, e.paymentMethod);
199+
}
200+
};
196201
break;
197202
}
198203

0 commit comments

Comments
 (0)