mobile-ledger.git
5 days agofix search previous transactions by description master
Damyan Ivanov [Fri, 10 Sep 2021 19:28:25 +0000 (22:28 +0300)]
fix search previous transactions by description

caused by bad data in transactions.description_uc

6 days agorelease v0.20.1 (45) v0.20.1
Damyan Ivanov [Thu, 9 Sep 2021 20:07:48 +0000 (20:07 +0000)]
release v0.20.1 (45)

6 days ago(unsuccessful) attempt to avoid black flicker when switching profiles
Damyan Ivanov [Thu, 9 Sep 2021 19:56:46 +0000 (22:56 +0300)]
(unsuccessful) attempt to avoid black flicker when switching profiles

6 days agodb 62: remove duplicate currency entries before creating unique index
Damyan Ivanov [Thu, 9 Sep 2021 19:55:02 +0000 (22:55 +0300)]
db 62: remove duplicate currency entries before creating unique index

7 days agosettings backup: mention that passwords are stored in the clear
Damyan Ivanov [Wed, 8 Sep 2021 19:48:32 +0000 (22:48 +0300)]
settings backup: mention that passwords are stored in the clear

10 days agodebug setupProfileColors() calls
Damyan Ivanov [Mon, 6 Sep 2021 06:26:13 +0000 (06:26 +0000)]
debug setupProfileColors() calls

2 weeks agodo not report data retrieval cancellation to the user
Damyan Ivanov [Thu, 2 Sep 2021 06:05:22 +0000 (09:05 +0300)]
do not report data retrieval cancellation to the user

this happens as a direct consequence of user action and just adds stress

2 weeks agofix a crash when returning to new transaction with no focused input
Damyan Ivanov [Mon, 30 Aug 2021 19:46:08 +0000 (22:46 +0300)]
fix a crash when returning to new transaction with no focused input

for example, after an unsuccessful save

2 weeks agofocus amount when account is selected
Damyan Ivanov [Mon, 30 Aug 2021 16:43:30 +0000 (19:43 +0300)]
focus amount when account is selected

2 weeks agotypo in exception name
Damyan Ivanov [Mon, 30 Aug 2021 16:17:11 +0000 (19:17 +0300)]
typo in exception name

2 weeks agoconfig restore: skip null entries
Damyan Ivanov [Mon, 30 Aug 2021 16:07:37 +0000 (19:07 +0300)]
config restore: skip null entries

instead of crashing because they aren't 'String' etc.

2 weeks agoinclude description_uc in Transaction's SQL
Damyan Ivanov [Fri, 27 Aug 2021 20:13:04 +0000 (20:13 +0000)]
include description_uc in Transaction's SQL

2 weeks agoreplace AsyncTask.execute with GeneralBackgroundTasks.run
Damyan Ivanov [Fri, 27 Aug 2021 20:12:37 +0000 (20:12 +0000)]
replace AsyncTask.execute with GeneralBackgroundTasks.run

2 weeks agotypo in method name
Damyan Ivanov [Fri, 27 Aug 2021 20:12:02 +0000 (20:12 +0000)]
typo in method name

2 weeks agoconvert AsyncTask descender classes to pure Thread's
Damyan Ivanov [Fri, 27 Aug 2021 20:11:51 +0000 (20:11 +0000)]
convert AsyncTask descender classes to pure Thread's

perhaps these should use a cachedThreadExecutor for handling long jobs
such as network transfer? doesn't seem any better

2 weeks agomake Room ignore the no-argument Currency constructor
Damyan Ivanov [Fri, 27 Aug 2021 20:08:36 +0000 (20:08 +0000)]
make Room ignore the no-argument Currency constructor

the one with all fields should be good

2 weeks agomove async DB stuff away of AsyncTask
Damyan Ivanov [Fri, 27 Aug 2021 20:07:31 +0000 (20:07 +0000)]
move async DB stuff away of AsyncTask

