The backend will tell us that there is good reason to believe the remote
needs to get a new bloom filter, which is causing a lot of extra traffic
if there actually is no change in the utxo of the wallet.
This introduces a bool to mark changes that would affect the bloom
filter to be send, and only upload a new one when that bool is true.
Parsing the amount
0.00522325
caused the double to have a 49999 at the end instead of that 5.
This now will be rounded back up the the proper sats value.
The Android design is that you can "close" the app while it is not
actually killed. It stays frozen but in the background.
This makes Pay check the clock on 'wake up' and if 10 minutes has passed
it will lock again.
We already allowed individual wallets to get PIN-to-Open/PIN-to-Pay
but that is too advanced for most users. Not to mention that encrypted
private keys means a slower payment process and certain types of
features become impossible. Like auto-invoicing (incasso).
The gap, for mobile, is a simple not-encrypting password on startup
of the app which is likely what 80% of the privacy / security minded
people on mibile will be more than happy with.
This adds this mode and additionally streamlines the encrypted modes
of wallets.
The model had much more functionality we'd ever use in the UI, it turns
out it was over designed.
Remove the unneeded complexity and just have one simple list.
this also changes the API propertes that handle encryption details a
little. Making them faster and the meaning follows the logical
conclusion of the naming better.
Specifically:
when needsPinToOpen would return true, now needsPinToPay will also
always return true.
When the user is trying to create a transaction we start with the
currently selected wallet. The user is able to change to another wallet
in such flows, but we stop them from seeing
the fully encrypted wallet as the workflow would just become too tedius
and confusing.
Now the mobile skin can also enable the per-wallet 'count-balance' bool.
If set to false it makes the balances of the wallet no longer be visible
or indeed counted in the overview. Specifically the AccountSelectorPopup
* Add a total balance label at the bottom if we have more than one
wallet.
* Add lock icons for encrypted or even partially encrypted wallets
* Add label to indicate an encrypted wallet needs opening before it can
be used.
* Fix spacing in case of larger fonts.
This detects that the currently selected wallet is fully encryted and if
it is, it shows a password request page on top of the current screen.
The default setup aims to have people type a PIN in numbers to unlock
the wallet, but we also provide a way to make it use a textual password
instead.
When the user starts editing the text label, the way out is to use the
(virtual) keyboards 'enter' or 'done' button.
We mark this button as disabled while editing to avoid weird situation.
This also works around the application completely hanging in Qt651 on
the phone. Hanging as in: Android suggests it to be killed.
This now uses the new Qt APIs for requesting camera permissions
on supported platforms (Adnroid and iOS).
There are still several ifdefs and the older code is still there,
lets leave that for some releases, because why not.
This is a long overdue cleanup around the ideas of entering
numbers in Flowee Pay.
The core dataclass BitcoinValue now keeps track where the number
came from, either user input or some calculation. This allows
us to have the Fiat and the Coin price stay in sync without weird
problems.
The one we type uses a string, the price field that we are not typing in
is then a slave and we follow the auto-generated number as the
source.
This solves a host of known issues:
* Editing of value objects is much more consistnnt and predictable now.
* Switching to a different fiat type now properly re-calculates the
values that are slaved. So if the primary is a BCH value then the fiat
value gets the new exhange rate instantly applied.
* Switching to a different fiat type properly applies having a separator
So if you go from euro to Japanese yen, we now remove the separator
and the numbers behind it.
* Changing the app setting from BCH to mBCH now properly updates all
amounts. Notice that the user-typed string wins, if you typed 2 and
then change to mBCH we assume you wanted 2, not 2000.
* Paste now works more logcally.
* Cursor is no longer sometimes invisible, requiring backspace to make
it show up.
And last we now protect against too large numbers. It is seen as an
error to type a number above 21 million BCH.
Fixes#19