Commit Graph

390 Commits

Author SHA1 Message Date
tomFlowee 6f8369e4ff [UX] Take preedit text into account.
For instant validation and similar, use the preedit text into account to
work around the silly design in Qt where the normal is made difficult.
2023-06-30 23:39:45 +02:00
tomFlowee 049d735a53 Add decrypt of PinToPay wallet in mobile
this also changes the API propertes that handle encryption details a
little. Making them faster and the meaning follows the logical
conclusion of the naming better.

Specifically:

when needsPinToOpen would return true, now needsPinToPay will also
always return true.
2023-06-30 23:18:31 +02:00
tomFlowee 3974dc4b56 Hide fully encrypted wallets from payment flow
When the user is trying to create a transaction we start with the
currently selected wallet. The user is able to change to another wallet
in such flows, but we stop them from seeing
the fully encrypted wallet as the workflow would just become too tedius
and confusing.
2023-06-28 19:23:47 +02:00
tomFlowee 983fb28c9f Add support for the 'countBalance' setting
Now the mobile skin can also enable the per-wallet 'count-balance' bool.
If set to false it makes the balances of the wallet no longer be visible
or indeed counted in the overview. Specifically the AccountSelectorPopup
2023-06-28 11:33:08 +02:00
tomFlowee 5878f8a6b7 Updates to the AccountSelector
* Add a total balance label at the bottom if we have more than one
wallet.
* Add lock icons for encrypted or even partially encrypted wallets
* Add label to indicate an encrypted wallet needs opening before it can
be used.
* Fix spacing in case of larger fonts.
2023-06-28 11:22:03 +02:00
tomFlowee 8db23ba624 Provide a screen to unlock encrypted wallets.
This detects that the currently selected wallet is fully encryted and if
it is, it shows a password request page on top of the current screen.
The default setup aims to have people type a PIN in numbers to unlock
the wallet, but we also provide a way to make it use a textual password
instead.
2023-06-27 20:39:11 +02:00
tomFlowee eb5f95a1a8 support the button being disabled. 2023-06-27 13:17:55 +02:00
tomFlowee 2c58979232 Make the button not the way to stop editing.
When the user starts editing the text label, the way out is to use the
(virtual) keyboards 'enter' or 'done' button.

We mark this button as disabled while editing to avoid weird situation.

This also works around the application completely hanging in Qt651 on
the phone. Hanging as in: Android suggests it to be killed.
2023-06-26 22:32:34 +02:00
tomFlowee 13e63fa86b Make the QR not move upon opening the popup menu 2023-06-23 10:35:35 +02:00
tomFlowee 7e375f50b5 Bugfix how we handle numbers from user input
This is a long overdue cleanup around the ideas of entering
numbers in Flowee Pay.

The core dataclass BitcoinValue now keeps track where the number
came from, either user input or some calculation. This allows
us to have the Fiat and the Coin price stay in sync without weird
problems.
The one we type uses a string, the price field that we are not typing in
is then a slave and we follow the auto-generated number as the
source.

This solves a host of known issues:

* Editing of value objects is much more consistnnt and predictable now.
* Switching to a different fiat type now properly re-calculates the
  values that are slaved. So if the primary is a BCH value then the fiat
  value gets the new exhange rate instantly applied.
* Switching to a different fiat type properly applies having a separator
  So if you go from euro to Japanese yen, we now remove the separator
  and the numbers behind it.
* Changing the app setting from BCH to mBCH now properly updates all
  amounts. Notice that the user-typed string wins, if you typed 2 and
  then change to mBCH we assume you wanted 2, not 2000.
* Paste now works more logcally.
* Cursor is no longer sometimes invisible, requiring backspace to make
  it show up.

And last we now protect against too large numbers. It is seen as an
error to type a number above 21 million BCH.

Fixes #19
2023-06-23 10:35:35 +02:00
tomFlowee cf59f2f06a Make CHF as a currency work for input
As the name is so much wider the widget didn't work well, this
makes the name not overlap.

