mobile-ledger.git
20 months agoprepare release of 0.13.1 (33) v0.13.1
Damyan Ivanov [Thu, 14 May 2020 21:07:25 +0000 (21:07 +0000)]
prepare release of 0.13.1 (33)

20 months agocompletely abandon fiddling with KeyListener's
Damyan Ivanov [Thu, 14 May 2020 21:03:40 +0000 (00:03 +0300)]
completely abandon fiddling with KeyListener's

inputType setting seems do work alright

20 months agoupdate decimal separator value with locale change
Damyan Ivanov [Thu, 14 May 2020 20:46:52 +0000 (23:46 +0300)]
update decimal separator value with locale change

even on newer android, where there is a dedicated key listener, we
need to know how to convert strings to floats

20 months agostop
Damyan Ivanov [Thu, 14 May 2020 20:42:01 +0000 (23:42 +0300)]
stop

20 months agoprepare release v0.13.0
Damyan Ivanov [Thu, 14 May 2020 18:22:53 +0000 (18:22 +0000)]
prepare release

20 months agoposting-level flag for amount validity; drop custom amount text filter
Damyan Ivanov [Thu, 14 May 2020 10:50:12 +0000 (13:50 +0300)]
posting-level flag for amount validity; drop custom amount text filter

the custom text filter in amount inputs seems to break with some
Samsung keyboards.

with a flag that is honoured by the code that checks for transaction
submittability it is better, and allows for a nice warning icon on
invalid input

20 months agodrop extra item type enforcement when removing transaction comment observer
Damyan Ivanov [Thu, 14 May 2020 10:38:09 +0000 (13:38 +0300)]
drop extra item type enforcement when removing transaction comment observer

leads to crashes and such a check is not present for the other observers

20 months agostyle for error texts
Damyan Ivanov [Thu, 14 May 2020 10:30:25 +0000 (13:30 +0300)]
style for error texts

20 months agomake the "home" (back arrow) toolbar button in the profile detail activity behave...
Damyan Ivanov [Thu, 14 May 2020 08:16:43 +0000 (11:16 +0300)]
make the "home" (back arrow) toolbar button in the profile detail activity behave like the back key

this already done for the new transaction activity and seems proper here too
without it, pressing back (on the "keyboard") finishes the activity returning
to the main activity without changing its state (e.g. the drawer is kept
open), while pressing the home arrow (usually at the top left) re-starts
the main activity, closing its drawer

20 months agodrop unused parent activity declarations from manifest
Damyan Ivanov [Thu, 14 May 2020 07:40:34 +0000 (10:40 +0300)]
drop unused parent activity declarations from manifest

20 months agodrop unused activity declaration from manifest
Damyan Ivanov [Wed, 13 May 2020 20:31:03 +0000 (23:31 +0300)]
drop unused activity declaration from manifest

20 months agotranslation
Damyan Ivanov [Wed, 13 May 2020 20:28:03 +0000 (23:28 +0300)]
translation

20 months agolink show comments by default flag between the UI and the DB
Damyan Ivanov [Wed, 13 May 2020 20:23:05 +0000 (23:23 +0300)]
link show comments by default flag between the UI and the DB

20 months agoprofile details: add switch for showing comments by default
Damyan Ivanov [Wed, 13 May 2020 19:13:04 +0000 (22:13 +0300)]
profile details: add switch for showing comments by default

20 months agoprofile details: put posting params in a layout so that they can be hidden easier
Damyan Ivanov [Wed, 13 May 2020 19:10:33 +0000 (22:10 +0300)]
profile details: put posting params in a layout so that they can be hidden easier

20 months agowhitespace
Damyan Ivanov [Wed, 13 May 2020 18:42:47 +0000 (21:42 +0300)]
whitespace

20 months agopass transaction comment to the JSON API
Damyan Ivanov [Wed, 13 May 2020 18:41:28 +0000 (21:41 +0300)]
pass transaction comment to the JSON API

as a 'same line' comment, e.g.

date description ; comment
 account 42
 account

the "preceding" comment is not working (at least with 1.14)

20 months agohandle transaction comment UI changes
Damyan Ivanov [Wed, 13 May 2020 18:39:36 +0000 (21:39 +0300)]
handle transaction comment UI changes

20 months agorework comment show/hide/blur with colors instead of alpha
Damyan Ivanov [Wed, 13 May 2020 18:36:01 +0000 (21:36 +0300)]
rework comment show/hide/blur with colors instead of alpha

alpha interferes with layout animations

