Commit Graph

738 Commits

Author SHA1 Message Date
tomFlowee d74d9032ed UX; avoid jumping UI.
With the sync-state label being removed the whole UI used to jump, we
solved that by pushing in the labels a little based on the assumption
that they won't be there very long.
2025-11-01 22:22:31 +01:00
tomFlowee 708c63c880 Redo the AccountsList page
This cleans up and re-does the 'wallets' page, as it is named in the
menu.
This adds some features and inlines some not reused content but mostlie
redoes the UX to something more satisfying.
2025-11-01 21:55:33 +01:00
tomFlowee c169cb4926 Update Enum value names to include NFC_
The lack of namespace means all enums are in the same list, so to
ensure readable code we should make the values more clear.
2025-10-29 22:02:18 +01:00
tomFlowee abb0f0742b Add more usability methods 2025-10-29 18:54:12 +01:00
tomFlowee b112cfa3a5 Add CHIP compliant wallet backup class.
This serializes and deserializes a wallet's HD properties.
2025-10-28 14:48:18 +01:00
tomFlowee 35354f9c09 Remove temporary code. 2025-10-28 14:48:18 +01:00
tomFlowee 431ae4cedd Clarify API with doc 2025-10-28 14:48:18 +01:00
tomFlowee 6fdcb7c2b9 Create a reusable way of getting a populated Mnemonic
The Mnemonic object requires dictionaries that the lib doesn't ship,
but Pay does. So we need a different "constructor" to set those dicts
for the users of the Mnemonic class.
2025-10-28 14:48:18 +01:00
tomFlowee 3aee43d531 Handle NFC scanning resulting in a page opening. 2025-10-28 14:48:18 +01:00
tomFlowee 2118d48fed Add basic NFC support 2025-10-26 18:19:23 +01:00
tomFlowee 1dac966df8 Support newer CMake release. 2025-10-26 13:09:13 +01:00
tomFlowee a6c3e3fed5 Avoid no-discard warnings
The code is also shorter, so that's nice.
2025-10-21 17:49:47 +02:00
tomFlowee 99e1f1e762 Allow a module to request saving 2025-10-20 21:50:50 +02:00
tomFlowee 53dbfcebb7 Add API on Wallet to fetch basic transaction info
Allow more introspection and details on transactions stored in a wallet
by the rest of the application (and modules)
2025-10-12 23:10:40 +02:00
tomFlowee 963ce1064c Ensure the module is easier to implement
Now we make sure that setEnabled and loadSettings are always called for
each module info class, even if the save file doesn't have the relevant
properties.

This makes it easier to tie into the setup of the app.
2025-10-12 23:09:39 +02:00
tomFlowee 45ab9b23bb Wrap Wallet in shared_ptr
The Wallet object used to have a guarenteed lifetime longer than the App
singleton, but then we started allowing people to delete their wallet
(argh!).
Also "external" modules, especially living outside of the main tree,
would be much more stable if they can avoid using raw pointers for core
concepts like the Wallet.
2025-10-08 22:54:27 +02:00
tomFlowee 3d8fad0d23 API comment 2025-10-08 22:54:27 +02:00
tomFlowee 9a2a7538b7 Defensive programming.
So, if this goes wrong, avoid registring the translation module too.
2025-10-08 22:54:27 +02:00
tomFlowee 8a3ad57a85 Increase version number. 2025-09-23 00:13:45 +02:00
tomFlowee 02e940bfd2 New feature; prefer BCH input in payments setting.
This adds a setting in the mobile client where the user to select to
prefer to start inputting the BCH value on payments (that require manual
input of price).
The default is to start with the user selected fiat value.
2025-09-23 00:13:28 +02:00
tomFlowee ce133c8a36 Migrate services to remove all punishments once. 2025-09-22 23:19:36 +02:00
tomFlowee f7128de1c0 Make fetching with electronX handle lack of Internet
We notice a lack of DNS lookup and instead of trying all, we give up
quickly and realize that the most likely reason is that the Internet is
missing.
This avoids giving a punishment to all discovered peers.

Additionally, we recover better and show the password field in such
cases.
And on Mobile this adds a menu option to enable the password field for
better discoverability.
2025-09-22 23:19:36 +02:00
tomFlowee d549c6872d Fix missing argument in tr-ed string. 2025-09-22 23:19:36 +02:00
tomFlowee 1b3a6a0490 Handle double encoded bip70 urls. 2025-09-22 23:19:36 +02:00
tomFlowee 5ed8db6dcd UX: one issue at a time.
We avoid repeat payments generating more than one notification
which would be confusing.
2025-09-15 21:59:03 +02:00
tomFlowee 2057e4035c Improving stability of background runner 2025-09-15 21:42:02 +02:00
tomFlowee 5a26e0b171 Add platform shutdown callback.
When the singleton shuts down, this now gives the platform specific code
an opportunity to do something too.

