# Changelog

# Version 2.7 (Carbon)

# Version 2.7.8

March 8, 2023

Bug Fixes

  • Should resolve Google Play compliance issue

# Version 2.7.7

October 19, 2022

Bug Fixes

  • Fixes an issue where installation information would fail to upload.
  • Fixes an issue where certain bluetooth devices with malformed bytes would throw an exception.
  • Fixes an issue where MMI would run erroneously.
  • Fixes an issue pertaining database identifier.

# Version 2.7.6

Semptember 30, 2022

Bug Fixes

  • Fixes an issue where filtering for MMI would not work under certain conditions.
  • Fixes an issue where a non-existing function was accessed on devices running older versions of Android.
  • Fixes an issue where database would not be recreated during migration confliction.

# Version 2.7.5

September 30, 2022

This version contains no changes.

# Version 2.7.4

September 27, 2022

This version solves an issue where updated schema was not applied to previous installations, resulting in crash.

Behaviour Changes

  • Expanded trip model with extended distance data

# Version 2.7.3

September 22, 2022

Bug Fixes

  • Fixes an issue where certain types of data would not be deleted from device
  • Fixes an issue where calculated travel distances would be incorrect

# Version 2.7.2

August 26, 2022

Bug Fixes

  • Fixes an issue where generated journey would not be cleared from the database in a timely manner
  • Fixes an issue where MMI would throw an exception due to a value being NaN

Behaviour Changes

  • Journey model has been expanded with more data
  • Foreground service for MMI has been updated to support Android SDK 31

# Version 2.7.1

August 04, 2022

An issue where a dependency was referenced incorrectly in the POM has been corrected.

# Version 2.7.0

August 01, 2022


This build references a dependency incorrectly, leading to dependency failing to download. The following implementation has to be referenced manually: com.kogenta.mmi:tensorflow-lite:0.0.1@aar.

New Features

  • Added classifications to determine transport mode
  • Added generation of journey with underlying trips

Behavior Changes

  • Lowered minimum compile SDK to 15
  • Neccessary changes have been done to comply with target SDK 31

Bug Fixes

  • Fixes an issue where a silent exception would be thrown due to missing estimated home and work area

# Version 2.6.0 (Carbon)

# Version 2.6.1

February 08, 2021

Bug Fixes

  • Fixes an issue where some methods were not exposed to public

# Version 2.6.0

February 08, 2022

New Features

  • Motion events are now generated on device and is accessible via .getActivityEvents
  • Currently enabled providers can be retrieved via .enabledProviders
  • Calculates approximate home/work area on device
  • Added pushToken to provide push token to Pinch
  • Added externalId to provide external id mapping to Pinch
  • Added anonymizeLocation to turn latitude and longitude into an anonymized location string
  • BirthYear supplied to DemographicProfile will now be aggregated into an age group with an interval of 5-10 years

Bug Fixes

  • Fixes an issue where incorrect sensor states for bluetooth were reported
  • Fixes an issue where RSSI was reported as txPower and txPower as RSSI for beacons
  • Fixes an issue where access to notification channels would always be reported as available
  • Fixes an issue where beacon events would not contain derived location
  • Fixes an issue where uploaded events would sometimes be erroneously stored
  • Fixes an issue where approximate distance traveled inside a predefined set of polygon would not be attached
  • Fixes an issue where incorrect permission state would be reported
  • Added export tag to boot listener for Android 12 compliancy

Behavior Changes

  • Configuration request is offset by a random interval for each device to lower server load
  • .start() has been marked as deprecated
  • .messagingId has been marked as deprecated
  • .getPrivacyDashboard with consent has been marked as deprecated
  • Starting Pinch without consents will now emit an warning
  • Explicitly toggling Pinch will now emit an event
  • Age group and gender will now periodically be synchronized with cloud

# Version 2.5.0 (Sodium)

# Version 2.5.1

August 18, 2020

Behavior Changes

  • Network requests are now spread out between devices

# Version 2.5.0

August 03, 2020

