When running in the background on Android the user selected locale
information turns out to not be available. Which, to be honest, I won't
qualify as a bug, just unfortunate.
We now always store the data in our app config which makes the
notifications show a fiat price as expected.
This fixes the general flow, but specifically adds two things:
1. we detect the lack of peers and notify the user of this problem with
an alarming looking screen.
2. We move to only requiring 1 peer to accept the transaction, since on
slow network connections the others tend to get it from each other
instead of me.
The popup is a too intrusive when it arrives too fast after receiving a
new transaction, this moves it to 150 seconds to make it clearly not
part of the receive flow and simply a new dialog for the user to
consider.
We no longer throw away details when a longer list of transactions is
combined into one. This means that we can easily detect anonimity
transactions even if we get more then one coming in, which makes the
notification text more appropriate as a result.
We move the starting of the download optimistically to be earlier in the
boot process.
This also moves the actual action out of the singleton, which gives more
control over when to call it based on how the app is started.
Specifically the headless way of running Pay now waits for the price
feed to have been updated before starting the p2p net interactions,
ensuring that any new transactions will be able to be shown to the user
including the fiat price.
With some delays we allow the user interface to show up so the checkbox
actually is pained to be 'on' when the user gets a question from the OS
about allowing it.