it is deprecated

the replacement is a single-thread executor instance

in theory a multi-thread executor may work too, but there should not be
so much concurrency on the DB level. getting the DB stuff away from the
main thread should be enough

2 weeks agouse a fixed thread pool for general short tasks
Damyan Ivanov [Fri, 27 Aug 2021 20:02:49 +0000 (20:02 +0000)]
use a fixed thread pool for general short tasks

2 weeks agorun the success callback on the main thread
Damyan Ivanov [Fri, 27 Aug 2021 20:02:10 +0000 (20:02 +0000)]
run the success callback on the main thread

3 weeks agoreplace deprecated implicit looper with Looper.getMainLooper()
Damyan Ivanov [Wed, 25 Aug 2021 20:30:33 +0000 (23:30 +0300)]
replace deprecated implicit looper with Looper.getMainLooper()

3 weeks agoreplace AsyncCrasher with a Runnable run by GeneralBackgroundTasks
Damyan Ivanov [Wed, 25 Aug 2021 20:27:23 +0000 (23:27 +0300)]
replace AsyncCrasher with a Runnable run by GeneralBackgroundTasks

a step in removing usages of deprecated AsyncTask

3 weeks agoadd an async runner class for general tasks
Damyan Ivanov [Wed, 25 Aug 2021 20:25:31 +0000 (23:25 +0300)]
add an async runner class for general tasks

supposed to replace AsyncTask usage

3 weeks agorelease v0.20.0 (44) v0.20.0
Damyan Ivanov [Sun, 22 Aug 2021 19:01:09 +0000 (19:01 +0000)]
release v0.20.0 (44)

3 weeks agofall back to any profile when restoring config
Damyan Ivanov [Sun, 22 Aug 2021 17:14:22 +0000 (20:14 +0300)]
fall back to any profile when restoring config

it would be strange to happen, because the config should always have
a current profile, but who knows… defensive programming

3 weeks agouse post..() instead of set..() from a background thread
Damyan Ivanov [Sun, 22 Aug 2021 17:05:10 +0000 (20:05 +0300)]
use post..() instead of set..() from a background thread

3 weeks agofix crash when new trans. is started by a shortcut for removed profile
Damyan Ivanov [Sun, 22 Aug 2021 16:53:41 +0000 (19:53 +0300)]
fix crash when new trans. is started by a shortcut for removed profile

3 weeks agoMainActivity: always refresh shortcuts, even if the list is empty
Damyan Ivanov [Sun, 22 Aug 2021 16:52:09 +0000 (19:52 +0300)]
MainActivity: always refresh shortcuts, even if the list is empty

3 weeks agoDate.setCurrentProfile may accept null as argument
Damyan Ivanov [Sun, 22 Aug 2021 16:18:58 +0000 (19:18 +0300)]
Date.setCurrentProfile may accept null as argument

for example when the last profile has been removed

3 weeks agodo not reset the new transaction model in the constructor
Damyan Ivanov [Sun, 22 Aug 2021 16:18:24 +0000 (19:18 +0300)]
do not reset the new transaction model in the constructor

1) reset() requires that there is a current profile in Data and that may
   not be true because the new transaction activity may be started by a
   shortcut referencing a profile that was removed and that may have
   been the last profile, i.e. there may be no profiles at that moment
2) reset is later called by the new transaction fragment anyway, when it
   has ensured that there is an active profile

3 weeks agofix crash in new transaction shortcut when the main app is not running
Damyan Ivanov [Sun, 22 Aug 2021 16:15:09 +0000 (19:15 +0300)]
fix crash in new transaction shortcut when the main app is not running

3 weeks agofix JSON export of templates
Damyan Ivanov [Sat, 21 Aug 2021 20:15:52 +0000 (23:15 +0300)]
fix JSON export of templates

