Skip to content

Releases: dhis2/dhis2-android-sdk

Release 1.9.1

29 Jan 12:11
ac711cf
Compare
Choose a tag to compare

Bugfixes:

  • New tracker import: do not send values that have not been modified (trackerDataValues, attributeValues) (ANDROSDK-1564).
  • Add missing value type validators (ANDROSDK-1777).
  • Expose Attribute collection repository (ANDROSDK-1776).
  • Database is not responsive when using encryption (ANDROSDK-1784).

Library updates:

  • Update kotlin (1.9.21 and gradle (8.2.0) (ANDROSDK-1793).
  • Update SQLCipher (4.5.5).

Release 1.9.0

22 Nov 08:44
2cd5a13
Compare
Choose a tag to compare

Features

Bug

Library changes:

  • ANDROSDK-1737 Update Kotlin version to 1.9.10.
  • ANDROSDK-1740 Upgrade OkHttp library to 4.10.0. It might imply the update of OkHttp resolution to at least 4.10.0.
  • ANDROSDK-1618 Dagger is replaced by Koin
  • Some changes in the SDK forces to update Gradle to >= 7.4.2 in the consuming app.

Breaking changes:

  • If you are using Kotlin, you might experience some breaking changes in your code. These changes come from the continuous refactor of the codebase to Kotlin and usually they cannot be avoided. They have to do with how Java and Kotlin deal with nullability and, in general, these changes will introduce more robustness (null safety) in your code.

    A common change is the return type of different methods, such as ObjectRepository. Taking DataElement as an example, this query (dataElements().uid("uid").get()) in the JAVA-implemented repository will return a DataElement! in Kotlin, which means that it can't tell if the returned object is nullable or not. In this case, the Kotlin compiler let you deal with these object as if they were NonNull, which could lead to a NullPointerException. Now, the repository will return a DataElement?, which explicitly informs about the nullability of the object.

Release 1.8.2

30 Aug 09:01
6f1cd6e
Compare
Choose a tag to compare

Bugfix:

  • Do not send dataValues / attributes that are not assigned to a program (ANDROSDK-1704).
  • If search text contains a comma the api fails (ANDROSDK-1219).
  • Network authentication does not support special characters (ANDROSDK-1739).
  • Login offline in local instance is not working (ANDROSDK-1706).
  • Relationship with missed item are not properly cleaned (ANDROSDK-1715).

Release 1.8.1.1

09 Jun 10:28
715f6e7
Compare
Choose a tag to compare

Bugfix:

Release 1.8.1

07 Jun 11:40
125da2d
Compare
Choose a tag to compare

Bugfix:

  • Program indicators: implement support for operator "is...in" (ANDROSDK-1686), add missing support for d2:minValue and d2:maxValue functions (ANDROSDK-1571).
  • Analytics: calculation support (ANDROSDK-1687).
  • Map download: add optional NetworkTimeout parameter (ANDROSDK-1690).

Release 1.8.0

10 May 12:55
154943b
Compare
Choose a tag to compare

Features:

Bugfix:

  • Properties "createdAtClient" and "lastUpdatedAtClient" are set to null in the device after data download (ANDROSDK-1653).
  • Property "completeBy" is ignored in events (ANDROSDK-1659).
  • Relationships are not persisted if they are download in other bundle (ANDROSDK-1645).
  • Remove incomplete or inaccessible CategoryOptionCombos (ANDROSDK-1592).

Libraries:

Breaking changes:

  • Applications must enable coreLibraryDesugaring. The SDK uses kotlinx-datetime, which requires desugaring for Android API < 26 (Google devs docs) (ANDROSDK-1632).
  • DHISVersionManager: removed shortcut methods to check the version (such as is2_38(), is2_39(),...). These methods can be easily replaced by the method isVersion(DHISVersion.V2_38), isVersion(DHISVersion.V2_39),... .
  • Remove method "withCategoryOptionCombos()" in "CategoryComboCollectionRepository". Those objects were not nested in the CategoryCombos, so it was useless.
  • UserCredentials class is simplified and the repository is marked as deprecated. The class UserCredentials has been deprecated in the backend. The SDK keeps the repository and the class with a few properties (username, name, userRoles). Now, these properties are owned by the User class, so use User class instead (ANDROSDK-1584).

Release 1.7.1

30 Jan 09:45
de0e445
Compare
Choose a tag to compare

Bugfix:

  • Update SQLCipher to prevent "Defective OpenSSL Version (OpenSSL 1.1.1g)" (ANDROSDK-1611).
  • File resize helper: store resized image in cache folder (ANDROSDK-1597).
  • Include paging for options call (ANDROSDK-1601).
  • Wrong composed Program Indicator expressions cause the App to crash (ANDROSDK-1604).
  • Support open source maps (ANDROSDK-1605).
  • Fix daysInBetween function to consider summer time (ANDROSDK-1606).
  • DataSetInstance filters: filter by relevant attributeOptionCombo (ANDROSDK-1608), filter relevant period types (ANDROSDK-1600).

Release 1.7.0

10 Nov 01:07
2dcfb0c
Compare
Choose a tag to compare

New features:

  • Data sync: notify about synchronized dataSets and programs (ANDROSDK-1550).
  • Improved analytics support: program indicator boundaries (ANDROSDK-1433), missing variables in program indicator engine (ANDROSDK-1376), missing aggregation functions (ANDROSDK-1570), expose aggregation parameter in Analytics repo (ANDROSDK-1572), filter by attributeOptionCombo (ANDROSDK-1548).
  • Event repository: filter by DataValue (ANDROSDK-1324).
  • TrackedEntity repository: catch up support for new TEI filter format (working lists) (ANDROSDK-1560).
  • FILE and IMAGE value types support: support for FILE and IMAGE value types has been extended to aggregated and tracker (ANDROSDK-1251, ANDROSDK-1567, ANDROSDK-1465).
  • Program owner - Referrals: move permanently a TEI (ANDROSDK-1545).
  • SMS synchronization: expose methods to enable synchronization with 3rd party apps (ANDROSDK-1575).

Important announcements:

  • Google Play Services have been removed from the SDK in order to make it fully open-source. This is a requirement for uploading an app to some markets, such as F-Droid. Previously, the SDK only used Google Play Services to import SafetyNet and force the installation of security patches for network connections. This task can be done by other open-source alternatives, such as Conscrypt. So now the SDK is freed of these libraries and it is the responsibility of the application to decide if using Google Play Services, Conscrypt, or none of them. Check the docs to know how to setup an alternate provider or import the Google Play Services (Docs).

Breaking changes:

  • Tracker download methods don't return D2Progress, but TrackerD2Progress (that extends D2Progress).
  • Aggregate download methods don't return D2Progress, but AggregatedD2Progress (that extends D2Progress).
  • Removed followUp, enrollmentStatus and enrollmentCreatedPeriod in TrackedEntityInstanceFilters.Builder. Use entityQueryCriteria instead.

Release 1.6.2

07 Jul 12:58
d4ecb62
Compare
Choose a tag to compare

Bugfix:

Minor breaking changes:

  • Removed periodTo and periodFrom filters in repository TrackedEntityInstanceFilterRepository.
  • Removed followUp, enrollmentStatus and enrollmentCreatedPeriod in TrackedEntityInstanceFilter.Builder.

Release 1.6.1

06 Jun 12:53
4570de5
Compare
Choose a tag to compare

Bugfix:

Performance improvements:

  • Download programIndicators relevant to the user (ANDROSDK-1519).