From 1dc30ebaad277875e6a271e566bfa358b13b06a5 Mon Sep 17 00:00:00 2001 From: Sylvia van Os Date: Mon, 15 Feb 2021 22:30:45 +0100 Subject: [PATCH] Reformat balance after focus loss --- .../card_locker/LoyaltyCardEditActivity.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java index 6148b4d01..f94a9ca1f 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardEditActivity.java @@ -208,6 +208,12 @@ public class LoyaltyCardEditActivity extends AppCompatActivity } }); + balanceField.setOnFocusChangeListener((v, hasFocus) -> { + if (!hasFocus) { + balanceField.setText(Utils.formatBalanceWithoutCurrencySymbol((BigDecimal) balanceField.getTag(), (Currency) balanceCurrencyField.getTag())); + } + }); + balanceField.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @@ -217,8 +223,10 @@ public class LoyaltyCardEditActivity extends AppCompatActivity hasChanged = true; try { - balanceField.setTag(Utils.parseCurrencyInUserLocale(s.toString())); + BigDecimal balance = Utils.parseCurrencyInUserLocale(s.toString()); validBalance = true; + + balanceField.setTag(balance); } catch (ParseException | NumberFormatException e) { validBalance = false; e.printStackTrace(); @@ -230,12 +238,8 @@ public class LoyaltyCardEditActivity extends AppCompatActivity }); balanceCurrencyField.addTextChangedListener(new TextWatcher() { - CharSequence lastValue; - @Override - public void beforeTextChanged(CharSequence s, int start, int count, int after) { - lastValue = s; - } + public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) {