3 weeks agoadd some explanation before the restore button on the welcome screen
Damyan Ivanov [Sat, 21 Aug 2021 20:05:39 +0000 (23:05 +0300)]
add some explanation before the restore button on the welcome screen

also make it scrollable and more even-aligned

3 weeks agooffer to restore from backup when starting the app with no profiles
Damyan Ivanov [Sat, 21 Aug 2021 16:16:07 +0000 (19:16 +0300)]
offer to restore from backup when starting the app with no profiles

3 weeks agogray out the backup controls if there is nothing to backup
Damyan Ivanov [Sat, 21 Aug 2021 16:15:50 +0000 (19:15 +0300)]
gray out the backup controls if there is nothing to backup

3 weeks agoworking backup and restore of configuration settings
Damyan Ivanov [Sat, 21 Aug 2021 15:59:29 +0000 (18:59 +0300)]
working backup and restore of configuration settings

all profile and template parameters are supported

3 weeks agodrop deprecation from profiles.uuid, make not null
Damyan Ivanov [Sat, 21 Aug 2021 13:43:04 +0000 (16:43 +0300)]
drop deprecation from profiles.uuid, make not null

will be used when importing profiles from exported JSON configuration

3 weeks agoadd uuid to templates
Damyan Ivanov [Sat, 21 Aug 2021 13:25:34 +0000 (16:25 +0300)]
add uuid to templates

will be used to distinguish new templates when restoring configuration
from JSON

3 weeks agoadd unique index on currencies(name)
Damyan Ivanov [Sat, 21 Aug 2021 12:49:20 +0000 (15:49 +0300)]
add unique index on currencies(name)

this would function as the UUID on profiles and templates

2 months agopoint to local license copies (in addition to web links)
Damyan Ivanov [Sat, 26 Jun 2021 07:50:55 +0000 (07:50 +0000)]
point to local license copies (in addition to web links)

3 months agoprepare v0.19.2 (43) for release v0.19.2
Damyan Ivanov [Wed, 9 Jun 2021 04:48:03 +0000 (04:48 +0000)]
prepare v0.19.2 (43) for release

3 months agofix looking up old transactions with non-ASCII names (broken in 0.18.0)
Damyan Ivanov [Tue, 8 Jun 2021 20:26:14 +0000 (23:26 +0300)]
fix looking up old transactions with non-ASCII names (broken in 0.18.0)

according to the documentation, SQLite's NOCASE collation affects only
ASCII characters. Unicode is explicitly mentioned as not supported.
Strangely Unicode still works on some Android versions/variants, but not
on others.

This change stops relying on NOCASE collation and puts back upper case
variant of transaction description in a new column, which is then used
when looking up previous transactions for auto-completion

3 months agoprepare v0.19.1 (42) for release v0.19.1
Damyan Ivanov [Sun, 23 May 2021 15:59:12 +0000 (15:59 +0000)]
prepare v0.19.1 (42) for release

3 months agodrop a fixme that needs no fixing
Damyan Ivanov [Sun, 23 May 2021 15:39:58 +0000 (18:39 +0300)]
drop a fixme that needs no fixing

3 months agofix crash in version checking code with two-component versions (3.14)
Damyan Ivanov [Sun, 23 May 2021 14:36:36 +0000 (17:36 +0300)]
fix crash in version checking code with two-component versions (3.14)

3 months agomaintain amount text independent from the amount
Damyan Ivanov [Sun, 23 May 2021 14:29:54 +0000 (17:29 +0300)]
maintain amount text independent from the amount

for example, the text may not be a valid amount, i.e. a sole "-"

3 months agomake decimal separator available globally
Damyan Ivanov [Sun, 23 May 2021 14:27:21 +0000 (17:27 +0300)]
make decimal separator available globally

updated with locale changes

4 months agotrack more instances where currency may be null (and replace it with "")
Damyan Ivanov [Sun, 16 May 2021 11:38:19 +0000 (14:38 +0300)]
track more instances where currency may be null (and replace it with "")

