mobile-ledger.git
7 weeks agowhitespace master
Damyan Ivanov [Sun, 4 Oct 2020 18:37:48 +0000 (21:37 +0300)]
whitespace

7 weeks agoUI and machinery for detecting hledger-web version
Damyan Ivanov [Sun, 4 Oct 2020 18:37:23 +0000 (21:37 +0300)]
UI and machinery for detecting hledger-web version

todo: retry discovering version upon URL change, make JSON input/output
honour the version

7 weeks agoRevert "remove references to style members from the parser classes"
Damyan Ivanov [Sun, 4 Oct 2020 05:50:50 +0000 (05:50 +0000)]
Revert "remove references to style members from the parser classes"

Breaks new transaction submission

This reverts commit 47f69abd0ff71ef40d37fc8b9f8693d370f473ea.

7 weeks agowhitespace
Damyan Ivanov [Fri, 2 Oct 2020 06:00:25 +0000 (09:00 +0300)]
whitespace

7 weeks agoinclude errors sending transaction in debug output
Damyan Ivanov [Fri, 2 Oct 2020 05:59:39 +0000 (08:59 +0300)]
include errors sending transaction in debug output

7 weeks agofix legacy new transaction submission with no date (use today's)
Damyan Ivanov [Fri, 2 Oct 2020 05:49:22 +0000 (08:49 +0300)]
fix legacy new transaction submission with no date (use today's)

broken in 0.15.0

8 weeks agoremove references to style members from the parser classes
Damyan Ivanov [Tue, 29 Sep 2020 19:23:40 +0000 (22:23 +0300)]
remove references to style members from the parser classes

There is a change in 1.19.1 that breaks the parser (precision member
changed from plain number to an object). While modifying the parser to
be able to try different versions of the API is possible, it is quite a
task, and by simple omission of 'astyle' members the parser library
ignores the incoming data.

This (not providing 'astyle') also seems to work when adding new
transactions, at least with hledger-web 1.16.2

8 weeks agoRevert "add support for floatingPoint member of the quantity objects"
Damyan Ivanov [Tue, 29 Sep 2020 15:27:24 +0000 (15:27 +0000)]
Revert "add support for floatingPoint member of the quantity objects"

This reverts commit d6d15ebf2287b3e9d7c213241367ef053e971e60.

The problem with that is that it breaks sending new transactions for older
versions of hledger-web.

It is also not really necessary, because the precision got limited so that
there is no longer possible to get 255 decimal digits for periodic results

8 weeks agoadd support for floatingPoint member of the quantity objects
Damyan Ivanov [Sun, 27 Sep 2020 17:09:14 +0000 (20:09 +0300)]
add support for floatingPoint member of the quantity objects

introduced in hledger-web to avoid problems with large mantissas and
such when some prices are drived from transactions that result in
periodic decimals

8 weeks agothemes: secondary==primary, a bit closer primaryDark, no calculations
Damyan Ivanov [Sat, 26 Sep 2020 16:47:44 +0000 (19:47 +0300)]
themes: secondary==primary, a bit closer primaryDark, no calculations

all intermediate colours are calculated as a weighted average of the
nearest theme color. this keeps the color calculations in one place --
tools/gen-styles.pl

8 weeks agomake splash activity descent from CrashReportingActivity
Damyan Ivanov [Sat, 26 Sep 2020 14:28:32 +0000 (17:28 +0300)]
make splash activity descent from CrashReportingActivity

some DB work is done in the background, initiated from SplashActivity.
it is possible that it crashes for some reason and that better be
reported

8 weeks agoDB: move pragma execution in onConfigure() where it belongs
Damyan Ivanov [Sat, 26 Sep 2020 14:25:38 +0000 (17:25 +0300)]
DB: move pragma execution in onConfigure() where it belongs

8 weeks agosplash: setup DB in the background
Damyan Ivanov [Sat, 26 Sep 2020 14:24:09 +0000 (17:24 +0300)]
splash: setup DB in the background

this puts all initial DB work in the background - creation and upgrade

avoids empty screen when there is a ig DB rework on upgrade

8 weeks agowhitespace
Damyan Ivanov [Sat, 26 Sep 2020 14:14:12 +0000 (17:14 +0300)]
whitespace

8 weeks agodeclare theme for the new transaction activity
Damyan Ivanov [Sat, 26 Sep 2020 14:13:45 +0000 (17:13 +0300)]
declare theme for the new transaction activity

avoids flashing when started up directly by a launcher shortcut

2 months agouse theme-driven new transaction FAB icon color
Damyan Ivanov [Thu, 24 Sep 2020 16:17:12 +0000 (16:17 +0000)]
use theme-driven new transaction FAB icon color

2 months agofix profile list not updating tag colour after saving profile changes
Damyan Ivanov [Thu, 24 Sep 2020 16:16:07 +0000 (16:16 +0000)]
fix profile list not updating tag colour after saving profile changes

2 months agomove delete profile menu handling in a method
Damyan Ivanov [Thu, 24 Sep 2020 16:14:15 +0000 (16:14 +0000)]
move delete profile menu handling in a method

2 months agoallow removal of the last profile
Damyan Ivanov [Thu, 24 Sep 2020 16:12:50 +0000 (16:12 +0000)]
allow removal of the last profile

nothing bad about that, the welcome screen will be activated

2 months agoemplye requireNonNull instead of a manual check
Damyan Ivanov [Thu, 24 Sep 2020 16:11:27 +0000 (16:11 +0000)]
emplye requireNonNull instead of a manual check

2 months agofix setup of theme when the last profile was removed
Damyan Ivanov [Thu, 24 Sep 2020 16:07:11 +0000 (19:07 +0300)]
fix setup of theme when the last profile was removed

the old preference was still available and caused usage of the theme
of the last profile instead of the default

2 months agoordered deletion when wiping profile data
Damyan Ivanov [Thu, 24 Sep 2020 15:39:14 +0000 (18:39 +0300)]
ordered deletion when wiping profile data

needed so that foreigh keys can be enforced

2 months agoadd 0.15.0 release date v0.15.0
Damyan Ivanov [Sun, 20 Sep 2020 19:42:57 +0000 (22:42 +0300)]
add 0.15.0 release date

2 months agoremove legacy foreigh key vialotions in transaction_accounts
Damyan Ivanov [Sun, 20 Sep 2020 19:41:46 +0000 (22:41 +0300)]
remove legacy foreigh key vialotions in transaction_accounts

2 months agowhen switching profiles, clear account list too
Damyan Ivanov [Sun, 20 Sep 2020 12:31:39 +0000 (15:31 +0300)]
when switching profiles, clear account list too

2 months agoenable the foreign_keys PRAGMA only in debug builds
Damyan Ivanov [Sun, 20 Sep 2020 12:30:49 +0000 (15:30 +0300)]
enable the foreign_keys PRAGMA only in debug builds

hopefully will help iron out all the caveats

2 months agoprepare release of 0.15.0 (36)
Damyan Ivanov [Sat, 19 Sep 2020 15:59:18 +0000 (15:59 +0000)]
prepare release of 0.15.0 (36)

2 months agotypo in CHANGES
Damyan Ivanov [Sat, 19 Sep 2020 15:58:38 +0000 (15:58 +0000)]
typo in CHANGES

2 months agofix typo in full description translation
Damyan Ivanov [Sat, 19 Sep 2020 15:54:45 +0000 (15:54 +0000)]
fix typo in full description translation

2 months agoupdate CHANGES
Damyan Ivanov [Sat, 19 Sep 2020 15:24:04 +0000 (18:24 +0300)]
update CHANGES

2 months agofinal fix for the first date delimiter item
Damyan Ivanov [Sat, 19 Sep 2020 14:55:28 +0000 (17:55 +0300)]
final fix for the first date delimiter item

2 months agoshow the number of accounts in the account list head item
Damyan Ivanov [Sat, 19 Sep 2020 14:47:26 +0000 (17:47 +0300)]
show the number of accounts in the account list head item

2 months agofix duplicate first date delimiter when the latest date is in the past
Damyan Ivanov [Sat, 19 Sep 2020 09:13:20 +0000 (12:13 +0300)]
fix duplicate first date delimiter when the latest date is in the past

2 months agolast update text also includes transaction count
Damyan Ivanov [Sat, 19 Sep 2020 07:02:36 +0000 (10:02 +0300)]
last update text also includes transaction count

and is maintained by the main activity, which has access to all the
relevant bits - string resources, live data observation, up to date
transaction count

2 months agofix mismatch in the gap above the last update text
Damyan Ivanov [Fri, 18 Sep 2020 16:08:26 +0000 (19:08 +0300)]
fix mismatch in the gap above the last update text

it appears that layout_marginTop works in a Frame, but not in a
ConstraintLayout :(

2 months agoconvert the last update global header to a list header
Damyan Ivanov [Fri, 18 Sep 2020 15:54:30 +0000 (18:54 +0300)]
convert the last update global header to a list header

to avoid taking up precious space, and to help animation of transactions
coming in the front of the list -- before they were silently inserted
above the first, in above the visible scroller window. now there is
an item fixed at the first position

2 months agodrop unused empty style
Damyan Ivanov [Thu, 17 Sep 2020 08:21:03 +0000 (08:21 +0000)]
drop unused empty style

2 months agobetter shadow under main header in dark mode
Damyan Ivanov [Thu, 17 Sep 2020 08:17:17 +0000 (08:17 +0000)]
better shadow under main header in dark mode

with greater height and darker at the top edge. still black

tried with white and it looks very unnatural and like a mistake

2 months agotransaction list always starts with the date of the first transaction
Damyan Ivanov [Thu, 17 Sep 2020 07:54:08 +0000 (07:54 +0000)]
transaction list always starts with the date of the first transaction

this is a good idea because of the side effect it has when a new
transaction from today comes after a refresh -- you see it pop in under
the date row

without the date row (which is at the top of the scroll view when
pulling to refresh) the new appears outside of the visible scroll window
and one has to to see it -- it appears as if the refresh didn't do
anything later problem still stays when the first transaction is for a
past(1) and the newly coming ones are from a later (than (1)) date

a possible solution is to convert the "Last updated" header to a special
kind of transaction list item (there are three now - date line,
transaction box and bottom filler) that always sits on the top of the
list and all incoming transactions are inserted below it -- always pop
in nicely

2 months agostore new currencies upon account amounts storage
Damyan Ivanov [Thu, 17 Sep 2020 07:37:28 +0000 (07:37 +0000)]
store new currencies upon account amounts storage

fixes a crash when a previous transaction is selected in the new
transaction screen that uses currencies not added via the currency
dialog

2 months agofix storing/retrieval of currency position
Damyan Ivanov [Thu, 17 Sep 2020 07:25:04 +0000 (07:25 +0000)]
fix storing/retrieval of currency position

no need of trickery. standard enum has it all

2 months agoreplace local utility functions with ones from TextUtils
Damyan Ivanov [Thu, 17 Sep 2020 07:13:37 +0000 (07:13 +0000)]
replace local utility functions with ones from TextUtils

2 months agodrop done TODO: transaction level comment
Damyan Ivanov [Thu, 17 Sep 2020 07:06:14 +0000 (07:06 +0000)]
drop done TODO: transaction level comment

implemented in v0.14.0

2 months agoupdate CHANGES.md
Damyan Ivanov [Thu, 17 Sep 2020 07:05:00 +0000 (07:05 +0000)]
update CHANGES.md

2 months agofix transaction_accounts in create_db.sql
Damyan Ivanov [Thu, 17 Sep 2020 07:02:00 +0000 (07:02 +0000)]
fix transaction_accounts in create_db.sql

columns can't come after constraints, it seems

2 months agofix spurious fetch of remote data
Damyan Ivanov [Wed, 16 Sep 2020 15:13:47 +0000 (18:13 +0300)]
fix spurious fetch of remote data

the lastUpdate observer was triggered once before the value is set
so move the decision whether to fetch out of the observer

2 months agofix many lint errors/warnings
Damyan Ivanov [Wed, 16 Sep 2020 15:03:10 +0000 (18:03 +0300)]
fix many lint errors/warnings

2 months agodisable some annoying debug
Damyan Ivanov [Wed, 16 Sep 2020 13:31:12 +0000 (16:31 +0300)]
disable some annoying debug

2 months agomajor rework of parsed transaction/descriptions/accounts storage
Damyan Ivanov [Wed, 16 Sep 2020 13:30:50 +0000 (16:30 +0300)]
major rework of parsed transaction/descriptions/accounts storage

new approach avoids mass deletion followed by mass inserts and allows
activation of foreign key constraints in SQLite

the list of accounts and transactions are managed by an
asynchronous differ

members of Data that are relevant only to the MainActivity and its
fragments are moved to a new MainModel ViewModel class

2 months agobump gradle version to 4.0.1
Damyan Ivanov [Sun, 6 Sep 2020 08:51:10 +0000 (08:51 +0000)]
bump gradle version to 4.0.1

2 months agostatic Logger reference
Damyan Ivanov [Sun, 6 Sep 2020 08:50:54 +0000 (08:50 +0000)]
static Logger reference

2 months agoaddress nullability warning
Damyan Ivanov [Sun, 6 Sep 2020 08:50:29 +0000 (08:50 +0000)]
address nullability warning

2 months agospeed up parsed transaction/accounts storage
Damyan Ivanov [Sun, 6 Sep 2020 08:47:41 +0000 (11:47 +0300)]
speed up parsed transaction/accounts storage

new approach avoids mass deletion followed by mass inserts

2 months agofixup: progress
Damyan Ivanov [Fri, 28 Aug 2020 16:50:47 +0000 (19:50 +0300)]
fixup: progress

2 months agowhitespace
Damyan Ivanov [Wed, 26 Aug 2020 20:07:01 +0000 (23:07 +0300)]
whitespace

2 months agoproper transaction parsing progress
Damyan Ivanov [Wed, 26 Aug 2020 20:05:35 +0000 (23:05 +0300)]
proper transaction parsing progress

accounts data has the number of postings which can be used to determine
the remaining work

2 months agorework transaction retrieval without MainActivity reference
Damyan Ivanov [Wed, 26 Aug 2020 20:03:05 +0000 (20:03 +0000)]
rework transaction retrieval without MainActivity reference

use a public LiveData to which interested parties can subscribe

3 months agocollapse empty xml tag
Damyan Ivanov [Mon, 17 Aug 2020 16:42:22 +0000 (19:42 +0300)]
collapse empty xml tag

3 months agodeclare theme for the splash and main activities
Damyan Ivanov [Mon, 17 Aug 2020 16:42:08 +0000 (19:42 +0300)]
declare theme for the splash and main activities

seems to help reduce flicker upon startup

3 months agoput default colour in the base theme
Damyan Ivanov [Mon, 17 Aug 2020 16:39:37 +0000 (19:39 +0300)]
put default colour in the base theme

this duplicates the .default theme, but is useful in the graphical editors

perhaps can me useful to spot unexpected changed in the default theme too

3 months agouse DayNight theme overlay for the profile details toolbar
Damyan Ivanov [Mon, 17 Aug 2020 16:37:05 +0000 (19:37 +0300)]
use DayNight theme overlay for the profile details toolbar

3 months agotheme color tint for the delete icon
Damyan Ivanov [Mon, 17 Aug 2020 16:35:17 +0000 (19:35 +0300)]
theme color tint for the delete icon

3 months agowhitespace
Damyan Ivanov [Mon, 17 Aug 2020 16:30:34 +0000 (19:30 +0300)]
whitespace

3 months agorename mergeAccountLists method to better reflect its purpose
Damyan Ivanov [Sun, 16 Aug 2020 13:59:08 +0000 (16:59 +0300)]
rename mergeAccountLists method to better reflect its purpose

it is important to note that the data comes from hledger-web and not
as a result to some UI-induced change

3 months agofix merging of account lists so that changes are detected
Damyan Ivanov [Sun, 16 Aug 2020 13:56:30 +0000 (16:56 +0300)]
fix merging of account lists so that changes are detected

the old code modified objects in-place, changing the existing object,
which avoids (wrongly) propagation of the change to the UI

the new code ensures a new object is used in that case (the one from
newList) which guarantees that the change will be caught by the list
differ

this fixes a problem with amounts not being updated after a refresh from
the hledger-web backend

3 months agodrop unneeded profile parameter
Damyan Ivanov [Sun, 16 Aug 2020 13:53:21 +0000 (16:53 +0300)]
drop unneeded profile parameter

3 months agoavoid warning about dangerous unboxing by handling (im)possible null value
Damyan Ivanov [Sun, 16 Aug 2020 13:08:15 +0000 (16:08 +0300)]
avoid warning about dangerous unboxing by handling (im)possible null value

3 months agomove locale live-data initialization to a static initialization block
Damyan Ivanov [Sun, 16 Aug 2020 12:59:57 +0000 (15:59 +0300)]
move locale live-data initialization to a static initialization block

avoids a warning about assigning locale to a final variable. the warning is misleading, because the locale is assigned to a final mutable live data object, not to a final variable

3 months agowhitespace
Damyan Ivanov [Sun, 16 Aug 2020 12:54:07 +0000 (15:54 +0300)]
whitespace

3 months agonew transaction: fix saving progress in/out navigation
Damyan Ivanov [Sun, 16 Aug 2020 12:50:14 +0000 (15:50 +0300)]
new transaction: fix saving progress in/out navigation

somewhat broken after following the recommendations about thefragment container.

the navigation was saved so after saving 'Back' returned to the 'saving progress' fragment instead of closing the activity

3 months agomore string translations
Damyan Ivanov [Sat, 15 Aug 2020 12:47:09 +0000 (12:47 +0000)]
more string translations

3 months agodrop unused string resource
Damyan Ivanov [Sat, 15 Aug 2020 12:46:57 +0000 (12:46 +0000)]
drop unused string resource

3 months agoadd splash icon description
Damyan Ivanov [Sat, 15 Aug 2020 12:46:42 +0000 (12:46 +0000)]
add splash icon description

3 months agounused event handler declaration
Damyan Ivanov [Sat, 15 Aug 2020 12:45:45 +0000 (12:45 +0000)]
unused event handler declaration

this is hooked in code

3 months agowhitespace
Damyan Ivanov [Sat, 15 Aug 2020 12:45:10 +0000 (15:45 +0300)]
whitespace

3 months agoreplace <fragment> with FragmentContainerView as recommended
Damyan Ivanov [Sat, 15 Aug 2020 12:44:52 +0000 (15:44 +0300)]
replace <fragment> with FragmentContainerView as recommended

supposedly more flexible about fragment transactions

3 months agouse recommended '0.xx' instead of '.xx' in one vector icon
Damyan Ivanov [Sat, 15 Aug 2020 12:41:07 +0000 (15:41 +0300)]
use recommended '0.xx' instead of '.xx' in one vector icon

the new form uses more bytes, but is supposedly compatible with more implementations

3 months agoforgotten import
Damyan Ivanov [Sat, 15 Aug 2020 12:12:29 +0000 (15:12 +0300)]
forgotten import

3 months agoproper constant declaration
Damyan Ivanov [Sat, 15 Aug 2020 12:12:17 +0000 (15:12 +0300)]
proper constant declaration

3 months agoData.transactions can't be bull here
Damyan Ivanov [Sat, 15 Aug 2020 12:09:22 +0000 (12:09 +0000)]
Data.transactions can't be bull here

3 months agofix linter warning about calling LayoutInflater.inflate with root=null
Damyan Ivanov [Sat, 15 Aug 2020 12:08:27 +0000 (12:08 +0000)]
fix linter warning about calling LayoutInflater.inflate with root=null

3 months agodeclare several inner classes as static
Damyan Ivanov [Sat, 15 Aug 2020 12:06:33 +0000 (12:06 +0000)]
declare several inner classes as static

otherwise they keep references to their parent class

3 months agodrop unused/unneeded variables
Damyan Ivanov [Sat, 15 Aug 2020 12:05:37 +0000 (12:05 +0000)]
drop unused/unneeded variables

3 months agoHueRing: override/call performClick()
Damyan Ivanov [Sat, 15 Aug 2020 12:04:50 +0000 (12:04 +0000)]
HueRing: override/call performClick()

linter insists this would help accessibility

3 months agoHueRing: single 'center' value
Damyan Ivanov [Sat, 15 Aug 2020 12:04:18 +0000 (12:04 +0000)]
HueRing: single 'center' value

it is relative to widget origin so no separate value is needed for
horizontal and vertical center

3 months agoCurrencySelectorModel: proper initialization of currencies list
Damyan Ivanov [Sat, 15 Aug 2020 12:02:32 +0000 (12:02 +0000)]
CurrencySelectorModel: proper initialization of currencies list

3 months agotransaction.getDate() never returns null
Damyan Ivanov [Sat, 15 Aug 2020 12:01:19 +0000 (12:01 +0000)]
transaction.getDate() never returns null

3 months agonew currency ID: without (not working) dance around duplicate IDs
Damyan Ivanov [Sat, 15 Aug 2020 12:00:37 +0000 (12:00 +0000)]
new currency ID: without (not working) dance around duplicate IDs

3 months agofixed-locale String.format
Damyan Ivanov [Sat, 15 Aug 2020 11:59:25 +0000 (11:59 +0000)]
fixed-locale String.format

these are debugging statements, but still

3 months agorework background progress to use MutableLiveData and observers
Damyan Ivanov [Sat, 15 Aug 2020 11:57:51 +0000 (11:57 +0000)]
rework background progress to use MutableLiveData and observers

3 months agowhitespace
Damyan Ivanov [Sat, 15 Aug 2020 10:08:00 +0000 (10:08 +0000)]
whitespace

3 months agofix a bunch of spelling mistakes all around
Damyan Ivanov [Sat, 15 Aug 2020 09:57:52 +0000 (09:57 +0000)]
fix a bunch of spelling mistakes all around

3 months agoData: migrate profile to a private variable, provide methods for accessing it
Damyan Ivanov [Sat, 15 Aug 2020 09:46:40 +0000 (09:46 +0000)]
Data: migrate profile to a private variable, provide methods for accessing it

3 months agorename 'iter' variable to 'iterator'
Damyan Ivanov [Sat, 15 Aug 2020 09:26:21 +0000 (09:26 +0000)]
rename 'iter' variable to 'iterator'

3 months agonew transaction: hide FAB on submit
Damyan Ivanov [Sat, 15 Aug 2020 09:07:19 +0000 (12:07 +0300)]
new transaction: hide FAB on submit

disabling changes the icon colour which is strange

3 months agorework account list management to be fully asynchronous
Damyan Ivanov [Sat, 1 Aug 2020 13:27:03 +0000 (16:27 +0300)]
rework account list management to be fully asynchronous

displayed list is mostly static, updates are made to new lists, which are diff-updated (in a thread)

the tricky part is handling updates from the web (in a thread) and from the UI (expansion/collapsing of sub-trees)

3 months agoAccountListParser: include version in debug output
Damyan Ivanov [Sat, 1 Aug 2020 13:16:24 +0000 (16:16 +0300)]
AccountListParser: include version in debug output

3 months agodebug: print SQL params in DbOpRunner
Damyan Ivanov [Sat, 1 Aug 2020 13:15:25 +0000 (16:15 +0300)]
debug: print SQL params in DbOpRunner

3 months agoimplement AutoCloseable in Locker
Damyan Ivanov [Sat, 1 Aug 2020 12:59:18 +0000 (12:59 +0000)]
implement AutoCloseable in Locker

3 months agodo not force refreshing spinner during transaction description refresh
Damyan Ivanov [Sat, 1 Aug 2020 12:58:31 +0000 (15:58 +0300)]
do not force refreshing spinner during transaction description refresh

it appears as if the general refresh runs twice and transaction description runs in non-exclusive
transaction and doesn't interfere with e.g. new transaction entry (where there is a lookup for
transaction descriptions)