Commit Graph

738 Commits

Author SHA1 Message Date
tomFlowee 25e91abca9 New month, new version 2025-05-02 22:18:33 +02:00
tomFlowee 5f1b91de65 Increase install date default 2025-05-02 22:17:43 +02:00
tomFlowee fc5aa9dc42 drop support for Qt6.3
This feature was added in 6.4, which is already very old.
2025-05-02 22:14:50 +02:00
tomFlowee ef674547f3 Make the on background service restart on reboot.
The on boot complete android feature is tricky, it allows
very little in the actual callback and the strategy that works
best now is to make that callback schedule a single background
run, which will in turn plan the normal schedule.
Or insta-exit if the user had no wish to do background running.

This additionally also triggers on the my-package-replaced
signal in order to ensure that an upgrade doesn't disrupt the
background running schedule.
2025-05-01 21:40:24 +02:00
tomFlowee b527b2bf1d Improve look of fiat rendering
In the case of AlwaysAddSign, the plus or minus is now always the first
character of the string. Which is more in line with bookkeeping
standards.
2025-04-24 19:46:58 +02:00
tomFlowee d692c31a5b Fixes to make the android notifications work. 2025-04-24 19:09:24 +02:00
tomFlowee 31a8abce10 Tie tx-notifications to Android system.
We re-introduced a checkbox to enable notifications.
We now have a second type of notification, one for incoming transactions
that may happen when the app isn't in the foreground.
2025-04-24 11:29:29 +02:00
tomFlowee e162bd5f80 Improve text for notification of new transactions
The text now special cases several common occasions that gave confusing
texts.
We additionally fix the position of the "+" sign to be behind the
currency symbol, like it was always supposed to be.
2025-04-23 17:52:09 +02:00
tomFlowee b12cc10a31 Reorder header file into groups.
The public methods have been changed to group the types of method
together.
There is a group for transaction properties, a group of other
properties, a group of utility functions and a group of wallet
management functions (for things like private keys and the like).
2025-04-23 17:52:09 +02:00
tomFlowee 41deb2b6dd Make transactions I send not show a notification.
The in-app notification is rather silly to show when
it is a user initiated action.
2025-04-23 17:52:09 +02:00
tomFlowee a1b18d3f02 Replace block notifications with confirmations
We remove the block notification feature, as that was nice but useless.
This instead introduces a way for a transaction we created to be marked
as needing monitoring and when a block comes in we create a notification
explaining it has been mined.
2025-04-23 17:52:09 +02:00
tomFlowee 6049d942e5 Ensure the transaction keeps broadcasting
If the user closes the UI before the broadcast has completed, we would
stop broadcasting. Which is unfortunate and not what users expect.
As such we simply hold on to the object for a while (10 min) before we
delete it when it is quite likely already sent.
2025-04-21 17:37:53 +02:00
tomFlowee da5ad4d9d0 Improve notifications
Notifications are now filtered better to avoid showing events on
transactions that came in which are filtered from view.
2025-04-19 17:27:18 +02:00
tomFlowee 2a713bcd45 Remove null flag enum value. 2025-04-19 17:24:10 +02:00
tomFlowee 1ab3607900 Make notification manager aware of being visible
Notifications should have the opportunity to skip the OS layer and
simply be shown in-app instead in case the application has the users
attention anyway.

While knowing a notification should be sent to the system tray
otherwise.
2025-04-17 20:30:53 +02:00
tomFlowee 50b4ba57aa Make finding electron servers more agressive.
This moves the fetching (by dns) of the servers to the launch of Pay
instead of at the start of the module.

This periodically removes punishment scores in order to reassess remotes
and have long health guarentee.

This also works harder to find any servers even if all have a higher
punishment somehow.
2025-04-13 13:00:03 +02:00
tomFlowee b450d613bc New version 2025-04-08 13:01:26 +02:00
tomFlowee 3090b74e4f Update amountToString to remove the stringBuilder
This cleans up the code even more, unifying the different cases
into one simple approach.

Added a unit test to verify the result.
2025-04-07 20:59:40 +02:00
tomFlowee b0c4545b09 Improve typing/pasting of seedphrase
This adds the ability to paste an almost correct seed phrase, for
instance when the last word is cut off.

We also provide a new UI to propose words while typing the seed,
allowing the user to tap on the words instead of having to finish typing
them.
2025-04-07 15:35:44 +02:00
tomFlowee 10fac24f74 Rewrite FloweePay::amountToString() to add groups.
The group separtors (aka thousand-separtor) as used by the system locale
are used to format the string now, and we upgraded this to use UTF16 in
order to avoid problems when they are not ascii.
2025-04-06 16:05:13 +02:00
tomFlowee db0ca5a779 Make the fiat-price show question mark if unknown. 2025-04-06 13:15:25 +02:00
tomFlowee 504cb7fe9b Convert this one too 2025-04-02 11:27:25 +02:00
tomFlowee 2278f693a6 Delay checks of onAppShown until unlocked
This delays checks like being online until after the user has typed the
pincode should the app be locked.
2025-04-01 23:01:27 +02:00
tomFlowee 9a8809fc70 Improve the background-running Android stuff
After setting, check if it was approved by the user, and if not
unset the checkbox again.