Additionally, added a space beteween the currency name and
the numbers.
2023-06-20 20:27:21 +02:00
tomFlowee 901b3b5a89 Add flickable around the import page.
Reports show that the button at the bottom may fall out the screen for
some people's settings.
2023-06-20 20:27:21 +02:00
tomFlowee a6bf542108 Revive the QR-only image after it got updated
Not all usages of the old 'QR' image were about scanning, so the
added photo frame ended up causing a UX regression for those
that were used to indicate showing a QR.

Instead we now have 2 icons (at 4kb ascii text each, thats literally
not a big deal) to acoid this confusion.
2023-06-17 16:20:32 +02:00
tomFlowee c4e64a1114 remove unused class 2023-06-15 20:28:23 +02:00
tomFlowee a1e56528f9 new feature: turn on torch on QR scan
We now show a button to turn on the from the QR scanning page.
2023-06-15 19:21:03 +02:00
tomFlowee 1377c01531 Slight alignment fixlet. 2023-06-15 15:59:07 +02:00
tomFlowee bdad39848b Make MultilineTextField usable for code setting text
This stops the widget being confused with regards to the placeholder
text when the main text is set by code instead of by user input.
2023-06-15 15:58:51 +02:00
tomFlowee d94f1faae2 Work on QR scanning
This removes the dependency on the QrEncode lib and uses
the fact that our scanning lib also is capable of making QRs.

We now allow the QR to get its color inverted for dark mode
users, making it less bright to show a QR.

This introduces a new QR-creation mode which allows spaces and
other chars to be in there directly without being URL-encoded.

This improves the QR showing of the user's seed-phrase (in the
backup screen).
This adds the ability to scan a seed phrase with your camera by
adding a button to the wallet import page.
This also adds support for the QR format that the bitcoin com
wallet uses in its QR for seed phrases.
2023-06-15 14:58:44 +02:00
tomFlowee 7be3f7bd26 Remove stray rotate property. 2023-06-14 23:10:13 +02:00
tomFlowee 9dcd608e69 Style the Flowee button.
The buttons on Android are somehow atrocious, lets style it ourselves
for consistency and actually being able to see the disabled button.
2023-06-14 22:53:51 +02:00
tomFlowee 98e193f4ca Copy the userComment here for user-editing
When the payment protocol provides a comment,
lets copy it for the user to see and maybe edit.
2023-06-14 22:53:51 +02:00
tomFlowee da864543c0 UX; pressing 'continue' on receive goes home now 2023-06-14 22:53:51 +02:00
tomFlowee 92b3b260c3 Disable clearing if there is nothing to clear. 2023-06-14 16:20:42 +02:00
tomFlowee 030380dd44 KISS 2023-06-13 19:00:08 +02:00
tomFlowee 89ff36c311 Make the ExploreModules QML prettier
This includes a self-drawn SVG of a ribbon, configurable text on top and
just a simple checkbox to recognize that at this time there is only one
category-type. KISS.
2023-06-13 18:15:52 +02:00
tomFlowee 8cef14fd80 Remove dead code 2023-06-13 15:59:37 +02:00
tomFlowee 58614e17a6 Add a module explorer page in mobile view.
This allows discovering of the modules and enabling / disabling them.
2023-06-13 15:59:37 +02:00
tomFlowee 42d3c2e96b Make the build-transactions module function
This moves the last of the assets to the module and provides the base
requirements to actually make the featue function from a module.
2023-06-13 15:59:37 +02:00
tomFlowee a73e004998 Move QML and introduce i18n concept for modules 2023-06-13 15:59:37 +02:00
tomFlowee 717eafcb1e remove commented out code 2023-06-11 18:20:23 +02:00
tomFlowee f904e5d413 Make the scanner overlay eat mouse events.
This stops clicks from acting on the underlying UI.
2023-06-11 18:10:39 +02:00
tomFlowee 973fc94950 when paste is used turn instaPay off
clipboards based addresses are a lot less secure, physically, than
scanning a QR.
So the user really should validate the payment and thus we turn off
instaPay in those cases.
2023-06-11 18:10:06 +02:00
tomFlowee 94f52e0c7f Add feature; paste address.
Allow users that start by 'pay' to fulfill the payment also using
clipboard instead by providing a 'paste' button on the scanning screen.
2023-06-11 17:58:27 +02:00
tomFlowee ecc5d03975 UX improvements to prioritize normal usage.
When looking at the real usage of flowee pay, we aim for this
to be used 90% (or more) of the time as a better wallet. Wallet
in the physical sense.

