Skip to content

Commit b17263e

Browse files
committed
simple payment method filtering
1 parent 1385d5e commit b17263e

File tree

3 files changed

+36
-2
lines changed

3 files changed

+36
-2
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
# Changelog
22
All notable changes to this project will be documented in this file.
33

4+
## [0.17.5]
5+
6+
### Added
7+
- Simple filtering of payment methods
8+
49
## [0.17.4]
510

611
### Fixed

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.17.4'
26+
sdkVersion='0.17.5'
2727
versionCode=1
2828

2929
compileSdkVersion=29

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

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ public void onKeyguardResult(int resultCode) {
170170

171171
entries.add(e);
172172
}
173-
} else if (!paymentMethod.isShowOnlyIfCredentialsArePresent()){
173+
} else if (!paymentMethod.isShowOnlyIfCredentialsArePresent()) {
174174
final Entry e = new Entry();
175175
e.text = descriptions.get(paymentMethod);
176176
e.paymentMethod = paymentMethod;
@@ -216,9 +216,38 @@ public void onClick(View v) {
216216
}
217217
}
218218

219+
filterPaymentMethods();
220+
219221
recyclerViewAdapter.notifyDataSetChanged();
220222
}
221223

224+
private void filterPaymentMethods() {
225+
boolean hasPaymentMethodWithCredentials = false;
226+
boolean hasGatekeeperTerminal = false;
227+
for (Entry e : entries) {
228+
if (e.paymentCredentials != null) {
229+
hasPaymentMethodWithCredentials = true;
230+
}
231+
232+
if (e.paymentMethod == PaymentMethod.GATEKEEPER_TERMINAL) {
233+
hasGatekeeperTerminal = true;
234+
}
235+
}
236+
237+
if (hasPaymentMethodWithCredentials || hasGatekeeperTerminal) {
238+
ArrayList<Entry> removals = new ArrayList<>();
239+
for (Entry e : entries) {
240+
if (e.paymentCredentials == null && e.paymentMethod.isRequiringCredentials()) {
241+
removals.add(e);
242+
}
243+
}
244+
245+
for (Entry e : removals) {
246+
entries.remove(e);
247+
}
248+
}
249+
}
250+
222251
private List<PaymentCredentials> getPaymentCredentials(PaymentMethod pm) {
223252
ArrayList<PaymentCredentials> list = new ArrayList<>();
224253

0 commit comments

Comments
 (0)