Commit Graph

185 Commits

Author SHA1 Message Date
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 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 b450d613bc New version 2025-04-08 13:01:26 +02:00
tomFlowee dffcda40d8 Use a serious name 2025-04-08 12:17:21 +02:00
tomFlowee 18b446d6e0 Don't request permissions unless needed 2025-04-08 12:15:56 +02:00
tomFlowee 58f2f8dd18 not a foreground service afterall 2025-04-08 12:13:18 +02:00
tomFlowee fc9f6f2658 Fix java string compare
Probably the oldest gotcha on Java, strings can not be compared with
the == sign.
It's been several decades, so I have a bit of an excuse ;-)
2025-04-08 12:00:05 +02:00
tomFlowee 3f7cdc7dac Add onBoot Android notification
The background timer stops when the device reboots, as such we
need to re-start the periodic service timer at device boot.
2025-04-06 12:55:26 +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 a69a2a2096 Set the statusbar text to be light on Android 2025-03-13 21:22:13 +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 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 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 b5936d3ca0 New version 2025-03-09 16:16:19 +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 d5a632170f Drop the foreground service requirements 2025-03-06 21:17:10 +01:00
tomFlowee 3381e9910c Lower the notification level of blocks being mined 2025-03-06 15:46:19 +01:00
tomFlowee e59eda5050 Seems QtCore doesn't (any longer) requires this 2025-03-04 11:23:50 +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 3991869dfa Stop the service afterwards 2025-03-03 13:42:36 +01:00
tomFlowee 16ef0e568a Move package name 2025-03-02 20:28:04 +01:00
tomFlowee a85f5e7894 Add background sync for Android
On Android this enables the application to run just a simple
quick sync and then exit the app on regular intervals.
The main benefit is that when the user doesn't run the app very
often they will avoid having a long sync time.
2025-03-02 19:57:02 +01:00
tomFlowee 7f28284b35 Remove unneeded include
This was added by default by the Qt tools, making me ship
4MB too much without noticing for too long.
Stop shipping androidx classes.
2025-03-02 19:57:02 +01:00
tomFlowee 21eeab2f98 Add offline checking for Android.
Add logic to notice that the device is offline and notify the
user of this fact on screen.
Repeat checking so we can notify the user that network is back.

This shows in the UI (of the mobile form factor) that the device
is offline and we avoid starting the p2p layer until network
is detected to be there again.
2025-03-02 19:57:02 +01:00
tomFlowee d9e6374ef6 new version 2025-02-24 22:28:16 +01:00
tomFlowee 745199f3b9 Update to the latest Qt: 6.8.2 2025-02-17 22:34:53 +01:00
tomFlowee eeba43969d new month, new version 2025-02-10 20:20:39 +01:00
tomFlowee 62b5465598 New version 2025-02-01 20:09:34 +01:00
tomFlowee 281619324e Make script a little more robust
Docker doesn't like relative paths, so ensure that the path we pass
is absolute regardless of user input.
2025-01-09 23:01:36 +01:00
tomFlowee a8ad9450f8 Move to next month 2025-01-07 20:40:38 +01:00
tomFlowee 0519317443 New version 2024-12-31 15:57:17 +01:00
tomFlowee 2fff1ebcb4 New version 2024-12-23 19:03:43 +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 673e816961 Fix package 2024-12-18 13:05:52 +01:00
tomFlowee 7f06c0b162 Make this a comment. 2024-12-16 10:42:28 +01:00
tomFlowee 9364b2e97a Prepare for december release 2024-12-16 10:30:20 +01:00
tomFlowee 9598e547d0 Use new Qt 2024-12-16 10:10:12 +01:00
tomFlowee 814fc82897 Adjust Qt build
This reverts a broken Qt patch wrt translation selection. See QTBUG-131894
This removes various Qt features from the build that we don't need
in order to keep the library size down.
The qtdeclarative module went from 4285 ninja tasks to 2387, or for the
android buld from 4117 to 2251.
2024-12-16 10:10:12 +01:00
tomFlowee b463347b39 Upgrade versions in reproducable Android build
This updates all the relevant libraries we use to their latest stable
versions in the reproducable build environment we use for Android.
2024-12-16 10:10:12 +01:00
tomFlowee 815e21d233 Make a specific icon for the QR shortcut 2024-10-31 12:51:51 +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 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 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 c86d6745d9 Make build failures stop the script.
No point in printing a cheerful message after a build failure.
2024-10-24 20:36:26 +02: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 75da4c82f8 Increase version 2024-10-14 20:09:43 +02:00