20 months agothemed color for disabled text
Damyan Ivanov [Wed, 13 May 2020 18:32:03 +0000 (21:32 +0300)]
themed color for disabled text

20 months agoadd transaction comment to the internal transaction representation
Damyan Ivanov [Wed, 13 May 2020 18:27:54 +0000 (21:27 +0300)]
add transaction comment to the internal transaction representation

20 months agorearrangement
Damyan Ivanov [Sun, 10 May 2020 18:49:09 +0000 (18:49 +0000)]
rearrangement

20 months agotransaction-level comments in new transaction UI, optional
Damyan Ivanov [Sun, 10 May 2020 18:47:31 +0000 (18:47 +0000)]
transaction-level comments in new transaction UI, optional

20 months agomove previous transaction lookup progress bar to the fragment
Damyan Ivanov [Sun, 10 May 2020 12:31:19 +0000 (15:31 +0300)]
move previous transaction lookup progress bar to the fragment

20 months agofix new transaction (+) fab appearing when returning to the app while the drawer...
Damyan Ivanov [Sat, 9 May 2020 20:40:05 +0000 (20:40 +0000)]
fix new transaction (+) fab appearing when returning to the app while the drawer is open

20 months agoHTML transaction parser: handle posting status flags
Damyan Ivanov [Wed, 6 May 2020 18:19:13 +0000 (18:19 +0000)]
HTML transaction parser: handle posting status flags

instead of crashing

20 months agoupdate open drawer screenshot v0.12.0
Damyan Ivanov [Wed, 6 May 2020 09:24:27 +0000 (09:24 +0000)]
update open drawer screenshot

20 months agoadd change logs for release 31
Damyan Ivanov [Wed, 6 May 2020 09:18:57 +0000 (09:18 +0000)]
add change logs for release 31

20 months agoAdd currency/commodity support to full description
Damyan Ivanov [Wed, 6 May 2020 08:28:27 +0000 (08:28 +0000)]
Add currency/commodity support to full description

20 months agoupdate change log
Damyan Ivanov [Wed, 6 May 2020 08:01:16 +0000 (08:01 +0000)]
update change log

20 months agoprofile editor: streamlined handling of authentication switch
Damyan Ivanov [Wed, 6 May 2020 07:45:48 +0000 (10:45 +0300)]
profile editor: streamlined handling of authentication switch

focus moves only when responding to the UI, hook to the LiveData, not
to the UI element

20 months agodarker colour palette, matching theme (pre-generated) and run-time colours
Damyan Ivanov [Mon, 4 May 2020 20:03:20 +0000 (23:03 +0300)]
darker colour palette, matching theme (pre-generated) and run-time colours

20 months agoremove unused code
Damyan Ivanov [Mon, 4 May 2020 18:35:43 +0000 (21:35 +0300)]
remove unused code

20 months agoadd missing contentDescription to a couple of images
Damyan Ivanov [Sun, 3 May 2020 19:28:08 +0000 (22:28 +0300)]
add missing contentDescription to a couple of images

20 months agoreorganize main activity layout to let the CoordinatorLayout do its job with the...
Damyan Ivanov [Sun, 3 May 2020 19:27:41 +0000 (22:27 +0300)]
reorganize main activity layout to let the CoordinatorLayout do its job with the Snackbars

also leads to a cleaner situation on new installs - no drawer until a
profile is created

20 months agofix rounding of the automatic profile color of the second profile after using the...
Damyan Ivanov [Sun, 3 May 2020 19:23:00 +0000 (22:23 +0300)]
fix rounding of the automatic profile color of the second profile after using the default for the first

was causing invalid theme IDs, falling back the default

20 months agorename ic_clear_black_24dp.xml to avoid clash with a private SDK resource
Damyan Ivanov [Sun, 3 May 2020 19:21:16 +0000 (22:21 +0300)]
rename ic_clear_black_24dp.xml to avoid clash with a private SDK resource

20 months agoignore refresh request when there is no profile yet
Damyan Ivanov [Sun, 3 May 2020 13:05:41 +0000 (16:05 +0300)]
ignore refresh request when there is no profile yet

20 months agoToast → Snackbar
Damyan Ivanov [Sun, 3 May 2020 12:56:38 +0000 (15:56 +0300)]
Toast → Snackbar

20 months agoshow a message when no transactions are found containing the preferred account name
Damyan Ivanov [Sun, 3 May 2020 12:55:59 +0000 (15:55 +0300)]
show a message when no transactions are found containing the preferred account name

