Releases: dhis2/dhis2-android-sdk
Release 1.12.1.1
Bug
ANDROSDK-2164 DatasetOrgunitLink clean-up is not executed if dataset list is empty
Release 1.12.1
Features
ANDROSDK-2131 Add support for Azure maps
Bugs
ANDROSDK-2067 Synchronization does not work after deleting a new event
ANDROSDK-2068 ValidationRules: NullPointerException when evaluating a function containing a null value
ANDROSDK-2085 Respect sorting property in TrackerVisualization objects
ANDROSDK-2107 RuntimeException: No rows affected
ANDROSDK-2108 SQLiteConstraintException: NOT NULL constraint failed: DataSetCompleteRegistration.period (code 1299 SQLITE_CONSTRAINT_NOTNULL)
ANDROSDK-2114 Filter by is (or is not) null / empty does not work in LineList
ANDROSDK-2109 Fix Tracked entity type access deserialization
Release 1.12.0
Features
ANDROSDK-1935 Extend DataSet section model to include configurable dataset properties
ANDROSDK-1971 Add custom quick actions to settings app model
ANDROSDK-1984 Change timelyDays and expiryDays type to Double
ANDROSDK-1993 Add value object repository for DataSetInstanceCollectionRepository
ANDROSDK-2031 Support for displayOptions at dataSet level
ANDROSDK-2034 DataSetInstanceService: add logic to check mandatory values status
ANDROSDK-1920 Configuration: add location parameters for dataSets
ANDROSDK-2035 Support for optionSet analytics
Bugs
ANDROSDK-2030 Response from file resource upload not being properly deserialized
ANDROSDK-2040 Tracker ownerhips: requests to /transfer and /override uses invalid parameters
ANDROSDK-2053 Support other kind of cookies
ANDROSDK-2066 App is crashing when completion spinner parameters is not included in the appearance program config
Library updates
ANDROSDK-1946 Jackson has been replaced with Kotlinx Serialization for json conversion. This was mainly used for de/serialization http requests and responses but also for handling complex object in the database.
Breaking changes
- The public http service client now requires a Kotlinx Serializable class for the body type of requests and responses. Please refer to the Developer Portal page for more information.
- SDK Okhttp interceptors have been migrated to Ktor Plugins, as this is a Multi-platform solution. Custom interceptors that can be included in the D2 config file will still work as normally, however when a KMM solution is finally adopted, interceptors will only work for Android. So it is suggested to migrate the custom Okhttp interceptors to Ktor plugins as well.
- The type of TimelyDays and ExpiryDays parameters from Datasets have been changed from Integers to Double, allowing fraction of days to be used.
Architecture changes
Most of the API logic and responsibilities have been moved to the new network layer. Network Handlers have been created on the domain layer as interfaces and their implementations have been added to the network layer, along with the http services, the data classes DTOs, and other API related classes and files. This splitting of responsibilities will help developers to understand and maintain the repository.
Release 1.11.1
Bugs
ANDROSDK-1669 Implement missing AggregationTypes in analytics
ANDROSDK-1922 Content-length is showing a wrong value for images
ANDROSDK-1954 Create helper to get the list of available relationship types with direction
Release 1.11.0.1
Bugs
ANDROSDK-1945 Endpoint /api/ping is not available in older patches of some DHIS2 major versions
Release 1.11.0
Features
ANDROSDK-1615 Date: implement period generator for KMM
ANDROSDK-1916 Download fileResources granularly
ANDROSDK-1899 Implement missing period type (Quarterly November)
ANDROSDK-1897 Create new properties for map configuration (accuracy and manual capture)
ANDROSDK-1919 Add support for TrackedEntity LineList
ANDROSDK-1870 Add support for Category in Line Listing
ANDROSDK-1867 Add non-authorized server ping service
ANDROSDK-1621 Replace Retrofit with KMM alternative Ktor
ANDROSDK-1891 Expose Ktor method for public API interaction
Bugs
ANDROSDK-1889 Property `isOnline` is not correctly evaluted in Tracker Search
ANDROSDK-1898 Filter by Category not working in TrackerVisualization
ANDROSDK-1907 Filter by dataElement value does not respect program indicator boundaries
ANDROSDK-1908 Add property displayContent in programRuleAction
ANDROSDK-1923 Crash on android 7.0 and lower
ANDROSDK-1924 Update lastest version algorithm to match logic in the APK Distribution app
ANDROSDK-1930 Network connection is closed or reset
ANDROSDK-1931 fix list parameters in request builder
ANDROSDK-1933 Relationship is created without creation date
ANDROSDK-1936 Expired cookie redirection not correctly handled
ANDROSDK-1939 EventService is returning EXPIRED event when expiryDays is 0
ANDROSDK-1940 Size parameter to download images is not correct
Library updates:
ANDROSDK-1873 Remove Flipper dependencies
ANDROSDK-1900 Remove Calendar dependencies
ANDROSDK-1888 Remove retrofit dependencies
ANDROSDK-1874 Upgrade to Kotlin 2.0
Breaking changes
- Ongoing migration from Java to Kotlin may cause warnings and breaking changes.
- The Retrofit http client service has been replaced with the KMM alternative Ktor. This change implied migrating all the API services to accommodate Ktor requirements. A detailed explanation and a guide for updating API services can be found here.
Release 1.10.1
Bug
ANDROSDK-1883 Program indicator engine shows NaN
ANDROSDK-1871 Program labels are not translated
ANDROSDK-1876 SQL query was failing with orgunit names including single quotes
ANDROSDK-1882 DataSetIntance evaluation does not filter by assgined orgunits
ANDROSDK-1885 Tracker importer: quicker cancellation of uncreated job
ANDROSDK-1893 Program specific setting (limit by orgunit) is overriden by global parameter
ANDROSDK-1868 Ignore null dimensions in Visualizations
ANDROSDK-1394 Do no change state if value is not changed
Release 1.10.0.1
Bug
ANDROSDK-1866 Events without registration are not downloaded
Release 1.10.0
Features
ANDROSDK-1218 Import / Export database
ANDROSDK-1630 Download custom icons for metadata
ANDROSDK-1799 Line listing in local analytics
ANDROSDK-1801 Support multiselect in analytics
ANDROSDK-1695 Download attributes/dataElements to display in relationships
ANDROSDK-1750 Add option to bypass DHIS2 version restriction
ANDROSDK-1800 Download configurable basemaps
ANDROSDK-1803 Add keyDefaultBaseMap property in SystemSettings
ANDROSDK-1806 Download custom tracker terminology
ANDROSDK-1816 Restrict APK distribution version by userGroup
ANDROSDK-1817 Download userGroups
ANDROSDK-1833 Create method .getCurrentAccount() in AccountManager
ANDROSDK-1839 Expose api/system/ping call
Bug
ANDROSDK-1852 Android API <= 24 fail to login in Let's encrypt servers
ANDROSDK-1818 OpenID login is failing due to database check
ANDROSDK-1825 EventService: method `isEventExpired` fails when eventDate is null
ANDROSDK-1835 Editable events crashes when no event or due date provided
ANDROSDK-1841 [Crash] ParserException: Invalid string token 'AVG' at line:1 character:0
Library updates:
ANDROSDK-1789 Implement Paging3
Update Gradle (8.3.1)
Release 1.9.1
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).