Release Notes

Release Notes for the BFE Chat Application

Release 2.2.7

Released April 2024


Added configurable settings to limit the length of voice messages. Added configuration to control how Chat interacts with the Zebra PTT button. Fixed various issues related to permissions not being given by default.


  • Fixed lack of notification banner and sound in Channels, which is triggered upon receiving a Voice Message that automatically played.

  • Updated some Timber logs to info level.

  • Updated Timber log for logging whether notification sound will play.

  • Added configuration, voiceMessageLimitInSeconds, to limited the length of voice messages.

  • Added logic to check for Camera permission before launching camera.

  • Added logic to check for storage read permission before launching Gallery.

  • Added logic to prevent audio recordings while in Secondary Auth (Reauth) mode.

  • Fixed Android 13 issue when sending image attachments.

  • Fixed image attachment file names.

  • Added a new flag, disablePttUsageInBackground, to allow using PTT key only when Chat application is activly being used.

  • Updated application to refresh the list of contacts when the device reconnects to the network.

  • Added support for 'logLevel' setting within bfChat configuration.

  • Added support for 'emsLogLevel' setting within configuration extended attributes.

  • Fixed logic to request permissions, if not given.

  • Updated the image upload logic to utilize the file MIME type of “image” or “video”.

Release 2.1.7

Released November 2023


Performance updates for contact loading and various fixes when application permissions are denied.


  • Added the application version text to the UI footer.

  • Wrapped the registerReceiver() and unregisterReceiver() for PTT Button with try-catch blocks.

  • Removed the auto contact refresh on application UI start, as not needed.

  • Added checking for zero count value to avoid 'ArithmeticException: divide by zero' error.

  • Added a try-catch for ArrayIndexOutOfBoundsException in CustomAudioVisualizer.

  • Added a try-catch for barHeights[it].value.dp and added additional error logs.

  • Updated the AudioRecorder to handle cases where it is not properly initialized.

  • Updated the AudioRecorder with better error handling.

  • Updated to show a toast message in the ChatScreen when OnAudioRecordListener.onError is called to inform the user about the error.

  • Updated the error handling within the MediaPlayer.

  • Handled an exception when receiving an audio file when the application does not have audio permissions.

  • Fixed a corner case issue when rapidly pressing back button.

Release 2.0.17

Released October 2023


Ability to override the notification sounds used for group and individual chats.


  • Added notification sound fetching from Launcher configuration.

  • Updated Crash Handler library.

  • Fixed the image timestamp display.

Release 2.0.15

Released September 2023


Refreshed the Chat UI, placing Online / Offline / Channel contacts into separate tabs. Changed the audio notification sounds so to differentiate from the Android standard sounds.


  • Added UI support for Online, Offline, and Channel tabs.

  • Smoothed out audio visualization.

  • Changed the Voice Message UI to a bottom sheet for recording.

  • Added list of channel participants for each Channel.

  • Added logic to disable video call buttons if either user does not have the voice app installed.

  • Added logic to disable call buttons for offline users.

  • Moved contacts in contact lists from Box container to Card to give theme elevation.

  • Moved audio visualizer away from canvas to more traditional compose objects.

  • Added logic to allow for previewing audio message on PTT overlay bottom sheet prior to sending.

  • Added audio recording elapsed time during recording.

  • Added elapsed time to PTT overlay window recording.

  • Added custom notification sounds for chat and channel messages.

Release 1.5.5

Released June 2023


Fixes for Device Token usage.


  • Updated the device token usage to first check Launcher configuration to ensure Key Management is enabled.

  • Refactored the logic to always expect a string to be returned from the getDeviceToken fetch.

Release 1.5.4

Released March 2023


New feature to send PTT messages to channels when Chat application is not in the foreground. Added security checks for blocked devices.


  • Added logic to remove all contacts from database if the device is blocked.

  • Updated the logic that on detection of a blocked device, remove all contacts and messages.

  • Added logic to the foreground service to listen to PTT button press.

  • Added a voice recording overlay UI.

  • Fixed audio recorder visualizer.

  • Added logic to instantly send PTT message to a Chat Channel rather than prompting.

  • Refactored the upload logic to a common voicefileuploader singleton so the functionality could be shared across the application.

  • Added check for screen on for PTT button usage.

  • Updated pending intent flags to signify immutability to prevent crashes on Android 12+.

Release 1.4.25

Released February 9, 2023


