DHIS2 Android SDK 1.6.0 has been officially released

Dear DHIS2 community

We are glad to inform you that the version 1.6.0 of the DHIS2 Android Software Development Kit (SDK) has been officially released. The SDK 1.6.0 is compatible with versions 2.30, 2.31, 2.32, 2.33, 2.34, 2.35, 2.36, 2.37 and 2.38 of DHIS2. Therefore, Android developers can build their own apps fully compatible with those DHIS2 versions (although we recommend to use the latest 3 DHIS2 versions).

The most relevant new features of 1.6.0 are described below:

Multi user / Multi server support: The SDK supports now the storage of information for multiple accounts, which means keeping a separate database for each pair user-server.
ANDROSDK-23 | Documentation

Break the glass support: The “Break the glass” concept is based on the ownership of the pair trackedEntityInstance - enrollment. Now, If any program is configured with an access level of “Protected” and a search is done outside the user scope, the SDK will perform several operations to read and modify the data requesting the ownership of the enrollment.
ANDROSDK-480 | Documentation

Add legends support in analytics: Now the SDK persists the LegendSets linked to Indicators, so that they can be used by the analytics engine to render the legends. Also the SDK is storing the legendDisplayStyle and legendDisplayStrategy for visualizations.
ANDROSDK-1469 | ANDROSDK-1472 | ANDROSDK-1497 | Documentation

Update datavalue import conflict to 2.38: The import summary for aggregated is improved the verbosity in order to make possible the identification of conflicted values.

Enable new tracker importer from 2.38 DHIS versions: Now it is possible to sync tracker data using the new tracker importer endpoints developed by the DHIS2 backend team. Please note that the SDK is also including the legacy tracker importer which is the one used by the DHIS2 Android Capture application at the moment.
ANDROSDK-1509 | ANDROSDK-1510 | Documentation

Delete DB user accounts when a user is disabled in web: If a user is disabled in the server, the SDK will delete the user account local database.

Add SectionRendering for ProgramSections: Now the SDK is storing information about the rendering type for the ProgramSections (e.g SEQUENTIAL and MATRIX)

Android Settings App: add messageOfTheDay, add optionalSearch: If they are included in the dataStore, the SDK will store those parameters.
ANDROSDK-1500 | ANDROSDK-1501 | Documentation

The 1.6.0 version has 2 breaking changes with previous versions:

  • The class ProgramStageSectionRendering has been renamed to SectionRendering. This class is used in both ProgramStageSection and ProgramSection. Dependent classes have been renamed as well (SectionDeviceRendering, SectionRenderingType).
  • Add missing enums. It could be a breaking change if the enum is used in a when statement without an else, it would become non-exhaustive (ANDROSDK-1526).

More detailed information is included in jira.

The funcionality of the SDK including code examples is fully documented . You can also download and check out the SDK code in the following GitHub repository. It also contains more information about all the new features, bug fixing and minor changes in syntax from previous versions.

Don’t forget to have a look at the DHSI2 android skeleton app , which uses the SDK 1.6.0.

The SDK 1.6.0 is being used by the latest DHIS2 Android Capture application (version 2.6.0).

Happy coding
UiO Android team