On Android the placeholder text is very unfortunately positioned that
most people will consider a bug.
So we stop using that and instead put the text just above the actual
widget, fading the text when the user starts typing.
As this is on mobile, we also add a blinking fake cursor in the text
field to make it super clear what the intention there is.
The alternative would be to give focus to the field and have the real
blinking cursor, but that would open the virtual keyboard and hide the
big close button.
So fake blinking cursor it is.
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.
When a new transaction is sent and edited directly in the backend
we expect that the item is re-created and thus the on-initial-
construction method to be called.
But, QML caches and thus our smart solution doesn' work.
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.
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.
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.
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.
This changes the notes property to be only set by the user of the
BroadcastFeedback.qml, and not from inside anymore which could break the
property binding causing strange things to happen.
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.
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.
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.