X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Fui%2Factivity%2FNewTransactionItemHolder.java;h=9af8baca40346ed0d2021d825d030665ea4824d9;hp=eee34693c54a1272c1a3909dff5488019a9762b6;hb=217da55a224e2ae899d0b50604e2e54f882ec04f;hpb=46f085f006042a07edc6fb6c2bc464cbe074c275 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 eee34693..9af8baca 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 @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Damyan Ivanov. + * Copyright © 2020 Damyan Ivanov. * This file is part of MoLe. * MoLe is free software: you can distribute it and/or modify it * under the term of the GNU General Public License as published by @@ -19,10 +19,8 @@ package net.ktnx.mobileledger.ui.activity; import android.annotation.SuppressLint; import android.graphics.Typeface; -import android.os.Build; import android.text.Editable; import android.text.TextWatcher; -import android.text.method.DigitsKeyListener; import android.view.Gravity; import android.view.View; import android.view.ViewGroup; @@ -52,11 +50,11 @@ import net.ktnx.mobileledger.utils.DimensionUtils; import net.ktnx.mobileledger.utils.Logger; import net.ktnx.mobileledger.utils.MLDB; import net.ktnx.mobileledger.utils.Misc; +import net.ktnx.mobileledger.utils.SimpleDate; import java.text.DecimalFormatSymbols; -import java.util.Calendar; +import java.text.ParseException; import java.util.Date; -import java.util.GregorianCalendar; import java.util.Locale; import static net.ktnx.mobileledger.ui.activity.NewTransactionModel.ItemType; @@ -79,7 +77,7 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder private FrameLayout lPadding; private MobileLedgerProfile mProfile; private Date date; - private Observer dateObserver; + private Observer dateObserver; private Observer descriptionObserver; private Observer transactionCommentObserver; private Observer hintObserver; @@ -186,9 +184,13 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder MLDB.hookAutocompletionAdapter(tvAccount.getContext(), tvAccount, MLDB.ACCOUNTS_TABLE, "name", true, this, mProfile); - // updated on locale changes by an observer below decimalSeparator = String.valueOf(DecimalFormatSymbols.getInstance() .getMonetaryDecimalSeparator()); + localeObserver = locale -> { + decimalSeparator = String.valueOf(DecimalFormatSymbols.getInstance(locale) + .getMonetaryDecimalSeparator()); + }; + decimalDot = "."; final TextWatcher tw = new TextWatcher() { @@ -360,14 +362,6 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder tvAmount.setImeOptions(EditorInfo.IME_ACTION_NEXT); }; - localeObserver = locale -> { - decimalSeparator = String.valueOf(DecimalFormatSymbols.getInstance(locale) - .getMonetaryDecimalSeparator()); - - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) - tvAmount.setKeyListener(DigitsKeyListener.getInstance(locale, true, true)); - }; - currencyObserver = currency -> { setCurrency(currency); adapter.checkTransactionSubmittable(); @@ -596,6 +590,9 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder return true; } + catch (ParseException e) { + throw new RuntimeException("Should not happen", e); + } finally { syncingData = false; } @@ -604,8 +601,9 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder DatePickerFragment picker = new DatePickerFragment(); picker.setFutureDates(mProfile.getFutureDates()); picker.setOnDatePickedListener(this); + picker.setCurrentDateFromText(tvDate.getText()); picker.show(((NewTransactionActivity) tvDate.getContext()).getSupportFragmentManager(), - "datePicker"); + null); } /** * setData @@ -712,9 +710,7 @@ class NewTransactionItemHolder extends RecyclerView.ViewHolder } @Override public void onDatePicked(int year, int month, int day) { - final Calendar c = GregorianCalendar.getInstance(); - c.set(year, month, day); - item.setDate(c.getTime()); + item.setDate(new SimpleDate(year, month+1, day)); boolean focused = tvDescription.requestFocus(); if (focused) Misc.showSoftKeyboard((NewTransactionActivity) tvAccount.getContext());