2422 Commits

Author SHA1 Message Date
tomFlowee cbc66ce88a Fix 'offline' warning with insets
The Android 15 insets made the positioning of the offline warning
inconvenient, this moves it down to make it look better.
2025-10-26 13:10:29 +01:00
tomFlowee 1dac966df8 Support newer CMake release. 2025-10-26 13:09:13 +01:00
tomFlowee 5f2bed2a0e Support newer version of Docker requirements 2025-10-26 13:08:36 +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 e6bfa98090 Code readability 2025-10-12 23:10:59 +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.1 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 646df54da9 Make clickable notifications auto hide
So when the user clicks it to open Pay, the notification doesn't need
attention later again.
2025.09.0
2025-09-16 13:54:21 +02:00
tomFlowee 20c9f49838 Import translations from CrowdIn 2025-09-15 23:28:20 +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 2a387a72e7 Fix changing payment on finish-edit
When the user finishes with the comment edit field
we no longer change which amount is pinned
2025-09-05 17:31:07 +02:00
tomFlowee 182894e875 Whitespace 2025-09-05 17:29:11 +02:00
tomFlowee 2da83c9c9d Remove dead code 2025-09-05 16:30:54 +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 82ee9d7be8 Update home site 2025-09-05 12:22:21 +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 dc094bcdea Separate features to avoid confusion
The net log is useful without the quick deploy and indeed the quick deploy
will create problems on first install, so according to the law of fewest
surprises these features should not be combined "magically".
2025-09-02 23:14:49 +02:00
tomFlowee 6dd411e49d Minor; fix whitespace. 2025-08-31 19:28:51 +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 5fb7cd9256 Use Adaptive icons.
This replaces the bitmap logos with xml ones.
2025-08-29 14:42:16 +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.0
2025-08-14 10:41:30 +02:00
tomFlowee 2d32642677 Update translations 2025-08-13 16:38:35 +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