Skip to content

Releases: dhis2/dhis2-android-capture-app

Android Capture App for DHIS 2 (v3.4.1)

Choose a tag to compare

@github-actions github-actions released this 07 Jul 13:04
14089cf

Release notes - Android App for DHIS2 - 3.4.1

Bug

ANDROAPP-6516 Values in events and program stages not being updated when syncing with server from them

ANDROAPP-6611 Synchronization does not automatically start on re-connection

ANDROAPP-7238 Analytics configured with data type int in web show 1 decimal in app

ANDROAPP-7287 Flicker when no teis in tei list

ANDROAPP-7352 Delete TEI/Delete Enrollment is not showing in the menu with the ALL authority

ANDROAPP-7364 Server URL not well formed error

ANDROAPP-7398 Wrong Snackbar color

ANDROAPP-7406 Cards are not always displayed in map view

ANDROAPP-7412 Offline Biometric Login is not accessible

ANDROAPP-7431 username does not trim trailing white spaces

ANDROAPP-7439 Custom label (at least enrollment) is not displayed when editing a TE

ANDROAPP-7446 Incorrect flow to create TEI: Display front page list and Allow user to create a TEI without searching

ANDROAPP-7458 Cannot select lower options in large option sets with checkbox or radio button configuration

ANDROAPP-7499 New Network Status Provider does not handle VPNs and local connections

ANDROAPP-7520 SSO: Logout does not end IdP session

ANDROAPP-7523 Cursor moves to the end when updating value

ANDROAPP-7527 NullPointerException: The callable returned a null value

ANDROAPP-7528 ApplicationNotResponding: ANR

ANDROAPP-7531 Program rule: not triggered unless selection is made in option set

ANDROAPP-7532 [ANR] In TeiDashboard with displayAnalytics()

ANDROAPP-7533 Working list results fluctuating and loading inconsistently

ANDROAPP-7541 AppTheme color not changing text colors

ANDROAPP-7544 [Mobile-UI] When the DateTime input has focus a small section of the supporting Text background color is shown

ANDROAPP-7546 Error when assigning more than one option to multi-select field in the Android capture app

ANDROAPP-7564 Description of assigned (disabled) data elements are not shown in the android capture

ANDROAPP-7565 Crash - toggle between orientation in events

ANDROAPP-7566 Numeric value type in search screen does not allow decimals

ANDROAPP-7567 Unsupported fields are visible in search screen

ANDROAPP-7568 Polygons are not correctly stored in the device

ANDROAPP-7572 New events use enrollment OU instead of ownership OU after TEI transfer

ANDROAPP-7574 Crash whilst sync (could not replicate)

ANDROAPP-7582 Unable to close bottomsheet in very long org unit list

ANDROAPP-7588 Sync message not consistent when offline

ANDROAPP-7590 Sync error due to program rules the assign value of calculated value

ANDROAPP-7601 Change orientation: Main content area goes blank/white

ANDROAPP-7603 Allow screenshots and screen sharing in Training APK

ANDROAPP-7613 IllegalArgumentException: Can't represent a width of 0 and height of 276000 in Constraints

ANDROAPP-7614 IllegalStateException: No database is currently activated.

ANDROAPP-7619 [ANR] Home filters

ANDROAPP-7632 Conscrypt crashing for API 37

ANDROAPP-7635 Cannot access TEI as it is marked incorrectly as online

ANDROAPP-7637 Programs tab appears when analytics is not configured

ANDROAPP-7646 Local search results is not returned if remote request fails

ANDROAPP-7647 Past results are not cleared when a new search is made

ANDROAPP-7658 Program Rule Errors do not prevent syncing of data

ANDROAPP-7661 Race condition to sync images using granular sync

ANDROAPP-7668 Images/files (FileResource) sometimes not downloaded during granular sync — subsequent edit uploads an empty image Data Element overwriting the image in server

ANDROAPP-7674 Crash opening map in tablet from teidashboard

ANDROAPP-7694 App crash on logout and (occasionally) delete account

Android Capture App for DHIS 2 (v3.4.0.1)

Choose a tag to compare

@github-actions github-actions released this 26 May 11:50
3e53ac5

Release notes - Android App for DHIS2 - 3.4.0.1