New Features

  • Activity tracking (e.g. walking, running, cycling). Activity tracking can be started with the MOTION provider
  • Added URI for Pinch Sustainability Dashboard
  • Added getStringifiedMessages to Public API for easier access in cross-platform projects

Bug Fixes

  • Fixes an issue where configuration would not be fetched periodically
  • Fixes an issue where state of SDK would not be offloaded to remote
  • Fixes an issue where data would be re-queued for upload erroneously

Behavior Changes

  • The applications notification permission state is added to information about current installation
  • SDK will no longer try to POST events before installation is successfully registered with remote
  • SDK will try to re-authenticate device when requested by server
  • Online tasks will wait until a specific timeframe before running, grouping everything together instead of running whenever
  • Polling of location while device is stationary has been decreased

# Version 2.4.0 (Neon)

No changelog available.
This version was never released to clients using native SDK.

# Version 2.3.0 (Oxygen)

# Version 2.3.13

March 06, 2020

Bug Fixes

  • Fixes an issue where polygons would be improperly cleaned
  • Fixes an issue where SDK would sometimes restart in spite of kill-request from remote

Behavior Changes

  • Polygon purge job is removed
  • Purge interval is now configurable by remote
  • Purge is attempted during a window before event upload, instead of relying on its own job

# Version 2.3.12

February 24, 2020

Bug Fixes

  • Fixes an issue where BLE was accessed without determining BLE adapter state
  • Fixes an issue where locations events would be aggregated to geohash instead of basic statistical units

Behavior Changes

  • We no longer download BSU-polygons on major location change. BSU is now downloaded prior to event upload, ensuring we have internet access and enough time to complete the job in background
  • Simplified database model for polygon mappings
  • Geohash precision is now decided by remote

# Version 2.3.11

February 11, 2020

Bug Fixes

  • Fixed an issue where we would never retry polygon downloads if download failed due to poor internet connectivity
  • Synchronized creation of identifiers

# Version 2.3.10

February 06, 2020

Bug Fixes

  • Fixed an issue where aggregation would sometimes fail during first data upload when app or sdk version is incremented

Behavior Changes

  • SDK production mode status is now appended to installation events
  • Added timestamp to sessions
  • Internal Pinch database will be emptied upon update to this version

# Version 2.3.9

February 04, 2020

Bug Fixes

  • Reserved characters whitespace and forward slash in version or app name is now replaced with dash and percentage respectively when generating UserAgent

# Version 2.3.8

February 03, 2020

Behavior Changes

  • Appended calibratedPower to beacon events to allow more accurate measurement of signal levels

# Version 2.3.7

January 31, 2020

Behavior Changes

  • Rolled back to location aggregator shipped with 2.2.1

# Version 2.3.6

January 30, 2020

Bug Fixes

  • Fixes an issue where aggregated location id would always be geohash

# Version 2.3.5

January 30, 2020

Behavior Changes

  • Upload logs immediately after retrieving new configuration from remote. This is to ensure logs are always uploaded, even if upload workers die.
  • Data uploads through DataUploadWorker is now synchronized and performed on the same thread. This may possibly fix an issue where parent thread would be killed, resulting in the orphaned threads being cleaned up and never finish uploading events.

# Version 2.3.4

January 29, 2020

Behavior Changes

  • Current consents are now added to authorization header

# Version 2.3.3

January 29, 2020

Bug Fixes

  • Fixes a bug where events would be attempted to be saved, without initializing the database

# Version 2.3.2

January 29, 2020


This build introduced an unintended database error, and has been removed from the repository.

Behavior Changes

  • Resurrection timer is now set dynamically by remote
  • Logs can now be uploaded by remote configuration without disabling production mode for Pinch
  • Aggregate location to geohash if current location can't be placed in a polygon
  • Upload worker won't be disabled when Pinch is disabled. This is to ensure we always get rid of pending events. This should have no impact, as the job exits immediately if there is nothing to upload.
  • Moved to use work-runtime-ktx dependency 2.3.0 instead of 2.3.0-alpha03
  • Moved to use room-runtime dependency 2.2.3 instead of 2.2.1
  • Moved to use room-compiler dependency 2.2.3 instead of 2.2.1

# Version 2.3.1

January 28, 2020

New Features

  • Exposed a read-only variable to PublicApi to retrieve API key. This is a method added to enhance wrappers.

Behavior Changes

  • Previously, SDK would only reinitialize on SDK version change. Now it will reinitialize on app version change.

# Version 2.3.0

January 27, 2020

New Features

  • Added messaging center to retrieve incoming messages

Behavior Changes

  • Database containing polygons is now periodically purged to remove infrequently visisted locations
  • URL to retrieve aggregation polygons is now dynamically configurable by remote

Bug Fixes

  • Strips all whitespaces from User-Agent from values set by implementing application (e.g. app version name)

# Version 2.2.0 (Nitrogen)

# Version 2.2.1

January 02, 2020

Bug Fixes

  • Fixes a bug where stop() would never disable SDK during a specific constraint
  • Fixes location request intervals not obeying remote

# Version 2.2.0

December 19, 2019

Breaking Changes

  • grant() and revoke() no longer starts or stops the SDK based on available consents
  • start() no longer accepts an api key

New Features

  • Added additional start() and stop() which accepts data collection providers

Behavior Changes

  • Test mode is appended to header, no longer points towards a different base url

Bug Fixes

  • Fixes calibratedPower missing from data transfer object for beacon events

# Version 2.1.0 (Lithium)

# Version 2.1.2

December 13, 2019

Bug Fixes

  • Fixed an issue where an incorrect consent would be reported to remote if SDK was started without specifying consents

# Version 2.1.1

December 12, 2019

Behavior Changes

  • Unique token used to generate checksum is now encrypted when reporting itself to remote

# Version 2.1.0

December 12, 2019

Behavior Changes

  • Changed key for privacy dashboard to expire instead of living forever
  • All network requests to pinch services must now have an authorization header in addition to Api-Key
  • Checksum generated with a unique token for installation must be accompanied with every request
  • Added fallback URL for privacy dashboard

# Version 2.0.0 (Helium)

# Version 2.0.15

December 05, 2019

Breaking API Changes

  • Converted onboardingVersion in PinchMetrics from Int to String

Behavior Changes

  • Changed PinchMetrics to use public api directly instead of going through Pinch

# Version 2.0.11

December 04, 2019

Behavior Changes

  • Route metric events to own endpoint
  • Changed internal class that exposes private api to public api
  • Exposed application context to public api
  • Updated ProGuard definitions for core that causes issues with public api

# Version 2.0.10

December 03, 2019

New Features

  • Added convenience class PinchMetrics.Onboarding to collect onboarding metrics

Behavior Changes

  • Only retrieve telemetry for relevant beacons

# Version 2.0.9

November 27, 2019

New Features

  • Enhance beacon events with telemetry data on Android 8+

Bug Fixes

  • Fixes an issue where beacons would not be detected

# Version 2.0.7

November 21, 2019

Bug Fixes

  • Fixes an issue where user agent would be invalid

Behavior Changes

  • Enqueues worker to update configuration when SDK is initialized

# Version 2.0.6

November 18, 2019

Bug Fixes

  • Fixes a critical issue where SDK can never recover when app or PinchSDK version changes

Behavior Changes

  • Destroys existing database if underlying schema is out of sync

# Version 2.0.5

Novemer 14, 2019

New Features

  • Added Pinch.deleteCollectedData which makes it easy to request deletion of personally identifiable information
  • PinchSDK now depends on kotlinx-coroutines-android:1.3.2

Behavior Changes

  • Uses internal app installation id as default messaging id
  • Retries custom data & metadata upload at a later time if it fails due to network issues

Bug Fixes

  • Fixes an issue which caused information about current installation to be uploaded every 10 seconds

# Version 2.0.2

November 12, 2019

Behavior Changes

  • Added ability to only scan for specific beacons
  • Added remote configurable beacon collection rules
  • Added ability to remotely disable SDK

# Version 2.0.0

November 11, 2019

PinchSDK 2.0.0 is released. This version is a complete rewrite of PinchSDK with AndroidX dependencies. All active development will target 2.x and 1.x is no longer supported.