]> git.ktnx.net Git - mobile-ledger.git/log
mobile-ledger.git
4 years agofix swipe-away in reworked new transaction activity
Damyan Ivanov [Sun, 10 Nov 2019 17:44:16 +0000 (19:44 +0200)]
fix swipe-away in reworked new transaction activity

the first item (date and description) can't be swiped, as well as the last
two remaining accounts

4 years agouse Misc.isZero for zero-like comparison
Damyan Ivanov [Sun, 10 Nov 2019 17:39:51 +0000 (19:39 +0200)]
use Misc.isZero for zero-like comparison

4 years agomake soft keyboard appear when new transaction description/account gets focus
Damyan Ivanov [Sun, 10 Nov 2019 17:39:09 +0000 (19:39 +0200)]
make soft keyboard appear when new transaction description/account gets focus

this is used when the focus is given artificially, when date is picked
(and focus goes to the transaction description) and when a transaction
description is selected from the drop down (and focus goes to the first
account name)

4 years agoauto select new transaction description/amounts upon focus
Damyan Ivanov [Sun, 10 Nov 2019 17:34:07 +0000 (19:34 +0200)]
auto select new transaction description/amounts upon focus

4 years agoNewTransItemHolder: prevent sync loops via model data observers
Damyan Ivanov [Sun, 10 Nov 2019 11:22:17 +0000 (13:22 +0200)]
NewTransItemHolder: prevent sync loops via model data observers

when the data in the model is changed (e.g. in a reset operation) the
new data needs to be sent to the UI without this causing data sync back
to the model

4 years agoNewTransAct: set global profile in initProfile() when called via app shortcut
Damyan Ivanov [Sun, 10 Nov 2019 11:20:37 +0000 (13:20 +0200)]
NewTransAct: set global profile in initProfile() when called via app shortcut

same is done in super.initProfile() during normal startup

the global profile setting is needed in the item holder when setting up
lookups

4 years agoProfileThemedActivity: fetch current profile synchronously
Damyan Ivanov [Sun, 10 Nov 2019 09:15:47 +0000 (11:15 +0200)]
ProfileThemedActivity: fetch current profile synchronously

the onCreate method must finish setting up the theme before
returning and giving way to creation of views

if the current profile data comes asynchronously, it may be too late and
some views may have already been created

4 years agowhitespace
Damyan Ivanov [Sat, 9 Nov 2019 23:16:47 +0000 (01:16 +0200)]
whitespace

4 years agomore robust theme ID calculation
Damyan Ivanov [Sat, 9 Nov 2019 23:15:36 +0000 (01:15 +0200)]
more robust theme ID calculation

not depending on specific resource ID ordering that is no longer present
with recent android studio versions

4 years agorework new transaction activity with a RecyclerView
Damyan Ivanov [Sat, 9 Nov 2019 22:51:00 +0000 (00:51 +0200)]
rework new transaction activity with a RecyclerView

in the process:
 - decouple DatePickerFragment from the new transaction activity
 - fix ImeAction setting
 - fix focusing next element when date/old transaction/account name is picked

4 years agoupgrade gradle plugin to 3.5.2
Damyan Ivanov [Sat, 9 Nov 2019 22:42:14 +0000 (00:42 +0200)]
upgrade gradle plugin to 3.5.2

5 years agowhitespace
Damyan Ivanov [Sat, 19 Oct 2019 13:17:43 +0000 (16:17 +0300)]
whitespace

5 years agoProfileThemedActivity: load profile from options if none is loaded yet
Damyan Ivanov [Sat, 19 Oct 2019 13:17:16 +0000 (16:17 +0300)]
ProfileThemedActivity: load profile from options if none is loaded yet

This may happen if the app is removed from memory while the new transaction
activity is active; when the app is started later it goes straight to the
new transaction activity and there is no profile loaded from the options db
in the normal startup the main activity is first and it loads the profile.

