Commit Graph

30 Commits

Author SHA1 Message Date
Honza Rychnovský f9f6334f16
[#1015] Custom TopAppBar UI component
- Covers all the necessary states and sub-components defined in the design document
- Closes #1015
2023-10-20 15:44:57 +02:00
Honza Rychnovský 16bf1afa90
[#947] About screen UI/logic/tests
* [#947] About screen UI (partially implemented)

* [#947] About screen UI

* [#947] Fixed failing test case

* [#947] Added Zashi text logo

---------

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

* [#947] UI: About Screen

* [#1005] Remove DebugMenu from Home screen

- The new design does not require it on the Home screen
- Partially moved to the Settings and About screens

* [#392] Update About screen texts

Closes #392 as not needed now

* [#1006] Enhance VersionInfo with other fields

* [#947] About screen UI + logic + tests

* Adopt VersionInfo on different screens

* VersionInfo test

Update .gitignore

---------

Co-authored-by: Venkat-corebts <143575548+Venkat-corebts@users.noreply.github.com>
2023-10-17 15:56:04 +02:00
Honza Rychnovský e871c4eb45
[#941] Opening screen + Load animation
* [#941] Loading screen UI

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

* Fix unallowed doubled scroll

* Remove duplicate icon

* [#997] Splash alignment with welcome animation

* [#999] Compile SDK version 34

* [#1000] Colour system bars

* [#941] Load + Opening screens

- Contains UI of both these screens
- Their logic
- And the Load screen animation
- Designed util ScreenHeight composable
- Redesigned SecondaryButton to match the design and fixed its positioning on different screens

---------

Co-authored-by: Venkat-corebts <143575548+Venkat-corebts@users.noreply.github.com>
2023-10-12 19:04:23 +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
Honza Rychnovský 1a8114a9b7
[#985] Fix failing UI tests on texts' case
- Closes #985

Fix Detekt warning
2023-10-03 14:23:43 +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
Honza Rychnovský a71ea7577d
[#873] Detekt enhance
* [#873] Detekt - consider MaxLineLength rule on

* [#882] Detekt Compose 0.1.10

* [#872] Detekt 1.23.0
2023-06-19 08:59:00 +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 8045df9e6d [#818] Androidx updates 2023-05-10 05:52:41 -04:00
Honza Rychnovsky 543d5f2b59
[#792] Add Sending Screens
* [#804][Design system] Paddings - Dimens

- Initial commit to ensure it meets our requirements
- This solution is now in parallel with a simpler existing Paddings solution
- Four spacing groups defined
- Provides a way to define default and custom spacing values
- Distinguished by screen size, but other metrics also available (e.g. orientation, aspect ratio, layout direction or screen shape)

* Fix spacing value

* Move spacings change logic to comment

- We've decided to have only one regular spacing group for now, which is suitable for most of current phone devices

* Move Dimens out of internal package

* Link TODO for later Paddings remove

* Link issue of Use Dimens across the app to TODO

* [#792] Add sending screens

- This extends the Send screen logic with several subscreens
- A transaction submission connected to the Synchronizer
- Some logic moved to Android specific class
- System back navigation handler implemented
- Styling with dimes introduced to all Send screens
- New UI, Android specific, integration and screenshot tests added
- Additionally we could consider implementing a proper SendState mechanism, as we do in e.g. BackupState

* File issue of problematic pseudolocales texts inserted in Send.Form screen

* Add scrolling to send view

* Switch SendViewIntegrationTest away from TestSetup

* Provide MockSynchronizer to integration test

---------

Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2023-03-27 08:25:36 +02:00
Carter Jernigan 84b40fc5fa
[#151] Add birthday to restore 2023-03-21 15:04:16 -04: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 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 a806d2defa [#763] Configure simplified onboarding 2023-02-21 15:48:01 -05:00
Carter Jernigan ec7eb3804e [#770] Hide request ZEC button 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
Carter Jernigan 721003b6e7
[#734] Emulator.wtf Gradle Plugin 0.0.15
This will provide caching for our automated tests.

I have disabled the cache for the screenshot tests, since those are sometimes flaky.
2023-01-24 06:26:43 -05:00
Carter Jernigan da0e909458
Extend timeout for screenshot tests (#732) 2023-01-18 08:31:06 +01: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 88c7277048
[#161] Implement display of new address types
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-01-09 07:57:22 -05:00
Alex 6c6339fb41
[#600]Improve UX of wallet restore screen (#671)
* [#600]Improve UX of wallet restore screen

* implemented suggestions from Geffen

* fixed test
2022-12-01 12:31:02 +01:00
Honza Rychnovsky e71c7854a9
[#642] Adopt SDK 1.10.0 API changes
* Adopt SDK 1.10.0 API changes

* Rename ShieldedSapling -> LegacySapling

* Viewing key re-derived for fix fixture value

* Changes used API for retrieving Transparent address

- Switched API DerivationTool.deriveTransparentAddress() -> Synchronizer.getLegacyTransparentAddress()
- Renamed Transparent -> LegacyTransparent

* Adds new common transaction model class

- Synchronizer.toTransactions() now works only with clearedTransactions and pendingTransactions
-Added CommonTransaction wrapper for all attributes of PendingTransaction and TransactionOverview to cover as much as possible. It's prepared for discussion about which attributes we really need and which we can omit.

* Regeneration of addresses in fixture

- Applies for both Transparent and Sapling addresses
- Fixed related test
- Added a new test for checking Transparent address abbreviation, as it also serves as a little check of the fixture address and can prevent an incorrect address change in the future

* Remove Viewing key usage from entire app

- As we agreed that the app should not access to it now
- Removed from all related places

* Change CommonTransaction to sealed class

* Comments update

* Switch SDK to 1.10.0-beta01-SNAPSHOT version

* Revert back legacy naming on Transparent and Sapling addresses

* Increased timeout limit to satisfy SDK initialization

* Remove unused import
2022-11-25 09:30:27 +01:00
Honza Rychnovsky 381af575ef
[#653] Refactor Backup flow screens
* [#653] Move copy to buffer action

- Trigger this action after seed phrase panel click and confirm via dialog window
- Added basic ui tests
- Added also dialog integration test
- Added related strings

* Revert "[#653] Move copy to buffer action"

This reverts commit 813eab00b747a779be5ef652745002f65c04572c.

* [#150] Refactoring the Backup flow to use Compose Scaffold

* Fix Backup flow screenshot test

- Removed scroll actions above nodes, which are no longer part of scroll behaviour - bottom navigation buttons are now part of Compose Scaffold component.

* Added scroll actions in screenshot test of Profile screen

- After tested the whole app with screenshot test on smaller screen device 4WVGA Nexus S

* Remove unnecessary screenshot test click action

- This click action on the Profile screen title seems to be unnecessary for the test and creates confusion

* ScreenshotTest module auto components init

- Changed the way we auto-initialize components in ScreenshotTest module
- Now we use androidx-startup library for it
- And we disabled the default way

* Add system back button navigation support

* Enable scrolling for Backup Test screen

* Fix Screenshot test on small screen in landscape

- Tested and fixed cases in which our screenshot test wasn't successful
- Tested on 4 WVGA Nexus S in landscpae mode

* Code clean

* Address review comments + stages refactoring

- Flattened BackupStage sealed class. Test and Failure are now regular stages.
- Introduced CheckSeed stage, instead of reusing Seed phrase for re-viewing.
- Simplified BackupView and custom Saver implementations.
- List of possible screen state stages is now lazy loaded value, instead of method.
- Some of the stages now override stage moving methods to enhance Backup screen state machine, as it's not linear.
- Existing tests updated to align with the new implementation of stages.

* Remove `run` block

* Rename CheckSeed -> ReviewSeed

Check might imply to another reader of the code that there is some going back to the test.  I went with the word Review which seems to better convey how that screen is passive for the user.

* Simplify list construction

This should have better performance.

* Crash instead of allowing back navigation

* Add documentation

* Fix initialization error

* Add non-localized string tag

Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-11-23 08:17:06 +01:00
Honza Rychnovsky 9401330ff4
[#665] Gradle assemble task run fix 2022-11-11 15:28:20 +01:00
Alex e20a7bb0da
[#630] Add illustrations to the remainder of the onboarding flow 2022-11-10 08:35:44 +01:00
Honza Rychnovsky bcacf93a04
[#599] Macrobenchmark test module
* Temporary enable FTL test

* Enable emulator.wft tests for ui-integration-test module on CI

* Rebase onto main

* Test Fladle configuration for ui-integration-test module

* Fix Fladle for ui-integration-test module

* Rename ui-integration-test module flade configuration

* Disable again FTL action from PRs

* Clear support for FTL from ui-integration-test module

* Refactor the emulator.wtf support across our modules.

* [#599] Macrobenchmark test module

- Created new dedicated macrobenchmark test module
- Updated related Architecture and Setup documentation
- Connected to app module
- New benchmark build type
- Related run configuration above custom Gradle task
- Basic startup benchmark test included

* Benchmark build variant simplification

* Run benchmarking simplification

* Documentation update.

* New property IS_SIGN_RELEASE_BUILD_WITH_DEBUG_KEY

- It enables signing the release build with debug key configuration. Default value is false.
- First, we check if we can sign it with release configs, otherwise with debug.
- Documentation updated.

* Benchmarking documentation update

* Adds support for Android SDK 32 and 33

- Bumped benchmark library to the latest alpha version
- Which results in a need of adding profile-installer library in target module (app)
- Now we're able to run benchmarking on Android SDK level 29 and higher (i.e. latest levels included)
- Updated related documentation

* Enables benchmarking for emulators

- I've decided to support emulator devices with our benchmark test module at the end. Documentation and code comments explain to a user that the results may not be the same as on a real physical device. But until we have it set up in CI, we can benefit from having it set up like this.
2022-10-27 12:51:24 +02:00
Honza Rychnovsky 4eddf4e74b
[#598] Refactoring ScreenshotTest to a separate test module
* Temporary enable FTL test

* Enable emulator.wft tests for ui-integration-test module on CI

* Test Fladle configuration for ui-integration-test module

* Fix Fladle for ui-integration-test module

* Rename ui-integration-test module flade configuration

* Disable again FTL action from PRs

* Clear support for FTL from ui-integration-test module

* Refactor the emulator.wtf support across our modules.

* [#598] Refactoring ScreenshotTest to a separate test module

- Created a new com.android.test module
- Moved our ScreenShotTest to the separate module
- Enabled the new module for emulator.wtf service
- Cleaned up the app module from ScreenShotTest
- Updated Architecture and Setup documentation

* Exclude pure test modules from Detekt check

* Improved run configurations

- Changed common emulator.wtf run configuration name to align with the rest of our configurations
- Added configuration for the new screenshot tests module
- Updated documentation

* Linked code TODO

* Disabled self-instrumenting

- As it appeared to be the way how to leverage the app module Gradle settings in this new module
- App name is taken from app module settings
- Screenshot tests works with pseudolocales again
2022-10-18 15:08:36 +02:00