Commit Graph

33 Commits

Author SHA1 Message Date
Carter Jernigan 45d90b7706 [#586] AGP 7.3 2022-09-22 16:06:09 -04:00
Carter Jernigan b5c09832df [#578] Use API 33 devices on Firebase Test Lab 2022-09-01 06:38:29 -04:00
Carter Jernigan 1bd5e7518e [#560] Detect strict mode violations on CI 2022-08-09 17:06:04 -04:00
Honza Rychnovsky 35af2bdfc9
[#496] New package suffix for the app builds
- 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>
2022-06-29 16:47:32 -04:00
Carter Jernigan 6540cd6bd3 [#482] Rename build-convention to build-conventions-secant
This prevents naming conflicts with included builds across multiple projects with build conventions.
2022-06-14 18:20:51 -04:00
Carter Jernigan 020192b01e
[#439] Take light/dark screenshots
Co-authored-by: Honza <rychnovsky.honza@gmail.com>
2022-06-08 10:22:09 -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 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
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
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 4f960d5bf8
[#6] Refactor kotlinOptions to build-conventions 2022-05-17 06:06:44 -04: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 07a12f8832 [#374] Run sanity check on universal APK 2022-04-13 05:53:12 -04:00
Honza Rychnovsky 4e5e5c4ab7
[#223] fromZecString reject bad input.
- Implementing regex solution for validation of input ZecAmount after confirm button is pressed.
- Added also unit tests for this new feature.
- Move necessary components from sdk-ext-lib to sdk-ext-ui module.
- Align implementation with comments form PR.
- Fix name of run configuration.
- Ensure consistent behavior of tests.
2022-04-08 14:33:08 +02:00
Carter Jernigan 8be473a988 [#335] Flank 22.03.0 2022-04-06 07:56:17 -04:00
Carter Jernigan fb5fc153a5 [#278] Fix Firebase Test Lab configuration 2022-03-20 17:00:35 -04:00
Carter Jernigan bb43d2f7a6 [#271] Disable publishing of testnet 2022-03-11 06:19:04 -05:00
Carter Jernigan 93347c3116 [#256] Fix release signing config 2022-03-04 06:44:43 -05:00
Carter Jernigan 2941e873c2 [#177] Change application package name
In a separate pull request, the class packages will be refactored to match this new package name
2022-02-24 07:17:49 -05:00
Carter Jernigan 2aba8fe33b
[#70] Generate screenshots automatically
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.
2022-01-31 16:42:22 -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 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 24cd0e2b25 Update project setup instructions 2021-12-11 07:08:12 -05:00
Carter Jernigan f0d9c6d398
[#23] Minify release builds 2021-12-03 08:12:40 -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 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 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 96b1e1913b [#21] Enable test orchestrator 2021-10-11 19:39:50 -04:00
Carter Jernigan 1f5d7eb966 [#15] Add onboarding skeleton
This implements the logical flow between the onboarding stages, as well as nearly full test coverage of the flow.

There's a lot of followup work, especially to implement design styles.  It currently contains various placeholder values, e.g. lorem ipsum text and color blocks instead of images.  See #17
2021-10-11 12:38:46 -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 68a9cc7d27 [#3] Add skeleton Gradle project structure 2021-09-18 07:22:42 -04:00