This implies that the vast majority of usage is going to be about
paying or receiving.
A small number of times you'll use it to look up the history of
payments.

As such, its Ok to downgrade the account history and make the main
usage more prominent and easy to find.
2023-06-10 22:41:53 +02:00
tomFlowee efa39e0337 Improve QRcode images based on feedback from A@ron 2023-06-10 22:16:08 +02:00
tomFlowee c84af22bc0 Add feedback on incorrect QR.
The scanner doesn't validate the QR, but the Payment object does. So,
verify the result after setting the url on the Payment object and raise
a dialog when the address did not work.
2023-06-05 18:12:29 +02:00
tomFlowee 32f5e5cc95 UX (spacing) fixes
This positions the Dialog more logically and avoids taking space for an
empty label.
2023-06-05 18:10:50 +02:00
tomFlowee 961041cc11 fix token check
Outputs can be null, this is when the outputs are not send to an
address we own.
2023-06-05 16:45:20 +02:00
tomFlowee 49daf7b87e Also show cashtoken indicator on mobile 2023-06-05 10:47:50 +02:00
tomFlowee 4883de304b Export the cashToken bool to the UI
Make clear that we have a cashtoken output in the UI.
2023-06-05 09:58:06 +02:00
tomFlowee 78830c8aa4 Cleanup call to no longer existing function 2023-06-04 19:20:46 +02:00
tomFlowee fe67c5273e Handle invalid addresses better.
The user input now gets the user interface string 'incorrect' instead of
'unset' if no proper address could be resolved from it.
2023-06-04 19:20:18 +02:00
tomFlowee db7162f4d3 Make editing fiat on scanning QR be default.
When you scan a QR which has no price embedded (just an address) this
makes the default go to fiat (euro/usd etc) for what you type.
2023-06-01 23:39:03 +02:00
tomFlowee fc164996d7 Improve UX about when to switch positions.
As long as the user has not added a second wallet there is no
need to show the name 'initial wallet' and thus we show the
'add wallet' button at the bottom.
2023-06-01 16:31:20 +02:00
tomFlowee f34c1e199f UX fix, this makes the 'cursor' go away at edit end. 2023-05-31 16:23:23 +02:00
tomFlowee 49a8a9ce34 Cleanup nice-address usage
A Payment object now has a user-typed address,
a formattedAddress which is a properly formatted cash-address
and last a 'niceAddress' which is the same cash-address but without the
chain prefix.

This cleans up the usage and removes some code from the GUI that did the
string manipulation there.
2023-05-31 15:47:14 +02:00
tomFlowee 752cc9b68a Respect amount of incoming payment request.
A payment request, for instance a QR code, which includes an amount to
be paid is expected to not change the to-be-paid amount, uses being
dropped
in the price editing UI is therefore a bit weird. Almost an
anti-pattern.

This honors that concept and when the price is included in the scanned
QR, we change the UI layout to removed the editing widgets and show
static display widgets instead.

This also adds a header menu item to edit the amount to be paid and
get back to the old UI.
Additionally, a new UI is added to show the address we are about to pay
to, likewise reachable from the header menu.
2023-05-31 15:20:11 +02:00
tomFlowee 00bcdfa796 Make GUI respond to entering a instapay limit. 2023-05-31 10:32:28 +02:00
tomFlowee 2724e2cd67 UX: make checkbox follow price indicator 2023-05-30 19:25:09 +02:00
tomFlowee 1e05c9f6ad Fix overlapping widgets issue 2023-05-30 19:19:57 +02:00