This avoids doing work after we shut down the application.
2025-09-15 21:42:02 +02:00
tomFlowee 9aa4028f37 Add log section to Android Log Bridge.
Android doesn't have a direct equivalent of our sections, and the tag is
really meant to be the same for the entire application.
As such this simply prefixes the section to our log message. Not ideal,
but at least the information is there.
2025-09-15 21:42:02 +02:00
tomFlowee e8e4a9a19b Avoid race conditions on startup
This makes sure we avoid trying to save the wallet lists while loading
all wallets, which in some cases might happen in a race.
2025-09-15 21:42:02 +02:00
tomFlowee 5a1e6828d6 Add Android Log Bridge
Tie the Android logging system (and transport) into the Flowee logging
system, allowing all C++ calls to end up in Androids LogCat.
This makes remote debugging even simpler by using their multiple
transports like wifi and usb and tools.
2025-09-15 21:42:02 +02:00
tomFlowee f1ba1b0401 Add support for opening the app on planned payments. 2025-09-15 21:42:02 +02:00
tomFlowee cfb23b58df Improve background notifications
This adds things like the notification being unique, avoiding many duplicates.
We add a title and the ability to click on the notification to open Flowee Pay.
2025-09-10 13:57:39 +02:00
tomFlowee da16eddea5 Cleanup old code 2025-09-10 13:57:39 +02:00
tomFlowee 89ce639070 Show notifications for repeat payments.
Repeat payments are handled in the background process and issues and
indeed successes need to be shared to the user via notifications.

We now have notifications for:
∙ successfully sending a repeat payment
∙ when a payment is due soon, but not approved.
∙ when a payment is due soon, but not enough funds are in wallet.
2025-09-09 20:22:57 +02:00
tomFlowee b36e3df6b2 New version 2025-09-05 17:38:31 +02:00
tomFlowee a35e6b167e Also notice changed comment 2025-09-05 17:36:24 +02:00
tomFlowee 4fff156631 Make more GUIs to use screenInsets
For Page inhering screens (BroadcastFeedback/UnlockApplication)
This changes the Page.hideHeader to now act like a full screen,
removing all insets from the Page object when enabled.
The insets are then re-added on the child pages, but
without affecting the background fields, so they cover the insets.

UnlockApplication is a simply full screen widget, we added the
insets to it too.
2025-09-05 12:44:35 +02:00
tomFlowee c436b12bcb Fix Periodic to quit when done
The checkFinished slot is not executed based on a timer instead of based
on progress.
This avoids problems when the downloads were all done but we were still
waiting for something. Now we notice that all is done since we keep
calling the slot because it is on a timer.
2025-09-02 23:38:12 +02:00
tomFlowee 38f969629e From Android 15 we support Insets
The default changed there and the application at full screen is actually
fully full screen. Meaning we need to make space for the statusbar and
menu.

This code fetches the relevant insets from Android and the GUI honers
them in a couple of choice widgets.
2025-08-31 19:28:51 +02:00
tomFlowee 409dc77abe Make sure we wait during tx broadcast in background.
Should we actively be broadcasting a new transaction this now waits for
it to reach the success (or reject) phase before we exit the background
runner.
2025-08-14 10:41:30 +02:00
tomFlowee decee30dd5 Bugfixes and re-enable creating repeat payment
This fixes a bunch of little issues and possible issues, including the
ability to swipe horizontal the main transaction view before we have a
second tab to scroll to.

This also re-enables the adding of the action that turns a payment into
a repeat payment. Currently our only way to create them.
A bit hidden, but we expect that in future other methods will become
available that make more sense.
2025-08-13 16:37:58 +02:00
tomFlowee 231e618f23 Add various UX features for the payments list. 2025-08-12 22:39:42 +02:00
tomFlowee 767532939d Make approving next payment work. 2025-08-12 21:16:19 +02:00
tomFlowee cefa5f7def Refactor and re-enable editing the payment
The UI can now again click on the repeat payment and show / edit it.
The actual objects are now created elsewhere and the savedPaymentHandler
no longer owns them, vastly simplifying that class.
2025-08-12 16:29:26 +02:00
tomFlowee 884a7bf5d8 Redo the list of planned payments
This adds a proper list model for the list and refactors the rest a bit
around that.
2025-08-11 16:40:11 +02:00
tomFlowee ef2b1cb61e Make on-boot and reinstall (Android) work.
On those events we re-schedule the background runner properly now.
2025-08-08 19:38:09 +02:00
tomFlowee a572f031ac Avoid calling startNet twice on Android
On Android 'startNet' is called in a more complex way, based on the presence
of network interfaces.
On Android we also don't supply any command line arguments to avoid going
online.
So this is called in the FloweePay_android.cpp file, and it is the same for
foreground and background apps.

For Linux and other platforms the Periodic thus needs to call it manually.
2025-08-08 17:43:38 +02:00
tomFlowee a5d81b4288 Clear up usage and app-state
This introduces a new 'AppBackground' enum in order to make clear
that an app without GUI is possible too. Next to the foreground/hidden
states.
2025-08-08 17:43:38 +02:00
tomFlowee 4f934695c2 Fix unneeded copy of shared ptr 2025-08-08 16:54:30 +02:00
tomFlowee 1b158b53c0 Add logging 2025-08-03 22:39:46 +02:00