]>
git.ktnx.net Git - mobile-ledger.git/log
Damyan Ivanov [Thu, 4 Apr 2019 12:58:53 +0000 (15:58 +0300)]
ObservableList: add ability to block (delay) change notifications
Damyan Ivanov [Thu, 4 Apr 2019 11:35:06 +0000 (14:35 +0300)]
add app shortcuts (Android 7.1+) for adding new transaction for top profiles
Damyan Ivanov [Thu, 4 Apr 2019 11:33:21 +0000 (14:33 +0300)]
central method for retrieving a profile by its UUID
loads the profile list is not done before
Damyan Ivanov [Thu, 4 Apr 2019 10:54:40 +0000 (13:54 +0300)]
drop the "new account" new transaction screen menu item
new accounts are added automatically when needed
Damyan Ivanov [Thu, 4 Apr 2019 10:52:36 +0000 (13:52 +0300)]
activity names in manifest - without the full package prefix
maybe this is important for the shortcuts (to follow)
Damyan Ivanov [Thu, 4 Apr 2019 10:51:03 +0000 (13:51 +0300)]
drop the (now non-existing) profile list activity from manifest
Damyan Ivanov [Thu, 4 Apr 2019 07:14:49 +0000 (10:14 +0300)]
prepare change lists
Damyan Ivanov [Thu, 4 Apr 2019 07:14:35 +0000 (10:14 +0300)]
rename the drawer image
Damyan Ivanov [Thu, 4 Apr 2019 06:52:51 +0000 (09:52 +0300)]
better total management while parsing JSON transaction list
Damyan Ivanov [Thu, 4 Apr 2019 06:41:29 +0000 (09:41 +0300)]
more classes describing the /add API
Damyan Ivanov [Thu, 4 Apr 2019 06:41:06 +0000 (09:41 +0300)]
JSON transaction parser: detect file-order stream and disable the early termination logic
the early termination logic is useful when transactions come in reverse
chronological order -- newest first. seeing 50 known transactions
seems like a good criteria for terminating the parsing before the whole
stream is processed
however, the JSON API seems to return transactions in file order --
oldest first (by time of creation, not 'date' field). in this order
the newest (and thus unknown) transactions come last and the early
termination logic needs to be disabled
Damyan Ivanov [Thu, 4 Apr 2019 04:13:14 +0000 (07:13 +0300)]
JSON API for adding transactions
Damyan Ivanov [Thu, 4 Apr 2019 04:10:42 +0000 (07:10 +0300)]
methods for converting of run-time data structures to json-serializable ones
Damyan Ivanov [Thu, 4 Apr 2019 04:08:23 +0000 (07:08 +0300)]
global method for format dates in ISO format (y-m-d)
Damyan Ivanov [Tue, 2 Apr 2019 21:36:33 +0000 (00:36 +0300)]
fix JSON account retrieval to supply the amounts to the new list
Damyan Ivanov [Tue, 2 Apr 2019 21:24:15 +0000 (00:24 +0300)]
fix handling the click on the account expander image
Damyan Ivanov [Tue, 2 Apr 2019 21:13:13 +0000 (00:13 +0300)]
whitespace
Damyan Ivanov [Tue, 2 Apr 2019 21:13:04 +0000 (00:13 +0300)]
streamline handling of account name filter
avoids multiple refresh requests, handles phone rotation/activity restart
correctly
Damyan Ivanov [Tue, 2 Apr 2019 21:06:59 +0000 (00:06 +0300)]
a way to force notification on ObservableValue
Damyan Ivanov [Tue, 2 Apr 2019 21:06:03 +0000 (00:06 +0300)]
handle long-clicks everywhere on the account row
Damyan Ivanov [Fri, 29 Mar 2019 17:53:43 +0000 (19:53 +0200)]
single observer instances, single place for reloading account/transaction lists
fixes observer leak which also multiplied the reloads with each
screen rotation (and activity restart)
Damyan Ivanov [Fri, 29 Mar 2019 17:51:59 +0000 (19:51 +0200)]
drop unused method
Damyan Ivanov [Fri, 29 Mar 2019 17:51:23 +0000 (19:51 +0200)]
middle-level activity class doesn't need to be available in the app manifest
Damyan Ivanov [Fri, 29 Mar 2019 17:49:57 +0000 (19:49 +0200)]
spare one activity restart when the startup profile uses a non-default color theme
Damyan Ivanov [Fri, 29 Mar 2019 17:46:00 +0000 (19:46 +0200)]
drop unused class
was a hollow one anyway
Damyan Ivanov [Fri, 29 Mar 2019 17:36:07 +0000 (19:36 +0200)]
whitespace
Damyan Ivanov [Fri, 29 Mar 2019 17:32:32 +0000 (19:32 +0200)]
Data.transactions -> observable list
Damyan Ivanov [Fri, 29 Mar 2019 13:29:07 +0000 (15:29 +0200)]
fix observer leak
move observers from AccountSummaryFragment and TransactionListFragment
to MainActivity; drop them when the activity is destroyed
the observers were leaked leading to multiple duplicate change
notifications
Damyan Ivanov [Fri, 29 Mar 2019 12:07:17 +0000 (14:07 +0200)]
more flow debugging
Damyan Ivanov [Fri, 29 Mar 2019 11:55:04 +0000 (13:55 +0200)]
collapse profile list and close the drawer when switching profiles
when the profiles use different themes this kind of worked as a side
effect of activity restart, but when the profiles use the same theme
the drawer remains open making it seem that something didn't work
Damyan Ivanov [Fri, 29 Mar 2019 11:45:54 +0000 (13:45 +0200)]
whitespace
Damyan Ivanov [Fri, 29 Mar 2019 11:45:44 +0000 (13:45 +0200)]
notify profile list adapter when the currently selected profile changes
this seems to work when the profiles use a different theme because
in this case the activity is restarted (and adapter re-initializes)
but when the changed profiles use the same theme the change was not
reflected in the profile list
Damyan Ivanov [Fri, 29 Mar 2019 11:31:23 +0000 (13:31 +0200)]
transaction auto-fill: honor the preferred account filter
Damyan Ivanov [Fri, 29 Mar 2019 11:30:47 +0000 (13:30 +0200)]
fix initialization of preferred account name filter in the profile editor when editing new profile
Damyan Ivanov [Fri, 29 Mar 2019 11:30:07 +0000 (13:30 +0200)]
hide all of the "Last update" text when there was never a successful update
Damyan Ivanov [Fri, 29 Mar 2019 10:45:23 +0000 (12:45 +0200)]
whitespace
Damyan Ivanov [Fri, 29 Mar 2019 10:44:32 +0000 (12:44 +0200)]
TODO done: visual feedback on transaction account removal
Damyan Ivanov [Fri, 29 Mar 2019 08:10:09 +0000 (10:10 +0200)]
new transaction: remove account on right swipe too
Damyan Ivanov [Fri, 29 Mar 2019 07:53:59 +0000 (09:53 +0200)]
enable animations when removing new transaction rows
not perfect, but still better than flash-disappearance
Damyan Ivanov [Thu, 28 Mar 2019 22:19:26 +0000 (00:19 +0200)]
whitespace
Damyan Ivanov [Thu, 28 Mar 2019 22:19:17 +0000 (00:19 +0200)]
handle preferred accounts filter setting in the profile detail UI
Damyan Ivanov [Thu, 28 Mar 2019 22:18:03 +0000 (00:18 +0200)]
new profile field: preferred accounts filter
to be used in the transaction description auto-completion, preferring
transactions that contain an account matching the filter
the idea is useful for ledgers manipulated by multiple people with
personal accounts who enter transactions with the same description
one would expect the auto-completion to pick a transaction that uses
accounts of the user rather than transaction using other users'
accounts
Damyan Ivanov [Thu, 28 Mar 2019 22:14:34 +0000 (00:14 +0200)]
reuse the SQL parameter list that is the same for the 5 calls
Damyan Ivanov [Thu, 28 Mar 2019 22:13:42 +0000 (00:13 +0200)]
Profile: drop constructors filling all fields
adding fields becomes fragile and tracing correspondence between
constructor arguments and fields feels like a jedi art
Damyan Ivanov [Thu, 28 Mar 2019 22:11:16 +0000 (00:11 +0200)]
put updating of profile data from the UI in a method
will be used on new profiles too
Damyan Ivanov [Thu, 28 Mar 2019 22:10:13 +0000 (00:10 +0200)]
remove unused reference to the profile detail FAB
the fragment already takes care of it
Damyan Ivanov [Thu, 28 Mar 2019 21:40:01 +0000 (23:40 +0200)]
profile details: confirm profile deletion
Damyan Ivanov [Thu, 28 Mar 2019 21:39:15 +0000 (23:39 +0200)]
ProfileDetailActivity: delegate options menu item creation and handling to the ProfileDetailFragment
Damyan Ivanov [Thu, 28 Mar 2019 18:18:23 +0000 (20:18 +0200)]
after showing account's transactions, make Back return to the account list
Damyan Ivanov [Thu, 28 Mar 2019 18:17:49 +0000 (20:17 +0200)]
translation
Damyan Ivanov [Thu, 28 Mar 2019 18:01:23 +0000 (20:01 +0200)]
remove unused resource file
Damyan Ivanov [Thu, 28 Mar 2019 17:50:32 +0000 (19:50 +0200)]
store/retrieve account name filter in the bundle
also move propagating the stored account name filter in the onStart method
which is called when the screen is rotated for example. onCreate is
called in more extreme situations
Damyan Ivanov [Thu, 28 Mar 2019 17:48:49 +0000 (19:48 +0200)]
overly long commodity lists fade to white and expand/collapse on click
Damyan Ivanov [Thu, 28 Mar 2019 17:45:40 +0000 (19:45 +0200)]
rework showing of account's transactions with a context menu
not a common option and the ordinary click on the amounts will be used
to expand large commodity lists
Damyan Ivanov [Thu, 28 Mar 2019 15:44:14 +0000 (17:44 +0200)]
add flag to accounts indicating whether their commodity list is expanded
there may e too many commodities to keep them visible at all times
Damyan Ivanov [Wed, 27 Mar 2019 20:24:04 +0000 (22:24 +0200)]
bump version code
Damyan Ivanov [Tue, 26 Mar 2019 20:54:29 +0000 (20:54 +0000)]
fix version number
Damyan Ivanov [Tue, 26 Mar 2019 20:30:47 +0000 (20:30 +0000)]
add changelog
Damyan Ivanov [Mon, 25 Mar 2019 23:48:57 +0000 (01:48 +0200)]
default new profile URL is 'https://'
Damyan Ivanov [Mon, 25 Mar 2019 23:38:47 +0000 (01:38 +0200)]
show accumulated balance in parent accounts
Damyan Ivanov [Mon, 25 Mar 2019 23:38:27 +0000 (01:38 +0200)]
fixup single initial revision
Damyan Ivanov [Mon, 25 Mar 2019 22:56:49 +0000 (00:56 +0200)]
whitespace
Damyan Ivanov [Mon, 25 Mar 2019 22:56:43 +0000 (00:56 +0200)]
single SQL file for initial db creation
applying 20 incremental revisions appears a bit too much
Damyan Ivanov [Mon, 25 Mar 2019 20:17:24 +0000 (22:17 +0200)]
these constants may be private
Damyan Ivanov [Mon, 25 Mar 2019 20:17:10 +0000 (22:17 +0200)]
package private constructor is enough
Damyan Ivanov [Mon, 25 Mar 2019 20:16:07 +0000 (22:16 +0200)]
declare LockHolder as implementing AutoClosable (instead of Closable)
Damyan Ivanov [Mon, 25 Mar 2019 20:07:34 +0000 (22:07 +0200)]
fix annotations to match super methods
Damyan Ivanov [Sun, 24 Mar 2019 17:11:48 +0000 (19:11 +0200)]
drop 'synchronized' modifier for getDatabase
it was necessary to guarantee that no two connections were created because
the connection is created in getDatabase
by moving the connection creatin to the init() a high profile method
(getDatabase) gets faster. init() is called only once anyway
Damyan Ivanov [Sun, 24 Mar 2019 17:09:41 +0000 (19:09 +0200)]
locks around observable list's access
to help guarantee that the list is not modified by another thread while
traversing
Damyan Ivanov [Sun, 24 Mar 2019 16:08:13 +0000 (18:08 +0200)]
no direct interface to ObservableList's value
Damyan Ivanov [Sun, 24 Mar 2019 09:47:42 +0000 (11:47 +0200)]
Colors: treat 360 same as 0
Damyan Ivanov [Sun, 24 Mar 2019 09:47:17 +0000 (11:47 +0200)]
account list: queue db updates when an account is expanded/collapsed
avoids a possible huge delay in UI if the account list is being updated
Damyan Ivanov [Sun, 24 Mar 2019 09:41:27 +0000 (11:41 +0200)]
beginTransaction should be outside the try{} block
Damyan Ivanov [Sun, 24 Mar 2019 09:40:56 +0000 (11:40 +0200)]
LedgerAccount: override hashCode() and equals() to enable proper location in collections
Damyan Ivanov [Sun, 24 Mar 2019 09:39:58 +0000 (11:39 +0200)]
commit right after the account list is complete
the transaction list can be updated in its own transaction
shorter transactions - happier database
Damyan Ivanov [Sun, 24 Mar 2019 09:32:54 +0000 (11:32 +0200)]
async database statement queue
the idea is to take quick database updates outside the main (UI) thread
this helps when the database is in a transaction updating accounts or
transactions which can take considerable time
Damyan Ivanov [Sun, 24 Mar 2019 09:29:12 +0000 (11:29 +0200)]
remove the distinction between "readable" and "writable" database connections
it is artificial and serves no useful purpose
Damyan Ivanov [Sun, 24 Mar 2019 09:12:22 +0000 (11:12 +0200)]
remove the "Cancel" button from the hue selection dialog
it is a common feature to cancel the dialog by tapping outside and
the button only takes valuable space
Damyan Ivanov [Mon, 18 Mar 2019 11:27:01 +0000 (13:27 +0200)]
ic_app_icon.png → app_icon.png in drawable-*
see
58b61ea2f6af43ca23c153af8f33e9569d31dc00
Damyan Ivanov [Mon, 18 Mar 2019 09:31:01 +0000 (11:31 +0200)]
fix method chain
Damyan Ivanov [Mon, 18 Mar 2019 09:27:56 +0000 (11:27 +0200)]
whitespace
Damyan Ivanov [Mon, 18 Mar 2019 09:26:49 +0000 (11:26 +0200)]
remove all profile data when removing a profile
Damyan Ivanov [Mon, 18 Mar 2019 09:23:32 +0000 (11:23 +0200)]
fill hasSubAccounts when populating account list on refresh
Damyan Ivanov [Mon, 18 Mar 2019 09:22:07 +0000 (11:22 +0200)]
refresh profile list when the backend data changes
Damyan Ivanov [Mon, 18 Mar 2019 09:15:31 +0000 (11:15 +0200)]
whitespace
Damyan Ivanov [Mon, 18 Mar 2019 09:14:45 +0000 (11:14 +0200)]
bump target SQL revision number
Damyan Ivanov [Mon, 18 Mar 2019 09:14:25 +0000 (11:14 +0200)]
prepareConnection: avoid double slashes when constructing connection URL
Damyan Ivanov [Mon, 18 Mar 2019 09:12:36 +0000 (11:12 +0200)]
remove all data belonging to previously deleted accounts
Damyan Ivanov [Mon, 18 Mar 2019 09:01:23 +0000 (11:01 +0200)]
bump version code/name
Damyan Ivanov [Mon, 18 Mar 2019 06:03:28 +0000 (08:03 +0200)]
prepareConnection: append '/' to the backend URL only if it not already there
avoids URLs like http://server//accounts, which lead to redirects, which
(1) are superflous and (2) MoLe can't handle yet
Damyan Ivanov [Fri, 15 Mar 2019 04:31:35 +0000 (06:31 +0200)]
update changelog
Damyan Ivanov [Fri, 15 Mar 2019 04:29:48 +0000 (06:29 +0200)]
add changelog for version code 18
Damyan Ivanov [Fri, 15 Mar 2019 04:29:33 +0000 (06:29 +0200)]
update full description to match current state
Damyan Ivanov [Fri, 15 Mar 2019 04:03:22 +0000 (06:03 +0200)]
ensure account amount is wide enough to tap on
Damyan Ivanov [Fri, 15 Mar 2019 04:01:26 +0000 (06:01 +0200)]
account tree: expand/collapse via account name too, account transactions still available when tapping on amounts
Damyan Ivanov [Sun, 17 Mar 2019 16:53:42 +0000 (16:53 +0000)]
add feature graphic
Damyan Ivanov [Fri, 15 Mar 2019 01:48:02 +0000 (03:48 +0200)]
move phoneScreenshots under images/
Damyan Ivanov [Fri, 15 Mar 2019 01:12:45 +0000 (03:12 +0200)]
fix crash when saving profile without bringing up the color selector
Damyan Ivanov [Fri, 15 Mar 2019 01:12:17 +0000 (03:12 +0200)]
add some screenshots
Damyan Ivanov [Thu, 14 Mar 2019 21:27:00 +0000 (23:27 +0200)]
turn on case-sensitive LIKE operator, globally