This patch release includes a hotfix.

Bugs fixed

  • ANDROAPP-7634 SMS module is accidentally enabled when ASWA is installed

Android Capture App for DHIS 2 (v3.4.0)

Choose a tag to compare

@github-actions github-actions released this 06 May 08:25
5942e56

Release notes - Android App for DHIS2 - 3.4.0

Highlights of this release

  • Tracked entity search configuration and metadata sync improvements.
  • Program rule action enhancements: markdown support, action ordering.
  • DHIS2 custom theme aligned with web.

Deprecation notice: Version 3.4 has stopped the support for Android 5.0 (API 21) and 5.1 (API 22). Version 3.3.x was the last version supporting Android 5.x and will only receive critical security fixes.

NEW FUNCTIONALITY AND WEB PARITY

Tracked Entity Search Performance Configuration:

This feature enables the configuration of the search operators for the different Tracked Entity Attributes to improve search performance.

Tracked entity attributes can now define a preferred default search operator. This configuration is set in the Maintenance app and interpreted by the Capture Web and Android applications, third party clients can also use the recommended operator when performing searches. Specific operators can also be restricted to protect system performance.

Sensible defaults are automatically applied to guide efficient queries. The LIKE operator—commonly associated with slow performance—is no longer selected by default; instead, EQUALS or other more efficient operators are pre-selected

To further optimize tracked entity instance (TEI) searches, this feature adds support for specifying a minimum number of characters required for searching and for enabling trigram indexing.

Jira | Feature card

DHIS2 Custom Theme:

DHIS2 version 43 now supports changing the theme color of your DHIS2 instance. This is done via the theme color setting under the Appearance tab in the Settings app. The color picker has a curated set of preset colors to choose from, or the user can enter a specific RGB value. The selected color is applied consistently across the headerbar on the entire instance, as well as on the Android app. A contrast algorithm automatically adjusts the text and icon color to maintain legibility against the selected background. Removing the color reverts the instance to the default blue color. The android style setting is restricted to v42 and below.

Jira | Feature card

Markdown and legend support in Android Feedback Widget:

Feedback messages generated through display text and key-value pair actions can now include formatted text using Markdown, enabling the display of structured content such as titles, lists, and emphasized text.

In addition, support for legend-based styling has been introduced, allowing feedback values to be visually highlighted based on predefined legend sets. This enables dynamic color-coding of key values, helping users quickly interpret results and identify important conditions.

Jira | Feature card

Program rule priority for Actions:

Each program rule action can define an optional priority value. During rule evaluation, actions are first grouped based on their parent program rule, and then ordered by the611ir assigned priority. Actions with lower priority values are processed first, while actions without a defined priority are placed at the end.

This allows multiple related actions to be managed within a single program rule while still maintaining a clear and predictable execution order.

Jira | Feature card

USER EXPERIENCE

Android Log In process improvements:

The new PIN design provides a more modern and consistent user experience during setup. This change is part of the broader work to improve authentication related screens and prepare the foundation for future enhancements

Jira | Feature card

PERFORMANCE & MAINTENANCE

Android Metadata Sync Improvements

Metadata synchronization has been enhanced with more frequency options. In addition to existing intervals, automatic metadata sync can now run every 6 or 12 hours, allowing for more timely updates and better alignment with data sync behavior.

As part of the improvements, the app also performs a daily background check to detect any changes in the configuration when the sync is set to "Manual". If a change is detected from manual to an automatic sync frequency, an immediate metadata sync is triggered and the corresponding schedule is applied.

Jira | Feature card

Improved Event ordering for consistent sync and calculations:

With this update, event ordering has been aligned across Web, Android, and API sources, allowing events to be processed in the correct sequence during synchronization and improving overall data consistency and reliability.

Jira | Feature card

Android Capture App for DHIS 2 (v3.3.1)

Choose a tag to compare

@github-actions github-actions released this 19 Jan 14:01
d87193d

Release notes - Android App for DHIS2 - 3.3.1

Bug

ANDROAPP-6870 Let the rule-engine apply the logic for useCodeForOptionSet in RuleVariable

ANDROAPP-6975 Crash when rotating the device with the save dialog open

