Mobile SDK Release - 10112022

Android Native Libraries Released - October 11, 2022

  • Android Full Library v1.14.5

  • Android Aggregator Library v1.14.5

  • Android LifeScan OneTouch Library v1.14.5

Android Native Changes

Google Fit

  • The SDK now reads only the Summary/Routine data from DataTypes that the user has granted permission to.

  • Google Fit Mini App updated to fetch 30 days of historical step data after requesting permissions for the first time.

Also, review the changes from Android v1.14.4, which include Android 13 support.


React Native Wrappers Released - October 11, 2022

  • React Native Android/iOS Aggregator Wrapper v1.4.1

React Native Changes

General

  • Bundled native SDKs upgraded to:

    • iOS v1.14.1

    • Android 1.14.5

  • Module libraries built with XCode 14 and the iOS 16 SDK and tested against an iPhone running iOS 16

Healthkit

  • React Native wrapper now supports iOS 15 and up

  • Added support for HealthKit workout types added in iOS 13 - 16.

Google Fit

  • Now only reads Summary/Routine data from DataTypes that have been granted permission

Samsung Health

  • Switched to using static ID for Android SHealth notification channel name to avoid multiple channels showing up in notification settings


Cordova Wrappers Released - October 11, 2022

  • Cordova Android/iOS Full Wrapper v1.14.1

  • Cordova Android/iOS Aggregator Wrapper v1.14.1

Cordova Changes

General

  • Bundled native SDKs upgraded to:

    • iOS v1.14.1

    • Android 1.14.5

  • Rename iOS dictionary key from "recordType" to "record_type"

Core

  • VLDUser credentials (validicUserID, organizationID, accessToken) must now be non-empty strings. If an empty string (or nil) is used for any of those properties, -startSessionWithUser: will throw an exception. You must initialize the SDK with a valid user session in order for the following functions to work: Apple Health, Google Fit, and Samsung Health reads and passive Bluetooth reads.

    • Implemented user validation against the Validic API. User credentials are checked when -startSessionWithUser: is called, and any user session started with invalid or unknown credentials will trigger a call to [[VLDSession sharedSession] endSession].

    • Any 401 Unauthorized response from the Validic API will automatically trigger a call to [[VLDSession sharedSession] endSession].

    • Added a default user session. Accessible via [VLDUser defaultUser], this user session can be initialized to perform foreground Bluetooth and VitalSnap reads only while the app is offline. This feature is intended to be used with the Full SDK package when valid Validic user session credentials are unavailable/unknown.

      • If your app always has access to a valid set of user credentials and always initializes the SDK with a valid set of user credentials, then no changes are needed.

      • The recommended SDK implementation is to always provision users on the Validic server then initialize the SDK with valid session credentials for the user. Therefore, use of the default user is not common and its use should be limited to instances where you are unable to retrieve valid session credentials and you need to perform a foreground operation (Bluetooth pair, Bluetooth foreground read, or VitalSnap read).

      • Some operations will not function with the default user. SDK operations that require a server-side user will not function while the SDK is initialized with the default user. You must initialize the SDK with a valid user session in order for the following functions to work: Apple Health, Google Fit, and Samsung Health reads and passive Bluetooth reads.

      • If you need assistance adjusting your implementation of the SDK to account for these changes, please reach out to the Validic support team at  support@validic.com.

    • Deprecated the VLDLogging class log property used for masking debug log output. Please use logMask instead.

    • Set timeout for requests to 10 seconds.

Bluetooth

  • Added generic support for pulse oximeters that follow the Bluetooth standard for Spot Check measurements.

  • Added support for ChoiceMMed pulse oximeter MD300CI218 (peripheral 45).

  • Added InvalidUserException as the cause for a ValidicBluetoothException when attempting to execute an operation with a null user or a user with credentials that cannot be used when performing an API request.

  • BluetoothPeripheral properties returned from getPeripheral are now camelCase instead of PascalCase

OCR

  • OCRPeripheral properties returned from getPeripheral are now camelCase instead of PascalCase

Healthkit

  • Cordova wrapper now supports iOS 15 and up

  • Added support for HealthKit workout types added in iOS 13 - 16.

Google Fit

  • Now only reads Summary/Routine data from DataTypes that have been granted permission

Samsung Health

  • Switched to using static ID for Android SHealth notification channel name to avoid multiple channels showing up in notification settings


Xamarin.iOS Wrappers Released - October 11, 2022

  • Xamarin iOS Full Wrapper v1.14.1

  • Xamarin iOS Aggregator Wrapper v1.14.1

Xamarin.iOS Changes

General

  • Bundled native SDKs upgraded to:

    • iOS v1.14.1

  • Rename iOS dictionary key from "recordType" to "record_type"

