Commit Graph

85 Commits

Author SHA1 Message Date
Milan ef4ccbec81
Feature: Keystone integration (#1692) (#1707)
* Keystone integration (#1692)

* Keystone QR generation and reader

* Keystone account list UI

* Top app bar refactor

* Code cleanup

* Design update

* Keystone version bump

* Code cleanup

* Test hotfixes

* Code cleanup

* Keystone business logic implementation & ui elaboration (#1708)

* Keystone business logic implementation & ui elaboration

* Code cleanup

* Code cleanup

* Strings code cleanup

* Navigation refactor

* Navigation update

* Select keystone account button hotfix

* Navigation hotfix

* Wallet restoration hotfixes and optimizations

* Confirmation refactor

* Design updates

* Strings update and design updates

* Zip321 keystone integration

* Strings update

* Spanish translations

* New SDK changes integration

* New SDK version adoption

* Code cleanup

* Code cleanup

* Transaction history preparation

* Sapling address made optional

* Code cleanup

* Design updates

* Transaction hotfix

* PCZT preparation

* Settings design update

* Strings update

* Code cleanup

* PCZT integration

* Design updates

* Code cleanup

* App hotfixes

* Strings update

* Strings update

* Transparent transaction UI update

* Keystone tutorial link commented out

* Keystone exception handling

* Scan keystone progress bar

* Scan keystone performance update

* Share PCZT debug button

* Optimizations

* Add `MockSynchornizer` functions

* Try-catch address obtaining

Even though this is not the proper way we want to implement it, it fixes #1658 as a temporary solution

* Fix `ExchangeRateState` loading state

* Peformance optimizations

* Account data source exception handling

* Spanish strings updated

* Transaction progress texts updated

* Copy PCZT proposal data

* Dialog window dim fix

* Proposal proof optimization

* Proposal proof optimization

* Transaction progress shielding texts update

* Code cleanup

* Code cleanup

* Code cleanup

* PCZT progress calculation update

* KS promo

* KS sign in progress update

* KS QR progress update

* Adopt `Synchronizer.Status.INITIALIZING` state

* Design updates

* Propagate exceptions

* Updates

* Code cleanup

* Promo update

* Scan fix

* Code cleanup

* Bump to Zcash SDK 2.2.7-SNAPSHOT

* Fix lint warnings

* Make tests update

With follow-up #1713 for fixing the failing tests.

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2024-12-17 18:40:36 +01:00
Milan b424df26df
Address book code cleanup (#1705)
* Address book code cleanup

* Code cleanup
2024-12-02 13:48:55 +01:00
Jack Grigg 6aee0e2469
Address book encryption (#1643)
* Add Tink as a dependency

* Serialize AddressBook to any OutputStream

* Extract address book format parser

* Address book key storage provider

* Address book encryption finalisation

* Implement AddressBook encryption

* Address book encryption code cleanup

* Address book reset hotfix

* SDK snapshot

* Documentation update

* Code cleanup

* Test hotfix

* Error handling

* Code cleanup

* Unencrypted address book removed after successful encrypted file read

* Code cleanup

* Code cleanup

* Test hotfix

---------

Co-authored-by: Milan Cerovsky <milan@z.cash>
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2024-11-15 09:14:12 +01:00
Milan 425052f1db
[#1618] Settings redesign (#1658)
* [#1618] About redesign

* [#1618] Whats new redesign

* [#1618] Delete screen redesign

* [#1618] Export private data refactor

* [#1618] Seed recovery refactor

* [#1618] Seed Redesign

* [#1618] Feedback Redesign

* [#1618] Popup implementation

* [#1618] Localization fixes

* [#1618] Code cleanup

* [#1618] Code cleanup

* [#1618] Code cleanup

* [#1618] Documentation update

* [#1618] Code cleanup

* [#1618] Design hotfixes

* [#1618] Code cleanup

* [#1618] Test hotfixes

* [#1618] Test hotfixes

* Code cleanup

* Changelogs entries update

* Address few review comments

* Fix UI tests

* Fix bottom widget version name in WhatsNew

* Update Spanish texts

* Fix ktlint warnings

* Test hotfix

* Test hotfix

* Code cleanup

* Design hotfixes for small screens

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2024-11-14 14:12:59 +01:00
Honza Rychnovský 4d35a0d5bc
[#1421] Spanish translation
* [#1421] Initial es translation structure

* Update strings.xml

* Update strings.xml

* Fix english texts

* Exclude non-translatable texts

* Add new es texts

* [#1421] [WIP] es translation

* Update strings.xml

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>

* Add Spanish locale to screenshot testing

* Fix Detekt warning

* Changelogs update

* Add WhatsNew chnagelog Spanish logic

* Spanish WHATS_NEW cleanup

* Google Play Store listings

* Fix history item buttons positioning

* Ktlint warnings fix

* Add Flexa texts on Integration [ES_REQUIRED]

* Adopt latest Spanish in-app review comments

* Update strings.xml

* Revert Zcash to Zashi in Spanish text

* Update Spanish whatsnew

* Update Spanish Google Play Store listing

---------

Co-authored-by: y4ssi <11613913+y4ssi@users.noreply.github.com>
2024-11-11 12:47:16 +01:00
Milan c773e7d1c7
[#1533] Flexa integration
* [#1533] Flexa integration

Closes #1533

* [#1533] Code cleanup

* [#1533] Finalisation

* [#1618] Flexa payment biometrics

* [#1618] Design update

* [#1618] Local maven added

* [#1618] Code cleanup

* [#1533] Material3 version bump

* Fix proguard rules

* [#1533] Flexa hotfixes

* [#1533] Flexa hotfixes

* Changelogs update

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2024-11-04 12:53:43 +01:00
Honza Rychnovský 359d4a5eea
[#1640] Add authentication to app launch
* [#1640] Enable app entry authentication

* Reworked app launch UX/UI

* 15 min background reauthenticate trigger

* Changelogs update

* Disable app entry authentication on test services

* [#1656] Add Network Type to email template

* Address review comments
2024-10-25 18:37:15 +02:00
Honza Rychnovský 2129adaa8d
[#1595] Build Request ZEC Uri Consume Part (#1642)
* Payment Request screen logic update

* Scan view model implementation

* Zip321 Uri parsing and passing around screens

* Pass PaymentRequestArguments

* Fixed screens navigation

* Screen balances UI part

* Address UI part

* Address UI part + logic

* Memo UI part

* Amounts UI part

* Add stages and send logic with authentication

* Send transaction error handling

* Code analysis warnings fix

* Tests update

* Changelogs

* [#1595] QR code design update

* Address review comments

---------

Co-authored-by: Milan Cerovsky <milan@z.cash>
2024-10-21 21:11:10 +02:00
Milan 711feb4251
Remote address book storage disabled & address book removal (#1639)
* Commented out address book

* Commented out address book

* Address book deletion
2024-10-18 09:43:25 +02:00
Milan d6f630cab8
[#1568] Integrations screen (#1637)
* [#1568] Integrations screen

Closes #1568

* [#1568] Icon added to integrations list item

Closes #1568

* [#1568] Test hotfix

Closes #1568

* [#1568] Code cleanup

Closes #1568

* [#1568] Code cleanup

Closes #1568
2024-10-17 13:07:50 +02:00
Honza Rychnovský 0e67d826d3
[#1595] Request ZEC flow (QR generation) 2024-10-17 12:13:19 +02:00
Milan 624bee88ef
Address book remote storage implementation (#1632)
* Address book remote storage implementation

* Code cleanup

* Biometrics enabled

* Error handling

* Code cleanup

* Merging strategy

* Offline bugfixes

* Code cleanup

* Performance update for address book CRUD

* Performance update for transaction history

* Proguard update

* Documentation update

* Documentation update
2024-10-16 11:12:03 +02:00
Honza Rychnovský c6257d8412
[#1612] QR Code screen
* Refactor Receive screen architecture

- Added QrCodeScreen architecture and basic UI

* QrCode Detail screen UI + logic

* Improve share intent

+ Attach snackbar to the failed sharing attempt
+ Fix tests

* Changelogs update

* Ktlint warnings fix
2024-10-08 09:46:42 +02:00
Milan 1fedce1cff
Feature/address book (#1614)
* [#1564] Send screen redesign (#1601)

* [#1564] Send screen redesign

Closes #1564
Closes #1580

* [#1564] Test hotfix

Closes #1564
Closes #1580

* [#1564] Test hotfix

* [#1564] Bugfixes and code cleanup

* [#1564] Focus handling

* Address Book UI (#1606)

* Address Book UI

* Design hotfix

* Code cleanup

* Test hotfix

* Confirmation screen redesign (#1602)

* Confirmation screen redesign

* Documentation update

* Design hotfixes

* History item redesign (#1603)

* History item redesign

* Empty Memo message removed

* Hidden fee for a receiving transaction

* Address Book, Add Contact & Update Contact logic (#1610)

* Address Book Screen logic

* Add New Contact screen logic

* Update Contact screen logic

* Code cleanup

* Code cleanup
2024-10-03 17:40:19 +02:00
Milan 35c01df313
[#1528] Coinbase on-ramp integration
* [#1528] Coinbase integration

Closes #1528

* [#1528] CI hotfix

Closes #1528

* Remove duplicate lines

* Improve CI scripts + variable renaming

* Remove coinbase button in testnet build

* Update changelogs

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2024-09-12 18:10:54 +02:00
Milan d29b0f7bb2
Dependency injection implementation (#1513)
* Dependency injection implementation

* Code cleanup

* Code cleanup

* Test hotfix

* Code cleanup

* Code cleanup

* Code cleanup

* Merge dependencies to bundle

* Changelog update

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2024-09-04 15:36:59 +02:00
Milan a9e8c102c9
Exchange rate implementation (#1540)
* Adopt TEX addresses related changes

* Exchange Rates implementation

Closes #532
Closes #578

* Send Review Screen design change

Closes #532
Closes #578

* Code cleanup

Closes #532
Closes #578

* Exchange rate implementation

* Exchange rate implementation

* Exchange rate design implementation

* Exchange rate design implementation

* Exchange Rate redesign

* Code cleanup

* Design hotfix

* Design hotfix

* Disabling of usd text field

* Sort new dependencies

* Code cleanup

* Code cleanup

* Test hotfixes

* Link TODO issue

* Unify MockSynchronizer functions report

* New navigation target

* Code cleanup

* Send screen amount focus handling

* Code cleanup

* Fix test fixtures

* Design hotfix

* Code cleanup

* Test hotfixes

* Test hotfixes

* Activity Compose Composition Strategy handling

* Revert "Activity Compose Composition Strategy handling"

This reverts commit be8ed7a8ad.

* Test hotfixes

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2024-08-23 07:58:27 +02:00
Milan fb138c2412
[#234] AppCompat removal (#1509)
* [#234] AppCompat removal

Closes #234

* [#234] Crash fix

Closes #234

* Changelog update

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2024-07-22 15:24:14 +02:00
Milan 0bc7757aa2
[#1492] Restore success dialog refactor (#1507)
* [#1492] Restore success dialog refactor

Closes #1492

* [#1492] Code cleanup

Closes #1492

* Create a separate Android layer

* Changelog update

* Move restore success string resources

* Rename logic related variables

+ File a follow-up issue

* Resources rename

* Move drawable to its package

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2024-07-19 10:17:45 +02:00
Milan 23e1bb7e75
[#1440][#1415] In-app update information - What's New screen
* [#1440] Inject in-app-update information

* [#1415] What's new screen

Closes #1415

* [#1415] Code cleanup

Closes #1415

* [#1415] Test hotfix

Closes #1415

* Clear What’s New docummentation

* Improve parser logic

So it’s able to parse the first changelog entry or the first unfinished one (i.e. [Unreleased] entries only)

* Order alphabetically

* [#1440] About redesign

* Changelog update

* Use of small button style on About

- Primary button’s parameters have been slightly changed, too

* Add IN_APP_UPDATE_PRIORITY to gradle.properties

* Rename functions

To align with the existing pattern

* Sort alphabetically

* Add ChangelogFixture

* Create ChangelogFixture

* Move navigation from Android layer to Navigation

* Fix changelog parsing

This way, it will also work with `-` in the middle of the sentence. With such a solution, we need to ensure the `\n-` characters sequence in every changelog entry. But it’s replaced by the bullet character at the end. It will work for Google Play within in-app updates, as well.

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2024-07-18 10:48:02 +02:00
Honza Rychnovský 00db536674
[#1417] Add in-app authentication
* [#1417] Add authentication

- Closes #1417
- Closes #326
- Partially addresses [Electric-Coin-Company/zashi#7] too
- Creates reusable AuthenticationVM component with all necessary logic that reports authentication status to its callers
- Addresses authentication requirements for the Send funds, Delete wallet, Export private data, and Recovery phrase. The App access authentication use case is prepared and can be turned on anytime.
- The new logic also counts with possible future user customization via the app UI of the default on/off states for all implemented authentication use cases
- Send.Confirmation logic simplification
- This also adds the welcome screen (splash) animation to all the app entry points (the app recreation caused by system included)

* Allow unauthenticated access

- In case no authentication method is available on the device

* Build supported authenticators for the device

- Based on the device Android SDK version

* Disable broken screenshot testing

- This is a temporary change until #1448 is addressed

* Changelog update

* Add temporary placeholder screenshot test

To suppress no test error
2024-05-22 15:59:38 +02:00
Honza Rychnovský a1cf59f9b2
[#1407] Add Delete wallet feature
- Closes #1407
- Changelog update
- Link a new snapshot version of the Zcash SDK
2024-05-02 10:07:28 +02:00
Honza Rychnovský afd47e513e
[#1352] Remove test fixture values ZIP321
- Addresses issue J from the security audit: Payment URI parser uses a test fixture address
- This also removes unused Request screen with its logic and tests
- Closes #1352
2024-04-18 08:10:08 +02:00
Honza Rychnovský 3845772071
[#1159] Send.Confirmation according to new design
- Closes #1159
- Closes #1269
- Closes #1073
- Its direct follow-ups are #1294 and #1161
- Other follow up is #1260
- These changes also enable having two Primary buttons side-by-side
- This adds sorting history of transactions by a new calculated height after send done
- This also changes how we treat empty transaction dates from `-` to `` in UI
- Changelog update
2024-03-21 09:57:36 +01:00
Honza Rychnovský 9a929c1109
[#1160] Trx History UI incorporated into Account
- Closes #1160
- Changelog update
2024-03-05 08:52:47 +01:00
Honza Rychnovský cc5f3504fe
[#1235] Server switching
- Closes #1235
- Note that failures and server saving success are reported to the UI with the Android system Snackbar or via the existing Textfield’s error bottom text until we define popup design as filed in #1242
- Changelog update
2024-03-04 16:53:30 +01:00
Honza Rychnovský c8e3a05eb9
[#1234] Advanced settings screen (#1272)
- Changelog update
- Closes #1234
2024-03-02 18:57:49 +01:00
Honza Rychnovský 7285137f2e
[#1144] Send.Form screen rework
* [#1144] Send.Form screen rework

- This follows the new Figma design. It also adds the TextFields values validation and proper UI reactions.
- Closes #340
- Closes #810
- Closes #1157
- Closes #1158
- Closes #1253
- Closes #1254
- Closes #826
- Follow-ups: #1047, #1257

* Changelog update
2024-02-27 10:13:44 +01:00
Honza Rychnovský 4cf608b733
[#1079] Home screen bottom nav bar
* Changelog update

* [#1118] Account screen Balance Text line break

- Closes #1118

* [#1117] Reusable Loading screen indicator

- Closes #1117

* [#1116] Balances screen structure

- Closes #1116

* [#1079] Bottom bar - tabs navigation

- Closes #1079

* [#1079] Rework UI tests

* [#1079] File follow-ups

* [#1079] Fix static lint tools warnings

* [#1079] Improve Home sub-screens indexing

* [#1079] Reorg navigation into Home components

* [#1079] Align with Figma design

* [#1079] Update screenshot and UI tests
2023-12-18 14:31:25 +01:00
Honza Rychnovský 1310a0730d
[#1092] Duplicate Home to separate Account screen
- Closes #1092
- New Account screen + logic created
- Moved a few commonly used logic components into the common package
2023-12-06 15:29:12 +01:00
Honza Rychnovský 771dc114da
[#1048] Seed Recovery Screen
[#1048] Seed Recovery Screen

Open Seed Recovery from the Settings screen

[#1014] Unify screen name with Figma

[#1048] UI + logic + tests

Improve click action effect on TopAppBar

[#1049] Add Changelog

Closes #1049

Update PR template
2023-11-23 10:41:59 +01:00
Honza Rychnovský cf45a0ef34
[#942] New Wallet Recovery Phrase Screen
[#942] New Wallet Recovery Phrase Screen

[#1006] Enhance VersionInfo with other fields

[#947] About screen UI + logic + tests

[#1040] Extract logo and title on top of screens

- Place it into a separate UI component
- Used across several screens
- Closes #1040

Remove long version of the Backup screen

- We previously had a configuration field that controlled which version of the screen should be displayed to a user
- Removed
- Partly solves #1003

Backup screen view redesign

Tests + docummentation

Update links to the Zashi Github repository

As the GitHub repository was recently moved from Zcash under the ECC company

[#1014] Unify screen name with Figma design

[#1045] Adopt Zcash SDK v2.0.3

Closes #1045

Fix screenshot test

The new wallet recovery screen is now much taller; scrolling to the acting button is needed.

Fix Restore screen test

Lint tools warnings
2023-11-23 10:00:13 +01:00
Honza Rychnovský 494d068168
[#1031] Export of private app data
* [#1031] Export of private app data UI+logic

- Closes #1031

* [#1031] Export of private app data tests

* Move provider to app/manifest

To avoid: The application could not be installed: INSTALL_FAILED_CONFLICTING_PROVIDER

* [#1037] Debuggable release build

- So we’re able to log or debug release app build while testing
- Default value false
- Closes #1037

* Fix file provider path in release build
2023-11-13 14:53:16 +01:00
Honza Rychnovský a15bea738f
[#355] Lock screen to portrait
- Adds capability to customize the screen lock via gradle.properties to enable it while developing or testing the app UI easily
- Closes #355
2023-11-08 10:47:31 +01:00
Honza Rychnovský a70586d8b6
[#1012] Customize Dark mode support for debugging
- And disable its support in the app UI by default
- Closes #1012
2023-10-19 15:00:47 +02:00
Honza Rychnovský 5010c624a8
[#1008] SecureScreen customization
* [#1008] Customizing SecureScreen mechanism

Tested with an unexpected value in checkProperties too.
2023-10-17 16:01:53 +02:00
Honza Rychnovský 57a133a12c
[#946][#993] Warning screen + button animation (#994)
* [#946] Warning screen UI

[#946] Code review changes
moved security warning to separate folder
changed main heading text style
changed static version text to dynamic

Co-authored-by: Honza Rychnovský <rychnovsky.honza@gmail.com>

* [#993] New Primary Button Click Animation

* [#946] Warning Screen [UI][Logic][Tests]

- Security Warning screen incorporated into the app onboarding logic
- NeedsWarning wallet state persisted and is required if the user re-runs next time, and the Security Warning screen still needs to be presented
- Privacy Policy opened by part of the screen text clicking in an external web browser app
- Unit tests
- UI tests
- Screenshot tests

---------

Co-authored-by: Venkat-corebts <143575548+Venkat-corebts@users.noreply.github.com>
2023-10-10 12:41:17 +02:00
Alex fc7321e049
[#664] Transaction History List
* [#664] Transaction history

* Move under the screens folder

* Fix Request screen Preview

* Add TODO link

* Improve Text design component

* HistoryView UI enhancing

* Adopt ZcashCurrency API

* Add transaction history sync state

* Compact time format

* Bump Compose Material Icons to v1.5.0-beta02

* Add support for pending and expired transactions

* Add progress in syncing with no transaction yet

* Screenshot test

* Simplified no transaction check

* Transaction history manual test case

* Home screen history button test

* Fix flow collecting

* View tests

* Sent transaction sign

* Remove unused transaction snapshot from VM

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-07-04 13:24:07 +02:00
Carter Jernigan 3d439ae6a1
[#751] AGP 8.0.2
* [#751] AGP 7.4.2

* [#874][#758][#751] Gradle 8.1.1 + AGP 8.0.2

- Dependency locks update
- And the related changes the versions bump brings done as well
- Dep issue template changed as appropriate now

* [#875] Emulator.wtf 0.12.2

* Minor fixing changes after Gradle bump

* Fix deprecated Runtime.exec()

* Fix running screenshot tests

We use the same pattern now as in the other pure test modules.

* Fix jvm versions compatibility

'compileJava' task (current target is 1.8) and 'compileKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version.

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-06-09 15:19:09 +02:00
Carter Jernigan 8e17d07ced
[#762] Simplified seed backup UX
Because we’re making UI text changes, I’ve forked our views into “long” and “short” versions that preserve the previous experience while allowing the shorter experience to be different.

One limitation of the current approach is that the screenshot tests are limited to the current configuration, so there is some risk of ‘bit rot’ with the screenshot tests for the longer onboarding.  For this PR, I manually switched the feature flags and re-ran the screenshot tests to make sure they still worked.

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-03-03 08:06:03 -05:00
Carter Jernigan 4acd5d3593
[#584 ]Adopt Twitter's Compose Detekt rules
Twitter had a set of Compose rules, which have been forked into Detekt, Ktlint, and Android Lint implementations.

I see ktlint as mostly being formatting, Detekt being more for multiplatform static analysis, and Android Lint for Android-specific issues.  Android lint is slow, so I didn’t want to use it as the first choice.

I went with the Detekt implementation which can be useful if we leverage multiplatform for our Composables in the future.
2023-03-01 07:58:47 -05:00
Carter Jernigan 6d01f210fe
[#774] Redesign home with hamburger menu
---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-02-28 08:54:07 -05:00
Carter Jernigan 417fc4b8a5 [#764] Android Remote Config implementation
Note that there is no cloud integration yet. This creates the abstractions to support injecting different remote config sources
2023-02-21 12:50:31 -05:00
Carter Jernigan f5e0af6545
[#757] Adopt SDK 1.14.0 (#759) 2023-02-17 06:05:23 -05:00
Alex 7523619afa
[#673] process .ec files from emulator.wtf
Co-authored-by: Carter Jernigan <git@carterjernigan.com>
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-02-13 08:10:32 -05:00
Carter Jernigan 6e85764f74
[#346][#304] Configure Crashlytics and analytics opt-out 2023-01-26 14:12:44 -05:00
Alex b84df3d9dc
[#592] Instrumentation coverage
Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2023-01-17 14:54:40 -05:00
Carter Jernigan 193b376fe3
[#581] Switch to Play app update library
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-01-17 11:43:22 -05:00
Alex 386b400e22
[#174]added warning screen + StorageChecker.kt (#594)
* [#174]added warning screen + StorageChecker.kt

* [#174]added warning screen + StorageChecker.kt

* added manual test

* added manual test

* resolved merge conflicts

* code review fixes

* added vector drawable

* Add units

Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-10-03 15:59:09 +02:00
Carter Jernigan 45d90b7706 [#586] AGP 7.3 2022-09-22 16:06:09 -04:00