Commit Graph

120 Commits

Author SHA1 Message Date
tomFlowee f3de74d7b3 Add subtext 2024-12-21 12:50:27 +01:00
tomFlowee 6dc315cc77 Fix race condition, add autostartSkipped signal
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.
2024-10-28 10:24:58 +01:00
tomFlowee 7e60f1fdea Refactor Intent: disconnect from app lifetime
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.
2024-10-27 21:54:48 +01:00
tomFlowee 0fc17ea5f8 Add bch-wif scheme support for mobile
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.
2024-10-27 21:54:48 +01:00
tomFlowee afa23dba9b Also move control of 'enabled' to the module dev.
The virtua method allows full freedom for module devs to interpret the
user enabling or disabling the module and any of it child sections.
2024-10-27 21:54:48 +01:00
tomFlowee 9f69241bbb API level rename of 'send' to 'action'
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".
2024-10-19 23:09:20 +02:00
tomFlowee 1aa3a14611 Improve downloading of list of transactions
The Sweep feature needs the 'previous' transactions to build the new
transaction.
This shows a progress-report per-transaction as they are downloaded.

Additionally this splits the incoming electron-X reply into lines before
processing.
2024-10-14 20:09:43 +02:00
tomFlowee 1b4ee23f46 Make sweep screen better translatable 2024-10-14 13:28:25 +02:00
tomFlowee 1d7306d322 improve translator help text 2024-10-14 13:28:25 +02:00
tomFlowee e9ee0a22b8 Show num coins found as soon as we know. 2024-10-09 16:53:07 +02:00
tomFlowee 333f1fb401 Re-engineer the TxInfoObject
This separates it into two objects in order to make thead-safety easy
using Qt's signal/slot mechanism.
Additionally this removes magic timeout numbers and simply starts a
timer to check for changes and emit a signal if the status actually
needs updating.

Testing also shows that QML calls the getter a LOT, so I also moved the
broadcastStatus to be buffered and just return that on the call.
This incidentally also simplifies the code, double win.
2024-10-09 16:43:05 +02:00
tomFlowee e96a401bc2 Cleanup and polish the send/sweep module 2024-10-08 21:17:09 +02:00
tomFlowee 4634e17578 Cleanup after ourselves.
The transactions we spent from are downloaded in full, after adding the
spending transaction to the wallet we delete them.
2024-10-06 14:16:43 +02:00
tomFlowee 6aff98edf1 Export more properties and make UX of sweep look good 2024-10-06 14:07:33 +02:00
tomFlowee d7be2d27d6 Add sendsweep properties
This exposes some of the backend data to be shown in the UI.
Also Make 'paste' available for WIFs.
2024-10-06 11:09:34 +02:00
tomFlowee 0ecb7521ad Make AccountSelectorWidget reusable without a Payment 2024-10-05 21:30:39 +02:00
tomFlowee df9f294ee9 Add camera help text to SendSweep page. 2024-10-05 21:13:14 +02:00
tomFlowee 5def4efd26 Build the transaction from the given transactions 2024-10-04 17:14:42 +02:00
tomFlowee 08e2216ce3 Allow result to be used by SweepHandler 2024-10-03 17:57:10 +02:00
tomFlowee caea90b3cb Add ElectronX interaction.
This adds the fetching of utxos and the containing transactions from a
compliant electronx server. Like fulcrum.
2024-10-03 17:57:10 +02:00
tomFlowee 3aa28743f1 Start implementing the sweep module
This adds scanning of private key and processing the data.
2024-10-02 23:04:38 +02:00
tomFlowee 9b7d6749e4 Start new send-sweep module 2024-10-01 21:26:01 +02:00
tomFlowee ad1e187c54 minor fix. More space for touch 2024-10-01 21:14:54 +02:00
tomFlowee 4cdb393f20 Add a recycle icon for the delete-swipe 2024-10-01 19:57:17 +02:00
tomFlowee 3a6e0470a5 Move processing out of UI thread
Processing can take several seconds on a mobile, so we should do that in
its own thread in order to make the progress icon continue rotating.
2024-06-30 22:27:58 +02:00
tomFlowee 845bdbab89 Improve for smaller screens 2024-06-30 16:47:08 +02:00
tomFlowee 59949ebe47 Add the ability to restart download
This adds a label showing the download failed and adds a retry button to
start it again.
2024-06-29 12:15:30 +02:00
tomFlowee 05732c1998 Set timeouts on network
Make requests fail on no network activity for some time. We should then
allow the user to try again.
2024-06-29 12:15:30 +02:00
tomFlowee 7cab767283 Allow the download to be restarted.
We check the first block to figure out if the download is actually the
same one we are about to start, and if it is then Pay will not re-
download the part that is already on disk.
2024-06-29 12:15:30 +02:00
tomFlowee 19efc6575f Split processing and update UI
We set the UI to change from 'downloading' state to 'processing' state,
and now we give the UI the processor time to actually show this new
state on the screen before we start that processing step.
2024-06-29 12:15:30 +02:00
tomFlowee bfa373dc99 Update basic description of the Blocks module
This also adds an icon.
2024-06-26 23:39:30 +02:00
tomFlowee c9d3e5ade4 Fix replacement headers on Android
seems renaming a file that is mapped is not possible on Android, but
remove is. This code now removes the original static headers after we
get an approval of the downloaded file.
2024-06-26 21:30:03 +02:00
tomFlowee 1bcabee85e Add a basic info screen to the 'blocks' module. 2024-06-26 17:58:28 +02:00
tomFlowee 92be995fdd Hide 'blocks' module from user for now
There isn't yet any user interface they can see, so no point in showing
it to the user in the 'explore' part of the app.
2024-06-23 19:55:11 +02:00
tomFlowee 40dce2a91b Minor text improvement. 2024-06-23 19:37:58 +02:00
tomFlowee 7ee064dd59 Add assert detecting misuse. 2024-06-23 19:37:58 +02:00
tomFlowee 47f991a36e Make the DownloadChecker.qml actually functional.
The ImportWalletPage now loads the QML provided by the module,
exposed via the metadata of modules.
The module gets just a blockheight property and then will do
"its thing".
This will either instantly close when there is nothing to do
and continue instantly to the actual import.

