Skip to content

Releases: RadiusNetworks/proximitykit-android

Version 0.15.0 - August 9, 2018

09 Aug 22:07
Compare
Choose a tag to compare

Enhancements:

  • Support Android 8.1 (API 27)
  • Support Google Play 15.x

Version 0.14.0 - January 11, 2018

11 Jan 16:04
Compare
Choose a tag to compare

Enhancements

  • Support Android 8.0 (API 26)

    Android 8.0 imposes new restrictions on BLE scanning while in the background.
    This release changes the behavior on Android 8 to use the JobScheduler to
    perform background scans. Due to limitations of the OS these background scan
    jobs may not be scheduled faster than once every 15 minutes. However, when a
    scan job completes, if no beacons are detected a low power scan will begin.
    This scan will continue to run until any beacon is detected at which point
    the JobScheduler will start again.

    Foreground behavior remains the same as prior releases even on Android 8.
    Additionally, these background changes only affects devices running Android
    8.0 or newer. Devices running older Android versions will continue to use the
    existing legacy behavior.

    For more details see Background Execution Limits
    and Background Location Limits.

  • Support Google Play 11.x

  • Sends a ProximityKitGeofenceNotifier.didDetermineStateForGeofence with a
    state of UNKNOWN when location services is disabled after geofences have
    been registered

  • Hooks into location setting broadcasts for improved geofence support on
    devices running KitKat (API 19) or higher

  • When location services is disabled, or otherwise stops providing location,
    ProximityKitGeofenceNotifier#didDetermineStateForGeofence will now be
    called with state RegionEvent.UNKNOWN

Bug Fixes

  • Fixes an issue where after geofences have been registered and location
    services disabled, then re-enabled, not all geofences may be re-registered
    after the next sync
  • Fix race condition where toggling geofences on/off may have resulted in
    inconsistent geofence registrations

Version 0.14.0-beta.1 - November 30, 2017

01 Dec 00:46
Compare
Choose a tag to compare

Enhancements:

  • Support Android 8.0 (API 26)

    Android 8.0 imposes new restrictions on BLE scanning while in the background.
    This release changes the behavior on Android 8 to use the JobScheduler to
    perform background scans. Due to limitations of the OS these background scan
    jobs may not be scheduled faster than once every 15 minutes. However, when a
    scan job completes, if no beacons are detected a low power scan will begin.
    This scan will continue to run until any beacon is detected at which point
    the JobScheduler will start again.

    Foreground behavior remains the same as prior releases even on Android 8.
    Additionally, these background changes only affects devices running Android
    8.0 or newer. Devices running older Android versions will continue to use the
    existing legacy behavior.

    For more details see Background Execution Limits
    and Background Location Limits.

  • Support Google Play 11.x

Version 0.13.1 - November 30, 2017

30 Nov 23:57
Compare
Choose a tag to compare

Bug Fixes:

  • Fix bug causing the configuration setting ALLOW_UNSUPPORTED_GOOGLE_PLAY to
    always be false after a sync.
  • Fix manifest element nesting which may cause a lint error on manifest merge

Version 0.13.0 - May 19, 2017

19 May 18:58
Compare
Choose a tag to compare

