Commit Graph

642 Commits

Author SHA1 Message Date
Honza Rychnovsky b4bad94068
[#450] Solve multiple calls to Play Core with LaunchedEffect 2022-06-08 10:39:33 +02:00
Honza Rychnovsky 0dfd8d1e22
[#421] Compose compiler version to 1.2.0-beta03 2022-06-07 14:30:10 +02:00
Carter Jernigan a47c179812 [#441] Make included build path configurable 2022-06-07 07:09:40 -04:00
Honza Rychnovsky 0023eb287a
[#430] Crash Intel 64-bit Emulators
* [#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.
2022-06-07 07:24:45 +02:00
Carter Jernigan 59e8d235f6 [#5] Remove subproject configuration for coverage 2022-06-06 08:41:01 -04:00
Carter Jernigan 8b5a67b23c [#22] Remove subproject configuration for testOptions 2022-06-06 08:41:01 -04:00
Carter Jernigan 1ce826e453 [#464] Use Kover for multiplatform coverage 2022-06-06 08:41:01 -04:00
Carter Jernigan e6a9889976 [#462] Suppress R8 warnings for kotlinx.serialization 2022-06-02 17:05:53 -04:00
Carter Jernigan 1880b2a43f
[#200][#285] Use Espresso screenshot API
- 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
2022-06-02 11:09:02 -04:00
Honza Rychnovsky adc774a20d
[#313] scan qr screen functional
* [#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>
2022-06-02 13:35:51 +02:00
Carter Jernigan 8b6d0bd1b4 [#460] Coroutines 1.6.2 2022-06-01 05:22:57 -04:00
Carter Jernigan e9fd67a51a [#421] Kotlin 1.6.21 and Compose Compiler 1.2.0-beta02 2022-06-01 05:22:57 -04:00
Carter Jernigan ea68d63dd2 [#387] Detekt 1.20.0 2022-06-01 05:22:57 -04:00
Carter Jernigan a0f22be16f [#454] Splashscreen 1.0.0-rc01 2022-06-01 05:22:57 -04:00
Carter Jernigan d7c225e1d4 [#459] Fladle 0.17.4 2022-06-01 05:22:57 -04:00
Carter Jernigan 319f3a3a6d [#458] Androidx Test updates 2022-06-01 05:22:57 -04:00
Carter Jernigan 2b3ae156a6 [#455] Zxing 3.5.0 2022-06-01 05:22:57 -04:00
Carter Jernigan 2005e8a481 [#453] Gradle versions plugin 0.42.0 2022-06-01 05:22:57 -04:00
Carter Jernigan acca250a8f [#456] GitHub Cache Action 3.0.3 2022-06-01 05:22:57 -04:00
Carter Jernigan 2091a3d373 [#432] Google Auth GitHub Action 0.8.0 2022-06-01 05:22:57 -04:00
Carter Jernigan b9eea25574 [#452] AGP 7.2.1 2022-06-01 05:22:57 -04:00
Carter Jernigan 7b6aba5fbb [#444] Zcash SDK 1.5.0-beta01 2022-06-01 05:22:57 -04:00
Carter Jernigan 9267e75cb8
[#303] Write crash logs on external storage (#429)
- Added automatic exception logging, registered in the Application object
 - The design sends the exception to a second process, as the main process could be in a bad state when crashing. If we ever encounter problems with this design, it is easily toggleable to turn off with a boolean resource
 - Reading the process name is a bit complex on older Android versions, so we leverage a ContentProvider (which runs prior to Application.onCreate()) to get the process name
 - Added a simple logging mechanism for multiprocess and multithread log messages
 - Refactored spackle-lib into spackle-lib (multiplatform) and spackle-android-lib

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2022-05-31 12:38:02 -04:00
Carter Jernigan 94d259d5b0
[#190] Pull screenshots on CI 2022-05-24 09:39:56 -04:00
Honza Rychnovsky caf58f963a
[#312] Scan QR Screen Scaffold
* [#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.
- Suppress Lint warning
Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-05-19 14:41:58 +02:00
Carter Jernigan a8be47bf89
[#433] Use emulator.wtf for tests on CI (#428)
This should speed up our builds and reduce flakiness.

Followup items:
 - Enable coverage
 - Collect screenshots
 - Fix target API on sdk-ext-lib #430
2022-05-17 10:06:56 -04:00
Carter Jernigan 62f976b1d8
[#431] Switch to Adoptium JDK
Temurin/Adoptium is the default used by Gradle toolchains, and they now have both Java 11 and 17 ARM support for Macs
2022-05-17 06:07:22 -04:00
Carter Jernigan 4f960d5bf8
[#6] Refactor kotlinOptions to build-conventions 2022-05-17 06:06:44 -04:00
Honza Rychnovsky 665042e6d9
[#211] check for app updates
- Basic screen UI scaffolding.
- Set up communication with Google Play in-app update API.
- Mocking communication with Google Play API.
- Added unit, UI and integration tests for the in-app update screen model, util, view and viewmodel classes.
- Added mock implementation of helper AppUpdateChecker class.
- Introduced ViewModel integration test.
- Filed issue for future manual testing of implemented in-app update mechanisms after the wallet app is released on Google Play.
-  Implement FakeAppUpdateManager in AppUpdateCheckerMock instead of the ugly AppUpdateInfo instantiation - this affected the tests too.
Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-05-16 13:40:50 +02:00
Honza Rychnovsky 0f5a094a92
[#424] Back button invisible on Wallet addresses screen.
- Solved by removing unnecessary tint parameter.
2022-05-13 13:58:28 +02:00
Carter Jernigan a65aec18a4
[#418] Android Gradle Plugin 7.2.0 2022-05-11 16:24:52 -04:00
Honza Rychnovsky d83b89d46e [#409] Keep showing keyboard over Home screen
- Implement hiding software keyboard manually, as it stays shown after all words are filled successfully.
2022-05-09 10:26:13 +02:00
Honza Rychnovsky f41ecab98a
[#179] Improve Ability to Run Application under Robo Test 2022-05-08 14:47:25 +02:00
Carter Jernigan b0ae6b5e72
[#290] Screen on for UI tests (#400)
This improves the reliability of UI tests, especially on physical devices, by helping ensure the screen is on.

Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2022-05-02 15:49:49 -04:00
Carter Jernigan 08fad9e763 [#296] About screen scaffold
This provides a basic scaffold for the About screen.  There are several followup issues:

 - #392 update the in-app legal text
 - #398 Add open source attributions
2022-04-29 15:26:28 -04:00
Francisco Gindre 5e1d25b34a
[#401] Add Contributing Guidelines (#402)
* [#401] Update Contributing Guidelines "Commit Messages" section to reflect the changes on iOS SDK

Closes #401

Update Contributing Guidelines "Commit Messages" section to reflect the changes on iOS SDK

* Apply to existing CONTRIBUTING.md

Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-04-29 09:27:58 -03:00
Carter Jernigan 3e67fda537
[#394] Kotlin 1.6.20
Also updated the Compose compiler to be compatible
2022-04-22 10:57:56 -04:00
Carter Jernigan 48bd2e8ced
[#213] Contact support scaffold
This provides a basic screen for users to type a support inquiery, which then opens a pre-filled message in the user’s email app.

There are a few followup issues:
 - Detect seed phrases in the email #377
 - Report crashes in the generated email #378
 - Fuzz timestamps #388
 - Set the correct support email address #379
 - Improve handling on devices without an email app #386
2022-04-19 21:28:49 -04:00
Honza Rychnovsky 15f119371a
[#356] Crash verify backup while save state
- Check solution with Parcelable to the Index model class.
- Align implementation with lint checks.
- Implement custom Saver object.
- Add test cases for the new custom Saver.
- Add fixture for the new test cases.
- Remove testChoices form BackupVM and add rememberSaveable to BackupView.
- Enhance TestChoices.Saver save/store mechanisms.
- Add integration test class with 3 tests.
- Add new callback choices and onChoicesChanged to BackupWallet composable and BackupTestSetup class to be able to test save/restore mechanism of Backup-Test stage.
- Refactor WrapBackup.
- This is a new pattern that helps us share more logic between the using the test activity and the main activity, which makes the state retention tests more valid
- Co-authored-by: Carter Jernigan <git@carterjernigan.com>
2022-04-19 14:04:56 +02:00
Honza Rychnovsky 550df810c9
[#71] Add re-creation test for onboarding
- Created dedicated test activity for integration tests.
- Created Onboarding integration test class with two state restoration tests.
- Moved OnboardingTestSetup to its own class.
- Filed related issues.
2022-04-14 18:34:12 +02:00
Carter Jernigan 07a12f8832 [#374] Run sanity check on universal APK 2022-04-13 05:53:12 -04:00
Carter Jernigan 9933721b5a [#373] Generate universal APK on CI 2022-04-13 05:53:12 -04:00
Carter Jernigan c5f81f7c94 [#277] Fix collection of release binary artifacts
We won’t know for certain whether this works until the main branch deployment completes
2022-04-12 10:17:57 -04:00
Carter Jernigan 741593eeb0 [#366] Navigation Compose 2.4.2 2022-04-12 10:09:14 -04:00
Carter Jernigan a0294fb1f4 [#365] Compose Material3 1.0.0-alpha09 2022-04-12 10:09:14 -04:00
Carter Jernigan 79c3d43426 [#367] ktlint 0.45.2 2022-04-12 10:09:14 -04:00
Carter Jernigan ac1635261e [#368] Jacoco 0.8.8 2022-04-12 10:09:14 -04:00
Carter Jernigan 6e118ab3ea [#363] GitHub Setup Java Action 3.1.1 2022-04-12 10:09:14 -04:00
Carter Jernigan f7f3754dea [#364] GitHub Cache Action 3.0.2 2022-04-12 10:09:14 -04:00
Carter Jernigan b280914a84 [#358] AGP 7.1.3 2022-04-12 10:09:14 -04:00