This allows the app to consume the snapshot version of the SDK, which contains a number of API changes.
A followup issue of #279 was filed so that the app can be reverted to the release version of the SDK once the SDK API stabilizes again.
Previously versions were using tags. By pinning them to SHAs, it ensures the versions cannot be changed.
Also note that I used the latest release, so many of the actions received a version bump as part of this change.
This will provide clarity for someone looking at the secrets on the GitHub deployment admin screens. It will be clear that we have the upload key available to CI and not the final release key.
Implements a basic scaffold for sending ZEC.
Some new model objects and an extension method were added that I hope to move to the SDK.
Followup issues include
- Press-and-hold for the Send button #249
- Prevent illegal input in input form #218
- Prevent undefined behavior if locale changes #217
- Add error handling to the Zec send screen #250
- Add confirmation after send is created #252
This moves the theme and common UI elements to a separate Gradle module.
This is a first step towards creating our own custom design system, as it would eventually allow hiding of Material Design from the rest of the app UI.
As part of this change, a new common utility module was created so that both the ui and ui-design modules can depend on it.
Preliminary and limited version of background sync, with the following limitations
- Sync is always enabled
- Default sync period is 24 hours and is not updated once the wallet is created
This change refactors the synchronizer to a global singleton that both WorkManager and the UI can interact with.
Test Orchestrator must be enabled, so that screenshot generation can walk through the app like a newly registered user. The screenshots are stored outside of the app's storage directory, so that Test Orchestrator does not delete them. Because hard-coded paths are used, it is possible this could be brittle with future versions of Android
A future enhancement would be to also copy these screenshots off of tests run on Firebase Test Lab. This would likely involve configuring Fladle/Flank with additional directories to pull.
Settings which are not yet implemented have not been included to not introduce non-functional buttons into the UI.
Followup issue #38 covers one of the key settings, which is how we'll implement authorization in the app
Besides bumping the version, we can now integrate this plugin the same way we do the others. The version is now declared in the settings.gradle.kts.
The change is a bit noisy, due to needing to move our repository restrictions around.
Note that the SDK master branch contains breaking API changes, which the Secant app hasn't yet been updated to support, so enabling an included build will have compile failures.
Implements a details screen showing various wallet addresses
Some known issues requiring followup in future pull requests:
- #159 Colors for light theme have not been defined yet
- #160 Color blocks have 2x borders along the top/bottom of the middle item
- #161 Some address types display placeholder values
This provides a very basic scaffold of the home screen and navigation to other child screens. Additional work needs to be done in both the SDK and this app to build all of the functionality. Specific known gaps
- Displaying synchronization status to the user, pending full designs on the progress and animation behaviors
- Improved APIs for listing and filtering transactions. This is the issue in the SDK https://github.com/zcash/zcash-android-wallet-sdk/issues/242
- Implement the UI for displaying transaction history
- Display fiat currency values
- Hook up buttons to navigate to other screens (scan #137, profile #145, send #134, request #135)