4 months agobimp gradle, sdk, build tools, jackson; jcentral→mavenCentral
Damyan Ivanov [Sun, 16 May 2021 05:45:20 +0000 (05:45 +0000)]
bimp gradle, sdk, build tools, jackson; jcentral→mavenCentral

4 months agofix loading previous transaction with no preferred account (again)
Damyan Ivanov [Sun, 16 May 2021 05:42:43 +0000 (05:42 +0000)]
fix loading previous transaction with no preferred account (again)

broken in 0.19.0

4 months agouse explicit main thread looper
Damyan Ivanov [Sat, 15 May 2021 10:20:03 +0000 (13:20 +0300)]
use explicit main thread looper

4 months agobump version of two test libraries
Damyan Ivanov [Thu, 13 May 2021 05:03:14 +0000 (08:03 +0300)]
bump version of two test libraries

4 months agoannotate a data retrieval method with @Transaction as suggested
Damyan Ivanov [Thu, 13 May 2021 04:57:12 +0000 (07:57 +0300)]
annotate a data retrieval method with @Transaction as suggested

4 months agofix a weird bug when an invalid amount is entered
Damyan Ivanov [Wed, 12 May 2021 19:52:11 +0000 (22:52 +0300)]
fix a weird bug when an invalid amount is entered

4 months agotypo in debug message
Damyan Ivanov [Wed, 12 May 2021 19:51:55 +0000 (22:51 +0300)]
typo in debug message

4 months agonew transaction: currency can't be null
Damyan Ivanov [Wed, 12 May 2021 19:51:33 +0000 (22:51 +0300)]
new transaction: currency can't be null

4 months agoprepare release of v0.19.0 (41) v0.19.0
Damyan Ivanov [Mon, 10 May 2021 19:41:01 +0000 (19:41 +0000)]
prepare release of v0.19.0 (41)

4 months agowhen accumulating running totals, consider sub-accounts too
Damyan Ivanov [Mon, 10 May 2021 19:28:22 +0000 (22:28 +0300)]
when accumulating running totals, consider sub-accounts too

4 months agofix propagation of speculative account ammounts to parent accounts
Damyan Ivanov [Mon, 10 May 2021 19:17:03 +0000 (22:17 +0300)]
fix propagation of speculative account ammounts to parent accounts

4 months agobetter text color reference working also in dark theme
Damyan Ivanov [Sun, 9 May 2021 18:34:22 +0000 (21:34 +0300)]
better text color reference working also in dark theme

4 months agovisual improvements in template list
Damyan Ivanov [Sun, 9 May 2021 17:19:54 +0000 (20:19 +0300)]
visual improvements in template list

add a divider between items, similarly to the account list

4 months agofix account list end margin after flow adoption
Damyan Ivanov [Sun, 9 May 2021 05:30:15 +0000 (08:30 +0300)]
fix account list end margin after flow adoption

4 months agoadd small margin between account name and its amount in transaction list
Damyan Ivanov [Sat, 8 May 2021 20:20:45 +0000 (23:20 +0300)]
add small margin between account name and its amount in transaction list

4 months agohint account name wrapping after the colon to help long accounts
Damyan Ivanov [Sat, 8 May 2021 20:20:03 +0000 (23:20 +0300)]
hint account name wrapping after the colon to help long accounts

4 months agoimprove account list with Flow helper widget
Damyan Ivanov [Sat, 8 May 2021 19:33:11 +0000 (22:33 +0300)]
improve account list with Flow helper widget

makes a difference with very deep account trees and/or long commodities
or big amounts and small screen or big font

4 months agofix auto-complete account list amounts alignment
Damyan Ivanov [Sat, 8 May 2021 15:19:56 +0000 (18:19 +0300)]
fix auto-complete account list amounts alignment

similar improvement can be made to the main account list

