This redoes most of those pages to look much nicer and in-place.
This also disables the 'create' button when the derivation path is not
correctly entered.
This now brings the functionality to archive a wallet to the mobile
interface.
Archived wallets don't show up in your main view, do not synchronize
with the network and any balance they may 'contain' is ignored.
This brings the new 'privacy mode' to use the standard widgets
and make the UX more smooth.
The swiping between pages / wallets is more visually satisfying.
We update the sync label to have a live counter of how long ago
the last block came in. (both front-ends)
A wallet can permanently be labeled a 'private wallet' which is a simple
boolean.
Then when you may need to hand over your phone to a clerk, all you do is
quickly enable the 'private mode' which is sufficiently deep in the menu
to make it hidden.
The effect is that all wallets marked private will be hidden for the
duration of that feature being on.
On mobile we should not just show a text edit on an otherwise
labels-only screen, because the edit takes focus and opens the
on-screen keyboard. Which makes the amount of usable space
significantly less.
So make the editing user-triggered.
The feature to show only the exchange-rate based value on the
main screen doesn't make sense on anything but mainnet due to
the simple fact that thats the only one that has an exchange rate.
We hide the feature on testnet and make it always show the BCH
value on the overview screens.
Notice that the actuall setting, as written in the config file,
is shared between chains. We only have one confg file. So any
solution with default values would not work.
We introduce a new WalletkeyView which is a class that provides a
thread-safe view on a single private-key in the wallet. Detecting all
transactions depositing money in that key and thus being an ideal
backend for the PaymentRequest.
This mostly removes the less than successful architecture.
This architecture stems from my first attempts at mixing C++ and QML, and
its not great.
As we can see from the removals, it touches a lot of places and
especially the wallet owning them is messy, but in QML we have to do a
lot of null pointer checks, also not exactly readable.
Lets try something different.
We no longer show the feedback text below the address label
and additionally the tapping of the address label will also
cause the copying to be started.
This solves the UX issue where tapping a certain button fast in
sequence, we only acted on every other one.
Turns out, half were registered as 'double clicks'.