CMake details for finding boost have been shipped for years inside
of boost, this makes cmake use that upsteam info to configure boost
and avoids problems when a newer boost than cmake is found.
On Android an app can ship with (static) shortcuts. We use this feature
to allow the user to create a new icon which still starts Flowee Pay,
but it instantly opens the payment screen on the QR scanner.
The vast vast majority of wallets imported will not have a password. So
we de-prioritize that and make the user aware of the password field
should they check the contents without one.
This moves the 'wallet name' again to the top for all types as the most
observed mistake is that people type a wallet-name in the password field
and then are confused why there is nothing there. (and additionally
annoyed that the name of the wallet is auto-generated).
Other fixes includes spacing and alignment.
Keyboard focus on desktop.
This fixes the issue that the "sweep from browser" would consume the
property before the QR scanner had time to decide it should skip
scanning due to that property existing.
The idea of using Flowee Pay to open a payment screen, or a sweep
screen, was so far married to the executable lifetime due to it being
passed as a command line argument.
This does not reflect reality, on neither desktop nor on mobile as
multi-tasking is possible and we should allow that.
As a result the new object "Intent" has been introduced with the
usecase specific properties. Setting those properties at any time
during the lifetime of the app now pushes the correct page to the
stack on mobile. Desktop is in need of more love in this department.
This allows a user to click on a link in a browser with the bch-wif
scheme and we'll handle that with a sweep page on startup.
To avoid this being just-another-special case we introduce a new
module (read: plugin) concept that is a Start-screen type.
The idea is that we can have a generic handling of this type in
various parts of the app without it being specifically about the
wif handling.
Notice that it doesn't matter if the user has the module enabled,
which just operates the display of the menu option to start it manually.
This moves the saving of the enabled-ness of a module to be for the
entire module instead of for each section.
To allow a module to be 'configurable' (for disabling section among
others) we add a virtual method to the ModuleInfo object to allow a
module to save anything it wants.
If you open a bitcoincash based url in a webbrowers, you now
will see flowee pay being offered as a way to handle it.
After clicking it you will instantly land in the payment page with
the address filled in.
On the mobile client this allows the user to check per wallet which kind
of transactions to show or hide.
We allow selection of send/receive/both.
We allow the hiding of cash-fusion transactions.
To amke it more clear that the QR scanning screen also always allows
clipboard input, make the paste button always be there and just make
it have a constrasting background when the clipboard content is
acceptable.
We also add a 'shake' feedback when the paste doesn't work, and naturall
the paste button is available for clicking even if it doesn't look
'enabled' which will then just result in a shake and 'failed' feedback.
As we get more modules it turns out that the 'send' tab as originally
envisioned isn't really representative of how we're evolving.
Various items end up being about doing 'stuff' in general. Including
creating a transaction to receive. Only in a very loose way can we
say those are 'send' items.
So, without actually any user-visible changes, this renames the
enum in the module manager and module-section to make it about the
more accurate "action menu".
When importing a new wallet while the initial wallet still is not user-
owned, this new wallet effectively replaces the old one.
This means that we still are a single-account setup, even though there
are two wallets. In that usecase we should point to the new one.
Use a buffer to store the json in, allowing us to process the result
even if it is much larger than expected.
Seems there are a lot of onion servers, which 'bloats' the result to the
point that it didn't go in one callback.