# Release Notes

### Release 2.11.14

#### Highlights

Landscape orientation support, Beacon Service updates, event tracking of Ping Device usage, Device Friendly name support.

#### Details

* Replaced default portrait lock and added configurable lock orientation in DeviceFinderConfig.
* Implemented event logging when Ping Device is used.
* Update minimum supported OS to Android 8.1.
* Added Android 15 support.
* Added an option to enable or disable Beacon Service via intent and adb command.
* Added configuration support for Metric and Imperial measurement.
* Updated the term used for measurement from *Distance* to *Unit Of.*
* Added support for Friendly Names based on device custom attributes.
* Updates to the Beacon logic and service usage.
* Added fallback for beaconMode in Device Finder configurations.
* Added prompt to notify user when the device token has expired.
* Fixed a NullPointerException in site location when the Launcher configuration is null.
* Added length filter to the custom message text input in Send Alert Activity.
* Updated the Send Alert Activity UI to display a cursor.
* Create Healthcare variant with related icons.

### Release 2.10.13

#### Highlights

Added Load More feature to allow for loading additional device data.  Updates to Bluetooth beaconing logic.

#### Details

* Updated pipeline and gradle files to automatically upload to the 'alpha' track in google play.&#x20;
* Adjusted runtime permissions priority for Android 12+.
* Enhanced the beacon smoothing utility and disabled beacon detection for limited devices.
* Reverted back beacon smoothing window to 10 seconds in Beacon Ranging Utility.
* Added Load More feature for Device History within the Device Details UI.
* Updated error logging for API calls and added clear description to improve readability.
* Updated Support Library to 5.9.3 to support local log files.

### Release 2.10.8

#### Highlights

Complete UI refresh.  Updates to the Beacon processing logic, with additional logging.

#### Details

* Updated primary dark color to Bluefletch Blue.
* Updated implementation of tab layout to correspond with the new designs.
* Added display support for new device statuses: Missing, In Repair and InActive.
* Applied the newest design for the Device Finder with support to new statuses: Missing, Idle, Powered Off.
* Updated Not Reporting status for the Japanese translation and fixed the location text overlap for item device display.
* Simplified error handling for canceled device data requests.
* Added current device to the device count when show current device config (showCurrentDevice)

  &#x20;is enabled.
* Enabled navigation on tabs even if the section is empty.
* Enabled empty tabs for Map View.
* Added a default map view center point based on available geo point.
* Added null checking for system location validation in Map Adapter.
* Added more logging around transmitting and receiving beacons.
* Added manufacturer identifiers resource and used improved beaconing.
* Adjusted matching of manufacturer codes in Beacon Service.
* Improved implementation of Yaml Parser in Beacon Service.
* Updated the behavior of getHardwareManufacturers to apply separation of concern in Beacon Service.

### Release 2.9.1

#### Highlights

Feature to display the current device at the top of the list of device.  Japanese language support. Various fixes.

#### Details

* Forced the default theme into light mode on the Main UI.
* Added a utility for numbers that will isolate and prevent possible NumberFormatException.
* Adjusted the number utility with the use of try/catch block and improved efficiency.
* Reduced redundant operations within Device List fragment.
* Updated logic within the Device List fragment to prevent Null Pointer Exceptions.
* Adjusted the validation of the last reported time of beacon information within the Device List UI.
* Created strings.xml file for Japanese translations.
* Adjusted permission implementation that will allow users to use the Device Finder with or without the location permission in Main Activity.
* Added feature that allows configuring the Device Finder to show the current device at the top of the list, using the boolean showCurrentDevice.
* Updated device refresh for beacons within Device List Fragment.
* Updated showCurrentDevice config default value to false to retain current behavior.

### Release 2.8.9

#### Highlights

Resolved issue where Device Finder was not being deployed to devices without a GPS radio.

#### Details

* Made the GPS feature not required and removed the need for QUERY\_ALL\_PACKAGES permission.

### Release 2.8.8

#### Highlights

Various fixes for exceptions and crashes. Fixed an issue when running Device Finder on Android 9 devices.

#### Details

* Updated to create the crash handler earlier in the application life cycle.
* Added a try/catch around the beacon transmitter logic.
* Added additional permission settings for Android 13 Bluetooth support.
* Added a try / catch around the Bluetooth adapter logic.
* Updated the beacon support library to a newer version.
* Updated the beacon usage with a new BeaconOverride model to allow for overriding the writeBoolean method, as it is not supported on Android 9.
* Added additional updates to the beacon parsing logic to ensure proper data bytes are read.
* Resolved an exception where there are no record counts available, as the logic was waiting for a server response.
* Updated the Crash Handler to version 3.0.3.

### Release 2.8.1 <a href="#release-281" id="release-281"></a>

