]>
git.ktnx.net Git - mobile-ledger.git/log
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
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
Damyan Ivanov [Sat, 21 Aug 2021 16:15:50 +0000 (19:15 +0300)]
gray out the backup controls if there is nothing to backup
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
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
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
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
Damyan Ivanov [Sat, 26 Jun 2021 07:50:55 +0000 (07:50 +0000)]
point to local license copies (in addition to web links)
Damyan Ivanov [Wed, 9 Jun 2021 04:48:03 +0000 (04:48 +0000)]
prepare v0.19.2 (43) for release
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
Damyan Ivanov [Sun, 23 May 2021 15:59:12 +0000 (15:59 +0000)]
prepare v0.19.1 (42) for release
Damyan Ivanov [Sun, 23 May 2021 15:39:58 +0000 (18:39 +0300)]
drop a fixme that needs no fixing
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)
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 "-"
Damyan Ivanov [Sun, 23 May 2021 14:27:21 +0000 (17:27 +0300)]
make decimal separator available globally
updated with locale changes
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 "")
Damyan Ivanov [Sun, 16 May 2021 05:45:20 +0000 (05:45 +0000)]
bimp gradle, sdk, build tools, jackson; jcentral→mavenCentral
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
Damyan Ivanov [Sat, 15 May 2021 10:20:03 +0000 (13:20 +0300)]
use explicit main thread looper
Damyan Ivanov [Thu, 13 May 2021 05:03:14 +0000 (08:03 +0300)]
bump version of two test libraries
Damyan Ivanov [Thu, 13 May 2021 04:57:12 +0000 (07:57 +0300)]
annotate a data retrieval method with @Transaction as suggested
Damyan Ivanov [Wed, 12 May 2021 19:52:11 +0000 (22:52 +0300)]
fix a weird bug when an invalid amount is entered
Damyan Ivanov [Wed, 12 May 2021 19:51:55 +0000 (22:51 +0300)]
typo in debug message
Damyan Ivanov [Wed, 12 May 2021 19:51:33 +0000 (22:51 +0300)]
new transaction: currency can't be null
Damyan Ivanov [Mon, 10 May 2021 19:41:01 +0000 (19:41 +0000)]
prepare release of v0.19.0 (41)
Damyan Ivanov [Mon, 10 May 2021 19:28:22 +0000 (22:28 +0300)]
when accumulating running totals, consider sub-accounts too
Damyan Ivanov [Mon, 10 May 2021 19:17:03 +0000 (22:17 +0300)]
fix propagation of speculative account ammounts to parent accounts
Damyan Ivanov [Sun, 9 May 2021 18:34:22 +0000 (21:34 +0300)]
better text color reference working also in dark theme
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
Damyan Ivanov [Sun, 9 May 2021 05:30:15 +0000 (08:30 +0300)]
fix account list end margin after flow adoption
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
Damyan Ivanov [Sat, 8 May 2021 20:20:03 +0000 (23:20 +0300)]
hint account name wrapping after the colon to help long accounts
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
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
Damyan Ivanov [Fri, 7 May 2021 20:47:39 +0000 (23:47 +0300)]
show current account balance when choosing account in new transactions
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
Damyan Ivanov [Fri, 7 May 2021 18:58:06 +0000 (21:58 +0300)]
use same font size in template editor / account name
Damyan Ivanov [Fri, 7 May 2021 16:47:44 +0000 (19:47 +0300)]
drop unused style attribute
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
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
Damyan Ivanov [Fri, 7 May 2021 15:26:49 +0000 (18:26 +0300)]
better layout of the transaction list running total
Damyan Ivanov [Fri, 7 May 2021 04:46:23 +0000 (04:46 +0000)]
remove duplicate call
Damyan Ivanov [Fri, 7 May 2021 04:45:47 +0000 (04:45 +0000)]
simplify logic
Damyan Ivanov [Fri, 7 May 2021 04:45:08 +0000 (04:45 +0000)]
whitespace
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
Damyan Ivanov [Thu, 6 May 2021 19:43:22 +0000 (22:43 +0300)]
fix currency selector without parameters (position/gap)
Damyan Ivanov [Thu, 6 May 2021 19:42:53 +0000 (22:42 +0300)]
whitespace
Damyan Ivanov [Thu, 6 May 2021 19:42:41 +0000 (22:42 +0300)]
debug loop only in debug builds
Damyan Ivanov [Thu, 6 May 2021 19:42:14 +0000 (22:42 +0300)]
add commodity support to template editor
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
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
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
Damyan Ivanov [Thu, 6 May 2021 17:19:28 +0000 (20:19 +0300)]
honour default currency profile setting
Damyan Ivanov [Thu, 6 May 2021 17:19:07 +0000 (20:19 +0300)]
bump version preparing for the next release
Damyan Ivanov [Thu, 6 May 2021 17:18:42 +0000 (20:18 +0300)]
make use of currency parameters in the new currency dialog
Damyan Ivanov [Thu, 6 May 2021 06:57:07 +0000 (09:57 +0300)]
fix migration off options table for current profile
Damyan Ivanov [Wed, 5 May 2021 20:18:10 +0000 (20:18 +0000)]
prepare release of v0.18.0 (40)
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
Damyan Ivanov [Wed, 5 May 2021 15:43:48 +0000 (18:43 +0300)]
rename a method to better reflect its function
Damyan Ivanov [Wed, 5 May 2021 15:42:58 +0000 (18:42 +0300)]
when speculatively updating account amounts, update parent accounts too
Damyan Ivanov [Fri, 30 Apr 2021 06:51:06 +0000 (09:51 +0300)]
view binding for account and transaction list fragments
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
Damyan Ivanov [Tue, 27 Apr 2021 19:51:39 +0000 (22:51 +0300)]
another fix to the layout of template date parameters
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
Damyan Ivanov [Tue, 27 Apr 2021 19:09:59 +0000 (22:09 +0300)]
drop description history table and support machinery
Damyan Ivanov [Tue, 27 Apr 2021 18:31:57 +0000 (21:31 +0300)]
correct debug message
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
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
Damyan Ivanov [Mon, 26 Apr 2021 04:40:00 +0000 (04:40 +0000)]
proactively apply the same fix to the new transaction editor
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
Damyan Ivanov [Mon, 26 Apr 2021 04:14:07 +0000 (04:14 +0000)]
drop unnecessary template type
Damyan Ivanov [Sun, 25 Apr 2021 18:52:06 +0000 (21:52 +0300)]
fix binary & used instead of logical &&
Damyan Ivanov [Sun, 25 Apr 2021 18:51:44 +0000 (21:51 +0300)]
small step towards support for currency in transaction templates
Damyan Ivanov [Sun, 25 Apr 2021 16:42:55 +0000 (19:42 +0300)]
rename an event handler using the onXXX style
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
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
Damyan Ivanov [Sat, 24 Apr 2021 21:06:22 +0000 (00:06 +0300)]
fix inclusion of exception log in error message
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
Damyan Ivanov [Sat, 24 Apr 2021 20:53:55 +0000 (23:53 +0300)]
fix ordering of transactions when loaded from database
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
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
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
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
Damyan Ivanov [Sat, 24 Apr 2021 17:08:38 +0000 (17:08 +0000)]
provide a common routine for running something on the main thread
Damyan Ivanov [Sat, 24 Apr 2021 17:02:06 +0000 (17:02 +0000)]
save profile's order when editing a profile
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
Damyan Ivanov [Fri, 23 Apr 2021 21:36:04 +0000 (00:36 +0300)]
fully employ room for loading transactions off DB
Damyan Ivanov [Fri, 23 Apr 2021 20:33:05 +0000 (23:33 +0300)]
debug refinements
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
Damyan Ivanov [Fri, 23 Apr 2021 20:25:56 +0000 (23:25 +0300)]
MainActivity's logging using a TAG
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
Damyan Ivanov [Fri, 23 Apr 2021 20:21:39 +0000 (23:21 +0300)]
use a constant to indicate profile ID of no real profile
Damyan Ivanov [Fri, 23 Apr 2021 19:29:02 +0000 (22:29 +0300)]
async variant for loading all transactions
Damyan Ivanov [Fri, 23 Apr 2021 19:25:58 +0000 (22:25 +0300)]
TransactionAccumulator needs not keep a reference to the main model
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
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
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
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
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
Damyan Ivanov [Fri, 23 Apr 2021 04:59:53 +0000 (04:59 +0000)]
put all the annotated abstract DAO methods in the beginning