Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into main-validate-extract…
Browse files Browse the repository at this point in the history
…ed-resources
  • Loading branch information
LZRS committed Jul 27, 2024
2 parents 303f03b + b03ae6b commit 73d4d6e
Show file tree
Hide file tree
Showing 32 changed files with 231 additions and 62 deletions.
93 changes: 67 additions & 26 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
name: CI

on:
workflow_dispatch:
pull_request:
branches: [ main ]
merge_group:
Expand All @@ -17,7 +18,7 @@ env:

jobs:
engine-tests:
runs-on: macos-13
runs-on: ubuntu-latest
strategy:
matrix:
api-level: [30]
Expand All @@ -28,15 +29,20 @@ jobs:
access_token: ${{ github.token }}

- name: Checkout 🛎️
uses: actions/checkout@v2
with:
fetch-depth: 2
uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v1
with:
distribution: temurin
java-version: 17

- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Add empty local.properties
run: touch local.properties
working-directory: android
Expand All @@ -52,15 +58,15 @@ jobs:
- name: Copy CI gradle.properties
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties && cat ~/.gradle/gradle.properties

- name: Setup Gradle cache
uses: gradle/gradle-build-action@v2
- name: Gradle cache
uses: gradle/actions/setup-gradle@v3

- name: Spotless check engine module
run: ./gradlew -PlocalPropertiesFile=local.properties :engine:spotlessCheck :engine:ktlintCheck --stacktrace
working-directory: android