20 months agoadd a copy of the navigation drawer header to the welcome screen
Damyan Ivanov [Sun, 3 May 2020 12:55:09 +0000 (15:55 +0300)]
add a copy of the navigation drawer header to the welcome screen

20 months agodelete stray options of already removed profiles
Damyan Ivanov [Sun, 3 May 2020 11:10:26 +0000 (14:10 +0300)]
delete stray options of already removed profiles

20 months agonote create_db.sql reflects changes up to rev. 29
Damyan Ivanov [Sun, 3 May 2020 10:50:14 +0000 (10:50 +0000)]
note create_db.sql reflects changes up to rev. 29

20 months agodescribe changes
Damyan Ivanov [Sun, 3 May 2020 10:48:31 +0000 (10:48 +0000)]
describe changes

20 months agoTODO: transaction-level comments (displaying and entering)
Damyan Ivanov [Sun, 3 May 2020 10:22:26 +0000 (10:22 +0000)]
TODO: transaction-level comments (displaying and entering)

20 months agoshow comment field after screen rotation if it was previously focused
Damyan Ivanov [Sun, 3 May 2020 09:24:49 +0000 (12:24 +0300)]
show comment field after screen rotation if it was previously focused

20 months agowhitespace
Damyan Ivanov [Sun, 3 May 2020 09:11:08 +0000 (12:11 +0300)]
whitespace

20 months agoclean unneeded import
Damyan Ivanov [Sun, 3 May 2020 09:11:03 +0000 (12:11 +0300)]
clean unneeded import

20 months agoconvert two inner classes to static
Damyan Ivanov [Sun, 3 May 2020 09:10:41 +0000 (12:10 +0300)]
convert two inner classes to static

eases references etc

20 months agoprivate access when appropriate
Damyan Ivanov [Sun, 3 May 2020 09:10:14 +0000 (12:10 +0300)]
private access when appropriate

20 months agorework previous transaction retrieval with JOIN (much faster) and async SQL
Damyan Ivanov [Sun, 3 May 2020 09:07:11 +0000 (12:07 +0300)]
rework previous transaction retrieval with JOIN (much faster) and async SQL

also, empty ("") preferred account name is treated correctly

the async SQL really helps avoiding UI lock-ups

20 months agofu: async sql machinery
Damyan Ivanov [Sun, 3 May 2020 09:03:00 +0000 (12:03 +0300)]
fu: async sql machinery

20 months agoLogger: add warning methods
Damyan Ivanov [Sun, 3 May 2020 09:02:02 +0000 (12:02 +0300)]
Logger: add warning methods

20 months agoMLDB: machinery for asynchronous select queries
Damyan Ivanov [Sun, 3 May 2020 08:55:26 +0000 (11:55 +0300)]
MLDB: machinery for asynchronous select queries

similar to the option setting, but for any kind of statements and with
callbacks

20 months agofaster description pop-up
Damyan Ivanov [Sun, 3 May 2020 08:53:26 +0000 (11:53 +0300)]
faster description pop-up

replace surrogate pop-up cursor with a suitable "live" SQLite cursor

the problem with the surrogate is that it loads all matches and /then/
hands off control to the UI

the live cursor is populated incrementally and is very fast

20 months agoadd an index on transactions(description)
Damyan Ivanov [Sun, 3 May 2020 08:12:58 +0000 (11:12 +0300)]
add an index on transactions(description)

to help finding the right previous transaction faster

20 months agoadd progress while retrieving previous transaction
Damyan Ivanov [Sun, 3 May 2020 08:12:09 +0000 (11:12 +0300)]
add progress while retrieving previous transaction

the search for the right transaction may take some time

20 months agoupgrade gradle to 3.6.3
Damyan Ivanov [Sun, 3 May 2020 07:16:14 +0000 (10:16 +0300)]
upgrade gradle to 3.6.3

20 months agoNT: hide the simulation watermark by default
Damyan Ivanov [Fri, 1 May 2020 15:49:22 +0000 (18:49 +0300)]
NT: hide the simulation watermark by default

20 months agorework comments: add clear icon, italics, visible when populated, grayed-out when...
Damyan Ivanov [Fri, 1 May 2020 14:50:47 +0000 (17:50 +0300)]
rework comments: add clear icon, italics, visible when populated, grayed-out when not focused

20 months agovariant of isEmptyOrNull for CharSequence
Damyan Ivanov [Fri, 1 May 2020 14:48:56 +0000 (17:48 +0300)]
variant of isEmptyOrNull for CharSequence