Core

  • VLDUser credentials (validicUserID, organizationID, accessToken) must now be non-empty strings. If an empty string (or nil) is used for any of those properties, -startSessionWithUser: will throw an exception. You must initialize the SDK with a valid user session in order for the following functions to work: Apple Health, Google Fit, and Samsung Health reads and passive Bluetooth reads.

  • Implemented user validation against the Validic API. User credentials are checked when -startSessionWithUser: is called, and any user session started with invalid or unknown credentials will trigger a call to [[VLDSession sharedSession] endSession].

  • Any 401 Unauthorized response from the Validic API will automatically trigger a call to [[VLDSession sharedSession] endSession].

  • Added a default user session. Accessible via [VLDUser defaultUser], this user session can be initialized to perform foreground Bluetooth and VitalSnap reads only while the app is offline. This feature is intended to be used with the Full SDK package when valid Validic user session credentials are unavailable/unknown.

    • If your app always has access to a valid set of user credentials and always initializes the SDK with a valid set of user credentials, then no changes are needed.

    • The recommended SDK implementation is to always provision users on the Validic server then initialize the SDK with valid session credentials for the user. Therefore, use of the default user is not common and its use should be limited to instances where you are unable to retrieve valid session credentials and you need to perform a foreground operation (Bluetooth pair, Bluetooth foreground read, or VitalSnap read).

    • Some operations will not function with the default user. SDK operations that require a server-side user will not function while the SDK is initialized with the default user. You must initialize the SDK with a valid user session in order for the following functions to work: Apple Health, Google Fit, and Samsung Health reads and passive Bluetooth reads.

    • If you need assistance adjusting your implementation of the SDK to account for these changes, please reach out to the Validic support team at  support@validic.com.

  • Deprecated the VLDLogging class log property used for masking debug log output. Please use logMask instead.

  • Set timeout for requests to 10 seconds.

Bluetooth

  • Added generic support for pulse oximeters that follow the Bluetooth standard for Spot Check measurements.

  • Added support for ChoiceMMed pulse oximeter MD300CI218 (peripheral 45).

  • BluetoothPeripheral properties returned from getPeripheral are now camelCase instead of PascalCase

OCR

  • OCRPeripheral properties returned from getPeripheral are now camelCase instead of PascalCase

Healthkit

  • Xamarin iOS wrapper now supports iOS 15 and up

  • Added support for HealthKit workout types added in iOS 13 - 16.


Xamarin.Android Wrappers Released - October 11, 2022

  • Xamarin Android Full Wrapper v1.14.5

  • Xamarin Android Aggregator Wrapper v1.14.5

Xamarin.Android Changes

General

  • Bundled native SDKs upgraded to:

    • Android 1.14.5

Shared

  • User credentials (validicUserID, organizationID, accessToken) must now be non-empty strings. If an empty string (or nil) is used for any of those properties, Session.startSessionWithUser will throw an exception. You must initialize the SDK with a valid user session in order for the following functions to work: Apple Health, Google Fit and Samsung Health reads; passive Bluetooth reads.

  • Implemented user validation against the Validic API. User credentials are checked when Session.startSessionWithUser is called, and any user session started with invalid or unknown credentials will trigger a call to SessionConnectionListener.onSessionEnded(User, unsentRecords).

  • Any 401 Unauthorized response from the Validic API will automatically trigger a call to SessionConnectionListener.onSessionEnded(User, unsentRecords).

  • Added a default user session. Accessible via User.DEFAULT_USER, this user session can be initialized to perform foreground Bluetooth and VitalSnap reads only while the app is offline. This feature is intended to be used with the Full SDK package when valid Validic user session credentials are unavailable/unknown.

    • If your app always has access to a valid set of user credentials and always initializes the SDK with a valid set of user credentials, then no changes are needed.

    • The recommended SDK implementation is to always provision users on the Validic server then initialize the SDK with valid session credentials for the user. Therefore, use of the default user is not common and its use should be limited to instances where you are unable to retrieve valid session credentials and you need to perform a foreground operation (Bluetooth pair, Bluetooth foreground read, or VitalSnap read).

    • Some operations will not function with the default user. SDK operations that require a server-side user will not function while the SDK is initialized with the default user. You must initialize the SDK with a valid user session in order for the following functions to work: Apple Health, Google Fit, and Samsung Health reads and passive Bluetooth reads.

    • If you need assistance adjusting your implementation of the SDK to account for these changes, please reach out to the Validic support team at  support@validic.com.

Bluetooth

  • Added generic support for pulse oximeters that follow the Bluetooth standard for Spot Check measurements.

  • Added support for ChoiceMMed pulse oximeter MD300CI218 (peripheral 45).

  • Added InvalidUserException as the cause for a ValidicBluetoothException when attempting to execute an operation with a null user or a user with credentials that cannot be used when performing an API request.

  • BluetoothPeripheral properties returned from getPeripheral are now camelCase instead of PascalCase

  • Bond with OS before connecting to peripherals

  • Fix updating time on Omron devices

OCR

  • OCRPeripheral properties returned from getPeripheral are now camelCase instead of PascalCase

Google Fit

  • Now only reads Summary/Routine data from DataTypes that have been granted permission

Samsung Health

  • Switched to using static ID for Android SHealth notification channel name to avoid multiple channels showing up in notification settings


Release completed October 12, 2022