- name: Load AVD cache
uses: actions/cache@v2
uses: actions/cache@v4
id: avd-cache
with:
path: |
Expand All @@ -86,7 +92,7 @@ jobs:
working-directory: android
api-level: ${{ matrix.api-level }}
arch: x86_64
force-avd-creation: true
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: ./gradlew -PlocalPropertiesFile=local.properties :engine:clean :engine:fhircoreJacocoReport --stacktrace
Expand All @@ -97,7 +103,7 @@ jobs:
run: bash <(curl -s https://codecov.io/bash) -F engine -f "engine/build/reports/jacoco/fhircoreJacocoReport/fhircoreJacocoReport.xml"

geowidget-tests:
runs-on: macos-13
runs-on: ubuntu-latest
strategy:
matrix:
api-level: [30]
Expand All @@ -108,15 +114,20 @@ jobs:
access_token: ${{ github.token }}

- name: Checkout 🛎️
uses: actions/checkout@v2
with:
fetch-depth: 2
uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v1
with:
distribution: temurin
java-version: 17

- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Add empty local.properties
run: touch local.properties
working-directory: android
Expand All @@ -132,15 +143,15 @@ jobs:
- name: Copy CI gradle.properties
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties && cat ~/.gradle/gradle.properties

- name: Setup Gradle cache
uses: gradle/gradle-build-action@v2
- name: Gradle cache
uses: gradle/actions/setup-gradle@v3

- name: Spotless check geowidget module
run: ./gradlew -PlocalPropertiesFile=local.properties :geowidget:spotlessCheck --stacktrace
working-directory: android

- name: Load AVD cache
uses: actions/cache@v2
uses: actions/cache@v4
id: avd-cache
with:
path: |
Expand Down Expand Up @@ -177,7 +188,7 @@ jobs:
run: bash <(curl -s https://codecov.io/bash) -F geowidget -f "geowidget/build/reports/jacoco/fhircoreJacocoReport/fhircoreJacocoReport.xml"

quest-tests:
runs-on: macos-13
runs-on: ubuntu-latest
strategy:
matrix:
api-level: [30]
Expand All @@ -187,15 +198,20 @@ jobs:
with:
access_token: ${{ github.token }}
- name: Checkout 🛎️
uses: actions/checkout@v2
with:
fetch-depth: 2
uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v1
with:
distribution: temurin
java-version: 17

- name: Enable KVM
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Add empty local.properties
run: touch local.properties
working-directory: android
Expand All @@ -211,15 +227,15 @@ jobs:
- name: Copy CI gradle.properties
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties && cat ~/.gradle/gradle.properties

- name: Setup Gradle cache
uses: gradle/gradle-build-action@v2
- name: Gradle cache
uses: gradle/actions/setup-gradle@v3

- name: Spotless check quest application
run: ./gradlew -PlocalPropertiesFile=local.properties :quest:spotlessCheck --stacktrace :quest:ktlintCheck --stacktrace
working-directory: android

- name: Load AVD cache
uses: actions/cache@v2
uses: actions/cache@v4
id: avd-cache
with:
path: |
Expand All @@ -239,7 +255,7 @@ jobs:
disable-animations: false
script: echo "Generated AVD snapshot for caching."

- name: Run Quest module unit and instrumentation tests and generate coverage report
- name: Run Quest module unit and instrumentation tests and generate unit tests coverage report
uses: reactivecircus/android-emulator-runner@v2
with:
working-directory: android
Expand All @@ -249,9 +265,34 @@ jobs:
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: ./gradlew clean -PlocalPropertiesFile=local.properties :quest:fhircoreJacocoReport --stacktrace -Pandroid.testInstrumentationRunnerArguments.notPackage=org.smartregister.fhircore.quest.performance
# ./gradlew -PlocalPropertiesFile=local.properties :quest:clean && ./gradlew -PlocalPropertiesFile=local.properties :quest:assembleOpensrpDebugAndroidTest --stacktrace && /Users/runner/Library/Android/sdk/platform-tools/adb install quest/build/outputs/apk/androidTest/opensrp/debug/quest-opensrp-debug-androidTest.apk && ./gradlew -PlocalPropertiesFile=local.properties :quest:assembleOpensrpDebug --stacktrace && /Users/runner/Library/Android/sdk/platform-tools/adb install quest/build/outputs/apk/opensrp/debug/quest-opensrp-debug.apk && /Users/runner/Library/Android/sdk/platform-tools/adb shell am instrument -w -e package org.smartregister.fhircore.quest.ui.profile -e coverage "true" org.smartregister.opensrp.test/org.smartregister.fhircore.quest.QuestTestRunner && /Users/runner/Library/Android/sdk/platform-tools/adb shell run-as org.smartregister.opensrp cat "/data/user/0/org.smartregister.opensrp/files/coverage.ec" > quest/coverage.ec && ./gradlew -PlocalPropertiesFile=local.properties :quest:fhircoreJacocoReport --stacktrace


- name: Run Quest module unit and instrumentation tests and generate aggregated coverage report (Disabled)
if: false
uses: reactivecircus/android-emulator-runner@v2
with:
working-directory: android
api-level: ${{ matrix.api-level }}
arch: x86_64
force-avd-creation: true
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
run: |
set -e
./gradlew -PlocalPropertiesFile=local.properties :quest:clean
./gradlew -PlocalPropertiesFile=local.properties :quest:assembleOpensrpDebugAndroidTest --stacktrace
/Users/martin/Library/Android/sdk/platform-tools/adb install quest/build/outputs/apk/androidTest/opensrp/debug/quest-opensrp-debug-androidTest.apk
./gradlew -PlocalPropertiesFile=local.properties :quest:assembleOpensrpDebug --stacktrace
/Users/martin/Library/Android/sdk/platform-tools/adb install quest/build/outputs/apk/opensrp/debug/quest-opensrp-debug.apk
/Users/martin/Library/Android/sdk/platform-tools/adb shell am instrument -w \
--no-window-animation \
-e coverage "true" \
-e debug false \
org.smartregister.opensrp.test/org.smartregister.fhircore.quest.QuestTestRunner
/Users/martin/Library/Android/sdk/platform-tools/adb shell run-as org.smartregister.opensrp \
cat "/data/user/0/org.smartregister.opensrp/files/coverage.ec" > quest/coverage.ec
./gradlew -PlocalPropertiesFile=local.properties :quest:fhircoreJacocoReport --stacktrace
- name: Upload Quest module test coverage report to Codecov
if: matrix.api-level == 30 # Only upload coverage on API level 30
working-directory: android
run: bash <(curl -s https://codecov.io/bash) -F quest -f "quest/build/reports/jacoco/fhircoreJacocoReport/fhircoreJacocoReport.xml"
run: bash <(curl -s https://codecov.io/bash) -F quest -f "quest/build/reports/jacoco/fhircoreJacocoReport/fhircoreJacocoReport.xml"
2 changes: 2 additions & 0 deletions android/buildSrc/src/main/kotlin/BuildConfigs.kt
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@ object BuildConfigs {
const val kotlinCompilerExtensionVersion = "1.5.8"
const val jacocoVersion ="0.8.11"
const val ktLintVersion = "0.49.0"
const val enableUnitTestCoverage = true
const val enableAndroidTestCoverage = false
}
5 changes: 4 additions & 1 deletion android/engine/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,10 @@ android {
}

buildTypes {
getByName("debug") { enableUnitTestCoverage = true }
getByName("debug") {
enableUnitTestCoverage = BuildConfigs.enableUnitTestCoverage
enableAndroidTestCoverage = BuildConfigs.enableAndroidTestCoverage
}

create("debugNonProxy") {
initWith(getByName("debug"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ interface ConfigService {
/**
* Provide a list of custom search parameters.
*
* @return list of predefined custom group search parameters.
* @return list of predefined custom search parameters.
*/
fun provideCustomSearchParameters(): List<SearchParameter> {
val activeGroupSearchParameter =
Expand All @@ -87,11 +87,23 @@ interface ConfigService {
description = "Search the active field"
}

return listOf(activeGroupSearchParameter)
val flagStatusSearchParameter =
SearchParameter().apply {
url = "http://smartregister.org/SearchParameter/flag-status"
addBase("Flag")
name = STATUS_SEARCH_PARAM
code = STATUS_SEARCH_PARAM
type = Enumerations.SearchParamType.TOKEN
expression = "Flag.status"
description = "Search the status field"
}

return listOf(activeGroupSearchParameter, flagStatusSearchParameter)
}

companion object {
const val ACTIVE_SEARCH_PARAM = "active"
const val APP_VERSION = "AppVersion"
const val STATUS_SEARCH_PARAM = "status"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ data class GeoWidgetConfiguration(
val summaryBottomSheetConfig: SummaryBottomSheetConfig? = null,
val actions: List<ActionConfig>? = emptyList(),
val noResults: NoResultsConfig? = null,
val filterDataByRelatedEntityLocation: Boolean? = null,
) : Configuration()

@Serializable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,15 @@ data class ServiceCardProperties(
val details: List<CompoundTextProperties> = emptyList(),
val showVerticalDivider: Boolean = false,
val serviceMemberIcons: String? = null,
val serviceMemberIconsTint: String? = null,
val serviceButton: ButtonProperties? = null,
val services: List<ButtonProperties>? = null,
val actions: List<ActionConfig> = emptyList(),
) : ViewProperties(), Parcelable {
override fun interpolate(computedValuesMap: Map<String, Any>): ServiceCardProperties {
return this.copy(
backgroundColor = backgroundColor?.interpolate(computedValuesMap),
serviceMemberIconsTint = serviceMemberIconsTint?.interpolate(computedValuesMap),
visible = visible.interpolate(computedValuesMap),
serviceMemberIcons = serviceMemberIcons?.interpolate(computedValuesMap),
clickable = clickable.interpolate(computedValuesMap),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -807,7 +807,7 @@ constructor(
resources = resources,
relatedResourcesConfigs = resourceConfig.relatedResources,
relatedResourceWrapper = RelatedResourceWrapper(),
configComputedRuleValues = emptyMap(),
configComputedRuleValues = computedValuesMap,
)
}

Expand Down
1 change: 1 addition & 0 deletions android/engine/src/main/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<string name="sync_data">Synchronisation des données</string>
<string name="scan_bar_code">Scan du code-barres</string>
<string name="empty_client_list_message_title">Aucun résultat</string>
<string name="data_migration_version">Version de migration de données %1$s</string>
<string name="empty_client_list_message_details">Désolé, nous n\'avons pas trouvé de client avec le nom ou l\'identifiant donné.</string>
<string name="register_new_client">Enregistrer un nouveau client</string>
<string name="app_logo">Logo de l\'application</string>
Expand Down
1 change: 1 addition & 0 deletions android/engine/src/main/res/values-in/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -174,4 +174,5 @@
<string name="os_version">Versi OS</string>
<string name="device_date">Tanggal</string>
<string name="device">Perangkat</string>
<string name="data_migration_version">Versi migrasi data</string>
</resources>
1 change: 1 addition & 0 deletions android/engine/src/main/res/values-sw/strings.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<resources>
<string name="app_version">Toleo %1$d(%2$s)</string>
<string name="data_migration_version">Toleo la uhamiaji wa data %1$s</string>
<string name="last_sync">Usawazishaji wa mwisho %1$s</string>
<string name="language">Lugha</string>
<string name="empty_client_list_message_title">Hakuna Matokeo</string>
Expand Down
9 changes: 9 additions & 0 deletions android/engine/src/main/res/values/colors.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,13 @@
<color name="backgroundGray">#f2f5f6</color>
<color name="status_gray">#9e9b9b</color>
<color name="background_warning">#FFECD6</color>

<color name="background_neutral_100">#FFFFFF</color>
<color name="onBackground_neutral_10">#1F1F1F</color>

<color name="surface_neutral_100">#FFFFFF</color>
<color name="onSurface_neutral_10">#1F1F1F</color>

<color name="surfaceVariant_neutral_variant_90">#E1E3E1</color>
<color name="onSurfaceVariant_neutral_variant_30">#444746</color>
</resources>
1 change: 1 addition & 0 deletions android/engine/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
<string name="app_logo">Application logo</string>
<string name="powered_by">Powered By</string>
<string name="app_version">App version %1$d(%2$s)</string>
<string name="data_migration_version">Data migration version %1$s</string>
<string name="last_sync">Last sync %1$s</string>
<string name="login_text">LOGIN</string>
<string name="login_call_fail_error_message">Failed to verify credentials from the server. Check your internet connection</string>
Expand Down
27 changes: 27 additions & 0 deletions android/engine/src/main/res/values/styles.xml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,24 @@
<item name="android:textColorSecondary">@color/white</item>
<item name="questionnaireSubmitButtonStyle">@style/AppTheme.QuestionnaireSubmitButtonStyle</item>
<item name="questionnaireButtonStyle">@style/AppTheme.QuestionnaireButtonStyle</item>
<item name="questionnaireMediaImageStyle">@style/AppTheme.MediaImageStyle</item>
<item name="questionnaireCancelButtonStyle">@style/AppTheme.QuestionnaireCancelButtonStyle</item>
<!-- Help card container color -->
<item
name="android:colorBackground"
>@color/background_neutral_100</item>
<item name="colorOnBackground">@color/onBackground_neutral_10</item>

<item name="colorSurface">@color/surface_neutral_100</item>
<item name="colorOnSurface">@color/onSurface_neutral_10</item>

<item
name="colorSurfaceVariant"
>@color/surfaceVariant_neutral_variant_90</item>
<item
name="colorOnSurfaceVariant"
>@color/onSurfaceVariant_neutral_variant_30</item>
<!-- /Help card container color -->
</style>

<style name="AppTheme.QuestionnaireSubmitButtonStyle" parent="Widget.MaterialComponents.Button">
Expand All @@ -79,4 +96,14 @@
<item name="android:layout_height">wrap_content</item>
</style>

<style name="AppTheme.MediaImageStyle" parent="">
<item name="android:layout_gravity">center</item>
<item
name="android:layout_marginTop"
>@dimen/item_media_image_margin_vertical</item>
<item
name="android:layout_marginBottom"
>@dimen/item_media_image_margin_vertical</item>
</style>

</resources>
Loading

0 comments on commit 73d4d6e

Please sign in to comment.