Another way to start the new transaction activity without passing via the
main activity is through the app shortcuts

5 years agoRe-enable app shortcuts on android 7.1+ (Nougat++)
Damyan Ivanov [Sat, 19 Oct 2019 09:22:38 +0000 (12:22 +0300)]
Re-enable app shortcuts on android 7.1+ (Nougat++)

was wrongly requiring android 8 (oreo)

5 years agofactor-out parsing string as hledger's ParsedQuantity
Damyan Ivanov [Sun, 22 Sep 2019 11:48:44 +0000 (14:48 +0300)]
factor-out parsing string as hledger's ParsedQuantity

the separate method can now be used for setting the object's value

5 years agowhitespace
Damyan Ivanov [Sat, 21 Sep 2019 17:54:11 +0000 (20:54 +0300)]
whitespace

5 years agohookAutocompletion: leave the "focus the next view" logic for the callback
Damyan Ivanov [Sat, 21 Sep 2019 17:53:53 +0000 (20:53 +0300)]
hookAutocompletion: leave the "focus the next view" logic for the callback

getting to the "next" view from the auto completion adapter is rather
difficult, and the callback already has all the needed information

5 years agoAutoWithClear: manage the drawable on text change only if having focus
Damyan Ivanov [Sat, 21 Sep 2019 17:52:04 +0000 (20:52 +0300)]
AutoWithClear: manage the drawable on text change only if having focus

5 years agomove clear button implementation to a new custom class
Damyan Ivanov [Sat, 21 Sep 2019 14:40:09 +0000 (17:40 +0300)]
move clear button implementation to a new custom class

better encapsulation, accessibility concerns about onTouch interception
solved

5 years agonew transaction: add a clear button to edited fields
Damyan Ivanov [Sat, 21 Sep 2019 13:02:04 +0000 (16:02 +0300)]
new transaction: add a clear button to edited fields

makes it easy to clear a field's text without select-all or holding on the
backspace key

5 years agonew transaction: dynamically add all of the account rows, even initial ones
Damyan Ivanov [Sat, 21 Sep 2019 12:59:41 +0000 (15:59 +0300)]
new transaction: dynamically add all of the account rows, even initial ones

this ensures that all the row's properties (incl. its contents) are uniform

5 years agonew transaction: show soft keyboard after choosing transaction date
Damyan Ivanov [Sat, 21 Sep 2019 08:40:58 +0000 (11:40 +0300)]
new transaction: show soft keyboard after choosing transaction date

5 years agogradle upgrade
Damyan Ivanov [Sat, 21 Sep 2019 08:07:53 +0000 (11:07 +0300)]
gradle upgrade

5 years agoallow toggling password visibility in profile details
Damyan Ivanov [Sun, 1 Sep 2019 09:23:32 +0000 (12:23 +0300)]
allow toggling password visibility in profile details

5 years agoanother compiler warning about fixed non-translatable string
Damyan Ivanov [Sat, 20 Jul 2019 19:23:08 +0000 (22:23 +0300)]
another compiler warning about fixed non-translatable string

replaced with a constant declaration

5 years agoreplace .clone() with a copy constructor
Damyan Ivanov [Sat, 20 Jul 2019 19:18:23 +0000 (22:18 +0300)]
replace .clone() with a copy constructor

fixes a compiler warning

5 years agostreamline profile validation
Damyan Ivanov [Sat, 20 Jul 2019 19:17:47 +0000 (22:17 +0300)]
streamline profile validation

avoids insistent warnings about invalid URL

5 years agoadd navigation libraries to gradle dependencies
Damyan Ivanov [Sat, 20 Jul 2019 18:47:54 +0000 (21:47 +0300)]
add navigation libraries to gradle dependencies

not really used for now, but may be in the future

5 years agorequire URL protocol to be HTTP or HTTPS
Damyan Ivanov [Sat, 20 Jul 2019 18:45:58 +0000 (21:45 +0300)]
require URL protocol to be HTTP or HTTPS

