Skip to content

Releases: dhis2/dhis2-android-capture-app

Android Capture App for DHIS 2 (v3.3.1)

19 Jan 14:01
d87193d

Choose a tag to compare

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)

17 Dec 16:35
71b316f

Choose a tag to compare

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)

01 Dec 14:58
c556b70

Choose a tag to compare

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)

09 Oct 08:16
b319833

Choose a tag to compare

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)

06 Aug 12:18
034fbf3

Choose a tag to compare

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)

04 Jul 15:15
5f4aa2b

Choose a tag to compare

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)

07 May 12:32
7287ec6

Choose a tag to compare

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.

Android Capture App for DHIS 2 (v3.1.1.1)

03 Feb 14:35
57ea376

Choose a tag to compare

Android Capture App for DHIS 2 (v3.1.1)

27 Jan 18:20
81cb4bc

Choose a tag to compare

Release notes - Android App for DHIS2 - 3.1.1

Bug

ANDROAPP-5888 RTSM - Stock distribution allows entry of zero values

ANDROAPP-6108 [mobile-ui] Bottom sheet Icon button is displaced

ANDROAPP-6220 Login error - Fragmentation has been destroyed

ANDROAPP-6281 Formatting of org unit selector buttons over android navigation bar

ANDROAPP-6282 Misalignment of TEI list and dashboard cards

ANDROAPP-6317 App not scrolling to the top of the list after selecting or deselecting working list

ANDROAPP-6354 [LineListing] search by org unit or category no working

ANDROAPP-6394 Conflict message - Change future date message when no future date was entered

ANDROAPP-6418 [Data Sets] Values are not shown after saving them

ANDROAPP-6440 Maps view pin hidden behind location

ANDROAPP-6457 Maps card - expanded card maybe more than 70% of the map and When the user taps outside the card (when expanded) the card does not collapses.

ANDROAPP-6477 Programs are hidden after navigating to settings and back

ANDROAPP-6480 Tei scheduled events for "today" show incorrect overdue icon

ANDROAPP-6482 TEI Is created even if it was discarded

ANDROAPP-6509 Assign enrollment org unit as the default org unit when creating an event

ANDROAPP-6519 Barcode scanner crashes DHIS2-RTS

ANDROAPP-6524 Option code is displayed instead of name

ANDROAPP-6533 Background color is visible behind bottom navigation bar

ANDROAPP-6535 Bidirectional relationships are created in the oppsite direction when created from TO

ANDROAPP-6543 Image download not working correctly

ANDROAPP-6549 DHIS2-RTS: Data entry window not closing when selecting blue bullet

ANDROAPP-6579 Limit the menu size in the enrollment dashboard when the program name is too long.

ANDROAPP-6628 Due Date in Scheduled Event Card Always Red

ANDROAPP-6644 Incorrect style and icon for overdue scheduled events in

ANDROAPP-6652 NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.view.View.getResources()'...

ANDROAPP-6657 Implement a load bar when searching in "This Area"

ANDROAPP-6660 Incorrect list of available periods

ANDROAPP-6667 [Program Rules] Warning AND Error on complete not showing

ANDROAPP-6673 Home filters are not displayed

ANDROAPP-6695 IllegalArgumentException: com.dhis2: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABL...

ANDROAPP-6696 IllegalStateException: Can not perform this action after onSaveInstanceState

ANDROAPP-6705 Tei attributes and data elements flagging allowed future dates as errors incorrectly in Form

ANDROAPP-6707 Unable to complete event

ANDROAPP-6715 Crash when selecting a checkbox option set

ANDROAPP-6717 Crash when syncing a TEI from map screen

ANDROAPP-6753 Event program takes too long to load in server https://data.zim-dreams.org

ANDROAPP-6759 Version comparison returns a wrong value in some cases

ANDROAPP-6760 Rule engine context events include deleted events

ANDROAPP-6763 Status bar overlaps the app, obstructing buttons and making the interface unreadable

ANDROAPP-6771 Crash when creating a tei after searching through org unit

ANDROAPP-6774 Bottomsheet buttons padding fix

ANDROAPP-6776 Incorrect background shown in EventInitial screen after Android 35 corrections

ANDROAPP-6777 inconsistent behaviour in org unit selector search bar

Android Capture App for DHIS 2 (v3.1.0.1)

09 Dec 20:24
a95c435

Choose a tag to compare

Release notes - Android App for DHIS2 - 3.1.0.1

Bug

ANDROAPP-6653 Large option sets freeze the app

ANDROAPP-6665 Filters persists when exiting the program or data set

ANDROAPP-6691 NullPointerException: Dataset table