ANDROAPP-7211 NoSuchElementException: Collection contains no element matching the predicate.

ANDROAPP-7235 Program rules not triggered when moving between fields manually

ANDROAPP-7260 Incorrect behavior when creating a new event in timeline view

ANDROAPP-7261 Keyboard blocks the last field when entering data (screen doesn’t scroll)

ANDROAPP-7269 Crash on search

ANDROAPP-7293 Bottom sheet landscape behavior

ANDROAPP-7345 Changes to enrollment date not respected by program rules (version 3.2.1.2)

ANDROAPP-7368 crash: when trying to update fields in Tracker

ANDROAPP-7394 Login blocked after logout “The user is already logged in” error

ANDROAPP-7400 Crash - changing org unit and dates

ANDROAPP-7402 Bottom sheet org unit not displaying buttons

ANDROAPP-7403 Home cards lose proper layout

ANDROAPP-7411 Android sync by working lists: After updating predefined list views settings, changes aren't reflected in android app after syncing

ANDROAPP-7415 Android: WORKING LIST incorrect result in app

ANDROAPP-7419 Server selection title is missing

ANDROAPP-7421 Data set table not opening after clicking next for default category combo

ANDROAPP-7425 NullPointerException: ProgramFragment

ANDROAPP-7428 LMIS program is using completed enrollment

ANDROAPP-7442 Program rules not triggering for completed enrollments

Task

ANDROAPP-7286 Replace deprecated categoryComboUid usages with categoryCombo in Program and DataElement

ANDROAPP-7288 Implement UseCase interface

ANDROAPP-7318 Create AGENTS.md file

ANDROAPP-7349 Sonarcloud - Use full commit SHA hash for this dependency.

ANDROAPP-7373 LogoutUser use case improvements

ANDROAPP-7384 Update transifex tracker configuration

ANDROAPP-7386 QA: Remove duplicated UI modules

ANDROAPP-7388 Create sync module

ANDROAPP-7395 Review settings repository data loading for log out request

ANDROAPP-7396 Remove and update usage to design systems' deprecated methods

ANDROAPP-7424 Gradle warnings: Remove RX binding dependency and zxing dependency

ANDROAPP-7426 Upload proguard mapping on Sentry

ANDROAPP-7440 Update Expression parser to 1.2.2

ANDROAPP-7441 Remove username from Sentry reports

Android Capture App for DHIS 2 (v3.3.0.1)

Choose a tag to compare

@github-actions github-actions released this 17 Dec 16:35
71b316f

Release notes - Android App for DHIS2 - 3.3.0.1

This patch release includes updated translations and a hotfix.

Bugs fixed

  • ANDROSDK-2219 Tracker sync fail due to null properties in Note

  • ANDROSDK-2221 Data set with default cat combo can't be edited

  • ANDROSDK-2223 openingDate and closedDate from DataInputPeriod are nullable

Translations

This release also includes updated translations contributed by the community.

Android Capture App for DHIS 2 (v3.3.0)

Choose a tag to compare

@github-actions github-actions released this 01 Dec 14:58
c556b70

Release notes - Android App for DHIS2 - 3.3.0

Highlights of this release

  • Redesigned login experience with improved usability and future support for two-factor authentication.
  • Introduced configurable custom intents for seamless integration with external Android applications.
  • Enhanced synchronization with support for syncing data based on selected working lists.

Deprecation notice: Support for Android 5.0 (API 21) and 5.1 (API 22) will end starting with version 3.4.0, while 3.3.x patch releases will continue to support these versions and receive critical security fixes if needed.

Release Notes

NEW FUNCTIONALITY AND WEB PARITY

Custom intents:

3.3.0 introduces custom intents, a new feature that enables integration between the DHIS2 Android Capture App and third-party Android applications. Through configuration in the Android Settings Web App, administrators can define how the Capture App launches external apps, sends data to them, and receives results automatically. It can be configured per tracked entity attribute or data element and support both data entry (tracker and event programs) and search workflows.

Sync by working list:

Synchronization can now be configured based on working lists defined in the Capture web app and managed through the Android Settings Web App (ASWA). Based on user sharing settings, the app will download data from the assigned working list or merge multiple lists when more than one is available.

USER EXPERIENCE