5 years agowarn when using authentication with insecure HTTP scheme
Damyan Ivanov [Sat, 20 Jul 2019 18:36:37 +0000 (21:36 +0300)]
warn when using authentication with insecure HTTP scheme

5 years agoclarify that crash reports are sent via email and user can review them before sending
Damyan Ivanov [Sat, 20 Jul 2019 18:09:50 +0000 (21:09 +0300)]
clarify that crash reports are sent via email and user can review them before sending

5 years agostrings: replace three dots with ellipsis
Damyan Ivanov [Sat, 20 Jul 2019 18:09:09 +0000 (21:09 +0300)]
strings: replace three dots with ellipsis

5 years agoadd contentDescription for the color picker button in the profile editor
Damyan Ivanov [Sat, 20 Jul 2019 17:52:21 +0000 (20:52 +0300)]
add contentDescription for the color picker button in the profile editor

5 years agoremove unused namespace declaration
Damyan Ivanov [Sat, 20 Jul 2019 17:51:45 +0000 (20:51 +0300)]
remove unused namespace declaration

5 years agobump gradle version
Damyan Ivanov [Thu, 18 Jul 2019 19:41:24 +0000 (22:41 +0300)]
bump gradle version

5 years agowhitespace
Damyan Ivanov [Sat, 13 Jul 2019 05:54:51 +0000 (08:54 +0300)]
whitespace

5 years agoprofile editor: validate entered URL
Damyan Ivanov [Sat, 13 Jul 2019 05:53:46 +0000 (08:53 +0300)]
profile editor: validate entered URL

5 years agoreplace hard-coded basic HTTP authentication with triggered Authenticator
Damyan Ivanov [Sat, 13 Jul 2019 05:38:37 +0000 (08:38 +0300)]
replace hard-coded basic HTTP authentication with triggered Authenticator

checks whether host name matches

avoids exposing authentication data to wifi portals

5 years agowhitespace
Damyan Ivanov [Sat, 13 Jul 2019 05:35:59 +0000 (08:35 +0300)]
whitespace

5 years agogradle: update a bunch of libraries to the current stable version
Damyan Ivanov [Thu, 11 Jul 2019 09:51:36 +0000 (12:51 +0300)]
gradle: update a bunch of libraries to the current stable version

appcompat, material, lifecycle-extensions, recyclerview, test runners

5 years agoprepare v0.10.3/29 v0.10.3
Damyan Ivanov [Sun, 30 Jun 2019 10:32:40 +0000 (10:32 +0000)]
prepare v0.10.3/29

5 years agoadd a test for the ParsedQuantity(String) constructor
Damyan Ivanov [Fri, 28 Jun 2019 20:14:24 +0000 (23:14 +0300)]
add a test for the ParsedQuantity(String) constructor

5 years agoadd constructor for json.ParsedQuantity that instantiates from string
Damyan Ivanov [Fri, 28 Jun 2019 20:13:36 +0000 (23:13 +0300)]
add constructor for json.ParsedQuantity that instantiates from string

fixes a reported crash

5 years agoprepare 0.10.2 (28) release v0.10.2
Damyan Ivanov [Fri, 14 Jun 2019 16:37:34 +0000 (16:37 +0000)]
prepare 0.10.2 (28) release

5 years agoAnother JSON parser fix from Mattéo Delabre, this time for the posting tags
Damyan Ivanov [Fri, 14 Jun 2019 16:29:32 +0000 (19:29 +0300)]
Another JSON parser fix from Mattéo Delabre, this time for the posting tags

5 years agoFix tags parsing with JSON backend
Damyan Ivanov [Tue, 11 Jun 2019 20:13:03 +0000 (23:13 +0300)]
Fix tags parsing with JSON backend

Patch by Mattéo Delabre

5 years agoprepare 0.10.1/27 release v0.10.1
Damyan Ivanov [Wed, 5 Jun 2019 18:46:25 +0000 (18:46 +0000)]
prepare 0.10.1/27 release