20 months agoNew helper class adding a "clear" (×) button at the end of an EditText
Damyan Ivanov [Fri, 1 May 2020 14:46:17 +0000 (17:46 +0300)]
New helper class adding a "clear" (×) button at the end of an EditText

20 months agolambdaisation
Damyan Ivanov [Sat, 25 Apr 2020 20:05:09 +0000 (23:05 +0300)]
lambdaisation

20 months agodrop unneeded object-level field
Damyan Ivanov [Sat, 25 Apr 2020 20:04:56 +0000 (23:04 +0300)]
drop unneeded object-level field

used only in the constructor where the local variable is enough

20 months agoNT: better alignment anchoring when hiding comment
Damyan Ivanov [Sat, 25 Apr 2020 20:02:00 +0000 (23:02 +0300)]
NT: better alignment anchoring when hiding comment

20 months ago@NotNull annotation
Damyan Ivanov [Sat, 25 Apr 2020 19:57:46 +0000 (22:57 +0300)]
@NotNull annotation

may help something somewhere

20 months agoNT: explicitly set the comment when loading a previous transaction
Damyan Ivanov [Sat, 25 Apr 2020 19:39:04 +0000 (22:39 +0300)]
NT: explicitly set the comment when loading a previous transaction

without this the comment is still there, but the UI is not displaying
the "comment active" icon

20 months agowhitespace
Damyan Ivanov [Sat, 25 Apr 2020 19:29:08 +0000 (22:29 +0300)]
whitespace

20 months agowhen a preferred account name filter yields no results, ignore it
Damyan Ivanov [Sat, 25 Apr 2020 19:29:00 +0000 (22:29 +0300)]
when a preferred account name filter yields no results, ignore it

so that there is some historical transaction used as a template even
when there is none that includes an account matching the preferred
filter

21 months agomove profile editor data in a model class so that it survives reconfiguration
Damyan Ivanov [Mon, 20 Apr 2020 18:49:20 +0000 (21:49 +0300)]
move profile editor data in a model class so that it survives reconfiguration

without this, rotating the device resets the fragment to its initial
state (original profile values or default values)

21 months agonew transaction: hook the currency selection to the item so that it still works after...
Damyan Ivanov [Mon, 20 Apr 2020 18:45:16 +0000 (21:45 +0300)]
new transaction: hook the currency selection to the item so that it still works after a reconfiguration

21 months agoCurrencySelector: move selection listener to the model so that it survives reconficur...
Damyan Ivanov [Mon, 20 Apr 2020 18:43:47 +0000 (21:43 +0300)]
CurrencySelector: move selection listener to the model so that it survives reconficuration

21 months agoutility routines for comparing strings with another string/CharSeqence, treating...
Damyan Ivanov [Mon, 20 Apr 2020 18:36:24 +0000 (21:36 +0300)]
utility routines for comparing strings with another string/CharSeqence, treating null values as empty strings

21 months agomove high-level login out of the new transaction model to the adapter
Damyan Ivanov [Sat, 18 Apr 2020 12:50:04 +0000 (15:50 +0300)]
move high-level login out of the new transaction model to the adapter

21 months agofix storing profile params to DB after adding default currency column
Damyan Ivanov [Sat, 18 Apr 2020 10:42:49 +0000 (13:42 +0300)]
fix storing profile params to DB after adding default currency column

21 months agoexplicit parseInt
Damyan Ivanov [Fri, 17 Apr 2020 19:22:17 +0000 (22:22 +0300)]
explicit parseInt

21 months agoavoid overlapping observations
Damyan Ivanov [Fri, 17 Apr 2020 19:21:56 +0000 (22:21 +0300)]
avoid overlapping observations

21 months agoUI for setting default profile comodity
Damyan Ivanov [Fri, 17 Apr 2020 19:17:41 +0000 (22:17 +0300)]
UI for setting default profile comodity

21 months agomake the position/padding currency parameters optional
Damyan Ivanov [Fri, 17 Apr 2020 19:11:21 +0000 (22:11 +0300)]
make the position/padding currency parameters optional

21 months agowhitespace
Damyan Ivanov [Fri, 17 Apr 2020 19:03:46 +0000 (22:03 +0300)]
whitespace

21 months agoadd profile setting for default currency (db part)
Damyan Ivanov [Fri, 17 Apr 2020 18:53:09 +0000 (21:53 +0300)]
add profile setting for default currency (db part)

