chore: main to develop [skip size]#4963
Merged
Merged
Conversation
…en the user manually checks for updates in the Settings menu (#4927)
Signed-off-by: Manu Muñoz <manu.munoz@dhis2.org>
…ctivity (#4917) * fix: [ANDROAPP-7658] Do not display sync infobar if teiDashboard is displayed from the event capture activity * fix: [ANDROAPP-7658] fix unit tests * fix: [ANDROAPP-7658] hide sync button in landscape when creating new events
…tadata sync (#4933) * Rechecks navigational bar server config after metadata sync * Fix integration tests of MainViewModel
#4919) * fix: [ANDROAPP-7664] Improve load time of dashboard screen * Remove default analytics related tests * set runTest in dashboardViewModelTest * fix dashboard android tests * revert changes to AndroidIdlingResource.kt * chained events calling increment * remove unnecessary ui thread call * use unconditional coroutine tracker methods * use unconditional coroutine tracker methods * fix infinite collection in CredentialsViewModel.kt * add decrement to error flow * test: [ANDROAPP-7664] decrement idling resource on error in note detail presenter * force decrement to idle * fix sonarcloud comments * do not retry on timeout * Root cause — DashboardViewModel.navigationBarUIState used NavigationBarUIState(items=emptyList(), TEIDashboardItems.DETAILS) as the stateIn initial value. This caused the LaunchedEffect in TeiDashboardMobileActivity to immediately navigate to TEIDataFragment (the DETAILS tab) on first composition, even in landscape mode where the DETAILS tab isn't displayed. loadNavigationBarItems() would then quickly determine DETAILS shouldn't be shown in landscape and switch the selected item to the first real tab (ANALYTICS, NOTES, etc.), causing TEIDataFragment to be immediately paused. onPause() calls presenter.onDettach() → compositeDisposable.clear(), but because the outer switchMap subscription uses subscribeOn(io), the increment() inside the switchMap body can run asynchronously on the IO thread after the clear. This left TeiDataIdlingResourceSingleton's counter stuck at 1 — TEI_DATA never became idle — and Espresso timed out. Fix (DashboardViewModel.kt) — Changed the stateIn initial value from NavigationBarUIState(items=emptyList(), TEIDashboardItems.DETAILS) to NavigationBarUIState() (null selectedItem). This means: - No fragment navigation happens until loadNavigationBarItems() completes with the actual items - In landscape, TEIDataFragment is never created and TEI_DATA stays idle - In portrait, navigation to DETAILS happens once (after nav items load), exactly the same net result as before --------- Co-authored-by: Xavier Molloy <xavi@dhis2.org>
* build: Release 3.4.1 * update release notes Signed-off-by: Manu Muñoz <manu.munoz@dhis2.org> * chore: update dependency verification metadata --------- Signed-off-by: Manu Muñoz <manu.munoz@dhis2.org> Co-authored-by: Manu Muñoz <manu.munoz@dhis2.org> Co-authored-by: @dhis2-bot <apps@dhis2.org>
build: Release 3.4.1 [skip size]
# Conflicts: # app/src/main/java/org/dhis2/data/service/SyncPresenterImpl.kt # app/src/main/java/org/dhis2/usescases/main/MainModule.kt # app/src/test/java/org/dhis2/usescases/main/MainViewModelIntegrationTest.kt # app/src/test/java/org/dhis2/usescases/main/MainViewModelTest.kt # dhis_android_analytics/src/main/java/dhis2/org/analytics/charts/ChartsRepositoryImpl.kt # dhis_android_analytics/src/main/java/dhis2/org/analytics/charts/di/ChartsModule.kt # dhis_android_analytics/src/test/java/dhis2/org/analytics/charts/ChartsRepositoryTest.kt # gradle/libs.versions.toml # login/src/commonMain/kotlin/org/dhis2/mobile/login/main/ui/viewmodel/CredentialsViewModel.kt
andresmr
approved these changes
Jul 9, 2026
Balcan
approved these changes
Jul 9, 2026
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Description
Link the JIRA issue.
Please provide a clear definition of the problem and explain your solution.