5 years agolegacy parser: do not crash with amounts like '1,234.56'
Damyan Ivanov [Wed, 5 Jun 2019 18:34:16 +0000 (21:34 +0300)]
legacy parser: do not crash with amounts like '1,234.56'

5 years agoadd MoLe version to the crash report
Damyan Ivanov [Wed, 5 Jun 2019 18:27:50 +0000 (21:27 +0300)]
add MoLe version to the crash report

5 years agobetter color for the new transaction save progress spinner
Damyan Ivanov [Sat, 1 Jun 2019 19:21:37 +0000 (22:21 +0300)]
better color for the new transaction save progress spinner

the button uses the accent color, so the progress should use the primary

5 years agowhitespace
Damyan Ivanov [Sat, 1 Jun 2019 16:49:36 +0000 (19:49 +0300)]
whitespace

5 years agoreplace in-activity copy of account name filter value with the global item in Data
Damyan Ivanov [Sat, 1 Jun 2019 16:49:31 +0000 (19:49 +0300)]
replace in-activity copy of account name filter value with the global item in Data

also solves filter disappearing when switching back to the app

5 years agogradle upgrade
Damyan Ivanov [Sat, 1 Jun 2019 16:48:09 +0000 (19:48 +0300)]
gradle upgrade

5 years ago"(debug)" → "(dev)"
Damyan Ivanov [Wed, 22 May 2019 19:00:59 +0000 (22:00 +0300)]
"(debug)" → "(dev)"

5 years agoNew transaction: use the accent color for the FAB (same as in main activity)
Damyan Ivanov [Wed, 22 May 2019 18:55:30 +0000 (21:55 +0300)]
New transaction: use the accent color for the FAB (same as in main activity)

5 years agomulti-color progress indicators
Damyan Ivanov [Sat, 18 May 2019 10:19:29 +0000 (13:19 +0300)]
multi-color progress indicators

5 years agoremote fragmentManager field
Damyan Ivanov [Sat, 18 May 2019 09:43:47 +0000 (12:43 +0300)]
remote fragmentManager field

5 years agodrop two fields, sparing their initialization in onCreate
Damyan Ivanov [Sat, 18 May 2019 09:42:03 +0000 (12:42 +0300)]
drop two fields, sparing their initialization in onCreate

the idea is to make onCreate as slim as possible

5 years agoshow New transaction button when the app is brought back to the foreground
Damyan Ivanov [Sat, 18 May 2019 09:30:19 +0000 (12:30 +0300)]
show New transaction button when the app is brought back to the foreground

5 years agobump version
Damyan Ivanov [Sat, 18 May 2019 09:29:15 +0000 (12:29 +0300)]
bump version

5 years agoprepare 0.10.0/26 release v0.10.0
Damyan Ivanov [Fri, 17 May 2019 20:49:14 +0000 (20:49 +0000)]
prepare 0.10.0/26 release

5 years agostore current page index on page change
Damyan Ivanov [Sun, 5 May 2019 19:57:37 +0000 (22:57 +0300)]
store current page index on page change

this was the missing piece to store the current page in the saved state
so that when the app is switched out and then back in the page is kept

5 years agomove account name filter to the transaction list fragment
Damyan Ivanov [Sun, 5 May 2019 19:56:13 +0000 (22:56 +0300)]
move account name filter to the transaction list fragment

it is not relevant to the account list and should not be visible there

5 years agomore information in the main activity start debug
Damyan Ivanov [Sun, 5 May 2019 18:57:48 +0000 (21:57 +0300)]
more information in the main activity start debug

5 years agowhitespace
Damyan Ivanov [Sun, 5 May 2019 18:57:25 +0000 (21:57 +0300)]
whitespace

5 years agofix hooking profile-specific auto-completion adapter
Damyan Ivanov [Sun, 5 May 2019 18:44:03 +0000 (21:44 +0300)]
fix hooking profile-specific auto-completion adapter