Enhancements:

  • Add new public method ProximityKitGeofenceRegion#regionEquals to check
    whether another region equals this one
  • Add new public method ProximityKitBeacon#getBatteryLevel allowing access
    to beacon battery level as reported by AltBeacon advertisements
  • Support Android 7.x (API 24 and 25)
  • Support Google Play 10.x
  • Persist region state across restarts (see
    ProximityKitMonitorNotifier#didDetermineStateForRegion for more details)
  • Provide ProximityKitMonitorNotifier#didDetermineStateForRegion callback for
    each kit region on initial ProximityKitManager#start and on a successful
    kit sync
  • Improve sync efficiency by using E-Tags for conditional sync
  • Add new public method Kit#getGeofences allowing access to the
    ProximityKitGeofenceRegion objects defined in the kit
  • Support toggling between running separate ProximityKitManager instances;
    only a single instance is allowed to run at any one time
  • New interface ProximityRegion and class RegionEvent for general region
    monitoring broadcasts through LocalBroadcastManager (requires app compat)
  • Both ProximityKitBeaconRegion and ProximityKitGeofenceRegion implement
    new ProximityRegion
  • Add new public method KitOverlay#getIdentifier allowing access to the
    entity identifier which uniquely identifies the object within the kit
  • Add several new code type annotations to help improve IDE intellisense

Bug Fixes:

  • Inherit metadata specified by parent regions in child regions / beacons

  • Fix analytic upload timestamp formatting

  • Fix edge case crash caused by parsing a malformed BLE packet

  • Fix UI slowness, and possible hang, in Android 6+ when Location Services
    permissions are revoked while scanning

    It is still recommended that apps always check permissions and BLE/Location
    Services state when returning from the background. If the appropriate
    permissions or services are not in the desired state either engage the user
    or explicitly stop the ProximityKitManager.

  • Fix edge case Context leak with manager creation

  • Include service UUID PDU in Eddystone transmissions

  • Protect against SecurityException crashes caused by Samsung Knox

  • Fix crash caused by IllegalStateException when bluetooth adapter is off for
    HTC devices on Android 6.0+

  • Prevent UI lag, and possible ANR (Application Not Responding) message, by not
    blocking the main thread when starting or stopping a bluetooth scan

  • Prevent duplicate region enter events on kit sync

  • Don't start scanning when BLE feature is unavailable

  • Use elapsed real time for sync intervals avoid potential issues with forced
    clock times

Deprecations:

  • ProximityKitGeofenceRegion#asGeofence has been deprecated in an effort to
    make ProximityKitGeofenceRegion Google Play agnostic in a future release
  • BeaconManager is now fully deprecated. This class is a legacy internal
    implementation detail which was accidentally exposed in the published public
    API. It is slowly being phased out and will be removed in the next major
    release.
  • ProximityKitManager#getBeaconManager has been deprecated inline with the
    BeaconManager deprecation
  • ProximityKitManager#getBeaconAdapter has been deprecated as it was always
    an internal implementation detail that was accidentally exposed in the
    published API
  • KitMap#getOverlays has been deprecated and replaced with
    KitMap#getGeofences; the KitOverlay entity is an internal representation
    and was not meant to be exposed publicly
  • ProximityKitManager#context has been deprecated as it's an internal
    implementation detail and not intended to be modified outside of the library
  • ProximityKitManager#syncIfNeeded is an internal implementation detail and
    has been deprecated as part of the public API
  • ProximityKitManager#setKit is an internal library implementation detail and
    not meant to be part of the public API
  • BeaconManager#getInstanceForApplication is no longer used and will be
    removed in the next major release
  • The entire com.radiusnetworks.proximity.licensing package is now
    deprecated; this includes Configuration, LicenseManager,
    LicensingException, and PropertiesFile. This package and all classes will
    be removed in the next major release with no replacements.

Breaking Changes:

  • Removal of deprecated constructor ProximityKitManager(); this constructor
    was fundamentally broken and created instance which always crash - use
    ProximityKitManager#getInstance(Context, KitConfig) instead

Version 0.12.3 - November 7, 2016

07 Nov 16:33
Compare
Choose a tag to compare

Bug Fixes:

  • Fix bug causing rapid kit syncs when setting a custom sync interval

Version 0.12.2 - October 27, 2016

27 Oct 19:33
Compare
Choose a tag to compare

No public facing changes

Version 0.12.1 - September 16, 2016

16 Sep 19:57
Compare
Choose a tag to compare

Bug Fixes:

  • Fix crash on wifi or power state change which occurs before a Proximity Kit
    manager has been created
  • Fix race condition queuing multiple syncs on wifi or power state change
  • Respect configured sync interval when syncing on wifi or power state changes
  • Use sync interval provided in kit config
  • Prevent duplicate geofence enter events on sync

Version 0.12.0 - September 7, 2016

07 Sep 18:52
Compare
Choose a tag to compare

Enhancements:

  • Regenerate app id if value becomes corrupted
  • Add support for version 9.x of the Google Play services library
  • Adds config setting KitConfig.ALLOW_UNSUPPORTED_GOOGLE_PLAY to by-pass the
    Google Play version check. This may result in a runtime crash as it will
    allow running against untested versions of Google Play.
  • Begins including nullability annotations to provide better insight into the
    public API and help developers guard against NullPointerException only when
    necessary. See https://developer.android.com/studio/write/annotations.html
    for further details.
  • Support caching multiple kits
  • Retry analytic data upload when no network is available
  • Attempt analytic upload with out delay; previously there was a 30 second
    delay from the closing of a session and the upload
  • Attempt analytic upload on successful kit sync
  • Add ability to transmit beacon advertisements on supported hardware

Bug Fixes:

  • Improve thread safety around starting and stopping Proximity Kit Manager
  • Improve thread safety around background time sync; ensuring only a single
    sync task is ever queued at a time
  • Fix geofence region monitoring race condition which may exclude a region
  • Monitor existing geofences on start from local cache
  • Fix loading kit cache on unavailable network
  • Fix race condition which may drop some analytic data
  • Fix queuing duplicate analytic upload job on upload error
  • Move analytic upload off AsyncTask queue on Android Honeycomb and newer
  • Prune analytic data after upload

Breaking Changes:

  • Not exactly a breaking change but a slight behavior modification. The
    MissingKeyException and MissingValueException classes now do not
    automatically append the key name to the provided detail message. This change
    is to fall more inline with how existing exceptions work as well as provide
    better support for internationalized messages in the future.

Deprecations:

  • The LicenseManager is a legacy internal implementation detail. It is in the
    process of being phased out. In this initial round the following publicly
    exposed methods are now deprecated and have been turned into no-ops:

    • LicenseManager.getServerCheckCount()
    • LicenseManager.resetLicenseCheck()
    • LicenseManager.validateLicense()
    • LicenseManager(Context, Configuration, String, Date)
  • KitOverlay() is an internal implementation detail which was not meant to be
    exposed in the public API. It may be retained only as a private method in a
    future release.

  • Deprecate support for 4.x - 7.x of the Google Play service library.

    This only adds a warning message to the logs when an app is built against a
    version of Google Play services in this range. Apps will continue to function
    as expected but developers are encourage to move to a newer version of Google
    Play.

    For historical reference version 4.4.x of Google Play services was released
    in May 2014. The most recent deprecated version, 7.8.x, was released in
    August 2015.

0.12.0-pre

22 Aug 15:35
Compare
Choose a tag to compare
0.12.0-pre Pre-release
Pre-release

This is a pre-release. Please use the official 0.12.0 release instead.

Enhancements:

  • Regenerate app id if value becomes corrupted
  • Add support for version 9.x of the Google Play services library

Bug Fixes:

  • Improve thread safety around starting and stopping Proximity Kit Manager
  • Improve thread safety around background time sync; ensuring only a single sync task is ever
    queued at a time

Breaking Changes:

  • Not exactly a breaking change but a slight behavior modification. The
    MissingKeyException and MissingValueException classes now do not
    automatically append the key name to the provided detail message. This change
    is to fall more inline with how existing exceptions work as well as provide
    better support for internationalized messages in the future.