]> git.ktnx.net Git - mobile-ledger.git/log
mobile-ledger.git
3 years 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

3 years 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

3 years 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

3 years 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

3 years 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

3 years 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

3 years 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

3 years 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

3 years 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

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

3 years 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

3 years 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

3 years 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

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

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

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

3 years 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

3 years 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)

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

3 years 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

3 years 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

3 years 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

3 years 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

3 years 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

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

3 years 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

3 years 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

3 years 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

3 years 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)

3 years 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

3 years 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

3 years 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

3 years 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

3 years 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

3 years 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

3 years 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

3 years 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

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

3 years 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

3 years 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

3 years 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

3 years agofix profile editor's bottom part getting overlapped by the soft keyboard
Damyan Ivanov [Mon, 26 Apr 2021 04:37:20 +0000 (04:37 +0000)]
fix profile editor's bottom part getting overlapped by the soft keyboard

3 years agodrop unnecessary template type
Damyan Ivanov [Mon, 26 Apr 2021 04:14:07 +0000 (04:14 +0000)]
drop unnecessary template type

3 years agofix binary & used instead of logical &&
Damyan Ivanov [Sun, 25 Apr 2021 18:52:06 +0000 (21:52 +0300)]
fix binary & used instead of logical &&

3 years agosmall step towards support for currency in transaction templates
Damyan Ivanov [Sun, 25 Apr 2021 18:51:44 +0000 (21:51 +0300)]
small step towards support for currency in transaction templates

3 years agorename an event handler using the onXXX style
Damyan Ivanov [Sun, 25 Apr 2021 16:42:55 +0000 (19:42 +0300)]
rename an event handler using the onXXX style

3 years agoshow comments when invoking a previous transaction
Damyan Ivanov [Sun, 25 Apr 2021 16:42:31 +0000 (19:42 +0300)]
show comments when invoking a previous transaction

broken in a recent release

3 years agofix converting LedgerTransactionAccount to TransactionAccount (room)
Damyan Ivanov [Sun, 25 Apr 2021 16:29:35 +0000 (19:29 +0300)]
fix converting LedgerTransactionAccount to TransactionAccount (room)

the currency can't be null

having null here led to problems when saving the transaction
speculatively and account amounts are updated, because in the database
account_values.currency is declared not null

3 years agofix inclusion of exception log in error message
Damyan Ivanov [Sat, 24 Apr 2021 21:06:22 +0000 (00:06 +0300)]
fix inclusion of exception log in error message

3 years agospeculatively add new transactions to the database and UI list
Damyan Ivanov [Sat, 24 Apr 2021 21:04:59 +0000 (00:04 +0300)]
speculatively add new transactions to the database and UI list

this saves a refresh that would be need to view the new transactions and
 ccount balances

3 years agofix ordering of transactions when loaded from database
Damyan Ivanov [Sat, 24 Apr 2021 20:53:55 +0000 (23:53 +0300)]
fix ordering of transactions when loaded from database

3 years agofix displayed transactions count
Damyan Ivanov [Sat, 24 Apr 2021 20:51:55 +0000 (23:51 +0300)]
fix displayed transactions count

the count wrongly included the UI elements like date delimiters and the
heading row

3 years agorestore account ordering by name
Damyan Ivanov [Sat, 24 Apr 2021 20:49:57 +0000 (23:49 +0300)]
restore account ordering by name

it was nice to use the ordering from hledger, but after the migration to
 room this worked only by chance - sqlite returned the rows in the order
 they were inserted. this means that any new accounts will end up at
 the bottom. this is the case when speculative transaction storage is
 active (coming soon) and the transaction has a new account.

 also, the conversion from db account objects to UI list relies on the
 ordering now.

 in a future version, the accounts table may store the hledger ordering
 in a new column, but this doesn't completely solve the problem when
 adding new accounts speculatively

3 years agostore transaction list in a db transaction
Damyan Ivanov [Sat, 24 Apr 2021 18:29:16 +0000 (18:29 +0000)]
store transaction list in a db transaction

