Skip to content

Commit 16886bd

Browse files
authored
Merge branch 'develop' into release/3.3.1
2 parents 604d771 + 811f9d6 commit 16886bd

File tree

145 files changed

+14027
-893
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

145 files changed

+14027
-893
lines changed

.github/workflows/build-release-candidate.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545
encodedString: ${{ secrets.KEYSTORE }}
4646

4747
- name: Build Release APKs
48-
run: ./gradlew app:assembleDhis2Release app:assembleDhis2PlayServicesRelease
48+
run: ./gradlew --dependency-verification lenient app:assembleDhis2Release app:assembleDhis2PlayServicesRelease
4949
env:
5050
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
5151
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
@@ -69,7 +69,7 @@ jobs:
6969
TRAINING_KEY_PASSWORD: ${{ secrets.TRAINING_KEY_PASSWORD }}
7070
TRAINING_STORE_PASSWORD: ${{ secrets.TRAINING_STORE_PASSWORD }}
7171
TRAINING_STORE_FILE: ${{ steps.decode_training_keystore.outputs.filePath }}
72-
run: ./gradlew app:assembleDhis2TrainingRelease
72+
run: ./gradlew --dependency-verification lenient app:assembleDhis2TrainingRelease
7373

7474
- name: Read version name from file
7575
working-directory: ./gradle

.github/workflows/continuous-delivery.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444

4545
# Create APK Debug
4646
- name: Build apk debug project (APK) - ${{ env.main_project_module }} module
47-
run: ./gradlew assembleDhis2Debug
47+
run: ./gradlew --dependency-verification lenient assembleDhis2Debug
4848
env:
4949
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
5050

.github/workflows/deploy-release.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949
encodedString: ${{ secrets.KEYSTORE }}
5050

5151
- name: Build Release APKs
52-
run: ./gradlew app:assembleDhis2Release app:assembleDhis2PlayServicesRelease
52+
run: ./gradlew --dependency-verification lenient app:assembleDhis2Release app:assembleDhis2PlayServicesRelease
5353
env:
5454
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
5555
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
@@ -73,7 +73,7 @@ jobs:
7373
TRAINING_KEY_PASSWORD: ${{ secrets.TRAINING_KEY_PASSWORD }}
7474
TRAINING_STORE_PASSWORD: ${{ secrets.TRAINING_STORE_PASSWORD }}
7575
TRAINING_STORE_FILE: ${{ steps.decode_training_keystore.outputs.filePath }}
76-
run: ./gradlew app:assembleDhis2TrainingRelease
76+
run: ./gradlew --dependency-verification lenient app:assembleDhis2TrainingRelease
7777

7878
- name: Read version name from file
7979
working-directory: ./gradle

.tx/config

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,6 @@ type = ANDROID
5050
minimum_perc = 0
5151
resource_name = Main App
5252

53-
[o:hisp-uio:p:dhis2-android-capture-app:r:ui-strings-xml]
54-
file_filter = ui-components/src/main/res/values-<lang>/strings.xml
55-
source_file = ui-components/src/main/res/values/strings.xml
56-
source_lang = en
57-
type = ANDROID
58-
minimum_perc = 0
59-
resource_name = UI Components
60-
6153
[o:hisp-uio:p:dhis2-android-capture-app:r:table-strings-xml]
6254
file_filter = compose-table/src/main/res/values-<lang>/strings.xml
6355
source_file = compose-table/src/main/res/values/strings.xml

Jenkinsfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,15 +72,15 @@ pipeline {
7272
steps {
7373
script {
7474
echo 'Running unit tests'
75-
sh './gradlew testDebugUnitTest testDhis2DebugUnitTest --stacktrace --no-daemon'
75+
sh './gradlew --dependency-verification lenient testDebugUnitTest testDhis2DebugUnitTest --stacktrace --no-daemon'
7676
}
7777
}
7878
}
7979
stage('Build Test APKs') {
8080
steps {
8181
script {
8282
echo 'Building UI APKs'
83-
sh './gradlew :app:assembleDhis2Debug :app:assembleDhis2DebugAndroidTest :form:assembleAndroidTest'
83+
sh './gradlew --dependency-verification lenient :app:assembleDhis2Debug :app:assembleDhis2DebugAndroidTest :form:assembleAndroidTest'
8484
}
8585
}
8686
}