Login redesign:

The login experience has been redesigned with a modern interface and improved usability. Beyond visual updates, this redesign refactors the authentication architecture to support OAuth-based two-factor authentication (2FA), ensuring the app is ready for upcoming security improvements in future releases.
Users will notice a cleaner layout and faster access to frequently used servers.

As part of this redesign, the PIN verification screen (shown when reopening the app) has also been updated with the new visual style, ensuring a consistent and modern experience across the entire authentication flow.

Settings menu redesign:

The settings menu has been redesigned to provide a cleaner structure and improved navigation experience. This update aligns the screen with the overall app design updates introduced in previous versions.

Edge-to-edge review:

The update refines margins, padding, and component layouts to make full use of available screen space, especially on newer Android devices. Improvements are particularly noticeable in the TEI list, event list, and data-entry forms.

This review also enhances the experience on tablets and in landscape orientation, ensuring responsive layouts and alignment across all components.

PERFORMANCE & MAINTENANCE

Migrate database to KMM:

While invisible to end users, this migration significantly improves maintainability, consistency, and performance of the app’s data layer. It also paves the way for potential future multi-platform clients that can share core logic with Android.

Reduce APK size with R8:

Through advanced code shrinking and resource optimization, the app’s footprint has been reduced without compromising features or stability. This change is particularly beneficial for deployments in low-bandwidth environments or with limited device storage.

Android Capture App for DHIS 2 (v3.2.1.2)

Choose a tag to compare

@github-actions github-actions released this 09 Oct 08:16
b319833

Release notes - Android App for DHIS2 - 3.2.1.2

This patch release includes updated translations and a hotfix addressing an issue affecting metadata synchronization.

Bugs fixed

  • ANDROSDK-2164 Metadata sync not finishing in certain configurations:

In some specific scenarios, the metadata synchronization process did not complete as expected. This hotfix ensures metadata sync now works correctly across those configurations.

Translations

This release also includes updated translations contributed by the community.

Android Capture App for DHIS 2 (v3.2.1.1)

Choose a tag to compare

@github-actions github-actions released this 06 Aug 12:18
034fbf3

Release notes - Android App for DHIS2 - 3.2.1.1

Translations

A translations-only patch. This version does not introduce any new features,
UI changes, or bug fixes. It simply updates the app's translations based on recent
contributions from the community via Transifex.
This patch is particularly important for countries and implementations
that rely on up-to-date local language support for end users.
If your project depends on recent translation updates, we recommend deploying this APK.

Android Capture App for DHIS 2 (v3.2.1)

Choose a tag to compare

@github-actions github-actions released this 04 Jul 15:15
5f4aa2b

Release notes - Android App for DHIS2 - 3.2.1

Bug

ANDROAPP-6278 Incorrect date assignment (due to device time zone)

ANDROAPP-6349 Map layers display crash and unable to scroll in landscape

ANDROAPP-6524 Option code is displayed instead of name

ANDROAPP-6669 ApplicationNotResponding: ANR in Search Query

ANDROAPP-6737 App crash when search in maps offline

ANDROAPP-6742 Happy New Year 2025! App crash when org unit changed from landscape to portrait and vice versa

ANDROAPP-6800 Move dataset dataInputPeriod check from the App to the SDK

ANDROAPP-6867 Make whole data set table screen scrollable

ANDROAPP-6872 IllegalStateException: Fragment PinDialog{94800b} (fb1ce116-827c-4aa3-bb75-548df644a027) not associated with a fragment manager.

ANDROAPP-6880 Clear input dialog and cell selection when changing section

ANDROAPP-6885 Scrolling in dataset with keyboard open

ANDROAPP-6899 Implement persist table resizing layout

ANDROAPP-6906 Incorrect initial width of tables without category combination

ANDROAPP-6907 Minimum cell width

ANDROAPP-6909 Wrong border color in selected cells with error or warning

ANDROAPP-6912 Incorrect render of rowHeader total

ANDROAPP-6920 Incorrect selection when tapping on first row header

ANDROAPP-6921 calendar modal should open at the previously entered date, time, or year.

ANDROAPP-6928 DS with no DEs: Missing user message

ANDROAPP-6930 Home screen does not display sync error correctly in home screen

