Commit Graph

738 Commits

Author SHA1 Message Date
tomFlowee 644241255f Revert "API level rename of 'send' to 'action'"
This reverts commit 9f69241bbb.

Reason for revert is that instead of renaming the send, we're now
creating a new tab instead. So we'll keep "Send" and add a new one
as well.
2024-12-22 15:02:30 +01:00
tomFlowee 3800093643 Rework 'Send' page. Part 1.
The initial design has done well for over 2 years, but problems
are starting to show.

This does a bit of cleanup in the UX and many cleanups in the
underlying architecture that were the result of those UX choices.

We remove the clipboard (paste) concept from the camera pipeline
completely and simply make it a new top-level button "paste" on the
send page. This helps discovery AND helps architecture!

The both workflows now also become 2 stage affairs, when the button
is pressed we open a page that does the scanning or pasting and then
introspects the actual data in order to redirect to the right page.
This means that we auto-detect if the scanned item is an address or
a private key or whatever, and handle it appropriately without needing
any user interaction.
2024-12-22 14:56:14 +01:00
tomFlowee 0dbff50f2b Rename for consistency and cleanup
This cleans up the frame after usage in order to make sure that the next
iteration of scanning will happen based on new data.
2024-12-18 16:56:10 +01:00
tomFlowee 520241ba9b Remove support for old Qt
This removes the support for older than qt65 for mobile.
Qt65 was released April 2023, making the code we now release not
needed anymore. End of 2024, and us moving to 6.8 feels like we're
safe in removing it.
2024-12-18 15:51:55 +01:00
tomFlowee dd596c5740 Refactor notifications and add Android support
This takes the NotificationManager and splits it into multiple
compile units based on the backend that is available.
The 'dbus' was the only one available so far (which serves
kde/gnome desktops) and this is moved to its own file.
This adds android support as well, but so far only for block
notifications (when a new block is mined).
2024-12-18 13:05:52 +01:00
tomFlowee 9364b2e97a Prepare for december release 2024-12-16 10:30:20 +01:00
tomFlowee 197fd07dde Merge branch 'android-buildenv' 2024-12-16 10:18:42 +01:00
tomFlowee 61967f61f8 Remove no longer needed hack 2024-12-16 10:10:12 +01:00
tomFlowee e7b8740986 Avoid copy 2024-12-16 10:10:12 +01:00
tomFlowee 33a728799d Switch explorer
The blockchair explorer seems to be down a lot more, so lets
point to the new iteration from the same team.  3xpl.com
2024-12-04 23:43:05 +01:00
tomFlowee 3c9f1111e8 Fetch current price only when needed
Only fetch on startup if the last fetch is more than 5m ago
2024-11-30 16:54:55 +01:00
tomFlowee bc2ee8abe6 Auto hide sync status when we're up to date.
This upgrades us to no longer use the expected block height based
on current time, but instead uses the certainty we get from asking
various peers for their view of the world.
Now when we are certain that we're at the same tip as the rest of
the world, we can safely hide the 'up to date' text and make the UX
again a little bit simpler.
2024-11-30 16:54:55 +01:00
tomFlowee f72663df66 Add backup sync progress to bar 2024-11-30 14:33:15 +01:00
tomFlowee 8bbea6c0fe Follow upstream wrapping of shared_ptr 2024-11-29 15:40:15 +01:00
tomFlowee aa7096a2d2 Avoid doing work when no request is open. 2024-11-29 14:59:07 +01:00
tomFlowee 2012d6df6d Avoid a define for the wallet log level.
This is a general cleanup, making the log levels not be defines but just
a constexpr or hardcoded. Just like all of them.
2024-11-28 23:14:28 +01:00
tomFlowee 527c1c3dc5 Various possible fixes for camera usage. 2024-10-31 20:50:01 +01:00
tomFlowee 26b48c5c49 Add Android shortcut: Scan QML
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.
2024-10-31 12:09:19 +01:00
tomFlowee c97890401e Show seed-phrase-password in backup details pages. 2024-10-28 14:47:34 +01:00
tomFlowee 191c22b549 Return zero fees if we don't have info 2024-10-28 11:26:19 +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 cabaece733 New version 2024-10-27 21:54:48 +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 6b9473e304 Fix indent. 2024-10-27 21:54:48 +01:00
tomFlowee 1203da046d cleanup includes 2024-10-27 21:54:48 +01:00
tomFlowee 19a19df5d3 No longer make sweep module enabled by default
With webpage based scanning and the landing page button, the access is
there. No need to have a button always on the 'send' tab.
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 a8a2cf8329 Upgrade module config saving
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.
2024-10-27 21:54:48 +01:00
tomFlowee a3af22ea84 Add Android support for bitcoincash scheme
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.
2024-10-24 20:36:26 +02:00
tomFlowee 2ce52044b1 [UX] Add filter-overlay with filtred-count 2024-10-23 19:00:18 +02:00
tomFlowee e6011e5b01 Invert filter meaning for nicer UX 2024-10-23 12:50:31 +02:00
tomFlowee c9a80d5058 Skip saving on delete
Since we use the wallet to find details of the saving, this is dangerous
in case the wallet gets deleted before the model on shutdown.
2024-10-23 12:28:39 +02:00
tomFlowee 8f220f98b7 Save the filter preferences to disk. 2024-10-23 00:05:02 +02:00
tomFlowee 871e5b1abd Make the filter-popup UX nice.
This also makes us hide the cf check on a wallet that doesn't have any.
This also adds a checkbox to filter on transactions without comment
2024-10-23 00:05:02 +02:00
tomFlowee ffb85bb403 Add ability to filter history
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.
2024-10-23 00:05:02 +02: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 f0c250e71b Fix unneeded COW 2024-10-19 23:04:13 +02:00
tomFlowee 3ead4b6100 Update default wallet on 'replace'.
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.
2024-10-18 15:54:23 +02:00
tomFlowee d7f11b40d4 Add watchdog here too.
As electroncash.de showed, we need a timeout watchdog for cases like the
server being badly setup. (connect on ipv6 never receives any answer).
2024-10-18 15:54:23 +02:00
tomFlowee 3b0398dd24 Make small amounts of punisment count.
The fetching of a good peer now prioritizes the peers that have the
least punishment.
2024-10-18 15:54:23 +02:00
tomFlowee e4d5b16538 Be more agressive in dealing with bad EC peers 2024-10-18 15:54:23 +02:00
tomFlowee 6bf8bd1090 Make discovery work with more services.
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.
2024-10-18 15:54:23 +02:00
tomFlowee a981008852 Fix logic 2024-10-14 20:50:20 +02:00
tomFlowee 75da4c82f8 Increase version 2024-10-14 20:09:43 +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 ebf0f38b1f Add wallet delete / reindex features
This adds the backend code and the buttons that allow deletion of a
wallet.
Formerly you could archive a wallet and thus remove it from view,
at popular request an archived wallet now gets a button in the
wallets overview to delete the actual wallet completely.
This indeed also removes the files from disk, making it unrecoverable.

Additionally, an actually more complex feature, this allows an existing
wallet to have its history removed and start a re-scan to re-download
all transactions and build the balance.
This is useful for debugging or for recovering from buggy code we
probably had in older versions. (nobody is perfect all the time)
2024-10-11 22:12:26 +02:00
tomFlowee c805dee6e3 UX: show camera screen instantly
When you open the payment screen now the black camera screen is
instantly shown and the camera as soon as possible.
This avoids confusing UI states.
2024-10-10 13:28:15 +02:00
tomFlowee b470f739a6 Handle wallet exceptions better
This code now catches the exceptions and logs it.
For instance when a wallet is aware of a transaction but can't find
the file on disk, we now don't just weirdly misbehave but forward an
error.
2024-10-09 23:31:59 +02:00
tomFlowee e9d0af2f0d Fix paying from a wallet containing rejected tx
This adds more checks on loading and saving and avoids trying to spend a
rejected transaction output due to confused internal state.
2024-10-09 22:06:17 +02:00