]>
git.ktnx.net Git - mobile-ledger.git/log
Damyan Ivanov [Sun, 17 Nov 2019 17:14:01 +0000 (19:14 +0200)]
NewTransactionModel: drop unused method isEditable()
Damyan Ivanov [Sun, 17 Nov 2019 17:13:18 +0000 (19:13 +0200)]
New transaction: when toggling editting, include the head row
Damyan Ivanov [Sun, 17 Nov 2019 17:12:13 +0000 (19:12 +0200)]
NewTransactionModel/Item: initialize amount hint on creation
fixes "ghost" hints
Damyan Ivanov [Wed, 13 Nov 2019 21:40:37 +0000 (23:40 +0200)]
whitespace
Damyan Ivanov [Wed, 13 Nov 2019 21:40:29 +0000 (23:40 +0200)]
invert if(!smth) {} else {} condition
Damyan Ivanov [Wed, 13 Nov 2019 21:39:46 +0000 (23:39 +0200)]
NewTransItem/amountHint: allow for null hints, and avoid extra Live triggers
Damyan Ivanov [Wed, 13 Nov 2019 21:38:58 +0000 (23:38 +0200)]
New transaction: locale aware number input
uses hacks on pre-O devices that break inserting "-" at the beginning
(requires that the minus is entered on an empty field)
Damyan Ivanov [Wed, 13 Nov 2019 21:36:52 +0000 (23:36 +0200)]
new transaction: locale-aware number formatting (broken in RecyclerView migration)
Damyan Ivanov [Wed, 13 Nov 2019 20:15:51 +0000 (22:15 +0200)]
whitespace
Damyan Ivanov [Wed, 13 Nov 2019 20:15:26 +0000 (22:15 +0200)]
New transaction: rework empty amounts hints, broken after RecyclerView migration
Damyan Ivanov [Wed, 13 Nov 2019 19:43:59 +0000 (21:43 +0200)]
whitespace
Damyan Ivanov [Wed, 13 Nov 2019 19:43:41 +0000 (21:43 +0200)]
New transaction: fix clearing the single negative amount broken after ReecyclerView migration
Damyan Ivanov [Wed, 13 Nov 2019 19:42:25 +0000 (21:42 +0200)]
New transaction: wider amount box, accommodating -999.99 at least
Damyan Ivanov [Mon, 11 Nov 2019 06:47:58 +0000 (08:47 +0200)]
whitespace
Damyan Ivanov [Mon, 11 Nov 2019 06:47:38 +0000 (08:47 +0200)]
catch bad numbers when parsing entered amount
Damyan Ivanov [Mon, 11 Nov 2019 06:39:42 +0000 (08:39 +0200)]
fix off by one error when filling transaction after selecting description
Damyan Ivanov [Mon, 11 Nov 2019 06:39:20 +0000 (08:39 +0200)]
fix format spec in exception reporting
bonus: spot the irony
Damyan Ivanov [Mon, 11 Nov 2019 06:35:00 +0000 (08:35 +0200)]
showSoftKeyboard: show also when the present keyboard has no keys (e.g. there is no hardware keyboard)
Damyan Ivanov [Mon, 11 Nov 2019 06:29:44 +0000 (08:29 +0200)]
DatePickerFragment: dismiss before invoking the date picked listener
may want to do something with the focus
Damyan Ivanov [Mon, 11 Nov 2019 06:28:41 +0000 (08:28 +0200)]
showSoftKeyboard: act only of no hardware keyboard is present and open
Damyan Ivanov [Mon, 11 Nov 2019 06:27:48 +0000 (08:27 +0200)]
showSoftKeyboard(fragment): delegate to showSoftKeyboard(fragment.getActivity())
no need to implement the same thing multiple times
Damyan Ivanov [Sun, 10 Nov 2019 17:50:47 +0000 (19:50 +0200)]
split ef/else/if into separate statements
Damyan Ivanov [Sun, 10 Nov 2019 17:50:05 +0000 (19:50 +0200)]
debug++
Damyan Ivanov [Sun, 10 Nov 2019 17:49:56 +0000 (19:49 +0200)]
debug--
Damyan Ivanov [Sun, 10 Nov 2019 17:49:26 +0000 (19:49 +0200)]
convert new transaction item 'editable' flat to LiveData
Damyan Ivanov [Sun, 10 Nov 2019 17:48:22 +0000 (19:48 +0200)]
debug++
Damyan Ivanov [Sun, 10 Nov 2019 17:46:32 +0000 (19:46 +0200)]
rewrap
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
Damyan Ivanov [Sun, 10 Nov 2019 17:39:51 +0000 (19:39 +0200)]
use Misc.isZero for zero-like comparison
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)
Damyan Ivanov [Sun, 10 Nov 2019 17:34:07 +0000 (19:34 +0200)]
auto select new transaction description/amounts upon focus
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
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
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
Damyan Ivanov [Sat, 9 Nov 2019 23:16:47 +0000 (01:16 +0200)]
whitespace
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
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
Damyan Ivanov [Sat, 9 Nov 2019 22:42:14 +0000 (00:42 +0200)]
upgrade gradle plugin to 3.5.2
Damyan Ivanov [Sat, 19 Oct 2019 13:17:43 +0000 (16:17 +0300)]
whitespace
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
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)
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
Damyan Ivanov [Sat, 21 Sep 2019 17:54:11 +0000 (20:54 +0300)]
whitespace
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
Damyan Ivanov [Sat, 21 Sep 2019 17:52:04 +0000 (20:52 +0300)]
AutoWithClear: manage the drawable on text change only if having focus
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
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
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
Damyan Ivanov [Sat, 21 Sep 2019 08:40:58 +0000 (11:40 +0300)]
new transaction: show soft keyboard after choosing transaction date
Damyan Ivanov [Sat, 21 Sep 2019 08:07:53 +0000 (11:07 +0300)]
gradle upgrade
Damyan Ivanov [Sun, 1 Sep 2019 09:23:32 +0000 (12:23 +0300)]
allow toggling password visibility in profile details
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
Damyan Ivanov [Sat, 20 Jul 2019 19:18:23 +0000 (22:18 +0300)]
replace .clone() with a copy constructor
fixes a compiler warning
Damyan Ivanov [Sat, 20 Jul 2019 19:17:47 +0000 (22:17 +0300)]
streamline profile validation
avoids insistent warnings about invalid URL
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
Damyan Ivanov [Sat, 20 Jul 2019 18:45:58 +0000 (21:45 +0300)]
require URL protocol to be HTTP or HTTPS
Damyan Ivanov [Sat, 20 Jul 2019 18:36:37 +0000 (21:36 +0300)]
warn when using authentication with insecure HTTP scheme
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
Damyan Ivanov [Sat, 20 Jul 2019 18:09:09 +0000 (21:09 +0300)]
strings: replace three dots with ellipsis
Damyan Ivanov [Sat, 20 Jul 2019 17:52:21 +0000 (20:52 +0300)]
add contentDescription for the color picker button in the profile editor
Damyan Ivanov [Sat, 20 Jul 2019 17:51:45 +0000 (20:51 +0300)]
remove unused namespace declaration
Damyan Ivanov [Thu, 18 Jul 2019 19:41:24 +0000 (22:41 +0300)]
bump gradle version
Damyan Ivanov [Sat, 13 Jul 2019 05:54:51 +0000 (08:54 +0300)]
whitespace
Damyan Ivanov [Sat, 13 Jul 2019 05:53:46 +0000 (08:53 +0300)]
profile editor: validate entered URL
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
Damyan Ivanov [Sat, 13 Jul 2019 05:35:59 +0000 (08:35 +0300)]
whitespace
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
Damyan Ivanov [Sun, 30 Jun 2019 10:32:40 +0000 (10:32 +0000)]
prepare v0.10.3/29
Damyan Ivanov [Fri, 28 Jun 2019 20:14:24 +0000 (23:14 +0300)]
add a test for the ParsedQuantity(String) constructor
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
Damyan Ivanov [Fri, 14 Jun 2019 16:37:34 +0000 (16:37 +0000)]
prepare 0.10.2 (28) release
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
Damyan Ivanov [Tue, 11 Jun 2019 20:13:03 +0000 (23:13 +0300)]
Fix tags parsing with JSON backend
Patch by Mattéo Delabre
Damyan Ivanov [Wed, 5 Jun 2019 18:46:25 +0000 (18:46 +0000)]
prepare 0.10.1/27 release
Damyan Ivanov [Wed, 5 Jun 2019 18:34:16 +0000 (21:34 +0300)]
legacy parser: do not crash with amounts like '1,234.56'
Damyan Ivanov [Wed, 5 Jun 2019 18:27:50 +0000 (21:27 +0300)]
add MoLe version to the crash report
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
Damyan Ivanov [Sat, 1 Jun 2019 16:49:36 +0000 (19:49 +0300)]
whitespace
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
Damyan Ivanov [Sat, 1 Jun 2019 16:48:09 +0000 (19:48 +0300)]
gradle upgrade
Damyan Ivanov [Wed, 22 May 2019 19:00:59 +0000 (22:00 +0300)]
"(debug)" → "(dev)"
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)
Damyan Ivanov [Sat, 18 May 2019 10:19:29 +0000 (13:19 +0300)]
multi-color progress indicators
Damyan Ivanov [Sat, 18 May 2019 09:43:47 +0000 (12:43 +0300)]
remote fragmentManager field
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
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
Damyan Ivanov [Sat, 18 May 2019 09:29:15 +0000 (12:29 +0300)]
bump version
Damyan Ivanov [Fri, 17 May 2019 20:49:14 +0000 (20:49 +0000)]
prepare 0.10.0/26 release
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
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
Damyan Ivanov [Sun, 5 May 2019 18:57:48 +0000 (21:57 +0300)]
more information in the main activity start debug
Damyan Ivanov [Sun, 5 May 2019 18:57:25 +0000 (21:57 +0300)]
whitespace
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
Damyan Ivanov [Sun, 5 May 2019 18:28:13 +0000 (21:28 +0300)]
drop deprecated property
Damyan Ivanov [Sun, 5 May 2019 18:27:57 +0000 (21:27 +0300)]
add missiing accessibility hint
Damyan Ivanov [Sun, 5 May 2019 18:27:44 +0000 (21:27 +0300)]
fix account filter popup colors, broken since last release
Damyan Ivanov [Sun, 5 May 2019 17:08:28 +0000 (20:08 +0300)]
drop unused resource file
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
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
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?