4 months agoshow current account balance when choosing account in new transactions
Damyan Ivanov [Fri, 7 May 2021 20:47:39 +0000 (23:47 +0300)]
show current account balance when choosing account in new transactions

4 months agofixed auto-complete pop-up background color for the material layout too
Damyan Ivanov [Fri, 7 May 2021 19:24:25 +0000 (22:24 +0300)]
fixed auto-complete pop-up background color for the material layout too

4 months agouse same font size in template editor / account name
Damyan Ivanov [Fri, 7 May 2021 18:58:06 +0000 (21:58 +0300)]
use same font size in template editor / account name

4 months agodrop unused style attribute
Damyan Ivanov [Fri, 7 May 2021 16:47:44 +0000 (19:47 +0300)]
drop unused style attribute

4 months agoexplicit pop-up background color for auto-complete text views in dark
Damyan Ivanov [Fri, 7 May 2021 16:47:23 +0000 (19:47 +0300)]
explicit pop-up background color for auto-complete text views in dark

can't find a way to reference the theme-wide color for pop-up menus and
the app drawer

without this, the background is black, which is a problem some times
because the main windows background is also black

4 months agouse the primary theme colour for transaction list accents
Damyan Ivanov [Fri, 7 May 2021 15:32:06 +0000 (18:32 +0300)]
use the primary theme colour for transaction list accents

a bit more readable in dark mode

4 months agobetter layout of the transaction list running total
Damyan Ivanov [Fri, 7 May 2021 15:26:49 +0000 (18:26 +0300)]
better layout of the transaction list running total

4 months agoremove duplicate call
Damyan Ivanov [Fri, 7 May 2021 04:46:23 +0000 (04:46 +0000)]
remove duplicate call

4 months agosimplify logic
Damyan Ivanov [Fri, 7 May 2021 04:45:47 +0000 (04:45 +0000)]
simplify logic

4 months agowhitespace
Damyan Ivanov [Fri, 7 May 2021 04:45:08 +0000 (04:45 +0000)]
whitespace

4 months agorunning totals when filtering transactions by account
Damyan Ivanov [Fri, 7 May 2021 04:43:12 +0000 (04:43 +0000)]
running totals when filtering transactions by account

this requires traversing the transaction list in the opposite order - from
oldest to newest and corresponding corner cases

4 months agofix currency selector without parameters (position/gap)
Damyan Ivanov [Thu, 6 May 2021 19:43:22 +0000 (22:43 +0300)]
fix currency selector without parameters (position/gap)

4 months agowhitespace
Damyan Ivanov [Thu, 6 May 2021 19:42:53 +0000 (22:42 +0300)]
whitespace

4 months agodebug loop only in debug builds
Damyan Ivanov [Thu, 6 May 2021 19:42:41 +0000 (22:42 +0300)]
debug loop only in debug builds

4 months agoadd commodity support to template editor
Damyan Ivanov [Thu, 6 May 2021 19:42:14 +0000 (22:42 +0300)]
add commodity support to template editor

4 months agodrop a dummy TODO
Damyan Ivanov [Thu, 6 May 2021 17:39:11 +0000 (20:39 +0300)]
drop a dummy TODO

there are no parameters for creation this fragment, the TODO is a
leftover from the assisted fragment creation

4 months agoreject TODO about multiple amounts with different currency per posting
Damyan Ivanov [Thu, 6 May 2021 17:36:18 +0000 (20:36 +0300)]
reject TODO about multiple amounts with different currency per posting

the same effect may be achieved with several postings now and this is
how hledger represents such transactions so no need to invent some
convoluted UI for this

4 months agoupdate the current profile value when profile list has changed
Damyan Ivanov [Thu, 6 May 2021 17:34:16 +0000 (20:34 +0300)]
update the current profile value when profile list has changed

without this, Data.getProfile() returns a previous value that may not be
current, e.g. the default currency have been changed

