Commit Graph

182 Commits

Author SHA1 Message Date
Honza Rychnovský b544de316d
[#1147] Show transaction memo
- Improves the screen UI so we’re able to call click, and query transaction memos
- These APIs will be useful once we approach screen refactoring according to the Figma design
- Adds UI test for the new feature
- Closes #1147

Changelog update
2024-01-02 09:03:12 +01:00
Honza Rychnovský b42db7b035
[#1138] Malformed pattern: Grouping separator
* [#1138] Malformed pattern: Grouping separator

- This handles possible malformed format pattern exceptions in Zashi, but the proper solution needs to be provided within the SDK. See  #1315.
- Closes #1138

* Changelog update
2023-12-21 17:46:02 +01:00
Honza Rychnovský 90c982ac2a
[#1134] Home screens UI improvements
* [#1134] Improve Home sub-screens paddings

* [#1134] Rework Home Scaffold to ConstraintLayout

* [#1134] Rework Home screen TextFields

Plus, unify Home sub-screens bottom action buttons position

* [#1134] Fix Textfiled height jumping

* Changelog update
2023-12-21 16:15:20 +01:00
Honza Rychnovský c943fc58be
[#1121] Available balance check on Send
* [#1121] Available balance check on Send

Closes #1121

* Align UI tests

* Changelog update
2023-12-21 08:51:54 +01:00
Honza Rychnovský 4e3bea2c2f
[#1129] Fix failing Test Robo Debug
* [#1129] Fix failing Test Robo Debug

Closes #1129

* Changelog update

* Specify main-debug folder

* [#1129] Separate version flags

- Separate debuggable and run under a test service flags
- As we now have more flexibility in requesting the flags in runtime
2023-12-19 11:03:28 +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ý c28dadaeed
[#1109] Detekt Compose Rules 0.3.5
- Closes #1109
- Fixed the new Detekt Compose warnings
2023-12-11 10:31:24 +01:00
Honza Rychnovský a3e7d8f6c4
[#1108] Ktlint 1.0.1
* [#1108] Ktlint 1.0.1

- Closes #1108
- Version and artefact update

* Fix ktlint warnings
2023-12-11 10:20:32 +01:00
Honza Rychnovský 06ca665fca
[#1096] Change brightness adjusting feature
* [#1096] Change brightness adjusting feature

- Closes #1096
- As reported by testers, the automatic brightness adjustment could be too invasive
- Switched to the on-demand feature after a new button click
- Tests aligned

* Align Screenshot tests

* Changelog update
2023-12-07 16:35:27 +01:00
Honza Rychnovský 201cdbbd07
[#1094] Add message under Doc and PP buttons
* [#1094] Add message under Doc and PP buttons

- Closes #1094
- Shows Toast UI message with Not implemented yet test after the buttons hit

* Changelog update
2023-12-07 08:14:16 +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ý dd81b90fbf
[#1089] Remove circular progress bar from Home
* [#1089] Remove circular progress bar from Home

Closes #1089

* Fix ktlint warning
2023-12-05 12:29:15 +01:00
Honza Rychnovský f67c3fde8f
[#1082] Remove Side Navigation Drawer menu
- Closes #1082
- Closes #1086
- Added TODO links to the missing Settings actions
- Fixed About screen versionCode displaying
- Added app name to the About screen debug menu, as the Home screen does not contain it anymore
- Changelog updated
2023-12-04 15:45:30 +01:00
Honza Rychnovský 905a14db50
[#1003] Clear unused Onboarding alternatives
- Removes unused Oboarding alternative LongOnboarding screen with all related resources
- Removes related integration tests and screen decision logic
- Removes related is_short_onboaridng remote configuration logic
- Closes #1003
2023-11-30 20:50:59 +01:00
Honza Rychnovský 3d33bb8ca5
[#1064] Restore Seed-Birthday Screen
* [#1064] Restore Seed-Birthday Screen

- Reworked Restore Seed-Birthday height screen
- Contains UI, screen logic and tests
- Closes #1064

* Update changelog

* [#859] Fix failing Restore screenshot test

Closes #859
2023-11-28 13:05:31 +01:00
Honza Rychnovský b15c1e9063
[#1059] Restore Seed Screen
* [#1059] Restore Seed Screen

- Reworked UI according to Figma design
- Closes #1059

* Changelog update
2023-11-27 10:55:15 +01:00
Honza Rychnovský f34aa78f3d
[#1054][#1055] Update buttons and screens spacings
- Done across all screens
- Closes #1054
- Closes #1055

Fix Ktlint warnings
2023-11-23 11:37:02 +01:00
Honza Rychnovský 8966615a39
[#1051] Fix Export Data FileProvider
- Both debug and production builds of the app can now be deployed on the same device
- Closes #1051
2023-11-23 11:07:09 +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ý 6df3806a1f
[#998] Transaction History Compose Preview 2023-11-08 10:47:49 +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ý 84e591561d
[#1026] Restore Seed screen keyboard hides UI
Closes #1026
2023-11-08 10:47:03 +01:00
Honza Rychnovský 2f773b8b0a
[#1016] Force SecureScreen turned on in UI testing
- After we added the customization of SecureScreen sensitive data mechanism in building and testing the app via Gradle property in #1009, we also need to ensure that the SecureScreen is always on in our automated Android UI tests.
- Closes #1016
2023-10-23 15:21:00 +02:00
Honza Rychnovský ab7117e458
[#1020] Re-enable fixture wallets in debug
- The debug with Alice’s and Ben’s fixture wallets from the Zcash SDK is visible only in debug mode. UI tests and production are not impacted.
- It provides a quick way to import an existing wallet for developers while building or testing the app
- Closes #1020
- The debug menu with fixture wallet was partially hidden by PR #1004
2023-10-23 15:18:02 +02:00
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ý 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ý 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ý e4d744fc98
[#975] Post Core BTS UI changes
- PrimaryButton centered horizontally on all screen
- Compose Preview switched to light theme on all screens as Zashi supports light theme only
- Closes #975
2023-10-04 16:01:40 +02:00
Honza Rychnovský 8aaa5367d8
[#974] Post SbS adoption UI changes
* [#974] Post SbS adoption UI changes

Closes #974

* [#974] Add decimals to percentage
2023-10-04 14:04:08 +02:00
Venkat-corebts 705386e031
[#948] Updated Settings screen UI
* [#948] Updated Settings screen UI

* [#948] Crash fix on settings screen

* Center button UI components text

So the text aligns with the center when the button is displayed on a very small device or, e.g., when the system accessibility text size increase feature is used.

* Keep button spacing

When rotated to landscape, the weighted spacing disappears. But we ideally want buttons to have all the same spacing around them in this scenario.

* Kotlin code style

* Move previous settings option to overflow

- As the new design prescribes no debug/test options in the settings screen, we moved these useful actions into the only troubleshooting menu in the app bar.
- Tests added

* Add UI tests

* Text in all caps in the components

Rather than enforcing all caps in translations.

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-09-28 14:17:21 +02:00
Honza Rychnovský 3b1d42528d
[#972] Adopt PersistableWallet API changes in SDK
* [#944] Adopt SDK version with SbS included

- This supposes to fail in the build until the proper SDK version is consumed
- Tested via included builds

* Switch to latest v2.0.0-rc.2

* Adopt latest SDK snapshot version

* [#972] Adopt PersistableWallet API changes in SDK

Closes  #972.

* Adopt SDK supporting PersistableWallet.endpoint
2023-09-28 12:05:36 +02:00
Honza Rychnovský 9ec0de1729
[#944] Adopt SDK version 2.0.0 with SbS included
* [#944] Adopt SDK version with SbS included

- This supposes to fail in the build until the proper SDK version is consumed
- Tested via included builds

* Adopt latest SDK changes

* Adopt changed TransactionOverview API

* Switch to latest v2.0.0-rc.2

* Fix transaction history test fixture

* Adopt latest SDK snapshot version

* Switch to latest production Zcash SDK version
2023-09-27 08:52:31 +02:00
Honza Rychnovský 54e522090a
[#951] Add Archivo font
* [#951] Add Archivo font

- Font added
- License documentation file updated
- This slightly changes the provided font accessibility. Both Inter and Archivo are now available with the `ZcashTheme.typography` API.
- Closes #951

* Update license documents
2023-08-30 10:36:31 +02:00
Honza Rychnovský 6ec3c95914
[#915] Black and white color themes
* [#915] Black and white color themes

- Simplified color model to just black and white colors
- Reworked send fab button to a regular primary button
2023-08-07 14:52:24 +02:00
Honza Rychnovský 01b24f47ed
[#914] Rectangle shapes 2023-08-04 13:01:16 +02:00
Honza Rychnovský ebc2061916
[#913] Replace logo 2023-08-03 16:00:45 +02:00
Honza Rychnovský 6b5359119c
[#905] Add copy-to-clipboard for addresses
* [#905] Add copy-to-clipboard for addresses

* Unify copy-to-clipboard across screens and APIs

* Fix ripple effect on address item
2023-07-17 12:33:14 +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 de00a6eb51 Adopt SDK 1.17.0-beta01 changes 2023-05-23 06:34:06 -04:00
Carter Jernigan a6857f0a86 Adopt latest SDK changes 2023-05-19 06:12:04 -04:00
Carter Jernigan b6226c55eb
[#853] Adopt latest SDK changes
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-05-12 07:14:31 -04:00
Carter Jernigan 8045df9e6d [#818] Androidx updates 2023-05-10 05:52:41 -04:00
Honza Rychnovsky cb98cc048f
[#808] Use Dimens Across App
* [#808] Use Dimens across the app

- Shorter Onboarding screen design enhanced

* Shorter New Wallet Backup screen UI enhanced

* Home screen UI enhance

* Seed screen UI enhance

* Link SendArgumentsWrapper issue

* Move custom buttons paddings to PaddingValues

- Optional Modifier parameter should have a default value of Modifier
- Thanks to this we introduced the outerPaddingValues parameter to all our buttons with default paddings
- Also notice the difference between e.g. ShortOnboardingView and ShortNewWalletBackupView. In the backup, we have the bottom button to be part of Scaffold’s bottomBar, which is maybe a better pattern than stretching the buttons with spacers in case of part of the screen content view, but it has also its tradeoffs.

* Settings screen enhance

* Support screen UI enhance

* About screen UI enhance

* Scan screen UI enhance

- Move modifiers to the caller’s side
- Match texts to predefined styles
- Add color to Small text component + reorder parameters

* Send screen UI enahnce

- Lifted out some modifiers arguments to the caller’s side
- Fixed button’s horizontal paddings

* Scan move BackHandler to Android class

* Update screen UI enhance

* Receive screen UI enhance

* Address screen UI enhance

* Ignore AndroidUpdate back action test

- Will be refactored soon

* Remove TODO as already implemented

* Restore screens UI enhance

* Create UpdateViewAndroidTest

* [#807][Design system] Remove deprecated Paddings

* [#705] Instrumentation coverage generation fails locally

* [#808] Use Dimens across the app

- Shorter Onboarding screen design enhanced

* Shorter New Wallet Backup screen UI enhanced

* Home screen UI enhance

* Seed screen UI enhance

* Link SendArgumentsWrapper issue

* Move custom buttons paddings to PaddingValues

- Optional Modifier parameter should have a default value of Modifier
- Thanks to this we introduced the outerPaddingValues parameter to all our buttons with default paddings
- Also notice the difference between e.g. ShortOnboardingView and ShortNewWalletBackupView. In the backup, we have the bottom button to be part of Scaffold’s bottomBar, which is maybe a better pattern than stretching the buttons with spacers in case of part of the screen content view, but it has also its tradeoffs.

* Settings screen enhance

* Support screen UI enhance

* About screen UI enhance

* Scan screen UI enhance

- Move modifiers to the caller’s side
- Match texts to predefined styles
- Add color to Small text component + reorder parameters

* Send screen UI enahnce

- Lifted out some modifiers arguments to the caller’s side
- Fixed button’s horizontal paddings

* Scan move BackHandler to Android class

* Update screen UI enhance

* Receive screen UI enhance

* Address screen UI enhance

* Ignore AndroidUpdate back action test

- Will be refactored soon

* Remove TODO as already implemented

* Restore screens UI enhance

* Create UpdateViewAndroidTest

* [#807][Design system] Remove deprecated Paddings

* Address review comments
2023-04-04 14:21:18 +02:00
Honza Rychnovsky 5296dc5ea9
[#791] Add Scan To Send
* [#791] Add Scan Button To Send Screen

- Switched Send.Form screen input fields ordering to match the MFP design
- Added Scan button to Send.Form
- Changed navigation to pass the scanned result to the Send.Form screen
- Added leading and trailing icons to FormTextField component
- Created SendArgumentsWrapper to pass any future Zcash URL parsed parameters

* Report invalid address scanned

- Merged composes to provide snackbar after invalid address scanned

* Add SendView tests

- Added one for scanner click and one for initial send arguments inserted
- This led to input and check amount and memo as part of the SendArgumentsWrapper too to have it prepare for future Zcash URI parsing

* Static analysis warnings fixes

* Don't make camera feature required

- And hide the scanner button on Send.Form when any camera is not supported by the device

* Let SendArgumentsWrapperFixture use SDK fixtures

* Tweak hint text

We need better text, but this is at least more correct than the previous iteration.

* Replace assertTextContains with assertTextEquals

- To compare inputs texts to an exact match to avoid potentially missing bugs if there is extra text in the field that we're not expecting

* Fix ktlint warning

---------

Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2023-03-30 09:58:20 +02:00
Honza Rychnovsky 595b6ad34f
[#786] Hide circular progress bar on home screen 2023-03-27 17:03:33 +02: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
Honza Rychnovsky 0c0bf8cb34
[#785] Remove press-and-hold from Send
* [#785] Remove press-and-hold for send confirmation

- Timed button replaced by standard behaviour button
- Related SendView test updated

* Remove unused API

If we need this back, we can restore it from the Git history.

* Remove unused imports

---------

Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2023-03-20 10:17:22 +01:00
Honza Rychnovsky d37310a935
[#789] Fix Send Screen Layout
* [#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

* Add vertical scrolling feature to SendForm screen

* Add vertical scrolling feature to Settings screen

+ Switched from Paddings to Dimens spacing system

* Add paddings, vertical scrolling, move modifiers

- As part of this is also move modifiers to the caller side where it makes sense

* Improve Send screen layout

- Added header view to the screen
- Added spacers between some UI parts of the screen
- Fixed background colors
- And improved textfields sizes

* Link Fix ZEC balance number formatting issue

* Link Disable Memo UI field in case of Transparent address issue

* Replace all .dp with predefined Dimens spacing in SendView

* Create custom FormTextField UI component

* Re-write paddings to spacers in list
2023-03-16 15:36:06 +01:00
Honza Rychnovsky 78180ee4e8
[#790] Fix Settings screen layout
* [#790] Fix Settings screen layout

- SwitchWithLabel moved to ui-design-lib
- Internally switched from Row to ConstraintLayout
- Used paddings, which after creating and applying of Design system #611 will be refactored
- Moved Modifier definitions to the caller side, when possible
2023-03-14 08:00:36 +01:00
Honza Rychnovsky c18160356e
[#799] Fix passing drawer state
* [#799] Fix passing drawer state
2023-03-14 07:57:15 +01:00
Carter Jernigan 5e3c1f1768
[#783] Hide fiat currency conversion
* [#783] Hide fiat currency conversion

* Add test
2023-03-13 09:05:44 +01:00
Carter Jernigan 4c6e498b37 [#793] Androidx updates
Also leveraged new WorkManager API to avoid resetting the background sync schedule

Note that Material3 alpha 7 breaks our UI tests, so I’ve only bumped to alpha 6 for now.
2023-03-09 13:00:23 -05: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 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 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 6b202e3c9f [#764] Multiplatform remote config API 2023-02-21 12:50:31 -05:00
Carter Jernigan edaeda56da
[#748][#749] Preferences for sync
Adds an option to enable/disable background sync, as well as an option to keep the screen on during sync

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-02-17 11:39:15 -05:00
Carter Jernigan f5e0af6545
[#757] Adopt SDK 1.14.0 (#759) 2023-02-17 06:05:23 -05:00
Carter Jernigan a7d7de0451
[#745] Set min API to 27
* Add Android min SDK API level check test

---------

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2023-02-09 06:47:04 -05:00
Honza Rychnovsky a9787ebeac
[#694] Ktlint 0.48.2
* [#694] Ktlint 0.48.2
2023-02-01 13:50:24 +01:00
Carter Jernigan 6e85764f74
[#346][#304] Configure Crashlytics and analytics opt-out 2023-01-26 14:12:44 -05:00
Carter Jernigan 5d59420fb1 [#729] Androidx updates 2023-01-18 11:59:19 -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
Carter Jernigan 4f7c10f4b5
[#634] Stop synchronizer when leaving app
* [#634] Collect flows with lifecycle awareness

* [#686] Adopt SDK 1.11.0
2022-12-22 09:38:02 +01:00
Honza Rychnovsky a8308bd492
[#693] Ktlint 0.48.0
* Bump version 0.48.0

* Move config file to /tools

+ global suppress

* Local suppress of no-semi

* Minor indentation fix
2022-12-19 18:58:43 +01:00
Alex 9150f80b9d
implementation of push and hold to send zec (#641)
* [#249] Implement Press-And-Hold To Confirm Sending ZEC

* Remove default value for interaction source

* Rename interaction source argument

* removed dependency of ui-design-lib on sdkExtLib

Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-12-02 10:54:06 +01: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
Alex e20a7bb0da
[#630] Add illustrations to the remainder of the onboarding flow 2022-11-10 08:35:44 +01:00
Alex 9536a966e6
188-Throttle Emissions from `WalletViewModel.walletSnapshot` 2022-11-10 08:34:06 +01:00
Alex bb2ec4d71d
fixed onboarding screen issues (#657) 2022-11-08 10:53:29 +01: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
Alex 3d1d8fd363
fixed onboarding top bar (#616)
* fixed onboarding top bar

* fixed onboarding top bar

* fixed onboarding top bar

* fixed onboarding top bar

* fixed onboarding top bar

* Fix tests

Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-10-14 11:02:44 +02:00
Alex 83b79afe4c
disabled screen timeout when displaying QR code (#617)
* disabled screen timeout when displaying QR code

* added tests

* fixed ktlint errors

* Remove unnecessary test scope

Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-10-13 15:13:41 +02:00
Alex 33cee61601
[#593] - added illustrations for onboarding (#601)
* [#593] - added illustrations for onboarding

* fixed ScreenshotTest

* replaced welcome illustration

* fixed OnboardingViewTest

* Smart quotes

* added curly braces to if statement

* added skip button to welcome screen

* fixed onboarding test

* Delete unnecessary button click

Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-10-11 11:41:05 +02:00
Alex 3475ea545e
573 include free disk space in the contact support information (#607)
* [#174]added warning screen + StorageChecker.kt

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

* added manual test

* added manual test

* [#573] Include free disk space in the Contact Support information

* resolved merge conflicts

* code review fixes

* [#573] Include free disk space in the Contact Support information

* added vector drawable

* fixed merge issues

* fixed support info test

* code review fixes

* SupportInfoTest fix

* Remove trailing comma

Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-10-06 11:40:18 +02:00
Honza Rychnovsky a30e18a555
[#591] Fix getSurfaces() crash of CameraX on FTL Robo test
* [#591] Fix getSurfaces() crash on FTL Robo

- Updated version of the CameraX dependency and filed issue to Google

* Add logging bind camera failure to console
2022-10-04 16:41:07 +02: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
Alex 8c7176aa22
[#167] Increase brightness when displaying QR Code (#596)
* [#167] Increase brightness when displaying QR Code

* Use collectWith(lifecycleScope)

* Fix copy-paste errors

* manual test

Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-09-29 15:13:54 +02:00
Alex 54f23f9ec3
[#577] ktlint version update (4.7.1) (#588) 2022-09-26 13:58:43 +02:00
Alex a96637ec07
[#551] Prevent screenshots when seed phrase is displayed on the screen (#590)
* [#551] Prevent screenshots when seed phrase is displayed on the screen

* Minor review changes

Make ScreenSecurity object simpler by eliminating additional ways of mutating its state.

* Add debug and test checks

* secured screens with seed phrase

* codereview fixes

* added test for Seed screen

* added Screen security test for backup views

* test for ScreenSecurity class

* added manual testing for Screen security

* ktlint format

* Clean up ScreenSecurityTest

* Remove debug check

I decided this would be annoying, especially for manual testing

* ktlint

* removed test logging

* removed test logging

Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-09-26 10:28:08 +02:00
Honza Rychnovsky 1b75ab4fd6
[#552] Compose dependencies update (#589)
* [#552] Compose 1.2.1
* [#553] Accompanist 0.25.0
* Material3 dependency update
* Compose Compiler dependency update
* Compose Navigation dependency update
* Fix camera permission multiple displaying
* Added missing TODO description comments
* Improved Scan screen manual test guide
* Bump dependencies again
Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-09-22 15:55:34 +02:00
Carter Jernigan 334dc3c41f [#185] Refactor navigation
This moves navigation to its own file, simplifies the MainActivity, and moves Android integration composables to their own files.

Navigation still does not have tests, so a separate change will need to be implemented to add testing to navigation.
2022-08-10 06:44:26 -04:00
Carter Jernigan a48b18e1be
[#556] Adopt SDK 1.9 ZcashNetwork API 2022-08-04 11:56:50 -04:00
Carter Jernigan f9afd2e5f9
[#536] Adopt BlockHeight API (#537)
Note that this change modifies the on-disk representation of the wallet.  Anyone who has an earlier build install will see a runtime crash.  This is expected, as we are not supporting data migrations at this stage of development.  The solution is to uninstall/reinstall the app.
2022-07-26 10:46:23 -04:00
Honza Rychnovsky 32c20953f7
[#310] [Scaffold] Progress Status Circular Bar
* [#310] [Scaffold] Progress Status Circular Bar

- Added Z to Home ZECs balance
- Added USD balance text to Home
- Prepared Text extension functions for both
- Provided Zatoshi to USD conversion methods + filed related SDK conversion issue

* Update Home screen UI with progress bars

- Implemented scaffolding UI of progress bars
- Added related texts to strings

* Update Home screen UI with progress bars

- Connected some of the implemented UI elements to SDK values
- Added app update information to Home screen
- Update WalletSnapshot with progress field

* Update Home screen UI with progress bars

- Capturing and handling errors from SDK Synchronizer.
- Added related error strings.
-  Simplified Home screen UI.

* Zboto font added. Load it in runtime. Import to Typography.

* Updated ZEC sign icon.

* Draw ZEC balance with Zboto font

* Simplify Home screen balances assigning

* Switch to PercentDecimal progress representatiton

* Support different locales while working with fiat currency

* Fix bug in checking of fiat currency value

* Generalize strings to provide possibility of other fiat currencies

* Add fiat currency conversion states mechanism

* Add TODO comment with reference to follow up SynchronizerError issue

* Add WalletDisplayValues to simplify HomeView composable

* Add CurrencyConversion class for connection to Price API (and convert Zatoshi to fiat currency)

* Add basic HomeView tests

* Add basic HomeViewIntegration test

* Review changes

- Used Duration API for times
 - Allow injecting clock into currency conversion
 - Moved FiatCurrencyConversionRateState to sdk-ext-ui because I suspect that we’ll consider this to be a UI object.  I based this on the fact that current/stale cutoff values are arbitrary and probably should be the domain of the UI rather than the SDK.
 - Added some tests, although additional coverage is needed
 - Added fixtures for model objects

* Minor code refactoring

- Move UpdateInfoFixture class to fixture dir
- Remove unnecessary annotation
- Add common application context method to test suite
- Fix Test class import
- Move several WalletSnapshotFixture parameters to const fields

* Add WalletDisplayValuesTest to cover the model class.

* Fix import after changes merged

* Use the new MonetarySeparatorsFixture in related tests

* Add a few basic Zatoshi -> USD conversion tests

* Turn on core lib desugaring for sdk-ext-ui-lib module

* Make WalletDisplayValues a data class

I think there may be some instances where this can help with recomposition

* Add preference key for fiat currency

This allows us to configure reading the value with observers correctly, even if we don’t allow the user to change it right now.

* Delegate symbol and formatting to JVM

* Add tests for Locale

Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-07-13 09:16:05 +02:00
Carter Jernigan ba19fe6120 [#533] Update to SDK 1.7 2022-07-08 08:14:33 -04:00
Carter Jernigan 0ffaab953b
[#510] Consume Zatoshi from SDK (#514)
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2022-06-23 07:31:16 -04:00
Carter Jernigan 45aff80e76
[#511] Ktlint 0.46.1 2022-06-22 05:48:19 -04:00