21 months agoprofile-level setting for showing commodify in new transaction screen by default
Damyan Ivanov [Sat, 11 Apr 2020 14:22:29 +0000 (17:22 +0300)]
profile-level setting for showing commodify in new transaction screen by default

21 months agosupport multiple currencies in new transaction activity
Damyan Ivanov [Sun, 5 Apr 2020 20:36:50 +0000 (23:36 +0300)]
support multiple currencies in new transaction activity

with mandatory empty rows for easy entering and ensuring transaction balance

this doesn't allow hidden commodity conversion, explicit one should be
used, possibly with dedicated FX accounts

21 months agoprofile methods for loading currency by name
Damyan Ivanov [Sun, 5 Apr 2020 20:33:19 +0000 (23:33 +0300)]
profile methods for loading currency by name

21 months agotreat null currency as "" when storing transaction accounts
Damyan Ivanov [Sun, 5 Apr 2020 20:32:50 +0000 (23:32 +0300)]
treat null currency as "" when storing transaction accounts

the db field is declared as not null

21 months agouse locale-aware String.format
Damyan Ivanov [Sun, 5 Apr 2020 20:31:50 +0000 (23:31 +0300)]
use locale-aware String.format

21 months agotreat "" currency as null
Damyan Ivanov [Sun, 5 Apr 2020 20:31:29 +0000 (23:31 +0300)]
treat "" currency as null

21 months agotypo in exception message
Damyan Ivanov [Sun, 5 Apr 2020 20:30:46 +0000 (23:30 +0300)]
typo in exception message

21 months agohelper methids for comparing currency objects and strings
Damyan Ivanov [Sun, 5 Apr 2020 20:30:27 +0000 (23:30 +0300)]
helper methids for comparing currency objects and strings

21 months agohelper method for loading a currency by name
Damyan Ivanov [Sun, 5 Apr 2020 20:30:07 +0000 (23:30 +0300)]
helper method for loading a currency by name

21 months agohelper routines for treating "" as null and vice versa
Damyan Ivanov [Sun, 5 Apr 2020 20:29:26 +0000 (23:29 +0300)]
helper routines for treating "" as null and vice versa

21 months agoupgrade gradle to 3.6.2
Damyan Ivanov [Sun, 5 Apr 2020 20:28:55 +0000 (23:28 +0300)]
upgrade gradle to 3.6.2

22 months agoNT: new rules for determining whether transaction can be submitted (not quite finished)
Damyan Ivanov [Sun, 15 Mar 2020 05:52:48 +0000 (07:52 +0200)]
NT: new rules for determining whether transaction can be submitted (not quite finished)

22 months agoNT: show currency selection trigger only in a transaction row
Damyan Ivanov [Sun, 15 Mar 2020 05:51:04 +0000 (07:51 +0200)]
NT: show currency selection trigger only in a transaction row

not in the header/padding (these would throw on setCurrency(null) call)

22 months agoNT: correctly disable swiping of top and bottom entries, let all the rest be swiped
Damyan Ivanov [Sat, 14 Mar 2020 19:25:30 +0000 (21:25 +0200)]
NT: correctly disable swiping of top and bottom entries, let all the rest be swiped

top is the entry with the date/description; bottom is the padding

all the rest can be swiped and the call to checkTransactionSubmittable()
will make sure that there are at least two account rows present

22 months agowhitespace
Damyan Ivanov [Sat, 14 Mar 2020 16:45:23 +0000 (18:45 +0200)]
whitespace

22 months agofu: Date → Calendar
Damyan Ivanov [Sat, 14 Mar 2020 16:45:16 +0000 (18:45 +0200)]
fu: Date → Calendar

22 months agoNT: survive swiping away an account when only two accounts are present
Damyan Ivanov [Sat, 14 Mar 2020 16:45:00 +0000 (18:45 +0200)]
NT: survive swiping away an account when only two accounts are present

the old code ignored the swipe, but did not null it, so the UI was still
left with only one account

the new code accounts for the swipe as usual and lets
viewModel.checkTransactionSubmittable add the now missing account row

22 months agoomit use of deprecated Date.getYear() and Date.getMonth()
Damyan Ivanov [Sat, 14 Mar 2020 16:40:40 +0000 (18:40 +0200)]
omit use of deprecated Date.getYear() and Date.getMonth()

22 months agoenable viewBinding ("compile-time check for findViewById")
Damyan Ivanov [Sat, 14 Mar 2020 16:39:34 +0000 (18:39 +0200)]
enable viewBinding ("compile-time check for findViewById")