at this point the main profile may not have been loaded yet so don't give it
to the hooking routine, which would instead retrieve the profile when the
auto-completion is triggered, at which point Data.profile must be populated

the other user of these routines, the new transaction activity is also bound
to a profile (either the main one in Data.profile, or another -- if invoced
via app shortcut) so it may pass the profile as a parameter

5 years agodrop deprecated property
Damyan Ivanov [Sun, 5 May 2019 18:28:13 +0000 (21:28 +0300)]
drop deprecated property

5 years agoadd missiing accessibility hint
Damyan Ivanov [Sun, 5 May 2019 18:27:57 +0000 (21:27 +0300)]
add missiing accessibility hint

5 years agofix account filter popup colors, broken since last release
Damyan Ivanov [Sun, 5 May 2019 18:27:44 +0000 (21:27 +0300)]
fix account filter popup colors, broken since last release

5 years agodrop unused resource file
Damyan Ivanov [Sun, 5 May 2019 17:08:28 +0000 (20:08 +0300)]
drop unused resource file

5 years agonotify the profile list adapter when a profile is changed
Damyan Ivanov [Sun, 5 May 2019 15:22:49 +0000 (18:22 +0300)]
notify the profile list adapter when a profile is changed

was broken after migration of the profile list to LiveData

5 years agoProfilesRecyclerViewAdapter as a weak singleton
Damyan Ivanov [Sun, 5 May 2019 15:21:53 +0000 (18:21 +0300)]
ProfilesRecyclerViewAdapter as a weak singleton

will be needed by the ProfileDetailsFragment when a profile is saved to let
the adapter know of the change

5 years agoreplace assertions with good old if()
Damyan Ivanov [Sun, 5 May 2019 15:17:05 +0000 (18:17 +0300)]
replace assertions with good old if()

assertions aren't implemented in Android's Java?

5 years ago5-degree theme steps, for smooth color selection
Damyan Ivanov [Sun, 5 May 2019 14:55:26 +0000 (17:55 +0300)]
5-degree theme steps, for smooth color selection

also replaces the fixed switch on theme hue with heuristic for getting
resource theme ID from the hue

the three-digit number (%03d) in the resource theme id name is needed because
the build infrastructure orders the IDs by lexical order (0,10,15,100,150,200)
instead of numerical order (0,5,10,15). By zero-padding both orders are the same
(000,005,010,015)

5 years agouse a constant for the color wheel step size
Damyan Ivanov [Sun, 5 May 2019 14:07:12 +0000 (17:07 +0300)]
use a constant for the color wheel step size

5 years agopreserve indents to help minimise whitespace changes
Damyan Ivanov [Sun, 5 May 2019 14:05:20 +0000 (17:05 +0300)]
preserve indents to help minimise whitespace changes

5 years agodrop unused menu item
Damyan Ivanov [Sun, 5 May 2019 13:48:09 +0000 (16:48 +0300)]
drop unused menu item

5 years agofinish the profile editor activity when the profile is removed
Damyan Ivanov [Sun, 5 May 2019 13:42:55 +0000 (16:42 +0300)]
finish the profile editor activity when the profile is removed

it was done only when the current profile is removed

5 years agofix method signature
Damyan Ivanov [Sun, 5 May 2019 13:42:23 +0000 (16:42 +0300)]
fix method signature

5 years agowhitespace
Damyan Ivanov [Sun, 5 May 2019 13:28:50 +0000 (16:28 +0300)]
whitespace

5 years agodisable profile list animations while the drawer is closing/closed
Damyan Ivanov [Sun, 5 May 2019 13:28:29 +0000 (16:28 +0300)]
disable profile list animations while the drawer is closing/closed

5 years agomigrate editingProfiles to LiveData
Damyan Ivanov [Sun, 5 May 2019 13:25:31 +0000 (16:25 +0300)]
migrate editingProfiles to LiveData

