Skip to content

Commit 02ee89b

Browse files
committed
locale aware 3d secure hint
1 parent 4f5891c commit 02ee89b

File tree

8 files changed

+59
-29
lines changed

8 files changed

+59
-29
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.37.9]
5+
6+
### Changed
7+
- Made credit card 3d secure hint locale aware
8+
49
## [0.37.8]
510

611
### Fixed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ allprojects {
3131
}
3232

3333
project.ext {
34-
sdkVersion='0.37.8'
34+
sdkVersion='0.37.9'
3535
versionCode=1
3636

3737
compileSdkVersion=30

ui/src/main/java/io/snabble/sdk/ui/payment/CreditCardInputView.java

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@
2727
import org.jetbrains.annotations.Nullable;
2828

2929
import java.io.IOException;
30+
import java.math.BigDecimal;
3031
import java.nio.charset.Charset;
32+
import java.text.NumberFormat;
3133
import java.util.UUID;
3234

3335
import io.snabble.sdk.PaymentMethod;
@@ -67,6 +69,7 @@ public class CreditCardInputView extends FrameLayout {
6769
private PaymentMethod paymentType;
6870
private String projectId;
6971
private Project lastProject;
72+
private TextView threeDHint;
7073

7174
public CreditCardInputView(Context context) {
7275
super(context);
@@ -89,6 +92,8 @@ private void inflateView() {
8992
resources = getContext().getResources();
9093

9194
progressBar = findViewById(R.id.progress);
95+
progressBar.setVisibility(View.VISIBLE);
96+
progressBar.setIndeterminate(true);
9297

9398
webView = findViewById(R.id.web_view);
9499
webView.setWebViewClient(new WebViewClient() {
@@ -107,7 +112,7 @@ public void onProgressChanged(WebView view, final int newProgress) {
107112
} else {
108113
progressBar.setVisibility(View.VISIBLE);
109114
}
110-
115+
progressBar.setIndeterminate(false);
111116
progressBar.setProgress(newProgress);
112117
});
113118
}
@@ -123,14 +128,8 @@ public void onProgressChanged(WebView view, final int newProgress) {
123128
CookieManager.getInstance().setAcceptCookie(true);
124129
CookieManager.getInstance().setAcceptThirdPartyCookies(webView, true);
125130

126-
TextView threeDHint = findViewById(R.id.threed_secure_hint);
127-
128-
Project project = getProject();
129-
String companyName = project.getName();
130-
if (project.getCompany() != null && project.getCompany().getName() != null) {
131-
companyName = project.getCompany().getName();
132-
}
133-
threeDHint.setText(resources.getString(I18nUtils.getIdentifier(resources, R.string.Snabble_CC_3dsecureHint_retailer), companyName));
131+
threeDHint = findViewById(R.id.threed_secure_hint);
132+
threeDHint.setVisibility(View.GONE);
134133

135134
requestHash();
136135
}
@@ -225,8 +224,19 @@ private void loadForm(HashResponse hashResponse) {
225224
}
226225

227226
webView.loadData(Base64.encodeToString(data.getBytes(), Base64.DEFAULT), null, "base64");
227+
228+
Project project = getProject();
229+
String companyName = project.getName();
230+
if (project.getCompany() != null && project.getCompany().getName() != null) {
231+
companyName = project.getCompany().getName();
232+
}
233+
NumberFormat numberFormat = NumberFormat.getCurrencyInstance(project.getCurrencyLocale());
234+
BigDecimal chargeTotal = new BigDecimal(hashResponse.chargeTotal);
235+
threeDHint.setVisibility(View.VISIBLE);
236+
threeDHint.setText(resources.getString(R.string.Snabble_CC_3dsecureHint_retailerWithPrice, numberFormat.format(chargeTotal), companyName));
228237
} catch (IOException e) {
229238
Logger.e(e.getMessage());
239+
threeDHint.setVisibility(View.GONE);
230240
}
231241
}
232242

ui/src/main/res/values-de/strings.xml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<resources>
3+
<string name="release.safety.catch">Bitte entferne (wenn vorhanden) die Flaschenhalssicherung an der dafür vorgesehenen Station am Ausgang.</string>
34
<string name="Snabble.addDiscount">Rabatt eingeben</string>
45
<string name="Snabble.ageVerification.explanation">Für den Kauf bestimmter Artikel, wie z.B. Alkohol, ist ein Altersnachweis notwendig. Gib dazu die 7-stellige Zahl von der Rückseite deines Personalausweises ein.</string>
56
<string name="Snabble.ageVerification.failed.message">Einige Artikel in deinem Warenkorb unterliegen einer Altersbeschränkung, du darfst sie leider nicht kaufen.</string>
@@ -24,6 +25,7 @@
2425
<!-- ********* Snabble ********* -->
2526
<string name="Snabble.Cancel">Abbrechen</string>
2627
<string name="Snabble.CC.3dsecureHint.retailer">Zur Verifizierung deiner Kreditkarte wirst du nach Eingabe der Daten zu deiner Bank weitergeleitet. Dort wirst du gebeten, einer Zahlung von 1,00 € an %s zuzustimmen. Der Betrag wird dir nach deiner Zustimmung sofort wieder gutgeschrieben.</string>
28+
<string name="Snabble.CC.3dsecureHint.retailerWithPrice">Zur Verifizierung deiner Kreditkarte wirst du nach Eingabe der Daten zu deiner Bank weitergeleitet. Dort wirst du gebeten, einer Zahlung von %s an %s zuzustimmen. Der Betrag wird dir nach deiner Zustimmung sofort wieder gutgeschrieben.</string>
2729
<string name="Snabble.CC.cardNumber">Kartennummer</string>
2830
<string name="Snabble.CC.editingHint">Deine Kreditkarten-Daten werden von uns nur verschlüsselt gespeichert und können daher nicht bearbeitet werden.</string>
2931
<string name="Snabble.CC.noEntryPossible">Leider können im Moment keine Kreditkarten hinterlegt werden.</string>
@@ -61,7 +63,7 @@
6163
<string name="Snabble.paydirekt.deleteAuthorization">Bezahlmethode löschen</string>
6264
<string name="Snabble.paydirekt.gotoWebsite">Zu paydirekt.de</string>
6365
<string name="Snabble.Paydirekt.payNow">Jetzt mit paydirekt bezahlen</string>
64-
<string name="Snabble.paydirekt.savedAuthorization">Du hast die snabble-App erfolgreich für paydirekt autorisiert. Um dies rückgängig zu machen, musst du dich bei deinem paydirekt-Konto auf der Webseite anmelden. Möchtest du paydirekt nicht mehr als Bezahlmethode angezeigt bekommen, kannst du sie hier einfach entfernen.</string>
66+
<string name="Snabble.paydirekt.savedAuthorization">Du hast die Snabble-App erfolgreich für paydirekt autorisiert. Um dies rückgängig zu machen, musst du dich bei deinem paydirekt-Konto auf der Webseite anmelden. Möchtest du paydirekt nicht mehr als Bezahlmethode angezeigt bekommen, kannst du sie hier einfach entfernen.</string>
6567
<!-- SECTION: SnabbleAndroid -->
6668
<string name="Snabble.Payment.aborted">Der Bezahlvorgang wurde abgebrochen</string>
6769
<string name="Snabble.Payment.add">Bezahlverfahren hinzufügen</string>
@@ -85,7 +87,7 @@
8587
<string name="Snabble.Payment.payUsingCustomerCard">mit Kundenkarte</string>
8688
<string name="Snabble.Payment.payViaInvoice">auf Rechnung</string>
8789
<string name="Snabble.Payment.PostFinanceCard.error">Bei der Verarbeitung deiner Postfinance-Card ist ein Fehler aufgetreten</string>
88-
<string name="Snabble.Payment.presentCode">Halte diesen Code an einem snabble-Monitor vor oder zeige ihn einem Mitarbeiter, um deinen Einkauf zu bestätigen.</string>
90+
<string name="Snabble.Payment.presentCode">Halte diesen Code an einem Snabble-Monitor vor oder zeige ihn einem Mitarbeiter, um deinen Einkauf zu bestätigen.</string>
8991
<string name="Snabble.Payment.SEPA.hint">Hinweis: Um dich und unsere Händler vor Missbrauch zu schützen, wird sich der Händler bei deiner ersten Zahlung per SEPA-Lastschrift deine Bankkarte zeigen lassen.</string>
9092
<string name="Snabble.Payment.SEPA.IBAN">IBAN</string>
9193
<string name="Snabble.Payment.SEPA.InvalidIBAN">Die eingegebene IBAN ist ungültig.</string>
@@ -133,7 +135,7 @@
133135
<string name="Snabble.QRCode.title">An der Kasse zahlen</string>
134136
<string name="Snabble.QRCode.total">Gesamtsumme:\u0020</string>
135137
<string name="Snabble.Receipts.loading">(wird geladen)</string>
136-
<string name="Snabble.Receipts.noReceipts">Du hast noch nicht mit snabble eingekauft</string>
138+
<string name="Snabble.Receipts.noReceipts">Du hast noch nicht mit Snabble eingekauft</string>
137139
<string name="Snabble.Receipts.oClock">Uhr</string>
138140
<string name="Snabble.Receipts.title">Vorherige Einkäufe</string>
139141
<string name="Snabble.remove">Entfernen</string>
@@ -195,6 +197,7 @@
195197
<string name="Snabble.Shoppingcart.emptyState.title">Dein Warenkorb ist noch leer</string>
196198
<string name="Snabble.Shoppingcart.giveaway">Kostenloses Geschenk</string>
197199
<string name="Snabble.Shoppingcart.howToPay">Wie möchtest du bezahlen?</string>
200+
<string name="Snabble.Shoppingcart.includesDeposit">inkl. Pfand</string>
198201
<string name="Snabble.Shoppingcart.noPaymentData">Noch nicht hinterlegt</string>
199202
<string name="Snabble.Shoppingcart.notForThisPurchase">Für diesen Einkauf nicht verfügbar</string>
200203
<string name="Snabble.Shoppingcart.notForVendor">Vom Händler nicht unterstützt</string>

ui/src/main/res/values-en/strings.xml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<resources>
3+
<string name="release.safety.catch">Please remove the bottle\'s security device (if present) at the designated station at the exit.</string>
34
<string name="Snabble.addDiscount">Enter discount</string>
45
<string name="Snabble.ageVerification.explanation">To purchase certain products like alcoholic beverages, verifying your age is required. Enter the 7-digit Number from the back side of your ID card.</string>
56
<string name="Snabble.ageVerification.failed.message">Some products in your cart have an age restriction, unfortunately you can\'t purchase them.</string>
@@ -24,6 +25,7 @@
2425
<!-- ********* Snabble ********* -->
2526
<string name="Snabble.Cancel">Cancel</string>
2627
<string name="Snabble.CC.3dsecureHint.retailer">In order to verify your credit card, you will be redirected to your bank after entering your data. There you will be asked to approve a payment of € 1.00 to %s. The amount will be credited to you immediately after your approval.</string>
28+
<string name="Snabble.CC.3dsecureHint.retailerWithPrice">In order to verify your credit card, you will be redirected to your bank after entering your data. There you will be asked to approve a payment of %s to %s. The amount will be credited to you immediately after your approval.</string>
2729
<string name="Snabble.CC.cardNumber">Card number</string>
2830
<string name="Snabble.CC.editingHint">Your credit card data is only stored in encrypted form and therefore cannot be edited.</string>
2931
<string name="Snabble.CC.noEntryPossible">Unfortunately you can\'t add credit cards at this time.</string>
@@ -61,7 +63,7 @@
6163
<string name="Snabble.paydirekt.deleteAuthorization">Delete method</string>
6264
<string name="Snabble.paydirekt.gotoWebsite">Go to paydirekt.de</string>
6365
<string name="Snabble.Paydirekt.payNow">Pay now using paydirekt</string>
64-
<string name="Snabble.paydirekt.savedAuthorization">You\'ve successfully authorized snabble for paydirekt. To remove this authorization, you need to log in to your paydirekt account. If you do not want to use this payment method anymore, you can remove it here.</string>
66+
<string name="Snabble.paydirekt.savedAuthorization">You\'ve successfully authorized Snabble for paydirekt. To remove this authorization, you need to log in to your paydirekt account. If you do not want to use this payment method anymore, you can remove it here.</string>
6567
<!-- SECTION: SnabbleAndroid -->
6668
<string name="Snabble.Payment.aborted">Payment process was cancelled</string>
6769
<string name="Snabble.Payment.add">Add payment method</string>
@@ -85,7 +87,7 @@
8587
<string name="Snabble.Payment.payUsingCustomerCard">with Customer Card</string>
8688
<string name="Snabble.Payment.payViaInvoice">via Invoice</string>
8789
<string name="Snabble.Payment.PostFinanceCard.error">There was an error processing your postfinance card</string>
88-
<string name="Snabble.Payment.presentCode">Show this code at a snabble monitor or to a cashier to confirm your purchase.</string>
90+
<string name="Snabble.Payment.presentCode">Show this code at a Snabble monitor or to a cashier to confirm your purchase.</string>
8991
<string name="Snabble.Payment.SEPA.hint">Note: In order to protect you and our merchants against misuse, the merchant will have your bank card shown on your first payment by SEPA direct debit.</string>
9092
<string name="Snabble.Payment.SEPA.IBAN">IBAN</string>
9193
<string name="Snabble.Payment.SEPA.InvalidIBAN">Please enter a valid IBAN.</string>
@@ -189,12 +191,13 @@
189191
<string name="Snabble.Shoppingcart.deposit">Deposit</string>
190192
<string name="Snabble.Shoppingcart.discounts">Total discounts</string>
191193
<string name="Snabble.Shoppingcart.emptyState.buttonTitle">Scan now</string>
192-
<string name="Snabble.Shoppingcart.emptyState.description">Visit a store that supports snabble and scan the barcodes of products you wish to purchase.</string>
194+
<string name="Snabble.Shoppingcart.emptyState.description">Visit a store that supports Snabble and scan the barcodes of products you wish to purchase.</string>
193195
<string name="Snabble.Shoppingcart.emptyState.restartButtonTitle">Start new shopping trip</string>
194196
<string name="Snabble.Shoppingcart.emptyState.restoreButtonTitle">Restore previous cart</string>
195197
<string name="Snabble.Shoppingcart.emptyState.title">Your shopping cart is empty</string>
196198
<string name="Snabble.Shoppingcart.giveaway">Free gift</string>
197199
<string name="Snabble.Shoppingcart.howToPay">How would you like to pay?</string>
200+
<string name="Snabble.Shoppingcart.includesDeposit">incl. deposit</string>
198201
<string name="Snabble.Shoppingcart.noPaymentData">Not yet entered</string>
199202
<string name="Snabble.Shoppingcart.notForThisPurchase">Not available for this purchase</string>
200203
<string name="Snabble.Shoppingcart.notForVendor">Not supported by this retailer</string>

ui/src/main/res/values-hu/strings.xml

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<resources>
3+
<string name="release.safety.catch"/>
34
<string name="Snabble.addDiscount">Árengedmény megadása</string>
45
<string name="Snabble.ageVerification.explanation">Meghatározott termékek, mint pl. alkohol vásárlásához igazolnod kell a korod. Ehhez személyazonosító igazolványod hátoldaláról másold be a 7 jegyű számot.</string>
56
<string name="Snabble.ageVerification.failed.message">A kosárban olyan termékek is vannak, amelyek életkori korlátozás alá esnek. Ezeket sajnos nem veheted meg.</string>
@@ -24,6 +25,7 @@
2425
<!-- ********* Snabble ********* -->
2526
<string name="Snabble.Cancel">Mégsem</string>
2627
<string name="Snabble.CC.3dsecureHint.retailer">A hitelkártyád azonosítása érdekében az adatok bevitelét követően átlépsz a bankodhoz. Ott a rendszer arra kér, hogy 1,00 €-t fizess a %s részére. Hozzájárulásodat követően ezt az összeget azonnal jóváírjuk.</string>
28+
<string name="Snabble.CC.3dsecureHint.retailerWithPrice">A hitelkártyád azonosítása érdekében az adatok bevitelét követően átlépsz a bankodhoz. Ott a rendszer arra kér, hogy %s-t fizess a %s részére. Hozzájárulásodat követően ezt az összeget azonnal jóváírjuk.</string>
2729
<string name="Snabble.CC.cardNumber">Kártyaszám</string>
2830
<string name="Snabble.CC.editingHint">A hitelkártyaadatokat kódolva tároljuk, éppen ezért nem tudjuk feldolgozni.</string>
2931
<string name="Snabble.CC.noEntryPossible">Jelenleg sajnos nem tudsz hitelkártyaadatokat elmenteni.</string>
@@ -66,7 +68,7 @@
6668
<string name="Snabble.Payment.aborted">Megszakadt a fizetési folyamat</string>
6769
<string name="Snabble.Payment.add">Fizetési mód hozzáadása</string>
6870
<string name="Snabble.Payment.addPaymentOrigin">Fizetési információ átadása az alkalmazásnak?</string>
69-
<string name="Snabble.Payment.backToCart"/>
71+
<string name="Snabble.Payment.backToCart">Vissza a kosárhoz</string>
7072
<string name="Snabble.Payment.backToHome">Vissza a kezdőoldalra</string>
7173
<string name="Snabble.Payment.cancelError.message">A fizetés megszakítása jelenleg nem lehetséges.</string>
7274
<string name="Snabble.Payment.cancelError.title">A megszakítás nem lehetséges</string>
@@ -101,7 +103,7 @@
101103
<string name="Snabble.Payment.Twint.error"/>
102104
<string name="Snabble.Payment.usableAt">Itt használható: %s</string>
103105
<string name="Snabble.Payment.waiting">Várj a nyugtázásra</string>
104-
<string name="Snabble.PaymentCard.editingHint">A hitelkártyaadatokat kódolva tároljuk, éppen ezért nem tudjuk feldolgozni.</string>
106+
<string name="Snabble.PaymentCard.editingHint">A kártyaadataidat kódolva tároljuk, éppen ezért nem tudjuk feldolgozni.</string>
105107
<string name="Snabble.PaymentError.title">Hiba történt</string>
106108
<string name="Snabble.PaymentError.tryAgain">Próbálkozz újra</string>
107109
<string name="Snabble.PaymentMethods.add">Fizetési mód hozzáadása</string>
@@ -148,7 +150,7 @@
148150
<string name="Snabble.Scanner.BundleDialog.headline">Csomagolási egység kiválasztása</string>
149151
<string name="Snabble.Scanner.Camera.accessDenied">Kamera-hozzáférés megtagadva</string>
150152
<string name="Snabble.Scanner.Camera.allowAccess">A vonalkódok beolvasásához szeretnénk hozzáférni a kamerádhoz. Kérlek, engedélyezd a kamera használatát a beállításokban, és utána lépj vissza ide.</string>
151-
<string name="Snabble.Scanner.couponAdded"/>
153+
<string name="Snabble.Scanner.couponAdded">„%s“ kupon hozzáadva</string>
152154
<string name="Snabble.Scanner.duplicateDepositScanned">Az egyes betétdíjblokkok csak egyszer olvashatók be.</string>
153155
<string name="Snabble.Scanner.enterBarcode">Vonalkód megadása</string>
154156
<string name="Snabble.Scanner.enterCodeButton">Vonalkód\nmegadása</string>
@@ -184,8 +186,8 @@
184186
<string name="Snabble.Shoppingcart.buyProducts">%1$d termék megvásárlása %2$s-ért</string>
185187
<string name="Snabble.Shoppingcart.buyProducts.now">Fizetés, most</string>
186188
<string name="Snabble.Shoppingcart.buyProducts.one">%1$d termék megvásárlása %2$s-ért</string>
187-
<string name="Snabble.Shoppingcart.coupon"/>
188-
<string name="Snabble.Shoppingcart.coupons"/>
189+
<string name="Snabble.Shoppingcart.coupon">Kupon</string>
190+
<string name="Snabble.Shoppingcart.coupons">Kuponok</string>
189191
<string name="Snabble.Shoppingcart.deposit">Betétdíj</string>
190192
<string name="Snabble.Shoppingcart.discounts">Összes árengedmény</string>
191193
<string name="Snabble.Shoppingcart.emptyState.buttonTitle">Termék szkennelése</string>
@@ -195,6 +197,7 @@
195197
<string name="Snabble.Shoppingcart.emptyState.title">A kosarad még üres</string>
196198
<string name="Snabble.Shoppingcart.giveaway">Ingyenes ajándék</string>
197199
<string name="Snabble.Shoppingcart.howToPay">Hogyan szeretnél fizetni?</string>
200+
<string name="Snabble.Shoppingcart.includesDeposit"/>
198201
<string name="Snabble.Shoppingcart.noPaymentData">Még nincs beállítva</string>
199202
<string name="Snabble.Shoppingcart.notForThisPurchase">Ehhez a bevásárláshoz nem áll rendelkezésre</string>
200203
<string name="Snabble.Shoppingcart.notForVendor">A kereskedő nem támogatja</string>

0 commit comments

Comments
 (0)