otherwise each insert/update triggers a re-fetch of the while list,
which is devastating for the UI and the battery

3 years agoput conversion from DB objects to LedgerTransaction in a thread
Damyan Ivanov [Sat, 24 Apr 2021 18:15:18 +0000 (18:15 +0000)]
put conversion from DB objects to LedgerTransaction in a thread

seems to take a non-trivial amount of time

3 years agoprovide a common routine for running something on the main thread
Damyan Ivanov [Sat, 24 Apr 2021 17:08:38 +0000 (17:08 +0000)]
provide a common routine for running something on the main thread

3 years agosave profile's order when editing a profile
Damyan Ivanov [Sat, 24 Apr 2021 17:02:06 +0000 (17:02 +0000)]
save profile's order when editing a profile

3 years agoavoid switching current profile when profiles are rearranged
Damyan Ivanov [Sat, 24 Apr 2021 16:17:10 +0000 (16:17 +0000)]
avoid switching current profile when profiles are rearranged

on rearrange the object instances change so the equality check needs to
be done on IDs, not object instances

3 years agofully employ room for loading transactions off DB
Damyan Ivanov [Fri, 23 Apr 2021 21:36:04 +0000 (00:36 +0300)]
fully employ room for loading transactions off DB

3 years agodebug refinements
Damyan Ivanov [Fri, 23 Apr 2021 20:33:05 +0000 (23:33 +0300)]
debug refinements

3 years agodo not force transaction list reload upon main activity start
Damyan Ivanov [Fri, 23 Apr 2021 20:32:43 +0000 (23:32 +0300)]
do not force transaction list reload upon main activity start

instead, let the account filter observer trigger it (account filter live
data is initialized with a value)

this drops the reloading upon profile change, but profile changes
restart the activity anyway, as do theme changes

also, more precise reaction on account filter changes in the fragment --
no need to reload transactions there now that the main activity does it

3 years agoMainActivity's logging using a TAG
Damyan Ivanov [Fri, 23 Apr 2021 20:25:56 +0000 (23:25 +0300)]
MainActivity's logging using a TAG

3 years agoData.profile doesn't need to be an inert MutableLiveData
Damyan Ivanov [Fri, 23 Apr 2021 20:24:02 +0000 (23:24 +0300)]
Data.profile doesn't need to be an inert MutableLiveData

the normal MutableLiveData doesn't fire if not given an initial value

3 years agouse a constant to indicate profile ID of no real profile
Damyan Ivanov [Fri, 23 Apr 2021 20:21:39 +0000 (23:21 +0300)]
use a constant to indicate profile ID of no real profile

3 years agoasync variant for loading all transactions
Damyan Ivanov [Fri, 23 Apr 2021 19:29:02 +0000 (22:29 +0300)]
async variant for loading all transactions

3 years agoTransactionAccumulator needs not keep a reference to the main model
Damyan Ivanov [Fri, 23 Apr 2021 19:25:58 +0000 (22:25 +0300)]
TransactionAccumulator needs not keep a reference to the main model

3 years agoasking UpdateTransactionsTask to load a null profile is fine
Damyan Ivanov [Fri, 23 Apr 2021 19:14:52 +0000 (22:14 +0300)]
asking UpdateTransactionsTask to load a null profile is fine

it would load an empty transaction list

3 years agospeculatively update last update date while the transactions are stored
Damyan Ivanov [Fri, 23 Apr 2021 15:34:24 +0000 (15:34 +0000)]
speculatively update last update date while the transactions are stored

this a white lie, because the displayed list is the new one, retrieved
at the given time

this fixes the previous attempt

3 years agoRevert "speculatively update last update date before the transactions are stored"
Damyan Ivanov [Fri, 23 Apr 2021 15:30:01 +0000 (15:30 +0000)]
Revert "speculatively update last update date before the transactions are stored"

This reverts commit bae2aa9e

the code in question is run every time the transaction list is filtered
or updated. when the transaction list is updated it is OK to lie a bit,
but when the list is just filtered the timestamp of the data does not
change