Bugfix:
On some Android implementations, setting this value opens a screen
even if the value is already set, while on many others that is a no-op
as you'd expect.
So for those phones we check first before we set.
2025-04-01 10:50:34 +02:00
tomFlowee 69e390ac6c Add support for pasting a bip70 style url 2025-03-25 14:41:46 +01:00
tomFlowee a8aa8dd2e2 remove unused code 2025-03-25 12:52:52 +01:00
tomFlowee 8047fbbadb Add auto-locking feature
The application and wallets will re-lock after 10 minutes of not using
them.
2025-03-24 20:09:07 +01:00
tomFlowee ecc4272745 Rename file to not be a dummy anymore.
As we actually add code, it makes sense to name it 'basic' instead
of dummy
2025-03-24 13:35:47 +01:00
tomFlowee 11ff1c8d87 Avoid calling price->start() twice on startup 2025-03-24 13:33:22 +01:00
tomFlowee a03bcf91af Allow two Pays running on diff networks.
Make the lock file have a network specific. Testnet/Mainnet.
2025-03-16 23:06:52 +01:00
tomFlowee 8040db971a When a wallet is unlocked, show its receive QR 2025-03-16 22:55:30 +01:00
tomFlowee 539381ce21 Make Camera work the first time again
This removes the Qt middle-man for requesting the camera permissions
and we just code this in our own Java class.

This solves the issue we observed where after the approval of the
user we didn't actually manage to start the camera on some phones.
2025-03-13 15:55:05 +01:00
tomFlowee 94983670a2 Remove commented out code 2025-03-13 15:55:05 +01:00
tomFlowee 651cf98332 Add a space after the prefix here 2025-03-12 21:04:07 +01:00
tomFlowee f8e678bc9b Specifically specify some currencies 2025-03-12 19:05:06 +01:00
tomFlowee e9fc0c1551 Re-enable the powermanagement feature for Android
This avoids using the Qt intermediate and just directly uses
the Android side, including some extra checks like "screen off".

Rework the various methods in a class.

This makes the various android support features be less hacky and instead
are based on a single class with Qt signals and slots.

We also remove the ping feature for checking online state, since Android
seems to throw a random exception (calling virtual method on null pointer
java.lang.String.size) somewhere in the OS libs when you call it the
second time.

This also implements the AIRPLANE_MODE_CHANGED listener to instantly turn
off internet the moment the user enables flight mode.
2025-03-11 23:25:24 +01:00
tomFlowee 66baeab106 Add check to avoid losing data. 2025-03-11 23:25:24 +01:00
tomFlowee 99adaa0a92 Lets start a new version 2025-03-10 23:46:35 +01:00
tomFlowee 0ebc04a054 Add titlebar color setting on Android 2025-03-09 21:42:24 +01:00
tomFlowee 3f6cab3f81 Disable powermanagement feature for now.
The power management turns off the network layer 90 seconds after
the application stops being in the foreground.
At least, that is what it is programmed to do. Unfortunately the
signals we listen to are not reliable across devices and many users
are reporting that this is triggered 90 seconds after start.

For now, turn off the saving feature in order to make sure that
the app operates normally for normal people.
2025-03-09 17:30:42 +01:00
tomFlowee b5936d3ca0 New version 2025-03-09 16:16:19 +01:00
tomFlowee a79e8ff1df Test and fix fiat rendering in some cases
In some locales the group separator is a unicode character that does not
fit in an 8 byte string, causing misrenderings.
We now assume that things fit in 16 bit characters which should fit all
living languages.
2025-03-07 23:27:08 +01:00
tomFlowee 8f388f93f1 Fix bug reported by PL translator; wrong month
This uses the form of the month for 'writing', which is different in some
languages than the form used in an exact date.
2025-03-07 23:27:08 +01:00
tomFlowee a204561557 Check Android powersave mode.
The background service is turned off when the phone is in powersave
mode.
Additionally we don't run any sync in background if the app isn't
active.
2025-03-07 18:31:57 +01:00
tomFlowee 27c9362542 Add a bit of powermanagement for Android.
The Android system is so strict in its power management that a simple
request to have Pay run in the background at night for 20 seconds it is
required to completely turn off powermanagement for the app. An overkill
solution, but that is how it works now.

A nice history:
https://medium.com/its-tinkoff/android-background-restrictions-
b63e73fe508

Side-effect is that if the user granted the turning off of power
management we now have to add code to do it inside the app.
This commit checks when the app is hidden (screen turned off, other app
became front etc) then we wait for a timeout and then terminate
ourselves in order to avoid using more CPU.
2025-03-07 14:37:17 +01:00
tomFlowee 1e0b79ddc4 Cleanup 2025-03-06 15:47:36 +01:00
tomFlowee 079f263296 Add a watchdog timer on the Periodic setup.
Avoid the process to run more than 120 seconds, which should be plenty.
If it is not, it will continue next iteration.
2025-03-04 22:43:21 +01:00
tomFlowee 66f1812cd4 new version 2025-03-03 21:50:43 +01:00
tomFlowee c3a993f45c Add request for block notifications.
This is the only useful notification type we have today,
but at least it allows the user to explicitly go and request
notifications from the Android OS.
2025-03-03 21:35:00 +01:00
tomFlowee 31e6dea3fd Fix scanning an unsupported QR causing a problem 2025-03-03 16:18:15 +01:00