]>
git.ktnx.net Git - mobile-ledger.git/log
Damyan Ivanov [Sun, 28 Feb 2021 21:26:26 +0000 (23:26 +0200)]
format amounts when the input field loses focus
previously this relied on an update via the model
Damyan Ivanov [Sun, 28 Feb 2021 20:42:00 +0000 (22:42 +0200)]
fix IME hints for amount inputs
Damyan Ivanov [Sun, 28 Feb 2021 17:32:55 +0000 (19:32 +0200)]
focus the first amount after loading a previous transaction
Damyan Ivanov [Sun, 28 Feb 2021 17:32:34 +0000 (19:32 +0200)]
new-transaction: avoid auto-completion pop-ups when applying data
the data comes from the model, i.e. either from an applied template or
loading of a previous transaction (auto-completion of transaction
description)
Damyan Ivanov [Sun, 28 Feb 2021 17:06:03 +0000 (19:06 +0200)]
fix removal of empty transaction rows after the major rework
Damyan Ivanov [Sun, 28 Feb 2021 16:55:53 +0000 (18:55 +0200)]
fix sending empty transaction comments as "", not as null
null causes a '400 expecting String, found Null'
Damyan Ivanov [Sun, 28 Feb 2021 16:55:00 +0000 (18:55 +0200)]
avoid crash when there is no information about focused element
observed when sending the transaction to the backend throws an exception
Damyan Ivanov [Sat, 27 Feb 2021 20:27:30 +0000 (22:27 +0200)]
new transaction: replace bottom filler with scroll FAB behaviour
code becomes more consistent when the last item in the list is not a
special case
and FAB UI behaviour also becomes consistent with the rest of the app
Damyan Ivanov [Sat, 27 Feb 2021 20:06:18 +0000 (20:06 +0000)]
rework new transaction activity/model/etc with proper concept separation
activity monitors the model and sends changes to adapter; view holder
propagates changes to the model
this makes it possible to properly handle QR scan results in the
activity without dirty tricks
Damyan Ivanov [Sun, 21 Feb 2021 10:30:25 +0000 (12:30 +0200)]
move sample text scanning to the template activity
the initial idea was to have an abstract fragment class that could
handle the details about launching the QR scanner and accept the result.
however, the right place to do this is the activity, because only an
activity can receive the scan result, and launch the QR app.
Before, this was worked around by a LiveData thing that the activity
observed, and which the "Scan" buttons triggered. This has a nasty side
effect that the LiveData is triggered whenever the activity is
re-instantiated
Damyan Ivanov [Sun, 21 Feb 2021 10:13:18 +0000 (12:13 +0200)]
account name auto-complete: convert input to upper case
the database uses case_sensitive_like pragma for other reasons, so
thi lookup query needs to be adapted. this wasn't a problem before
the adoption of Room for database structure migration with all the
connection-level pragmas, used by the account storage part
Damyan Ivanov [Sat, 20 Feb 2021 12:23:28 +0000 (14:23 +0200)]
bump version (name and code)
Damyan Ivanov [Sat, 20 Feb 2021 06:49:45 +0000 (08:49 +0200)]
Room takes over DB migrations
Damyan Ivanov [Fri, 19 Feb 2021 16:37:56 +0000 (16:37 +0000)]
describe transaction_accounts to Room
Damyan Ivanov [Fri, 19 Feb 2021 16:31:28 +0000 (16:31 +0000)]
describe transactions to Room
Damyan Ivanov [Fri, 19 Feb 2021 16:23:38 +0000 (16:23 +0000)]
initialize Room after all legacy upgrading is done
this is here until all database tables are described in Room and the
structure changes can be migrated too Room too.
Damyan Ivanov [Fri, 19 Feb 2021 16:20:13 +0000 (16:20 +0000)]
describe description_history to Room
Damyan Ivanov [Fri, 19 Feb 2021 16:15:47 +0000 (16:15 +0000)]
describe account_values to Room
Damyan Ivanov [Thu, 18 Feb 2021 20:37:25 +0000 (22:37 +0200)]
describe options to Room
Damyan Ivanov [Thu, 18 Feb 2021 20:26:02 +0000 (22:26 +0200)]
describe profiles for Room
Damyan Ivanov [Thu, 18 Feb 2021 19:21:00 +0000 (21:21 +0200)]
remove unnecessary qualification
Damyan Ivanov [Thu, 18 Feb 2021 19:17:33 +0000 (21:17 +0200)]
offer fallback templates only when no other template matches
Damyan Ivanov [Thu, 18 Feb 2021 19:10:12 +0000 (21:10 +0200)]
more pattern → template renaming
Damyan Ivanov [Thu, 18 Feb 2021 19:08:17 +0000 (21:08 +0200)]
fix crash when there is no test text and the pattern is tested
Damyan Ivanov [Thu, 18 Feb 2021 18:41:41 +0000 (20:41 +0200)]
another approach at supporting multi-line SQL statements
Damyan Ivanov [Thu, 18 Feb 2021 17:43:17 +0000 (19:43 +0200)]
whitespace
Damyan Ivanov [Thu, 18 Feb 2021 17:43:09 +0000 (19:43 +0200)]
not boolean, integer
for room compatibility
Damyan Ivanov [Thu, 18 Feb 2021 17:42:40 +0000 (19:42 +0200)]
add fallback flag to templates
Damyan Ivanov [Mon, 8 Feb 2021 06:12:22 +0000 (06:12 +0000)]
slightly easier account item rearrangement
Damyan Ivanov [Mon, 8 Feb 2021 06:08:39 +0000 (06:08 +0000)]
no need for gravity, only one edge is constrained anyway
Damyan Ivanov [Mon, 8 Feb 2021 06:07:50 +0000 (06:07 +0000)]
debug++
Damyan Ivanov [Mon, 8 Feb 2021 06:07:24 +0000 (06:07 +0000)]
template details: ensure single empty account when account data is changed
Damyan Ivanov [Mon, 8 Feb 2021 06:06:28 +0000 (06:06 +0000)]
member rearrangement
Damyan Ivanov [Mon, 8 Feb 2021 06:06:17 +0000 (06:06 +0000)]
debug++
Damyan Ivanov [Mon, 8 Feb 2021 06:05:54 +0000 (06:05 +0000)]
model: adjust items' positions when an item is removed
Damyan Ivanov [Mon, 8 Feb 2021 06:05:17 +0000 (06:05 +0000)]
model: adjust items' positions when an item is moved
Damyan Ivanov [Mon, 8 Feb 2021 06:01:32 +0000 (06:01 +0000)]
model: reorder account rows by their position
it is stupid that this cannot be achieved in Room
Damyan Ivanov [Mon, 8 Feb 2021 05:58:50 +0000 (05:58 +0000)]
model: ensure exactly one empty account row
also properly apply the check after removing an item. the intermediate
items.setValue(newList) is complete unnecessary
also make the check when receiving items from the database
Damyan Ivanov [Mon, 8 Feb 2021 05:56:11 +0000 (05:56 +0000)]
template details model: method for creating a copy of the data list
this is a clone-like list, that shares no common objects with the original
needed so that any changes to it do not touch the original items and
differ discovers the changes
Damyan Ivanov [Mon, 8 Feb 2021 05:53:22 +0000 (05:53 +0000)]
adapter/debug: dump new item list
Damyan Ivanov [Mon, 8 Feb 2021 05:52:53 +0000 (05:52 +0000)]
drop unused method
Damyan Ivanov [Mon, 8 Feb 2021 05:51:54 +0000 (05:51 +0000)]
position becomes plain long (not Long)
Damyan Ivanov [Mon, 8 Feb 2021 05:50:38 +0000 (05:50 +0000)]
AccountRow.isEmpty(): is this a disposable empty row?
i.e., without account name/comment/amount source/value
Damyan Ivanov [Mon, 8 Feb 2021 05:49:56 +0000 (05:49 +0000)]
AccountRow.equalContents: compare positions too
Damyan Ivanov [Mon, 8 Feb 2021 05:49:33 +0000 (05:49 +0000)]
AccountRow: copy constructor
Damyan Ivanov [Mon, 8 Feb 2021 05:48:06 +0000 (05:48 +0000)]
AccountRow: set position from DB
Damyan Ivanov [Mon, 8 Feb 2021 05:47:16 +0000 (05:47 +0000)]
touch helper: avoid moving an item to its present position
Damyan Ivanov [Mon, 8 Feb 2021 05:44:37 +0000 (05:44 +0000)]
header row has (adapter) ID of 0, not -1
-1 is the ID of the first newly added account and IDs must be unique
Damyan Ivanov [Mon, 8 Feb 2021 05:43:36 +0000 (05:43 +0000)]
stop propagating UI changes to the model during view binding
prevents endless recursion
Damyan Ivanov [Mon, 8 Feb 2021 05:35:58 +0000 (05:35 +0000)]
include account position in template account head
the account block is rather large, a prominent indicator of its
sequential number seems appropriate
Damyan Ivanov [Tue, 16 Feb 2021 20:21:05 +0000 (22:21 +0200)]
silence click-accessibility warning
this view is not clickable
Damyan Ivanov [Tue, 16 Feb 2021 20:16:55 +0000 (22:16 +0200)]
method rearrangement
Damyan Ivanov [Tue, 16 Feb 2021 20:16:42 +0000 (22:16 +0200)]
use expression lambda
Damyan Ivanov [Tue, 16 Feb 2021 20:15:40 +0000 (22:15 +0200)]
implement swipe-remove and drag-move in template details
Damyan Ivanov [Tue, 16 Feb 2021 20:14:06 +0000 (22:14 +0200)]
template modes: mark newly added accounts with negative IDs
unique IDs are mandatory, and the ones from the database are positive.
newly created may use negative IDs (given by a model-wide decrementing
atomic integer) and this comes handy when saving them to to db
Damyan Ivanov [Tue, 16 Feb 2021 20:07:39 +0000 (22:07 +0200)]
fix saving template account removals
simple idea. account positions are positive numbers. upon save, all
positions are set to -1, then all accounts are saved with positions from
1 on, and finally all the accounts with positions still at -1 are
deleted
Damyan Ivanov [Mon, 15 Feb 2021 20:41:18 +0000 (22:41 +0200)]
fix duplicate accounts in template account autocompletion
visible when multiple profiles contain accounts with the same name
Damyan Ivanov [Mon, 15 Feb 2021 20:14:40 +0000 (22:14 +0200)]
bump several library versions
Damyan Ivanov [Sun, 14 Feb 2021 08:03:29 +0000 (10:03 +0200)]
use stock drag handle icon for profile list
Damyan Ivanov [Sun, 14 Feb 2021 07:59:33 +0000 (09:59 +0200)]
correct copyright notices on icon resources
Damyan Ivanov [Sun, 14 Feb 2021 07:26:00 +0000 (09:26 +0200)]
fix visibility of amount sign switch texts
Damyan Ivanov [Sun, 14 Feb 2021 07:24:43 +0000 (09:24 +0200)]
template details: replace the framework trash icon with stock one
to keep it consistent with the other icons
Damyan Ivanov [Sat, 13 Feb 2021 21:38:36 +0000 (23:38 +0200)]
fix marking of unmatched part at the end of the test text
Damyan Ivanov [Sat, 13 Feb 2021 21:37:55 +0000 (23:37 +0200)]
drop unused variable
Damyan Ivanov [Sat, 13 Feb 2021 21:08:16 +0000 (23:08 +0200)]
manipulation of templates via pop-up menu, add template duplication
Damyan Ivanov [Sat, 13 Feb 2021 21:02:54 +0000 (23:02 +0200)]
methods for duplication of a template with its data
Damyan Ivanov [Sat, 13 Feb 2021 19:55:12 +0000 (21:55 +0200)]
make pattern editor survive reconfiguration
Damyan Ivanov [Sat, 13 Feb 2021 18:54:31 +0000 (20:54 +0200)]
template details: explicitly enabled layout changes animation
Damyan Ivanov [Sat, 13 Feb 2021 18:54:04 +0000 (20:54 +0200)]
fix mis-translation
Damyan Ivanov [Sat, 13 Feb 2021 18:53:37 +0000 (20:53 +0200)]
self-explanatory amount reversal switch
Damyan Ivanov [Sat, 13 Feb 2021 16:24:37 +0000 (18:24 +0200)]
whitespace
Damyan Ivanov [Sat, 13 Feb 2021 16:24:23 +0000 (18:24 +0200)]
type (packend → backend)
Damyan Ivanov [Sat, 13 Feb 2021 16:24:04 +0000 (18:24 +0200)]
translatable text for template element value from the pattern
Damyan Ivanov [Sat, 13 Feb 2021 16:13:46 +0000 (18:13 +0200)]
use explicit indices for format strings in string resources
Damyan Ivanov [Sat, 13 Feb 2021 16:01:12 +0000 (18:01 +0200)]
fu: visual improvements in template editor
Damyan Ivanov [Sat, 13 Feb 2021 15:45:59 +0000 (17:45 +0200)]
better sub-section headings
Damyan Ivanov [Sat, 13 Feb 2021 15:45:35 +0000 (17:45 +0200)]
visual improvements in template editor
more air between independent elements, consistent look for sub-section
headings, clear icon
Damyan Ivanov [Sat, 13 Feb 2021 15:41:29 +0000 (17:41 +0200)]
templates: use "number" input type for date component fields
Damyan Ivanov [Sat, 13 Feb 2021 15:40:22 +0000 (17:40 +0200)]
profile editor: a bit better check for insecure scheme
Damyan Ivanov [Sat, 13 Feb 2021 15:36:50 +0000 (17:36 +0200)]
show pattern match results in template editor
Damyan Ivanov [Sat, 13 Feb 2021 14:45:00 +0000 (16:45 +0200)]
theme: swap colorError and colorOnError
colorError is used for TextInputLayout to draw error text. It needs to
stand out.
Damyan Ivanov [Sat, 13 Feb 2021 08:27:41 +0000 (10:27 +0200)]
empty amounts for newly created templates
were using '0.00'
Damyan Ivanov [Sat, 13 Feb 2021 08:10:08 +0000 (10:10 +0200)]
implement account name lookup in Templates' account fields
Damyan Ivanov [Sat, 13 Feb 2021 08:08:38 +0000 (10:08 +0200)]
add AccountDAO to DB
Damyan Ivanov [Sat, 13 Feb 2021 08:06:07 +0000 (10:06 +0200)]
make methods in AccountDAO public
Damyan Ivanov [Sat, 13 Feb 2021 08:05:12 +0000 (10:05 +0200)]
Account.toString() returns the account name
Damyan Ivanov [Fri, 12 Feb 2021 06:09:53 +0000 (08:09 +0200)]
add accounts to Room
Damyan Ivanov [Fri, 12 Feb 2021 06:08:02 +0000 (08:08 +0200)]
fix detection of continuations in SQL revision scripts
Damyan Ivanov [Thu, 11 Feb 2021 22:12:51 +0000 (22:12 +0000)]
let SQL revision files control the transaction
because the foreign_keys pragma can't be used inside a transaction
Damyan Ivanov [Thu, 11 Feb 2021 21:54:21 +0000 (21:54 +0000)]
add missing/fix copyright statements to all SQL revision files
Damyan Ivanov [Wed, 10 Feb 2021 21:34:10 +0000 (23:34 +0200)]
add continuation support to applyRevisionFile()
even if the plan is to migrate fully to Room, writing DB structure
revisions in a series of SQL files is much more convenient compared to a
sequence od db.execSQL() calls with very long arguments
except that writing SQL text that is very long is a problem for the SQL
files too. Continuations solve this in a way, much better than splitting
long SQL arguments to execSQL() in a series of concatenated strings
Damyan Ivanov [Wed, 10 Feb 2021 21:19:52 +0000 (23:19 +0200)]
fix initial database creation
old-style revision support is still needed because Room is a
second-class citizen, yet
Damyan Ivanov [Fri, 5 Feb 2021 06:41:37 +0000 (06:41 +0000)]
fixup deletion of templates
Damyan Ivanov [Fri, 5 Feb 2021 06:36:37 +0000 (08:36 +0200)]
bump years of copyright
Damyan Ivanov [Fri, 5 Feb 2021 06:36:11 +0000 (08:36 +0200)]
template deletion, with undo
Damyan Ivanov [Fri, 5 Feb 2021 06:16:56 +0000 (08:16 +0200)]
async template DB manipulation routines
Damyan Ivanov [Fri, 5 Feb 2021 06:15:37 +0000 (08:15 +0200)]
rename getPatternAccountDAO() to getTemplateAccountDAO()
Damyan Ivanov [Fri, 5 Feb 2021 06:08:18 +0000 (08:08 +0200)]
rename getPatternDAO to getTemplateDAO
Damyan Ivanov [Fri, 5 Feb 2021 05:54:40 +0000 (07:54 +0200)]
generic async result callback interface
Damyan Ivanov [Fri, 5 Feb 2021 05:45:21 +0000 (07:45 +0200)]
copy-constructors for TemplateHeader/TemplateAccount/TemplateWithAccounts