Released July 2023

#### Highlights <a href="#highlights" id="highlights"></a>

Application logging updates and changed mapping source to Open Street View.

#### Details <a href="#details" id="details"></a>

* Changed the Beacon service log level to verbose.
* Added API resource error logging information.
* Changed mapping source form Wiki Media to Open Street View.
* Updated the Map View to contain an attribution to OpenStreet view data.
* Updated project to use new Support Lib AAR for Android 13 support.

### Release 2.7.3 <a href="#release-273" id="release-273"></a>

Released April 2023

#### Highlights <a href="#highlights_1" id="highlights_1"></a>

General fixes and performance updates.

#### Details <a href="#details_1" id="details_1"></a>

* Updated the use of the ViewModel to share device list data across multiple UI fragments.
* Fixed the site change update within the UI display.
* Updated some fo the API request logging to display errors.
* Added a token fetcher that wraps the Device token fetch logic. It now verifies that Key Management is enabled before getting the device token.

### Release 2.7.1 <a href="#release-271" id="release-271"></a>

#### Highlights <a href="#highlights" id="highlights"></a>

API security updates utilizing the Key Management feature provided by BlueFletch Launcher.

#### Details <a href="#details" id="details"></a>

* Added logic to retrieve device token from Launcher via DeviceTokenHelper.
* Added device token to all API requests.
* Updated targetSdkVersion to 32 and updated other project dependencies.
* Updated the project to reference Host URL within the Build.gradle file.
* Added logic to allow for overriding Host URL from the Launcher configuration to allow for beta testing.

### Release 2.6.22 <a href="#release-2622" id="release-2622"></a>

#### Highlights <a href="#highlights" id="highlights"></a>

Various performance fixes and improved device battery usage.

#### Details <a href="#details" id="details"></a>

* Removed redundant API call for device list.
* Fixed blank GPS distance on initial launch. Added a badge icon type of 'none' to remove badge display.
* Fixed device history insertion order by using LinkedHashMap.
* Fixed date and time display of timezone when parsing the UTC datetime.
* Added lifecycle-extensions library to stop the beacon scan when the application is in background.
* Updated implementation of bf-ui-styles.
* Updated abbreviation of plural time strings.
* Adjusted implementation of last seen time and device status.
* Updated API requests to include the deviceId in the request header.
* Updated the support libraries.

### Release 2.6.16 <a href="#release-2616" id="release-2616"></a>

#### Highlights <a href="#highlights_1" id="highlights_1"></a>

Ability to start the beacon service during device startup, various fixes for date / time displays, and resolved some application crashes.

#### Details <a href="#details_1" id="details_1"></a>

* Added default implementation for various system callbacks to prevent crashing on devices below Android R.
* Added an ID filter for Beacon Information within the Device Details display.
* Added a silent activity for initialization of the beacon service.
* Fixed localization and timezone formatting for date and time.
* Fixed the DateUtil for timezone based parsing.
* Fixed theme name typo and added transparent theme. Removed action main from silent init activity.

### Release 2.6.11 <a href="#release-2611" id="release-2611"></a>

#### Highlights <a href="#highlights_2" id="highlights_2"></a>

General stabilty changes. Also a new configuration section was introduced specifically for device finder in the Launcher. Use of the new configuration settings Will require Launcher 3.16.13 or above.

#### Details <a href="#details_2" id="details_2"></a>

* Updated the BeaconService to a stand-alone class.
* Added logic to ensure Bluetooth is running and permissions are granted before retrieving data.
* Moved visual progress to MainActivity.
* Cancel the device fetch when activity goes to background.
* Ensured lifecycle is at least RESUMED when fragment transaction is committing.
* Updated project to use the updated Launcher Provider.
* Removed the map view menu if disabled.
* Do not use the beacon service if disabled.
* Added missingThresholdInHours in configuration.
* Reverted the ping button disable and added a pingDisabledCustomText configuration.
* Updated the ping custom text enabled functionality.
* Upldated to load configurations during the onCreate and logic to prevent a crash when going to map view.

### Release 2.6.8 <a href="#release-268" id="release-268"></a>

#### Highlights <a href="#highlights_3" id="highlights_3"></a>

General updates to the UI, added a new Beacon feature, and allow for Device Map to locate other devices.

#### Details <a href="#details_3" id="details_3"></a>