Or the module will check the server, initiate download and when
all is setup and done THEN close the popup and continue with
the actual import.
2024-06-23 19:37:58 +02:00
tomFlowee 56f6fcf43c Add QML properties 2024-06-23 19:37:58 +02:00
tomFlowee 6d1cc00eeb Finish the basic functionality of the checker. 2024-06-23 19:37:58 +02:00
tomFlowee ef462fb9df Give some meat to the BlockHeadersChecker
This actually checks the need for downloading more headers,
then decides on which headers to download (from which known checkpoint,
really) and downloads them to a file.
2024-06-23 19:37:58 +02:00
tomFlowee 491af94040 Provide another plugin integration.
Plugins can be plugged into the main menu and the send menu already,
this adds the ability for a (section of a) plugin to be loaded as
custom component in the main app, among others.
2024-06-23 19:37:52 +02:00
tomFlowee 6c54a74eaa Start new module 2024-06-23 19:35:32 +02:00
tomFlowee 2a507a6a96 Move the TextPasteDecorator (and icon) to common
The widget actually is pretty useful on desktop too.
2024-05-05 20:52:26 +02:00
tomFlowee 39b23f3725 Enhance the TestPasteDecorator
This moves the component out to its own file while fixing some UX
issues.

* It is now always visible for (UI) discovery purposes.
* When we paste when there is no matching text we show negative
feedback.
2024-04-30 21:51:16 +02:00
tomFlowee 6312a468af Improve the entry of pin and numbers. 2024-02-14 00:02:53 +01:00
tomFlowee a6af4c8771 Remap 'tried' to a more logical backing value.
This changes 'tried' being about the amount of peers we actually
handshaked with to the amount of peers we tried to connect to at all.
2024-02-10 21:56:59 +01:00
tomFlowee 2eff679495 Improve list UX
We add animations on remove and give an indication of connectionid
2024-01-28 19:58:27 +01:00
tomFlowee 34b676d043 Make the un-finished connections show lighter too 2024-01-28 15:28:51 +01:00
tomFlowee 5554636c71 Show number in header 2024-01-26 14:44:34 +01:00
tomFlowee 1455d90b30 Add ban / disconnect UI elements on NetView 2024-01-26 14:26:40 +01:00