4 months agohonour default currency profile setting
Damyan Ivanov [Thu, 6 May 2021 17:19:28 +0000 (20:19 +0300)]
honour default currency profile setting

4 months agobump version preparing for the next release
Damyan Ivanov [Thu, 6 May 2021 17:19:07 +0000 (20:19 +0300)]
bump version preparing for the next release

4 months agomake use of currency parameters in the new currency dialog
Damyan Ivanov [Thu, 6 May 2021 17:18:42 +0000 (20:18 +0300)]
make use of currency parameters in the new currency dialog

4 months agofix migration off options table for current profile v0.18.0
Damyan Ivanov [Thu, 6 May 2021 06:57:07 +0000 (09:57 +0300)]
fix migration off options table for current profile

4 months agoprepare release of v0.18.0 (40)
Damyan Ivanov [Wed, 5 May 2021 20:18:10 +0000 (20:18 +0000)]
prepare release of v0.18.0 (40)

4 months agofix a crash when applying more than one template via QR code
Damyan Ivanov [Wed, 5 May 2021 16:55:16 +0000 (19:55 +0300)]
fix a crash when applying more than one template via QR code

4 months agorename a method to better reflect its function
Damyan Ivanov [Wed, 5 May 2021 15:43:48 +0000 (18:43 +0300)]
rename a method to better reflect its function

4 months agowhen speculatively updating account amounts, update parent accounts too
Damyan Ivanov [Wed, 5 May 2021 15:42:58 +0000 (18:42 +0300)]
when speculatively updating account amounts, update parent accounts too

4 months agoview binding for account and transaction list fragments
Damyan Ivanov [Fri, 30 Apr 2021 06:51:06 +0000 (09:51 +0300)]
view binding for account and transaction list fragments

4 months agowork around trans. list menu items visible with setOffscreenPageLimit(1)
Damyan Ivanov [Fri, 30 Apr 2021 06:34:12 +0000 (09:34 +0300)]
work around trans. list menu items visible with setOffscreenPageLimit(1)

with that call the transaction list fragment is loaded nicely
off-screen, but also it menu items get in the action bar. of the
fragment is navigated to and away they hide as before, but the initial
load is still a problem

4 months agoanother fix to the layout of template date parameters
Damyan Ivanov [Tue, 27 Apr 2021 19:51:39 +0000 (22:51 +0300)]
another fix to the layout of template date parameters

4 months agostop resetting the date when an old transaction is loaded into the form
Damyan Ivanov [Tue, 27 Apr 2021 19:18:19 +0000 (22:18 +0300)]
stop resetting the date when an old transaction is loaded into the form

4 months agodrop description history table and support machinery
Damyan Ivanov [Tue, 27 Apr 2021 19:09:59 +0000 (22:09 +0300)]
drop description history table and support machinery

4 months agocorrect debug message
Damyan Ivanov [Tue, 27 Apr 2021 18:31:57 +0000 (21:31 +0300)]
correct debug message

4 months agolookup transactions by description directly in transactions table
Damyan Ivanov [Tue, 27 Apr 2021 18:31:44 +0000 (21:31 +0300)]
lookup transactions by description directly in transactions table

description_history is abandoned, transactions.description uses NOCASE
collation and the UPPER trickery is not needed anymore

4 months agoseveral fixes when there are no profiles after full room adoption
Damyan Ivanov [Mon, 26 Apr 2021 04:44:43 +0000 (04:44 +0000)]
several fixes when there are no profiles after full room adoption

in particular, the ProfileThemedActivity doesn't call finish() when
there is no current profile, because this is exactly the case when the
app has just been installed and the main activity's introductory
interface needs to be shown

4 months agoproactively apply the same fix to the new transaction editor
Damyan Ivanov [Mon, 26 Apr 2021 04:40:00 +0000 (04:40 +0000)]
proactively apply the same fix to the new transaction editor