Skip to content

[Automatic] Upstream release 3.4.1#31

Merged
alex-vt merged 12 commits into
mainfrom
upstream-release/3.4.1
Jul 7, 2026
Merged

[Automatic] Upstream release 3.4.1#31
alex-vt merged 12 commits into
mainfrom
upstream-release/3.4.1

Conversation

@alex-vt

@alex-vt alex-vt commented Jul 7, 2026

Copy link
Copy Markdown
Collaborator

This PR brings upstream-tracking release/3.4.1 branch to be merged into main.

Release merge commit in the upstream-tracking upstream-main branch of this (fork) repo: 14089cffdff335f7181f2c39dea1a6c89ae6a581.
Release merge commit in the main branch of the dhis2/dhis2-android-capture-app upstream repo: 14089cffdff335f7181f2c39dea1a6c89ae6a581.

For your reference, this Action's config can be viewed here, and the run logs here.

xavimolloy and others added 12 commits June 17, 2026 11:44
…en the user manually checks for updates in the Settings menu (dhis2#4927)
…ctivity (dhis2#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 (dhis2#4933)

* Rechecks navigational bar server config after metadata sync

* Fix integration tests of MainViewModel
dhis2#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]

@alex-vt alex-vt left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These few changes don't appear to interfere with biometric features - also confirmed in testing. Also, the upstream release APK is now built at github.com/dhis2/dhis2-android-capture-app/releases/tag/3.4.1. Good to go.

@alex-vt alex-vt merged commit 503f619 into main Jul 7, 2026
@github-actions github-actions Bot deleted the upstream-release/3.4.1 branch July 7, 2026 13:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants