Skip to content

Releases: Futurae-Technologies/android-trust-signals-sdk

v0.1.2-alpha

Choose a tag to compare

@iulianFuturae iulianFuturae released this 05 Oct 12:41
66e86e0

Changelog

Breaking changes

  • TSCollectionRequest has been replaced by TSCredentials, and its appId field has been removed. TSCredentials takes accountId, accessToken, serviceId, unitId, interactionId and verificationStatus, and is checked when it's created:
      - accountId and serviceId must be UUIDs.
      - unitId must be 1–1000 characters: letters, numbers and -.
      - interactionId must be a UUID, optionally followed by -<sessionId>.
      - accessToken must not be blank.
      - An invalid value throws IllegalArgumentException.
  • TSConfiguration changes:
      - serverURL → collectionUrl, which is now the full URL of the collections endpoint, not a base URL.
      - collectionTimeoutMS → collectionTimeoutMs.
      - New required sensorTag parameter.
      - initialize throws IllegalArgumentException if collectionUrl isn't a valid http(s) URL or sensorTag is blank.
  • scheduleCollections(interval, …) → scheduleCollections(collectionInterval, vararg credentials: TSCredentials). collectAndUpload now takes vararg credentials: TSCredentials.
  • Calling the SDK before initialize now throws TSNotInitializedException instead of IllegalStateException.
  • Upload errors other than 401/403 are now reported as TSUploadRejectedException instead of IllegalStateException. Network errors in scheduled jobs are now delivered as TSUploadTransportException, with the original IOException as cause.
  • The collection models have been renamed and restructured:
      - SignalsObservation → TSObservation.
      - DeviceObservation, LocaleObservation, SecurityObservation, AppObservation and BatteryObservation are merged into TSObservation.deviceInfoSignals: TSDeviceInfoSignals. In the merged class, version → appVersion, level → batteryLevel and status → batteryStatus.
      - ScannedDeviceEntry, ConnectedDeviceEntry and NearbyDeviceEntry are merged into TSDevice.
      - The remaining models are renamed: TSWifiScan, TSBleScan, TSLocation, TSWifiNetwork, TSBlePeripherals, TSNetworkState.
      - locationCollection → location, and permission → permissionGranted.
      - timezone is now a String (the timezone ID). TimezoneObservation has been removed.
  • Timestamps: every timestamp: Long is now observationTime: java.util.Date, serialized as RFC 3339. In TSCollection, tag → sensorTag.

New features & Behavior changes

  • TSVerificationStatus (VERIFIED, UNVERIFIED, FRAUD): the result of the host app's own verification, sent with every upload.
  • TSCollection now includes collectionId (a UUID) and timedOut. timedOut is true when at least one long-running collector didn't finish before the deadline.
  • TSCollectionTimedOutException: thrown by collect and collectAndUpload when every long-running collector timed out and nothing was collected.
  • TSUploadException.failures causes are now typed: TSAuthenticationException (401/403), TSUploadRejectedException (other non-2xx responses) or TSUploadTransportException (network/IO failure).
  • Schedules created by an earlier SDK version are cancelled automatically the first time they run after the upgrade. A TSLegacyScheduleException is sent to the registered error handler with the accountId. Call scheduleCollections again with a full TSCredentials to resume.
  • TrustSignalsSDK.version: exposes the SDK version string.
  • The BLE scan now returns results sooner in busy Bluetooth environments.

v0.0.4-alpha

Choose a tag to compare

@iulianFuturae iulianFuturae released this 03 Sep 11:27
aaefd97

Changelog

  • Added timeoutMs as a parameter to collection methods which allows for overriding default collection timeout specified in the SDK config.

v0.0.3-alpha

Choose a tag to compare

@dimitrisFuturae dimitrisFuturae released this 07 Aug 14:05
073873c

Changelog

Breaking changes

  • TSConfiguration no longer accepts appId. It has been moved to TSCollectionRequest.
  • collectAndUpload and scheduleCollections now accept vararg requests: TSCollectionRequest instead of a single named request parameter to make collections and scheduled collections easier for multiple parallel requests.

New features & Behavior changes

  • Multi-account collectAndUpload: pass multiple TSCollectionRequest objects in one call. Signals are collected once and uploaded in parallel for every account. All uploads are always attempted regardless of individual failures.
  • TSUploadException: thrown by collectAndUpload when one or more uploads fail. failures: Map<String, Exception> maps each failing account ID to its cause. Authentication errors (HTTP 401/403) appear as TSAuthenticationException inside the map.
  • Per-account scheduled jobs: scheduleCollections now enqueues one independent WorkManager job per TSCollectionRequest. Cancelling one account's schedule no longer affects others.
  • stopScheduledCollections(vararg accountIds): cancel one or more specific accounts' schedules while leaving all others running.

v0.0.2-alpha

Choose a tag to compare

@dimitrisFuturae dimitrisFuturae released this 22 Jul 08:12
f115fd2

Changelog

  • Update proguard rules to prevent namespace conflicts with Futurae android-sdk
  • Improve collection entity name sanitization

v0.0.1-alpha

Choose a tag to compare

@dimitrisFuturae dimitrisFuturae released this 26 May 16:09
5b0b833

Changelog

First public alpha release.

Features

  • Signal collection: collects WiFi scan, BLE scan, location, network state, connected BLE peripherals, nearby Wi-Fi devices, IP address, timezone, device/OS info, locale, security flags, app info, and battery
  • Coroutine API: collect() and collectAndUpload() as suspend functions
  • Callback API: collect() and collectAndUpload() with onSuccess/onError callbacks;
  • Scheduled collections: scheduleCollections(interval, request) via WorkManager; survives process restarts; minimum interval of 15 minutes enforced
  • Error handler: registerErrorHandler delivers background worker failures (including TSAuthenticationException on HTTP 401/403) to the main thread
  • Stop/reschedule: stopScheduledCollections() cancels by account or all at once