3 years agospeculatively update last update date before the transactions are stored
Damyan Ivanov [Fri, 23 Apr 2021 05:09:41 +0000 (05:09 +0000)]
speculatively update last update date before the transactions are stored

this a white lie, because the displayed list is the new one, retrieved
at the given time

3 years agofurther optimize transaction storage by comparing dataHash field
Damyan Ivanov [Fri, 23 Apr 2021 05:07:26 +0000 (05:07 +0000)]
further optimize transaction storage by comparing dataHash field

if the dataHash field of the transaction that needs storage matches one
from the database (retrieved by profile id and ledger id), then simply
update the generation of the transaction in the database (and its
accounts)

since this is the common case (refreshing transaction list -- most of
the transactions are expected to be unchanged) this saves big time

3 years agoput all the annotated abstract DAO methods in the beginning
Damyan Ivanov [Fri, 23 Apr 2021 04:59:53 +0000 (04:59 +0000)]
put all the annotated abstract DAO methods in the beginning

3 years agoinline the storeAccountsAndTransactions method
Damyan Ivanov [Fri, 23 Apr 2021 04:56:14 +0000 (04:56 +0000)]
inline the storeAccountsAndTransactions method

it is a bit silly to have run() that only calls one method

3 years agofix storing transaction accounts (bad typo)
Damyan Ivanov [Thu, 22 Apr 2021 21:10:46 +0000 (00:10 +0300)]
fix storing transaction accounts (bad typo)

this is the fastest storage approach, next thing to try -- compare
existing records with the new-to-be and avoid the db update alltogether
if they are the same

3 years agoadditional transaction deletion methods
Damyan Ivanov [Thu, 22 Apr 2021 21:09:25 +0000 (00:09 +0300)]
additional transaction deletion methods

3 years agofix copying ensuring currency is not null
Damyan Ivanov [Thu, 22 Apr 2021 21:08:45 +0000 (00:08 +0300)]
fix copying ensuring currency is not null

3 years agorename method to better reflect what it does
Damyan Ivanov [Thu, 22 Apr 2021 21:08:20 +0000 (00:08 +0300)]
rename method to better reflect what it does

3 years agofix field/accessor type mismatch
Damyan Ivanov [Thu, 22 Apr 2021 20:44:49 +0000 (23:44 +0300)]
fix field/accessor type mismatch