app/src/androidTest/java/org/dhis2/usescases/datasets/DataSetTest.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,7 @@ class DataSetTest : BaseTest() {
307307
val cellId = "PGRlPlhOcmpYcVpySEQ4Ojxjb2M+SGxsdlg1MGNYQzA="
308308
val threeDaysFromNowStr = threeDaysFromNow.format(formatter)
309309
val fiveDaysAgoStr = fiveDaysAgo.format(formatter)
310+
310311
enterDataSetStep(
311312
uid = dataSetUid,
312313
name = dataSetName,
@@ -318,10 +319,7 @@ class DataSetTest : BaseTest() {
318319
)
319320

320321
checkTableIsNotEditable()
321-
dataSetTableRobot(composeTestRule) {
322-
tapOnSaveButton()
323-
}
324-
composeTestRule.waitForIdle()
322+
325323
createDailyPeriodDataSetInstanceStep(
326324
date = threeDaysFromNowStr,
327325
orgUnit = orgUnit,
@@ -387,8 +385,9 @@ class DataSetTest : BaseTest() {
387385
composeTestRule.onNodeWithTag("TABLE_SCROLLABLE_COLUMN").printToLog("TABLE_LOG")
388386
dataSetTableRobot(composeTestRule) {
389387
checkItemWithTextIsDisplayed("This data is not editable")
388+
tapOnSaveButton()
389+
composeTestRule.waitForIdle()
390390
}
391-
composeTestRule.waitForIdle()
392391
}
393392

394393
private suspend fun checkContentBoxesAreDisplayed() {

app/src/androidTest/java/org/dhis2/usescases/teidashboard/TeiDashboardTest.kt

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -339,23 +339,21 @@ class TeiDashboardTest : BaseTest() {
339339
clickOnTimelineEvents()
340340
clickOnMenuMoreOptions()
341341
clickOnMenuProgramEnrollments()
342-
}
343342

344-
enrollmentRobot(composeTestRule) {
345-
clickOnAProgramForEnrollment(composeTestRule, womanProgram)
346-
clickOnAcceptInDatePicker()
343+
enrollmentRobot(composeTestRule) {
344+
clickOnAProgramForEnrollment(composeTestRule, womanProgram)
345+
clickOnAcceptInDatePicker()
347346

348-
orgUnitSelectorRobot(composeTestRule) {
349-
selectTreeOrgUnit(orgUnit)
350-
}
347+
orgUnitSelectorRobot(composeTestRule) {
348+
selectTreeOrgUnit(orgUnit)
349+
}
351350

352-
waitUntilActivityVisible<EnrollmentActivity>()
353-
openFormSection(personAttribute)
354-
typeOnInputDateField("01012000", "Date of birth")
355-
clickOnSaveEnrollment()
356-
}
351+
waitUntilActivityVisible<EnrollmentActivity>()
352+
openFormSection(personAttribute)
353+
typeOnInputDateField("01012000", "Date of birth")
354+
clickOnSaveEnrollment()
355+
}
357356

358-
teiDashboardRobot(composeTestRule) {
359357
waitToDebounce(1000)
360358
clickOnMenuMoreOptions()
361359
clickOnTimelineEvents()

app/src/androidTest/java/org/dhis2/usescases/teidashboard/robot/EnrollmentRobot.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,15 @@ fun enrollmentRobot(
4040

4141
class EnrollmentRobot(val composeTestRule: ComposeTestRule) : BaseRobot() {
4242

43+
@OptIn(ExperimentalTestApi::class)
4344
fun clickOnAProgramForEnrollment(composeTestRule: ComposeTestRule, program: String) {
45+
val testTag = PROGRAM_TO_ENROLL.format(program)
4446
composeTestRule.waitForIdle()
45-
composeTestRule.onNodeWithTag(PROGRAM_TO_ENROLL.format(program), useUnmergedTree = true)
47+
composeTestRule.waitUntilAtLeastOneExists(
48+
hasTestTag(testTag),
49+
TIMEOUT
50+
)
51+
composeTestRule.onNodeWithTag(testTag, useUnmergedTree = true)
4652
.performClick()
4753
composeTestRule.waitForIdle()
4854
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.dhis2.usescases.main.domain
2+
3+
import org.dhis2.data.service.VersionRepository
4+
import org.dhis2.mobile.commons.domain.UseCase
5+
import org.dhis2.usescases.main.domain.model.DownloadMethod
6+
7+
class DownloadNewVersion(
8+
private val versionRepository: VersionRepository,
9+
) : UseCase<Unit, DownloadMethod> {
10+
override suspend fun invoke(input: Unit): Result<DownloadMethod> =
11+
try {
12+
val url = versionRepository.getUrl()
13+
url?.let {
14+
Result.success(DownloadMethod.Url(it))
15+
} ?: Result.failure(DomainError.UnexpectedError("No url provided"))
16+
} catch (domainError: DomainError) {
17+
Result.failure(domainError)
18+
}
19+
}

app/src/main/java/org/dhis2/bindings/Bindings.java

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,9 @@
55
import android.graphics.drawable.AnimatedVectorDrawable;
66
import android.graphics.drawable.Drawable;
77
import android.graphics.drawable.GradientDrawable;
8-
import android.os.Build;
98
import android.util.TypedValue;
109
import android.view.View;
1110
import android.widget.ImageView;
12-
import android.widget.LinearLayout;
1311
import android.widget.TextView;
1412

1513
import androidx.appcompat.content.res.AppCompatResources;
@@ -168,13 +166,6 @@ public static void setImageBackground(ImageView imageView, Drawable drawable) {
168166

169167
}
170168

171-
@BindingAdapter("versionVisibility")
172-
public static void setVisibility(LinearLayout linearLayout, boolean check) {
173-
if (check && Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
174-
linearLayout.setVisibility(View.GONE);
175-
}
176-
}
177-
178169
@BindingAdapter("settingIcon")
179170
public static void setSettingIcon(ImageView view, int drawableReference) {
180171
Drawable drawable = AppCompatResources.getDrawable(view.getContext(), drawableReference);

0 commit comments

Comments
 (0)