X-Git-Url: https://git.ktnx.net/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Factivity%2FNewTransactionItemHolder.java;h=0ee99136eaa0d51579677b296e4a55e42a397b85;hb=0fb03702b44e99bef2a5674d96f025595aed4274;hp=45a57e542988dbcf9f485c9cf7d0f2652077ca66;hpb=e980e7f7a49d2f5fcd42b30dc78b5c37f9b0a49b;p=mobile-ledger-staging.git diff --git a/app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionItemHolder.java b/app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionItemHolder.java index 45a57e54..0ee99136 100644 --- a/app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionItemHolder.java +++ b/app/src/main/java/net/ktnx/mobileledger/ui/activity/NewTransactionItemHolder.java @@ -81,6 +81,7 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder private Observer editableObserver; private Observer commentVisibleObserver; private Observer commentObserver; + private Observer localeObserver; private boolean inUpdate = false; private boolean syncingData = false; private View commentButton; @@ -206,7 +207,6 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder tvComment.addTextChangedListener(tw); tvAmount.addTextChangedListener(amountWatcher); - // FIXME: react on locale changes if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) tvAmount.setKeyListener(DigitsKeyListener.getInstance(Locale.getDefault(), true, true)); else @@ -314,6 +314,11 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder else tvAmount.setImeOptions(EditorInfo.IME_ACTION_NEXT); }; + + localeObserver = locale -> { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) + tvAmount.setKeyListener(DigitsKeyListener.getInstance(locale, true, true)); + }; } private void setEditable(Boolean editable) { tvDate.setEnabled(editable); @@ -442,6 +447,7 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder .stopObservingFocusedItem(focusedAccountObserver); this.item.getModel() .stopObservingAccountCount(accountCountObserver); + Data.locale.removeObserver(localeObserver); this.item = null; } @@ -494,6 +500,7 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder .observeFocusedItem(activity, focusedAccountObserver); item.getModel() .observeAccountCount(activity, accountCountObserver); + Data.locale.observe(activity, localeObserver); } } finally {