ANDROAPP-6937 Reset Table Layout Button Visibility

ANDROAPP-6948 Add Text Transformation for specific value types in cell

ANDROAPP-6953 NullPointerException Dimensional (Analytics)

ANDROAPP-6954 RuntimeException: java.text.ParseException: Unparseable date: "+67822-09-05"

ANDROAPP-6957 Restrict Completion of Non-Editable DataSet Instances

ANDROAPP-6961 Cannot use calendar (date picker) when database language is in Arabic

ANDROAPP-6962 Incorrect Separator Used in InputDialog for Parent-Child Columns

ANDROAPP-6970 Crash when adding location offline

ANDROAPP-6977 DS crash when an empty category combination is assigned to a data element

ANDROAPP-6978 Incorrect period labels in data set tags

ANDROAPP-6983 Long section tab name

ANDROAPP-6984 In the DHIS2 Android app, when a Tracked Entity Attribute is configured to use radio buttons (vertical or horizontal), tapping the clear (X) icon after selecting an option causes the app to crash.

ANDROAPP-6987 create note and refer event and developer mode

ANDROAPP-6988 irregular data set navigation

ANDROAPP-6992 ApplicationNotResponding: ANR for at least 5000 ms.

ANDROAPP-6993 DateTimeFormatException: j$.time.format.DateTimeParseException: Text '122558888' could not be parsed at index 0

ANDROAPP-7003 Input Dialog is hidden behind keyboard when there are validation errors

ANDROAPP-7004 Program rules - TEA Show option group

ANDROAPP-7006 Order of option set

ANDROAPP-7017 ApplicationNotResponding: ANR for at least 5000 ms.

ANDROAPP-7025 Manage table loading internally and sticky row header offset

ANDROAPP-7029 cannot enter 0 in integer data type

ANDROAPP-7030 NullPointerException: Attempt to invoke virtual method 'java.lang.String org.hisp.dhis.android.core.event.Event.enrollment()' on a null object reference

ANDROAPP-7034 Navigation issue in aggregate tables after editing a previously entered cell and mismatch between selection state and dialog visibility

ANDROAPP-7035 Selected tab resets to the first tab after scrolling down and back up

ANDROAPP-7036 Tab Navigator Displayed for Single-Section DataSets

ANDROAPP-7038 ApplicationNotResponding: ANR for at least 5000 ms.

ANDROAPP-7039 ProgramStageWorkingList not working

ANDROAPP-7040 NullPointerException: Attempt to invoke virtual method 'java.lang.String org.hisp.dhis.android.core.event.Event.program()' on a null object reference

ANDROAPP-7044 ConcurrentModificationException

ANDROAPP-7050 Table rendering issue

ANDROAPP-7051 Incorrect section displayed when changing sections while loading

ANDROAPP-7065 [Mobile UI] Add Text Transformation for specific value types in cell

ANDROAPP-7067 ApplicationNotResponding: ANR for at least 5000 ms.

ANDROAPP-7068 Crash when navigating to username dataElement input type in DataSets

ANDROAPP-7078 irregular navigation to username dataElement input type in DataSets

ANDROAPP-7079 data set: mandatory fields not marked with red dot

ANDROAPP-7080 data set top row irregular navigation

ANDROAPP-7085 value not visible in specific dataset setting - move category to rows and show totals

ANDROAPP-7099 program rule does not run on large option sets until focus is lost

ANDROAPP-7101 App crash - incorrect Date entry in age field in datasets

Android Capture App for DHIS 2 (v3.2.0)

Choose a tag to compare

@github-actions github-actions released this 07 May 12:32
7287ec6
The new DHIS2 Android App allows offline data capture across all DHIS2 data models. Data and metadata are automatically synchronized whenever there is internet access, always keeping the most relevant data for the logged user in the device. The app is compatible and we support 42, 41, 40.

Feature

ANDROAPP-6371 Implement period picker in data sets

ANDROAPP-6426 Quick actions in TEI Dashboard

ANDROAPP-6469 Display GPS coordinate accuracy in UI [Data Set]

ANDROAPP-6638 Support feature: Disable automatic grouping of data elements

ANDROAPP-6640 Support feature: Pivot: categories as rows, data elements as columns

