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>
* [#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>
* [#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>
- 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>
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
A future iteration should generate the HTML reports from these XML files
This rolls back Flank to 21.09.0 but does maintain the ability to version Flank separately.
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.
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.