Commit Graph

95 Commits

Author SHA1 Message Date
Carter Jernigan c0a5d2607c [#329] AndroidX Updates
Updated to use the latest splash screen API
2022-04-06 07:56:17 -04:00
Carter Jernigan 3844d9987c [#328] ktlint 0.45.1 2022-04-06 07:56:17 -04:00
Carter Jernigan 45e14e6a4b [#173] Adopt SDK API changes
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.
2022-03-16 13:00:13 -04:00
Carter Jernigan 842fcd1574 [#233] Android Gradle Plugin 7.1.2 2022-02-28 08:05:22 -05:00
Carter Jernigan 6be2590ad8 [#116] Migrate to Material 3 2022-02-21 09:48:14 -05:00
Carter Jernigan 8efa866a3d [#228] Androidx Test 1.4.1-alpha04
Also corrected the fact that `test-core` and `test-runner` can be versioned independently
2022-02-21 09:26:57 -05:00
Carter Jernigan 260d5d10ac [#206] Compose 1.1
Also bump navigation-compose to 2.4.1 and lifecycle-compose to 2.4.1
2022-02-21 09:26:57 -05:00
Carter Jernigan 469c2ccd37 [#216] ktlint 0.44.0 2022-02-21 09:26:57 -05:00
Carter Jernigan c6c59eefe1 [#198] Android Gradle Plugin 7.1.1 2022-02-21 09:26:57 -05:00
Carter Jernigan 52588e6bd3
[#191] Background sync
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.
2022-02-04 07:37:08 -05:00
Carter Jernigan b6ed705866
[#178] Re-enable Gradle build cache 2022-02-04 07:11:38 -05:00
Carter Jernigan 52b6382d47
Configure build with GitHub Actions 2022-01-26 15:13:19 -05:00
Carter Jernigan 40950a0377 [#169] Android Gradle Plugin 7.1
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.
2022-01-25 15:13:11 -05:00
Carter Jernigan d46cf8187c
[#145] Profile scaffold 2022-01-13 12:49:08 -05:00
Carter Jernigan eb550f680e [#166] Included build for SDK development
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.
2022-01-04 16:20:37 -05:00
Carter Jernigan ee96e915ae
[#62] Wallet details scaffold
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
2021-12-31 08:28:16 -05:00
Carter Jernigan 205344c201
[#12] Home screen scaffold (#158)
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)
2021-12-29 14:38:14 -05:00
Carter Jernigan 5df93d2423
[#120] Coroutines 1.6.0
In addition to bumping the dependency version, also leverage the new coroutines testing APIs
2021-12-24 08:34:17 -05:00
Carter Jernigan 2e40af9390 [#17] Import wallet 2021-12-17 10:35:22 -05:00
Carter Jernigan 01a1177e9a [#125] Play Publisher 3.7.0 2021-12-16 15:00:41 -05:00
Carter Jernigan c34d2b1226 [#130] Test Orchestrator 1.4.1 2021-12-16 15:00:02 -05:00
Carter Jernigan 17c5c2ba6a [#148] Kotlin 1.6.10 2021-12-16 14:57:21 -05:00
Carter Jernigan 0ca63f9c75 [#121] Android Gradle Plugin 7.0.4 2021-12-11 08:16:45 -05:00
Carter Jernigan 4a07b2e0b9 [#14] Splash screen 2021-12-04 09:01:21 -05:00
Carter Jernigan 66750a58b1 [#88] Kotlin 1.6
Updating the Compose compiler must happen in lockstep with the Kotlin version, because they are tightly coupled

Kotlin 1.6 also fixes some annoying issues with Java 17, which will make first-time setup less error prone for new contributors
2021-12-03 08:16:24 -05:00
Carter Jernigan f738666cd2
[#42] Add app deployment process
This enables deployment to Google Play internal testing.

Note these changes cannot be fully tested until the signing and API keys are in place.  Non-deployed builds are continuing to work as expected (e.g. `./gradlew assemble`)
2021-12-02 15:18:17 -05:00
Carter Jernigan 010e1a857b
[#94] Update to Zcash SDK 1.3.0-beta19 2021-12-02 15:17:55 -05:00
Carter Jernigan 1d4048318c
[#87] Enable non-transitive R classes 2021-12-02 15:17:08 -05:00
Carter Jernigan 6567f6c18d
[#100] Update AndroidX dependencies 2021-12-02 15:16:52 -05:00
Carter Jernigan c457406bc3
[#98] Detekt 1.19.0 2021-12-02 15:16:34 -05:00
Carter Jernigan 8e9f8037c7 [#99] Ktlint 0.43.1 2021-12-01 15:24:34 -05:00
Carter Jernigan ec983f1f8f [#28] Initial SDK integration
This sets up the infrastructure needed to continue implementing the onboarding UI for create and import of wallets.  By fleshing out the global state management in the app now, we can better manage asynchronous IO to avoid blocking the UI.

This adds:

 - Load and persistence a wallet in encrypted preferences
     - The stored data is written as a single JSON object, as opposed to multiple entries, to ensure atomic writes
     - The data is versioned, so that we can change the JSON format readily in the future
 - Detection of application state, e.g. onboarding versus loading the user's wallet
 - Touch points to initialize the SDK
2021-11-12 07:09:43 -05:00
Carter Jernigan 0ba504fac1 [#78] Fix build on Apple Silicon 2021-11-10 11:38:20 -05:00
Carter Jernigan 3ede7ac8f0 [#59] Enable core library desugaring for app module
Note that if we want to run tests from each module on older Android versions, we would need to enable desugaring for each module that is using newer JDK features.  For now, this prevents the app itself from crashing on devices with older versions of Android
2021-11-09 13:53:20 -05:00
Carter Jernigan 7d305dc953 [#8] Restrict maven repositories
This improves security by ensuring that Google's dependencies only from the Google Maven repo.

A dependency on Jitpack has also been removed.
2021-10-19 14:42:30 -04:00
Carter Jernigan f3c425e68a [#31] Add injection of build info
Provides infrastructure to help us track exactly what build of the app is running.  This provides the ability to implement a number of features in the future
 - Displaying build version in an About screen
 - Automatically versioning with Git commit count as an incrementing version number
 - Injection of secrets, API keys, or other behaviors into the build so that the app can leverage them at runtime.  The secrets can be securely stored as environment variables (e.g. on CI), so they don't need to be committed to the repository.
2021-10-19 13:51:06 -04:00
Carter Jernigan c5f3a44340 [#13] Add initial preference infrastructure
This adds infrastructure to read/write preferences, with both a multiplatform wrapper and an Android-specific implementation.

This implementation is primarily designed to cover the initial needs of implementing the wallet SDK integration for issue #28 for securely storing keys (with encryption) for the user's wallet.
2021-10-19 09:26:03 -04:00
Carter Jernigan 33588e4e66 [#30] Explicitly set the Compose compiler version
Also bump the Compose dependency to 1.0.4, in order to support Kotlin 1.5.31
2021-10-19 07:20:38 -04:00
Carter Jernigan cfe0c47652 [#29] Fix viewmodel-compose artifact 2021-10-19 07:20:17 -04:00
Carter Jernigan bdc86a764d [#26] Android Gradle Plugin 7.0.3 2021-10-19 07:19:49 -04:00
Carter Jernigan 96b1e1913b [#21] Enable test orchestrator 2021-10-11 19:39:50 -04:00
Carter Jernigan 403f5d6467 [#15] Add ui-lib module 2021-10-09 10:36:58 -04:00
Carter Jernigan cec2ad260c [#9] Treat compiler warnings as errors 2021-09-22 12:43:43 -04:00
Carter Jernigan 7520e031c8 [#3] Add ktlint 2021-09-18 07:22:42 -04:00
Carter Jernigan 68a9cc7d27 [#3] Add skeleton Gradle project structure 2021-09-18 07:22:42 -04:00