ANDROAPP-6641 Support feature: Move a category to rows

ANDROAPP-6642 Support feature: Content before and after a section

ANDROAPP-6758 Implement ListCardTitle overflow in Map Cards

ANDROAPP-6767 Support feature: "Render vertically"

ANDROAPP-6788 Implement period picker in filters

ANDROAPP-6796 Merge all category combinations in one table

ANDROAPP-6802 DatasetInstanceScreen: Saving and complete workflow

ANDROAPP-6812 Support feature: multi header rows

ANDROAPP-6832 Implement InputDialog Text value types actions

ANDROAPP-6833 Implement dates (date, datetime, time) value types actions

ANDROAPP-6834 Implement InputDialog File and Image value types actions

ANDROAPP-6835 Implement InputDialog Org Unit value type actions

ANDROAPP-6836 Implement go to next cell

ANDROAPP-6837 Implement validation error parsing

ANDROAPP-6841 Support feature: Title and subtitle

ANDROAPP-6855 Implement legends in dataset input dialog

ANDROAPP-6864 Implement optionset input [Data Set]

ANDROAPP-6878 Yes Only type cell layout

Bug

ANDROAPP-5770 IllegalStateException: Expected BringIntoViewRequester to not be used before parents are placed.

ANDROAPP-6616 Cannot sync after referring TEI to an org unit where user does not have write access

ANDROAPP-6662 [Data Set] App crashes after exiting the org unit dialog (using the x)

ANDROAPP-6704 Large option set renders inconsistenly in DS

ANDROAPP-6740 Incorrect order when displaying rules in feedback/indicator widget

ANDROAPP-6754 Update Bottom sheet dialog to new usage for edge to edge devices

ANDROAPP-6761 User able to create new events after completing enrollment

ANDROAPP-6775 Selecting report periods when creating a datasets can freeze the app

ANDROAPP-6801 Crash when using breaking the glass to access to a TEI

ANDROAPP-6826 Aggregates Total column is not been displayed

ANDROAPP-6854 Add edge to edge to DatasetInstance screen

ANDROAPP-6867 Make whole data set table screen scrollable

ANDROAPP-6873 Clear button not updating value in cell for certain inputs

ANDROAPP-6874 Move a category to row is not working as expected

ANDROAPP-6880 Clear input dialog and cell selection when changing section

ANDROAPP-6882 Cursor slides to the end when typing

ANDROAPP-6883 Input dialog is hidden behind keyboard on certain devices

ANDROAPP-6884 Period tags in section details is not displaying in user friendly format

ANDROAPP-6886 Some forms are crashing

ANDROAPP-6887 Keyboard type not changing when navigate from one data type to other using next

ANDROAPP-6888 Button to reset cell size doesnt exist

ANDROAPP-6889 Multiple cells are being selected simultaneously, even disabled total cells.

ANDROAPP-6892 Latest automatically generated apks are crashing when opening any dataset

ANDROAPP-6895 Handling Errors in cells

ANDROAPP-6896 Input Field Error: Missing Red Line and Label in inputDialog

ANDROAPP-6899 Implement persist table resizing layout

ANDROAPP-6900 Suppress 'Default' Text in Input Shell with Single 'Value' Column

ANDROAPP-6902 Unable to save coordinates

ANDROAPP-6903 Tapping on the "x" in the org unit dialog deletes the value in the cell

ANDROAPP-6911 Missing rowHeaders

ANDROAPP-6913 Resized table is lost when moving between sections

ANDROAPP-6915 Lateral scrolling alignment issues

ANDROAPP-6916 No space between column headers

ANDROAPP-6922 unable to delete value from cell

ANDROAPP-6934 Unable to re-open data set

ANDROAPP-6936 Auto-Scroll Misalignment on Cell Selection

ANDROAPP-6963 Datasets: unable to select option in multiselect value type

ANDROAPP-6981 Incorrect display of greyed fields

ANDROAPP-6982 Unable to add "." or "-" in numeric value types

ANDROAPP-7005 Unable to download APK "software update" in Android versions > 10

Remember to check the Android app documentation for detailed information of the features included in the App and how to configure DHIS2 to use it.

For support contact us at DHIS2 community if you have any issue.