5 years agodrop unused attribute
Damyan Ivanov [Sun, 5 May 2019 12:54:04 +0000 (15:54 +0300)]
drop unused attribute

5 years agoreorganization of profile list
Damyan Ivanov [Sun, 5 May 2019 12:53:47 +0000 (15:53 +0300)]
reorganization of profile list

always visible, gear icon too

add profile icon appears only when editing the profile list

the idea is that switching profiles is the main action to perform when the
drawer is open, so no need to hide it behind a collapsible list

adding a profile is still a second level action, hidden behind the gead icon

5 years agodebug messages on app start/termination
Damyan Ivanov [Sun, 5 May 2019 10:20:03 +0000 (13:20 +0300)]
debug messages on app start/termination

5 years agoupdate icon files
Damyan Ivanov [Sun, 5 May 2019 10:05:09 +0000 (13:05 +0300)]
update icon files

5 years agono transparency of the purple
Damyan Ivanov [Sun, 5 May 2019 09:31:48 +0000 (09:31 +0000)]
no transparency of the purple

can't be implemented for the around-the-dot border in a convenient way

cutting the book would work, but would also remove the ability to adjust it

5 years agothe icon color is #935ff2, same as the primary app color
Damyan Ivanov [Sun, 5 May 2019 07:42:46 +0000 (07:42 +0000)]
the icon color is #935ff2, same as the primary app color

5 years agothinner and smaller ±
Damyan Ivanov [Sun, 5 May 2019 07:36:25 +0000 (07:36 +0000)]
thinner and smaller ±

5 years agowork around border-fill order inability in android vector studio
Damyan Ivanov [Sun, 5 May 2019 07:24:48 +0000 (07:24 +0000)]
work around border-fill order inability in android vector studio

split the heavily-bordered cirvle to a white-filled circle
and a bigger purple circle under it

5 years agomore app_icon improvements
Damyan Ivanov [Sun, 5 May 2019 07:17:13 +0000 (07:17 +0000)]
more app_icon improvements

wave source at the book split point

thinner and page-centered ±

5 years agoLatest transactions → Transactions
Damyan Ivanov [Fri, 3 May 2019 18:09:21 +0000 (21:09 +0300)]
Latest transactions → Transactions

the full list is shown since a long time

5 years agowhitespace
Damyan Ivanov [Fri, 3 May 2019 18:08:47 +0000 (21:08 +0300)]
whitespace

5 years agoclear synthetic accounts list after propagating parsed amount
Damyan Ivanov [Fri, 3 May 2019 17:20:15 +0000 (20:20 +0300)]
clear synthetic accounts list after propagating parsed amount

this fixes a bug where a synthetic accounts tree gets the amounts of
the following real account

5 years agofix text color for the account name filter
Damyan Ivanov [Fri, 3 May 2019 16:24:52 +0000 (19:24 +0300)]
fix text color for the account name filter

broken after the fix for the view style

5 years agowhitespace
Damyan Ivanov [Fri, 3 May 2019 16:09:22 +0000 (19:09 +0300)]
whitespace

5 years agosetCurrentProfile: no crash if given a null argument
Damyan Ivanov [Fri, 3 May 2019 16:09:10 +0000 (19:09 +0300)]
setCurrentProfile: no crash if given a null argument

5 years agoignore request to update the last update date when there is no current profile
Damyan Ivanov [Fri, 3 May 2019 16:08:57 +0000 (19:08 +0300)]
ignore request to update the last update date when there is no current profile

5 years agoprofile should not be null when requesting transaction retrieval
Damyan Ivanov [Fri, 3 May 2019 16:07:36 +0000 (19:07 +0300)]
profile should not be null when requesting transaction retrieval

5 years agolet the loading screen use the default background color
Damyan Ivanov [Fri, 3 May 2019 16:07:31 +0000 (19:07 +0300)]
let the loading screen use the default background color