* [#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>
- Created new gradle.properties attributes to configure package and app name
- Improved app/build.gradle to support the attribute
- Let Manifest file work with the new placeholder app name field
- Change debug builds with suffixes to avoid production app collision
Co-authored-by: Carter Jernigan <git@carterjernigan.com>
Since we have strict compiler warnings, the API deprecations in Android API 33 will fail our build. This change therefore:
- Bumps the compile SDK
- Adds helper extensions to use the new methods on Android 33+ and old methods for older Android versions. Although the functionality is the same, the wrappers will make it easier to eliminate legacy API calls in the future
- Disabled Gradle warning. #508 is a followup to remove this flag later.
- Refactor Update screen tests
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
* [#416] Robo test blank screens
- Solve also debouncing issue on screens navigation
- Implemented with navigateJustOnce ext function on NavHostController, which compares actual and final destinations
- Add popBackStackJustOnce as an extension function to our navigation too
* [#209] Update Compose dependency to latest version 1.2.0-beta03
- Update dependency
- Align our integration tests with the new Compose requirements
- Add integration folder to tests, if missing
- Split integration tests, which require activity to separate classes
- Remove unnecessary custom activity for each integration app part and create one custom common activity
- Implement Downloadable fonts from Compose 1.2
- Update Third party licenses documentation
* [#430] App crashes on Intel x86_64 emulators
- Bump the SDK version to the latest snapshot version.
- Set app's max Android SDK version to 31 for wtf emulators.
- Remove overridden wtf emulators config from sdk-ext-lib module.
- Also reduced liklihood of timeouts on Firebase test lab for robo tests
- Fix emulatorwtf run configuration
- Fix screenshots on older API levels
- Fix minumum range for emulator.wtf
* [#312] [#309] Scaffold Scan QR Screen
- Screen scaffolding.
- Model classes.
- Screen states handling.
- Needed dependencies added.
- Camera permission handling. Redirect to Settings.
- Added SettingsUtilTest class.
- Added view classes tests.
- Renamed tag class in update package.
- Fix the scan frame size while changing the screen orientation.
- Use local variable for cameraProvider.
- Use UUID for source of randomness.
- Eliminate blocking call for camera.
- Fix preview name.
- Remove Google Guava dependency.
- Suppress Lint warning.
- Improved calculation of the camera frame size. Moved it into Constraint layout.
- Added custom image analyser class.
- Implemented logic for the QR scan screen while QR code is found.
- Manual tests added.
- New module with integration tests for QR Scan screen. Added 3 integration and 4 view tests.
- Simplify QR Scan screen view basic tests.
- Switched from pure compose permission handling to Accompanist way of handling CAMERA permission.
- Added validation of Zcash wallet address from QR scanning result.
- Fix the integration tests for the CI WTF emulator runs.
- Add comment on RTL test result.
- Improve waitForDeviceIdle() method. Use it on the other test too.
- Change the integration test module main manifest package name.
- Debounce scans.
- Improve thread safety of scan collection.
- Added instructions on how to set up an emulator in manual tests.
- Replace compose collectAsState() with coroutine launch().
- Add sample() to get rid of several callback events at the same time.
- Stop updating the scanState when it's already in Scanning state.
- Fix condition on navigation.
- Remove validateJob check.
- Speed up the integration test
- Wrap ImageAnalysis.qrCodeFlow to remember.
- Auto-close the camera image when we're done with it in all cases.
- Update minimal SDK version to 24 for WTF emulators.
- Update Architecture documentation.
- Removed extra blank space in ui-design module definition.
- Add ui-integration-test-lib.
- Update Mermaid diagram with newly added module.
- Move UI modules into one wrap in the diagram.
- Move sdk-ext-lib and sdk-ext-ui under the same modules section.
- Update camera dependencies.
Co-authored-by: Carter Jernigan <git@carterjernigan.com>