Security updates for endpoint requests, many performance improvements and general bug fixes.


  • Added logic to send information to support services for certain actions.

  • Added checks to prevent attachments from being available to send if the photo and camera applications are disabled in the configuration.

  • Added logic to decline calls if the microphone is not available.

  • Added logic to decline video calls if the camera is not available.

  • Added a feature that when the back button is pressed, calls will be cancelled.

  • Updated to close the soft keyboard when the edit text is disabled in chat activity.

  • Updated the Chat activity to scroll to latest message when entering the activity.

  • Updated the app themes to have theme.materialcomponent root.

  • Updated camera support to work on Android 11+.

  • Cropped the image displayed in text thread to prevent strange scrolling behavior when images load after entering the activity.

  • Added a stop recording to remove button receiver to ensure any active recordings are stopped when the activity is stopped.

  • Fixed the logic to not send off two messages.

  • Updated the Data Services API calls to include the device Id in the header.

  • Added the device Id to the messaging and file upload resources.

  • Updated project to SDK 33.

  • Updated many of the dependant library versions to allow inclusion of Key Management.

  • Updated the endpoint requests to use the Launcher Provider device token.

  • Fixed the Launcher Helper device token request by using the elvis format for retrieving the token from Launcher.

  • Updated the manifest for Key Management usage.

  • Added Support Service calls for post and publishing messages.

  • Updated the device token inclusion logic to always fetch the latest token during any API requests.

  • Added device token and device Id to file read endpoints.

  • Updated logic to handle blocked response from Get Contacts endpoint.

  • Updated logic so that when receiving images in messages will now generate a notification.

  • Fixed logic to not show notification when autoplay is enabled and the message type is PTT.

  • Updated Chat to remove dependency on API key being set in the Launcher configuration.

  • Added logic to prevent files greater than 32MB from being sent. A dialog will be displayed indicating the restriction.

  • Added logic to check for null values when processing the audio UI display for voice recording.

Release 1.3.57

Released September 29, 2022


Introduction of the Chat Channels and Chat Roles support. Additional support for attaching images to messages.


  • Added the logic to handle Audio requests.

  • Fixed sender not opening audio chat after acceptance.

  • Changed the sender/destination chat topic when sending out the created message.

  • Changed MessagingResource from DataHost to ChatHost.

  • Added the Constant variables for the call subtypes.

  • Added logic to handle declining of the message with a toast.

  • Changed the logic so that the sending caller makes the room.

  • Added 'Requesting Call' message in ChatActivity when requesting Audio or Video Call.

  • Added grey overlay to most of screen when calling, preventing focus on recycler view or edit text.

  • Refactored code to use '.apply {}' when editing data from objects.

  • Set ChatEntryType to respective ENUM when reading a StatusAudio or StatusVideo from database.

  • Added logic to send unanswered message to sender if a call is declined or missed.

  • Fixed ‘unanswered’ message being sent to sender twice when Decline button is clicked.

  • Refactored Twilio Logic to join room after 'request' message is sent.

  • Added logic to automatically decline messages when the Voice Chat application is not installed on the receiving device.

  • Created separate Notification Channel for Missed-Call Notifications.

  • Fixed Call History showing incorrect timings.

  • Moved Accept/Decline button code into respective handler functions.

  • Made variables private when not used publicly.

  • Replaced usage of messageService.publishMessage(…) with global function publishChatMessageModel(…), significantly increasing readability & reducing duplicate code.

  • Removed Twilio library dependency.

  • Implemented Logging for Declined Audio/Video Calls.

  • Added logic to log completed calls to Support Dashboard.

  • Added event logs for Twilio token errors.

  • Added flags for ‘allowMessaging’, ‘allowAudio’, and ‘allowVideo’.

  • Added logic to send image when send button is clicked.

  • Generalized variable names, comments, and style names to use 'attachment' instead of 'image'.

  • Added message for no Chat Roles for the user. Updated the IdP Role reading from Launcher to use ROLE, if not present, use GROUPS.

  • Removed null checks in buildMessageEntity(..), replacing with fallback values in case a value is null.

  • Call History immediately updated if manually rejected rather than only after timeout.

  • Fixed double ringing for Message notifications.

  • Fixed display of no IdP Groups message for non-patch API Service endpoints.

  • Updated call decline toast to show decline reason.

  • Updated logic to separate channel messages from user messages.

  • Added logic to hide or show text entry in Chat Channel based on user's permissions for that channel.

  • Added sender name and timestamp to message header in Chat Channels.

  • Added profile image assets and updated the status circle to appear on top of those.

  • Updated logic so that the PTT button does not work if the user cannot post/message in Chat Channels/chats.

  • Updated logic to disable chat participant icon on non-channel chats.

  • Added code to clear Chat notifications when the Chat service is stopped.

  • Updated logic that whenever a user's status is changed, Chat will now also update their sender capabilities since they could have moved from device to Portal.

  • Updated the Contacts list to always have 'swipe to refresh'.

  • Updated the picture attachment logic to include a camera option.

  • Added a safer way of setting variables, removed timber statements, returned false if allowContacts call fails.

  • Updated logic to separate sender permissions from device capabilities.

  • Replaced channel image attachment display logic with better method.

  • Added guard against sending Portal users attachments.

  • Added checks to ensure video and audio calls are allowed only when the device is capable.

Release 1.2.5

Released July 14, 2022


First release of the BlueFletch Chat application. Allows for communications between device users at a location.


Last updated