658 Commits

Author SHA1 Message Date
tomFlowee d8e45a93fb Make swipe-start area smaller
To swipe from the left edge now is limited to only 50 'pixels'
instead of half the width.

Additionally, don't allow interaction while the app pin-screen
is showing.
2023-11-04 16:27:55 +01:00
tomFlowee 692b29404f add credits 2023-10-29 22:50:41 +01:00
tomFlowee 2600dd960c Remove stop 2023-10-29 15:59:12 +01:00
tomFlowee d5f53acc39 Fix display bug, missing texts. 2023-10-29 11:34:29 +01:00
tomFlowee e67d5a1453 {Android} fetch phone dark-theme setting.
This calls Java code on Android through the Qt JNI bridge
in order to learn the phone-wide setting of dark-theme.

For new installs this will now follow the phone setting by default.
Add GuiSettings: dark mode option.
2023-10-28 12:18:11 +02:00
Calin Culianu 95ff48c314 Implement reviewer suggestion plus fixes
In addition:

- Made it work with latest commit to Flowee/thehub/#5.
- Works better now when decrypting the wallet (accountInfo.isElectrum property
  should not be CONSTANT but instead notify on change)
- Made the actual wallet seed phrase type get saved to the wallet rather
  than a bool. This type comes from enum HDMasterKey::MnemonicType in
  thehub libs.
2023-10-19 18:26:50 +03:00
Calin Culianu 5b5a9f9c96 Added Electrum mnemonic format changes to mobile app UI
This works just like the desktop app.
2023-10-19 18:26:50 +03:00
tomFlowee 1deccd9226 Make fiat mode an actual bool on BitcoinValue
The CPP now does more of the (heavy) lifting and the UI layer can
ignore
most of the details with regards to there being digits behind the
separator for fiat at all.

The internal change is that the fiat based values are always processed
in cents, even if the cents are not displayed. This solves incorrect
display and generally removes special cases.
2023-10-18 11:43:23 +02:00
tomFlowee 33ba861af2 Make sure the value is up-to-date. 2023-10-18 11:39:35 +02:00
tomFlowee dbbbd79f0a Add comment explaining the warning. 2023-10-17 12:02:24 +02:00
tomFlowee 2e71a162aa Tweak and fix clipboard paste based workflows.
One surprise was that the main usecase of pasting is one where the user
activates another app to go and copy data in order to come back to paste
it.
And the Qt clipboard didn't manage to get any notification of clipboard
changes. Even copying data on becoming active had no effect.

So now I just show the paste optimistically when the user comes back
from another screen, assuming the main reason for that was to copy.
2023-10-17 12:02:24 +02:00
tomFlowee 38a9ad3a4e Fixlets in colors.
Make sure that the header-menu actually is visible on Pages.
2023-10-17 12:02:24 +02:00
tomFlowee 7cdd3acdf7 Improve clipboard interaction on making payments.
This makes available a clipboard helper component in QML.
Based on filters we then can make the 'paste' button visible and
only allow pasting stuff that is remotely useful.

This then also adds a 'paste' button to the transaction-building
module, the 'destination' screen.
2023-10-17 12:02:24 +02:00
tomFlowee 117ccf0e03 Limit menu-opening gesture to mobile
We test on desktop, but this component with an actual mouse stops me
from clicking on the "Home" button in the test env. So lets just turn
that off and make the slide-to-open only happen on production devices.
2023-09-06 16:22:21 +02:00
tomFlowee 8d3091bdd1 Disable input when not visible
Avoids weird interactions on the receive tab.
2023-09-06 16:21:09 +02:00
tomFlowee c0598d2f88 Fix interaction with this screen.
A Flickable seems to eat mouse clicks by default, so even if there was
no warnings it would stop allowing any interaction with the screen.
2023-09-06 16:21:09 +02:00
tomFlowee 02288299fc Improve BIP activation on startup
For desktop we now properly support starting a payment when
the user clicks on a bitcoincash link in a browser.

For Android the activation logic _should_ work, except that the
Android specific way has yet to be tied to our app.
2023-09-05 20:45:32 +02:00
tomFlowee e06438d60f Avoid warning during startup. 2023-09-05 18:48:22 +02:00
tomFlowee 69e0fe8869 Finish up BIP70 feature
Squash of 12 commits, this makes the UX actually useful and
we detect errors and show errors and warnings to the user.
This also adds an 'editable' bool to OutputDetail in order to
disable editing of a payment request address.
Additionally, this introduces the ability for a Payment to carry
a raw script instead of an address. So op-return or more complex
payment requests will be sent just fine.