* Added Location Permissions utility.
* Added Beacon Service utilizing the Android Beacon library.
* Updated Manifest for new Beacon service actions and location permission.
* Adjusted Beacon Service to enable stop and start foreground actions.
* Adjusted Application class to use start foreground and beacon transmit only.
* Adjusted DeviceInfo model for beaconId field.
* Added Beacon Information card to Device Details.
* Added LocationHelper for Finder last known location.
* Updated manifest for bluetooth permission and provider feature.
* Updated DeviceInfoBeacon model and added last known location.
* Added implementation of Beacon Service into Main Activity.
* Updated LocationUtil validateCoordinate, to prevent storing validated location.
* Updated Beacon Service channel notification for importance and sound config.
* Added Support Library INIT to application.
* Adjusted the targetSdkVersion.
* Added additional checking for null coordinates.
* Added exception handling for Config Settings and replaced printStackTrace loggging.
* Updated implementation of checking distance between Finder and device list.
* Added query all packages permission to fix Android 11 missing Device Id.
* Updated implementation of device statuses to improve performance.
* Adjusted formatting of distance.
* Adjusted implementation of device status to Device Details and Map.
* Adjusted UI to prevent display overlaps.
* Adjusted additional UI to prevent overlap of details.
* Adjusted implementation of device list refresh.
* Adjusted Beacon Service foreground notifications and consolidated into one.
* Added the ability to disable ping device and/or disable selection of custom message.
* Added an updated error message when the Device Ping is disabled on the server/org but not disabled on the device.
* Added Application ID as user agent for MapView Check if Beacon service already started when checking permisison.
* Removed Audio option for Ping Device.
* Added max limit to Custom Message input.
* Changed "Not Reporting" status logic to compare if the last known event time difference is greater than the threshold.
* Fixed warnings in Device Detail map view.
* Added markers in Map View of all devices (Last known location).
* Refreshed the UI of the Device List and Main Activity.
* Applied UI enhancements to Map View.
* Adjusted not reporting and added cradled checking.
* Fixed issue where coordinates were having null or "0.0" values.
* Updated Device Details UI.
* Updated Device Details Map history UI.
* Added UI enhancements to Ping Device.
* Moved Ping Device to Card View.
* Made the location pins reflect the chip state of the devices.
* Adjusted Device Lost checking.
* Adjusted Device ID to ellipsize start instead of the end.
* Added text input for custom message.
* Added device model and status in the Map Marker InfoWindow.
* Fixed collapse and disable toggle of Map View if there's no available locations.
* Removed animation when toggling Map View and List View.
* Adjusted Last Seen text format within the Device List item.
* Removed repeated calling of resources and context in mapView.
* Updated date displays to use Device default date.
* Adjusted zoom level of map in Device Information History from 20 to 17.
* Adjusted animation of Send Ping from slide up to fade.
* Changed Menu Item fontFamily to OpenSans.

### Release 2.5.12 <a href="#release-2512" id="release-2512"></a>

#### Highlights <a href="#highlights_4" id="highlights_4"></a>

Updated underlying libraries.

#### Details <a href="#details_4" id="details_4"></a>

* Updated code to see if it has a device id.
* Updated EMS Crash library and Support Libraries to new verions.
* Updated the pipeline build image for new Andriod device SDK versions.
* Updated Launcher Provider version and updated logic to use SupportAgentConfig when getting the support settings.

### Release 2.5.9 <a href="#release-259" id="release-259"></a>

Released September 1, 2021

#### Highlights <a href="#highlights_5" id="highlights_5"></a>

Added EMS exception handler library to report errors to Support Dashboard.

#### Details <a href="#details_5" id="details_5"></a>

* Added EMS exception handler library to report errors to Support Dashboard.
* Fixed crash around poorly formed event url.

### Release 2.5.1 <a href="#release-251" id="release-251"></a>

Released March 25, 2021

#### Highlights <a href="#highlights_6" id="highlights_6"></a>

UI cleanup and various fixes.

#### Details <a href="#details_6" id="details_6"></a>

* Cleanup UI, allow for long serial numbers
* Display last user in device list
* Simplify and fix incorrect history time calculation
* Migrate to Android X
* Add calligraphy to use same font as Launcher/Auth
* Use material widgets instead of custom buttons
* Remove Butterknife, switched to Jetpack view binding

### Release 2.4.1 <a href="#release-241" id="release-241"></a>

Released December 17, 2020

#### Highlights <a href="#highlights_7" id="highlights_7"></a>

Support for Android 10 and general bug fixes.

#### Details <a href="#details_7" id="details_7"></a>

* Android 10 Device Id support.
* Fix string typos.
* Additional German text translations.

### Release 2.3.9 <a href="#release-239" id="release-239"></a>

Released October 30, 2020

#### Highlights <a href="#highlights_8" id="highlights_8"></a>

General bug fixes.

#### Details <a href="#details_8" id="details_8"></a>

* Various bug fixes.
* Added support for application logging uploads.
* Added German language support.

### Release 2.1.1 <a href="#release-211" id="release-211"></a>

Released September 9, 2019

#### Highlights <a href="#highlights_9" id="highlights_9"></a>

Initial release of the application.
