]>
git.ktnx.net Git - mobile-ledger.git/log
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
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
Damyan Ivanov [Thu, 22 Apr 2021 04:39:09 +0000 (04:39 +0000)]
implement stable IDs for the transaction list
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
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
Damyan Ivanov [Thu, 22 Apr 2021 04:22:37 +0000 (04:22 +0000)]
add some profiling on acount/transaction list storage
Damyan Ivanov [Thu, 22 Apr 2021 04:19:42 +0000 (04:19 +0000)]
BaseDAO: async operation variants without callbacks
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
Damyan Ivanov [Wed, 21 Apr 2021 20:09:28 +0000 (23:09 +0300)]
drop MobileLedgerDatabase, move initComplete to DB
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?
Damyan Ivanov [Wed, 21 Apr 2021 20:03:06 +0000 (23:03 +0300)]
convert DatabaseInitTask to a lightweight thread
looks much cleaner
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
Damyan Ivanov [Wed, 21 Apr 2021 19:34:48 +0000 (22:34 +0300)]
preload transaction list page, making transition smoother
Damyan Ivanov [Wed, 21 Apr 2021 19:29:09 +0000 (22:29 +0300)]
fix updates of last transaction update text
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)
Damyan Ivanov [Tue, 20 Apr 2021 21:01:31 +0000 (00:01 +0300)]
fix finding the earliest transaction by date
Damyan Ivanov [Tue, 20 Apr 2021 20:37:14 +0000 (23:37 +0300)]
rewrite update of transaction list from DB with Room
Damyan Ivanov [Tue, 20 Apr 2021 19:57:56 +0000 (22:57 +0300)]
drop unused async db queue classes
Damyan Ivanov [Tue, 20 Apr 2021 19:55:04 +0000 (22:55 +0300)]
drop now unused MLDB class along with its async db routines
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
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
Damyan Ivanov [Mon, 19 Apr 2021 20:07:17 +0000 (23:07 +0300)]
when deleting the currently active profile, switch to the first profile
Damyan Ivanov [Sun, 18 Apr 2021 20:07:35 +0000 (23:07 +0300)]
fix exception handling while trying different API versions
Damyan Ivanov [Sun, 18 Apr 2021 11:49:53 +0000 (14:49 +0300)]
fix profile deletion / data wipe
do not keep a reference to the profile being edited, instead query it
by the ID now stored in the model
one thing doesn't work yet - reaction to deletion of the current profile
Damyan Ivanov [Sun, 18 Apr 2021 10:56:54 +0000 (13:56 +0300)]
fix passing profile ID to ProfileDetailActivity
Damyan Ivanov [Sun, 18 Apr 2021 10:53:05 +0000 (10:53 +0000)]
add a pre-release build variant
to be used as debug aid when initial install needs to be tested, but
keeping the data in the debug-variant ap
Damyan Ivanov [Sun, 18 Apr 2021 10:51:54 +0000 (13:51 +0300)]
make use of getBindingAdapter and save a field
Damyan Ivanov [Sun, 18 Apr 2021 10:43:24 +0000 (13:43 +0300)]
bump library dependencies
RecycleView 1.2.0 deprecated getAdapterPosition, replace with
getBindingAdapterPosition -- no concat adapters are used
Damyan Ivanov [Sun, 18 Apr 2021 09:42:54 +0000 (12:42 +0300)]
fix creation of a new profile after Room-y of Profile adoption
Damyan Ivanov [Sun, 18 Apr 2021 09:41:28 +0000 (12:41 +0300)]
fix template editor layout
due to a glitch in the view chains on some devices the layout was
broken
noise: renaming of IDs
Damyan Ivanov [Thu, 15 Apr 2021 20:09:57 +0000 (20:09 +0000)]
constant TAG
Damyan Ivanov [Thu, 15 Apr 2021 20:09:34 +0000 (20:09 +0000)]
debug--
Damyan Ivanov [Thu, 15 Apr 2021 20:07:38 +0000 (20:07 +0000)]
Room-based profile management
MobileLedgerProfile is gone, Room spreads gradually
Damyan Ivanov [Thu, 15 Apr 2021 18:47:33 +0000 (18:47 +0000)]
equality check for Profile
Damyan Ivanov [Thu, 15 Apr 2021 18:46:05 +0000 (18:46 +0000)]
Room-based profile wipe
used only in debug builds as before
Damyan Ivanov [Thu, 15 Apr 2021 18:39:34 +0000 (18:39 +0000)]
dummy migration method
it appeared useful at a point, but later the fix was another
still, it may be handy in the future
Damyan Ivanov [Thu, 15 Apr 2021 05:59:03 +0000 (05:59 +0000)]
Default template name given at save time
gets in the way when put in the details
Damyan Ivanov [Sun, 11 Apr 2021 20:44:52 +0000 (20:44 +0000)]
asynchronous profile initialisation
the problem here was that the startup profile is read from the DB,
synchronously, and all DB operations need to happen via Room off the
main thread
since at activity startup only the theme is needed, that, and the startup
profile ID can be stored in the android preferences. actual loading of
profile and further data can be done after the theme is setup, in the
background, via Room
Damyan Ivanov [Sat, 10 Apr 2021 09:35:15 +0000 (12:35 +0300)]
more Room adoption - accounts@100%, some profiles/transactions
Damyan Ivanov [Sun, 4 Apr 2021 15:16:50 +0000 (18:16 +0300)]
implement incremental changes in account list adapter
avoids unnecessary viewHolder replacement
expansion/collapse are much nicer now
Damyan Ivanov [Sun, 4 Apr 2021 09:27:21 +0000 (12:27 +0300)]
adopt Room for displaying account lists
Damyan Ivanov [Sun, 4 Apr 2021 09:22:42 +0000 (12:22 +0300)]
generation is long
Damyan Ivanov [Sun, 4 Apr 2021 09:21:51 +0000 (12:21 +0300)]
account_id → accountId
Damyan Ivanov [Fri, 26 Mar 2021 17:19:28 +0000 (19:19 +0200)]
specialized sub-classes of AccountListItem
Damyan Ivanov [Fri, 26 Mar 2021 16:54:29 +0000 (18:54 +0200)]
debug--
Damyan Ivanov [Fri, 26 Mar 2021 16:54:20 +0000 (18:54 +0200)]
fix SQL when cleaning obsolete transaction/accounts
Damyan Ivanov [Fri, 26 Mar 2021 16:53:58 +0000 (18:53 +0200)]
minor optimization in getting next generation
Damyan Ivanov [Thu, 25 Mar 2021 21:38:54 +0000 (23:38 +0200)]
fix SQL when filtering transaction list by account name
Damyan Ivanov [Thu, 25 Mar 2021 21:34:56 +0000 (23:34 +0200)]
fix transaction account storage SQL
Damyan Ivanov [Thu, 25 Mar 2021 21:34:42 +0000 (23:34 +0200)]
whitespace
Damyan Ivanov [Thu, 25 Mar 2021 21:34:31 +0000 (23:34 +0200)]
fix db migration to surrogate IDs (final step)
the cleanest approach is to create all new tables, move the data, and
then drop/rename them, followed by index creation
fixes a problem with transaction_accounts being empty because the
profiles table was dropped
requires foreign_keys pragma (set outside transaction control) so that
the declare foreign keys to the new tables get renamed with the tables
Damyan Ivanov [Wed, 24 Mar 2021 18:53:05 +0000 (20:53 +0200)]
more fall-outs after transition to surrogate IDs
Damyan Ivanov [Mon, 22 Mar 2021 05:54:11 +0000 (07:54 +0200)]
fix migration of transaction_accounts (attempt #N)
Damyan Ivanov [Mon, 22 Mar 2021 05:41:42 +0000 (07:41 +0200)]
another step towards surrogate ID db objects
profile → profile_id in more places
transactions.id is globally unique; ledger-supplied ID
(profile-specific) is in transactions.ledger_id
Damyan Ivanov [Sun, 21 Mar 2021 20:20:31 +0000 (22:20 +0200)]
another step towards surrogate ID db objects
rename profile's uuid column to catch (and remove) all its usages
use default theme id for the initial theme id
Damyan Ivanov [Thu, 18 Mar 2021 17:09:34 +0000 (19:09 +0200)]
migrate to surrogate IDs for all database objects
along with foreign keys etc
Damyan Ivanov [Thu, 11 Mar 2021 16:55:27 +0000 (18:55 +0200)]
drop unused create_db.sql
Damyan Ivanov [Thu, 11 Mar 2021 15:01:09 +0000 (17:01 +0200)]
replace custom autocompletion adapter hooking with specialised adapters
... which use Room
Damyan Ivanov [Wed, 24 Mar 2021 19:43:10 +0000 (19:43 +0000)]
prepare release of v0.17.1 (39)
Damyan Ivanov [Wed, 24 Mar 2021 19:09:20 +0000 (21:09 +0200)]
fix db migration from v0.16.0 (profile data)
Damyan Ivanov [Thu, 11 Mar 2021 11:27:17 +0000 (11:27 +0000)]
update features in full description
Damyan Ivanov [Thu, 11 Mar 2021 08:47:33 +0000 (08:47 +0000)]
prepare v0.17.0 (38) for release
Damyan Ivanov [Thu, 11 Mar 2021 07:48:43 +0000 (07:48 +0000)]
minimize flicker when applying templated transaction too
Damyan Ivanov [Thu, 11 Mar 2021 06:52:11 +0000 (08:52 +0200)]
smooth items replacement when old transaction is loaded and upon reset
Damyan Ivanov [Thu, 11 Mar 2021 06:23:45 +0000 (08:23 +0200)]
make transaction header row always have Id of 0
there's onle one header, and having a stable Id avoids visual flicker
when the list is updated
Damyan Ivanov [Tue, 9 Mar 2021 20:18:56 +0000 (22:18 +0200)]
fix flicker introduced with unique item Id
when items get unique id every time, resetting the model causes new
IDs to be assigned, making the adapter consider old items gone and new
items added. this sounds OK, but the visual effect is that everything
disappears and then reappears, causing flicker.
Damyan Ivanov [Tue, 9 Mar 2021 20:11:29 +0000 (22:11 +0200)]
split new transaction item holder in two
one for the header row, another for the account rows
Damyan Ivanov [Mon, 8 Mar 2021 20:55:53 +0000 (22:55 +0200)]
clean up unused resources
Damyan Ivanov [Mon, 8 Mar 2021 20:37:35 +0000 (22:37 +0200)]
Транзакция → Движение навсякъде
Damyan Ivanov [Mon, 8 Mar 2021 20:03:36 +0000 (22:03 +0200)]
template details delete icon needs to be white
it is shown in the action bar
Damyan Ivanov [Sun, 7 Mar 2021 10:01:35 +0000 (12:01 +0200)]
minor optimization: avoid constructing empty string object
Damyan Ivanov [Sun, 7 Mar 2021 10:00:45 +0000 (12:00 +0200)]
replace TextUtils.equals() usage with Misc.equalStrings()
equalStrings() considers null to be equal to the empty string
Damyan Ivanov [Sun, 7 Mar 2021 09:43:46 +0000 (11:43 +0200)]
improvements in debug messages
Damyan Ivanov [Sun, 7 Mar 2021 09:43:16 +0000 (11:43 +0200)]
note focused item changed when item is moved
Damyan Ivanov [Sun, 7 Mar 2021 09:42:50 +0000 (11:42 +0200)]
avoid dataSync when updating entered amount format on losing focus
no back-end data is changed, only the formatted text in the UI
Damyan Ivanov [Sun, 7 Mar 2021 09:40:43 +0000 (11:40 +0200)]
always work with a clone of the live list when checking transaction
shortcuts bite back. the codes makes several lists with items from the
checked list and this may mess with the "get-copy-modify-set" actions
when some item in the working list needs to be changed
instead, make a clone (new list, cloned items; except if the input list
is not the live one, i.e. it is a working copy already) and freely
modify its items directly
if the "always clone" approach gets slow, this whole process may be
moved to a thread
also, note focus has moved when a item above the focused item is removed
Damyan Ivanov [Sun, 7 Mar 2021 09:16:34 +0000 (11:16 +0200)]
handle menu items click hooks by code in new transaction activity
Damyan Ivanov [Sun, 7 Mar 2021 09:09:03 +0000 (11:09 +0200)]
add divider after debug items in the new transaction menu
also, call super.onCreateOptionsMenu to let the system put any system
menu items if needed
also, don't bother with debug menu items in the release build
Damyan Ivanov [Sat, 6 Mar 2021 16:15:01 +0000 (18:15 +0200)]
fixup: template details help
Damyan Ivanov [Sat, 6 Mar 2021 16:14:32 +0000 (18:14 +0200)]
use the "black" icon here, this is a menu
Damyan Ivanov [Sat, 6 Mar 2021 16:13:43 +0000 (18:13 +0200)]
black trash icon
for menus
Damyan Ivanov [Sat, 6 Mar 2021 16:11:29 +0000 (18:11 +0200)]
provide some guidance for template parameters
Damyan Ivanov [Sat, 6 Mar 2021 16:08:31 +0000 (18:08 +0200)]
HelpDialog: support for markdown-style links in the message
Damyan Ivanov [Sat, 6 Mar 2021 07:53:56 +0000 (09:53 +0200)]
move help dialog in a separate class
will be used from other places too
Damyan Ivanov [Fri, 5 Mar 2021 21:57:01 +0000 (23:57 +0200)]
multi-line pattern and test text input fields
these can get rather long and scrolling is annoying
Damyan Ivanov [Fri, 5 Mar 2021 21:43:59 +0000 (23:43 +0200)]
add help menu for the template list
Damyan Ivanov [Thu, 4 Mar 2021 21:25:37 +0000 (23:25 +0200)]
debug++
Damyan Ivanov [Thu, 4 Mar 2021 21:24:59 +0000 (23:24 +0200)]
syncData(): refuse to do anything when not associated with an item
this may hapen when the item is swiped out (and loses focus, which may
cause re-setting amount text)
Damyan Ivanov [Thu, 4 Mar 2021 21:23:34 +0000 (23:23 +0200)]
avoid crash when removing the currency of a row
Damyan Ivanov [Thu, 4 Mar 2021 21:22:59 +0000 (23:22 +0200)]
save a setText() call that would not change anyting
Damyan Ivanov [Thu, 4 Mar 2021 21:21:33 +0000 (23:21 +0200)]
new account rows are created without amount hint
Damyan Ivanov [Thu, 4 Mar 2021 21:21:07 +0000 (23:21 +0200)]
drop improper list copy
1) the list shall be copied only when the original is the live list
2) a (proper) list copy is made just a couple of lines earlier
Damyan Ivanov [Thu, 4 Mar 2021 20:11:42 +0000 (22:11 +0200)]
fix model inconsistency when hiding/showing currency
Damyan Ivanov [Thu, 4 Mar 2021 19:43:21 +0000 (21:43 +0200)]
debug++
Damyan Ivanov [Thu, 4 Mar 2021 19:43:08 +0000 (21:43 +0200)]
new transaction: avoid manipulating the FAB directly, use the manager
direct manipulation leads to inconsistency - the manager thinks that the
fab is visible and refuses to show it
Damyan Ivanov [Thu, 4 Mar 2021 19:41:32 +0000 (21:41 +0200)]
reset the submittable flag when resetting model state
Damyan Ivanov [Thu, 4 Mar 2021 19:02:20 +0000 (21:02 +0200)]
separate error message text from the rest of the message
Damyan Ivanov [Thu, 4 Mar 2021 17:25:07 +0000 (19:25 +0200)]
remove the focused check before restoring cursor position
the check can fail for some reason, breaking user experience
Damyan Ivanov [Thu, 4 Mar 2021 10:37:14 +0000 (10:37 +0000)]
material (slightly larger) text sizes in template list
Damyan Ivanov [Wed, 3 Mar 2021 21:18:54 +0000 (23:18 +0200)]
show hidden FAB after four seconds