Commit Graph

329 Commits

Author SHA1 Message Date
tomFlowee b916079b63 Rename to have consistent naming. 2024-01-18 23:18:27 +01:00
tomFlowee e8a74673ba Fix 'back' after scan closing the app.
The scanner takes the focus away from the current page, so 'back' would
not see the page and we'd close the app...
2024-01-16 17:46:47 +01:00
tomFlowee 50c1442782 Use actually unique ID for selecting new wallet
When the user creates a new wallet, use the unique ID of a wallet
to find it and use it afterwards.
2024-01-16 17:32:56 +01:00
tomFlowee bebb53b670 Add ability to scan a private key on import 2024-01-16 17:32:56 +01:00
tomFlowee 5b8e5ecf09 cleanups of QR showing 2024-01-16 14:40:37 +01:00
tomFlowee d92db6208a Minor UX fixes around wallet management
- Make sure we always set the proper wallet on create, this would
fail on the very first after the initial wallet being created.

- Don't allow marking the initial wallet as archived in the UI
as that is a non-reversible action. The app will do it automatically
after a couple of weeks.
2024-01-16 10:48:23 +01:00
tomFlowee 0284e81a04 Add various (UX) features
This adds a context menu to open the transaction in the blockchair
explorer.
We also show a visual feedback on copying the txid.
And we update the blocks past to be number of confirmations and avoid
any confusion.
2024-01-15 19:27:33 +01:00
tomFlowee bdd64679b6 Make a tx show the creation time instead of mined
This stores the time of a transaction in the store of the wallet, and
indeed sets it when it is added to the wallet first time.
For instance when we create it or when the tx is first sent to us at
initial broadcast.

We add some logic to the model in order to put a bit more effort into
finding times of a transaction that did not get mined and (before this
code) did not get its time of creation set. Mostly this is about
rejected transactions. And there we guestimate the time instead.
2024-01-15 18:24:40 +01:00
tomFlowee d101945019 Mark rejected transactions clearer as such. 2024-01-14 14:30:29 +01:00
tomFlowee c802ca4b83 Add backup height to the UI for non-HD wallets 2024-01-14 13:52:46 +01:00
tomFlowee 9d47c69b08 Fix backup screen showing incorrect start-height.
It now correctly shows the blockheight that the wallet was created at,
which makes sense to backup.
2024-01-13 18:17:08 +01:00
tomFlowee 39232e379c Add the Hausa translator here 2024-01-09 21:04:48 +01:00
tomFlowee b0a0528b93 Reviewed the checkbox 2024-01-04 22:12:08 +01:00
tomFlowee 6f9f17a46b Make scanning simple QRs better.
This specifically allows pasting and scanning of bitcoincash addresses
without the 'bitcoincash' prefix.
Additionally this cleans up the QRScanner API a little and merges two
methods.

Last, at popular request, this makes showing the address on the
confirmation screen default to be on.
This allows people to actually verify the address they pay to.

Except when paying to a BIP70 payment because that is practically
speaking a system that avoids talking about addresses in the first
place. No point in trying to verify the actual address THERE.
2023-12-22 19:25:16 +01:00
tomFlowee b317e20bdf Make pressing back on popup close popup
All key handlers should act on 'pressed' instead of 'released' in order
to avoid a parent stealing a key from a child.
2023-12-07 12:55:39 +01:00
tomFlowee 6bafcecde9 Wrap the GuiSettings in a Flickable
For some screens it would not fit anymore on one screen.
2023-11-06 20:03:52 +01:00
tomFlowee d976ebbb59 Set focus properly after scanning.
In the case where there is no specific input needed, because the amounts
were all specified, we still need to set the focus to the page because
otherwise 'back' / 'esc' don't behave correctly.
2023-11-06 17:17:18 +01:00
tomFlowee 2279369569 Fix typo in language-name
Thanks for Georg for reporting!
2023-11-06 16:29:01 +01:00
tomFlowee 038cd72428 Re-work 'back' button behavior
Pressing 'Escape' or (android) back button is now more logical.
Closing the menu is new, going back to the 'main' tab as well.
This also fixes some odd behavior when using the back button while the
camera is active.

And last, when there is nothing more to back out of, on Android we end
up closing the application. This is what people expect on that platform.
2023-11-06 16:27:19 +01:00
tomFlowee be3d6607e7 UX; quick-change darkmode unsets system
User-changing the darkmode implicitly unsets the app following the
system setting.
2023-11-06 15:00:25 +01:00
tomFlowee 25909437fd Clarify the terminology 2023-11-06 12:40:11 +01:00
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