On Android this enables the application to run just a simple
quick sync and then exit the app on regular intervals.
The main benefit is that when the user doesn't run the app very
often they will avoid having a long sync time.
Add logic to notice that the device is offline and notify the
user of this fact on screen.
Repeat checking so we can notify the user that network is back.
This shows in the UI (of the mobile form factor) that the device
is offline and we avoid starting the p2p layer until network
is detected to be there again.
This removes the various ifdef based differences which are platform
specific and instead moves the code to a file that will only be
compiled for that target platform.
We also remove the backwards compatible 'darktheme-from-system' code
which is by now no longer needed.
This adds a lock to ensure that the app is not started twice, which
would be bad for data consistency.
The second version will just show a simple window stating it is already
running. While it would be nice to make it more advanced, I don't think
that is useful to spent time and code on.
The backend still used an int for the fiat price, this is now a qint64.
Additionally the BitcoinValue now optimistically (pessimistically?)
converts the input with the current price in order to avoid a second
order overflow.
Transactions submitted that are older than an hour won't be used for the
PaymentRequest fulfillment. This is relevant when the user syncs the
wallet after being offline for a longer time.
Also ignore incoming transactions for a request when the request has no
price set. For those transactions we should really just have a generic
popup.
When Ubuntu released its 2024.04 release late April, they included
Qt 6.4 which was by then already old and out of support. For some
reason they did not include the Qt LTS 6.5 which at that point was
already out for a year.
So, people are stuck with a really old Qt that has been out of
support for a very long time already on ubuntu and derivatives
like mint.
(re) add a backwards compatible define to make stuff compile
on this old version of Qt.
This moves the creation of the portfolio to happen the moment we
finished loading. (wallets were loaded either way)
The networking is the part that now waits for the user to unlock before
it does anything.
The default now is a "small" one at the bottom that users will be able
to use with their thumbs. A common input way.
For fat-fingered people we keep the current full screen input widget,
easy to toggle by the button at the top which now is a 3-state and on
top of that gets rememebered between instantiations.
This revisits the usage of the Info object and who owns it,
in order to increase the stability of the UI/UX
And, as said, it adds a way to edit the user comment directly
in the first popup in a nice user experience.
This actually reads all the raw transactions from disk in order
to parse the outputs and compare it with the user typed address.
To my surprise, it's actually fast. 4000 transactions took 26ms
to filter.
This now has a bit of a jittery bahavior when we're waiting on the
network and maybe to find some peers.
Going back to normal smooth progressbar behavior as soon as one block
has been downloaded.
This removes Qt bug workarounds for a the old 6.5 we no longer use on
mobile.
This adds a new workaround for CHF as that somehow no longer has a
'symbol' set, so now we provide our own.
Also make sure we run a fetch when the user changes the currency.
This section type means that the module will have it's icon shown in
the 'Explore' tab always, it can not be disabled by users and as such
it just becomes an overflow of the main app avoiding worry about a
module not being found.
This moves the decision if it is importing out of the wallet and we stop
using a broken heuristic.
Also cleanup the API usage of the hd masterkey format in the wallet
header.
In the send-sweep module as well as in the PayWithQR this removes
the UserIntent handling and instead moves that to the main.qml
exclusively.
Additionally in the send-sweep module the camera work is split
into its own page, like in the other parts of the app. This helps
us avoiding hacks when we want the main functionality without the
camera.
This is the last of the series of reworks, we should have all
former functionality working again.
Continuing the 'rework send page' series.
This moves stuff that had no business being on the "Send" page to
live on a new tab instead. Prime example was the 'sweep' module
that creates a transaction we send, but to ourselves. So it's far
fetched that it fits in 'send'.