Fun fact is that our broadcast is INV/SendData, which is two
roundtrips and thus slow, which is needed to be sure we get proper
rejection messages.
The sending of the transaction via BIP70 causes the network to
already know about the tx because the server we send it to has
likely much better Internet than we do.
So confirmation from the payment provider is used to show success
instead of the normal way.
2023-09-05 13:38:24 +02:00
tomFlowee bc459f74d5 PaymentProtocol abstraction
The PaymentProtcol class now handles the pasting of a payment uri,
like bip21.

Additionally this adds the feature where we pass in the payment uri on
the commandline which then results in an auto-opened payment screen.
2023-08-30 23:46:00 +02:00
tomFlowee b671dfc3a7 Allow showing address in more cases.
The QR scan page now also allows showing the destination address
while the number keypad is up, being smarter with the layout of
the various lines in order to fit the important info on screen.

Additionally we require the user to first enable the 'edit amount'
option before we make available the option to 'send all'.
2023-08-30 12:50:40 +02:00
tomFlowee d1e5c99f1b Limit swipt-for-menu to the main screen.
This makes sure we stay consistent and the UX doesn't need complicated
code to make sure all user-actions are accounted for.
2023-08-28 22:15:49 +02:00
tomFlowee d9ce8f4b6e Add feature; drag to open menu.
People that only use one hand will no longer need to use the other to
reach the button at the top for the menu.

Instead we now allow a swipe in the bottom left corner, swiping to the
right will make the menu open.
2023-08-28 18:41:08 +02:00
tomFlowee ba08f1e39a Work around QTBUG-116527 2023-08-28 12:04:51 +02:00
tomFlowee 735c2b0265 fixlet 2023-08-27 23:12:07 +02:00
tomFlowee 5fbd7a3f0d Show instant pay threshold on QR scan page 2023-08-27 20:39:46 +02:00
tomFlowee 632223d0f0 Fix layout of warning 2023-08-27 20:36:30 +02:00
tomFlowee fe5d819234 Mention the new translators in the credits.
Also remove the beta-testers, we've been out of Beta for AGES now :-)
2023-08-27 19:09:43 +02:00
tomFlowee ae9bb0827d Fix typed characters showing twice. 2023-08-27 18:46:13 +02:00
tomFlowee a56e762853 After hiding on Android for some minutes we lock again
The Android design is that you can "close" the app while it is not
actually killed. It stays frozen but in the background.
This makes Pay check the clock on 'wake up' and if 10 minutes has passed
it will lock again.
2023-07-06 11:23:08 +02:00
tomFlowee 337f93e44e Improve the UX on the broadcast screen
This adds some new fields and fixes various small UX issues.
2023-07-05 17:04:14 +02:00
tomFlowee 4eb0053042 A litheny of UX-bugfixes. 2023-07-05 12:24:31 +02:00
tomFlowee 89ce6fcf53 Comment out the not yet supportd part
Lets move the UI / UX for encrypting wallets to a future release.
2023-07-04 23:25:18 +02:00
tomFlowee 2fc269a5cf Add the new module type to the GUI.
This shows an icon that indicates that the module will be made
available in the menu, if that module is able to do that.
2023-07-04 23:16:35 +02:00
tomFlowee 7f5e4130ad Move the Netview to a module of its own: Peers-view 2023-07-04 22:35:58 +02:00
tomFlowee dd33a32c9d Fix missing property
this makes it work again.
2023-07-04 20:50:39 +02:00
tomFlowee 0b911143e9 Remove hack and just use FocusScope items 2023-07-04 20:24:26 +02:00
tomFlowee bff9cd5dc2 Introduce app-level password feature and more.
We already allowed individual wallets to get PIN-to-Open/PIN-to-Pay
but that is too advanced for most users. Not to mention that encrypted
private keys means a slower payment process and certain types of
features become impossible. Like auto-invoicing (incasso).

The gap, for mobile, is a simple not-encrypting password on startup
of the app which is likely what 80% of the privacy / security minded
people on mibile will be more than happy with.

This adds this mode and additionally streamlines the encrypted modes
of wallets.
2023-07-04 18:39:16 +02:00
tomFlowee 3ec9a5cb4d [UX] Cleanup the NewAccount page sources.
Also add a little spacing.
2023-07-03 12:24:55 +02:00
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 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