3 years agoselects from joined tables need explicit column list :(
Damyan Ivanov [Thu, 22 Apr 2021 20:44:28 +0000 (23:44 +0300)]
selects from joined tables need explicit column list :(

3 years agospeed up transaction storage a bit
Damyan Ivanov [Thu, 22 Apr 2021 20:43:55 +0000 (23:43 +0300)]
speed up transaction storage a bit

by updating existing records in-place. sqlite's insert or replace
statement tries insert, and when that fails because of unique/primary
key violation *removes* the existing record together with any child
records and then retries the insert. it is almost like deleting all the
transactions and inserting them again, but with a failed insert before
that

3 years ago(commented) facility for debugging Room's SQL queries
Damyan Ivanov [Thu, 22 Apr 2021 20:37:15 +0000 (23:37 +0300)]
(commented) facility for debugging Room's SQL queries

available in room 2.3.0

3 years agoimplement stable IDs for the transaction list
Damyan Ivanov [Thu, 22 Apr 2021 04:39:09 +0000 (04:39 +0000)]
implement stable IDs for the transaction list

3 years agofix ordering of filtered transaction items
Damyan Ivanov [Thu, 22 Apr 2021 04:28:31 +0000 (04:28 +0000)]
fix ordering of filtered transaction items

ledger_id matches the order at which the transactions are stored in
the ledger

3 years agofix comparison of transaction date delimiter contents
Damyan Ivanov [Thu, 22 Apr 2021 04:24:44 +0000 (04:24 +0000)]
fix comparison of transaction date delimiter contents

it is possible that a delimiter that showed the month name no longer
does and vice versa

3 years agoadd some profiling on acount/transaction list storage
Damyan Ivanov [Thu, 22 Apr 2021 04:22:37 +0000 (04:22 +0000)]
add some profiling on acount/transaction list storage

3 years agoBaseDAO: async operation variants without callbacks
Damyan Ivanov [Thu, 22 Apr 2021 04:19:42 +0000 (04:19 +0000)]
BaseDAO: async operation variants without callbacks

3 years agouse plain 'long' for Currency.id
Damyan Ivanov [Thu, 22 Apr 2021 04:14:08 +0000 (04:14 +0000)]
use plain 'long' for Currency.id

also make it mutable, like in the rest of the entity classes

3 years agodrop MobileLedgerDatabase, move initComplete to DB
Damyan Ivanov [Wed, 21 Apr 2021 20:09:28 +0000 (23:09 +0300)]
drop MobileLedgerDatabase, move initComplete to DB

3 years agosplash: show forced delay before starting the main activity in debug
Damyan Ivanov [Wed, 21 Apr 2021 20:03:50 +0000 (23:03 +0300)]
splash: show forced delay before starting the main activity in debug

we may want to do something useful with this time - preload profile
data?

3 years agoconvert DatabaseInitTask to a lightweight thread
Damyan Ivanov [Wed, 21 Apr 2021 20:03:06 +0000 (23:03 +0300)]
convert DatabaseInitTask to a lightweight thread

looks much cleaner

3 years agodrop remnants of gradual transaction data loading, and last non-Room SQL
Damyan Ivanov [Wed, 21 Apr 2021 19:44:14 +0000 (22:44 +0300)]
drop remnants of gradual transaction data loading, and last non-Room SQL

3 years agopreload transaction list page, making transition smoother
Damyan Ivanov [Wed, 21 Apr 2021 19:34:48 +0000 (22:34 +0300)]
preload transaction list page, making transition smoother

3 years agofix updates of last transaction update text
Damyan Ivanov [Wed, 21 Apr 2021 19:29:09 +0000 (22:29 +0300)]
fix updates of last transaction update text

3 years agorework transaction list with proper view holders and no background load
Damyan Ivanov [Wed, 21 Apr 2021 19:22:20 +0000 (22:22 +0300)]
rework transaction list with proper view holders and no background load

all the data is already available in the transaction list loaded from
the database (asynchronously)

also, fix a glitch where a visible item's matching account row is not
coloured when the list is filtered by account name (because the
underlying item is the same)

3 years agofix finding the earliest transaction by date
Damyan Ivanov [Tue, 20 Apr 2021 21:01:31 +0000 (00:01 +0300)]
fix finding the earliest transaction by date

3 years agorewrite update of transaction list from DB with Room
Damyan Ivanov [Tue, 20 Apr 2021 20:37:14 +0000 (23:37 +0300)]
rewrite update of transaction list from DB with Room

3 years agodrop unused async db queue classes
Damyan Ivanov [Tue, 20 Apr 2021 19:57:56 +0000 (22:57 +0300)]
drop unused async db queue classes

3 years agodrop now unused MLDB class along with its async db routines
Damyan Ivanov [Tue, 20 Apr 2021 19:55:04 +0000 (22:55 +0300)]
drop now unused MLDB class along with its async db routines

3 years agowipe retrieval progress when transaction retrieval is stopped
Damyan Ivanov [Tue, 20 Apr 2021 19:46:46 +0000 (22:46 +0300)]
wipe retrieval progress when transaction retrieval is stopped

fixes a glitch when a retrieval error suggests changing profile
configuration, and from there the profile is deleted and activity
restarted because of the change of the active profile. the new activity
instance observes the retrieval result and gets the error and reports it
erroneously

3 years agointerpret only json-parsing exceptions as API mismatch
Damyan Ivanov [Tue, 20 Apr 2021 19:44:12 +0000 (22:44 +0300)]
interpret only json-parsing exceptions as API mismatch

all others, like no Internet, bad host name etc should be reported as
usual