- Dependency updates
- Kotlin: 2.1.0
- Koin: 4.0.0
Bugfixes:
- Fixed an issue where building the SDK would fail if the consumer’s Koin version differed from the SDK’s Koin version
Android SDK
- Compile SDK: 34 → 35
- Target SDK: 34 → 35
Added edge-to-edge support.
Bugfixes:
- Fixed an issue where, after sending a message and navigating back, the beacon sometimes displayed a permanent loading state instead of behaving as expected.
Bugfixes:
- Resolved an issue where directly navigating to an article and then closing it using the X at the top would close the article but continue to display a loading indicator.
Bugfixes:
- Attachments from internal private storage are now restricted.
-
Dependency updates
- AGP: 8.2.2
- Gradle: 8.2
- Kotlin: 1.9.10
- Java: 17
- Other internal libraries
-
Modified our
FileProvider
file paths to exclude internal storage.
Bugfixes:
- Corrected an issue that prevented users from updating to AGP 8.2.0, stemming from our utilization of an outdated version of OkHttp.
- Addressed a crash occurring during Beacon initialization, impacting certain users.
Android SDK
- Compile SDK: 33 → 34
- Target SDK: 33 → 34
- Java: 8 → 11 (Java 17 support)
- Kotlin: 1.7.10 → 1.8.20
- AGP: 7.2.2 → 8.0.2
- Gradle: 7.3.3 -> 8.1
Android SDK
- Compile SDK: 32 → 33
- Target SDK: 32 → 33
Updated some other third-party internal dependencies, including Koin (3.4.2).
Bug fixes:
- Newly created conversations no longer throw an
NumberFormatException
when viewed.
Bug fixes:
- When a Beacon is configured with Contact>Show photos to false the Chat header is now populated correctly and a chat can be started.
- We no longer duplicate the anonymous user's first chat message when chat is configured to not require email and user not identified.
Internal dependency updates
⚠️ minimum Kotlin version has changed from 1.5 → 1.6- Kotlin, Gradle, Android Plugin and 3rd party dependency updated (included Koin to 3.2.0)
Internal changes - No user impact
Internal shared library updated.
- We now check for available agents before creating a new chat. If no agents are available, we redirect to the contact form.
Not a new release, per se, but we have migrated support from GitHub Issues in this repository to our customer support team. Links in earlier changelog entries that pointed to an issue will no longer work, you will get a 404 when following them. For additional information on a previous release, github issue, or any other request for support please reach out to us via [email protected]
Bug fixes:
- The email contact form is now correctly reset after calling
Beacon.contactFormReset()
#163 - We've improved the transition animation when exiting a contact-only Beacon #129
- We've further polished the Article screen to resolve the clipping issue with the bottom of the article being cut off after a rating is left #115
-
We've updated some of the language and platform requirements when using the Beacon Android SDK. This addressed #173
- Target Android SDK 31 (Android 12)
- Java 11
- Kotlin 1.5
-
The
showGetInTouch
option has been retired from the available Contact Form Options now that Focus Mode will allow developers to accomplish the same behavior.
- We've fixed a crash that occurs when opening a Beacon when host app is compiled using Kotlin 1.5 #170
Internal changes - No user impact
- We have completely removed any reference to
jcenter()
by moving to a beta version of Koin – the library we use for dependency injection – that's published in Maven Central #159
The SDK is now published to Maven Central instead of JCenter/Bintray. No functional changes have been introduced.
The library has been renamed from beacon-ui
to beacon
. Please, update your build.gradle
file to match this change:
repositories {
mavenCentral()
…
}
dependencies {
implementation "com.helpscout:beacon:3.0.0"
}
Fixes
- Push notifications now subscribe correctly when sending a new message or replying. This fixes a regression issue introduced in 2.1.0. If you are using push notifications we strongly recommend upgrading to 2.3.3.
New
- You can now open your Beacon directly to the Ask screen #108
- Proguard optimize rules are now supported #125
- We are now using Kotlin 1.4.
Fixes
- Chats will only allow keyboard-based GIFS/sticker attachments when a chat is in progress if the "Allow Attachments" setting is enabled.
- The previous conversations button is now displayed when using secure mode and custom navigation. #151
- Improved the visibility of the send button on the Contact form. #140
- Contact form drafts are now only saved when the user has changed the data; so, programmatic calls to prefill the form data when no user input has occurred will fill in the form data as expected. #114
Fixes
- Vimeo videos can now be embedded and played back within Articles#147
New!
- Want to know how customers experienced chatting with you? Beacon for Android now includes chat ratings! You’ll be able to get immediate feedback from your customers on how their conversation went with your team. Learn more.
Fixes
- The close button no longer appears to terminate the host app. #131
- Smoother transition when opening straight to an Article detail. #113
- Removed opt-out of Firebase Analytics as it was disabling these events for the host project if not explicitly enabled. #146
- Session attributes are now visible in Help Scout after creating a chat.
- The
SuggestedArticle
class was not accessible and preventedBeacon.setOverrideSuggestedArticlesOrLinks()
from working. You can provide article suggestions by providing either Article IDs or custom links again. - We stopped ProGuard from obfuscating some method parameters.
- Other bug fixes and performance improvements
- We fixed a crash when starting
BeaconActivity
caused by a third-party library that we use internally – Koin – when using Kotlin version 1.4.x. We decided to use a beta version of Koin to prevent the application from crashing. Please, let us know if you run into any issues. #124 - Users will no longer experience a crash when starting
BeaconActivity
when thetargetSdk
is30
due to some checks a third-party dependency – OkHttp – did during start up. #132 - We fixed a crash when opening the
ArticleActivity
when the host application set a fixed orientation, and the user's device was running Android 8.0. #133 - Users who have an active chat and open the
ChatActivity
will no longer experience a crash when updating to a newer SDK version. This crash only impacted users if the SDK version in use is 2.1.2 or below. #134 - Improved the user experience when starting a new conversation and replying to it. #135
- Beacon color settings are now correctly set when a user with an active chat updates the SDK.
- We now support opening hyperlinks to Articles contained in previous conversations in Beacon rather than a separate browser.
- We fixed a bug that prevented the push token from being registered for realtime chat when calling
Beacon.identify()
. - Minor UI polish.
- We now support anchor links within docs articles. #101 #116
- You can disable access to previous messages with a local override.
Breaking changes
- We have merged the
beacon-core
module into thebeacon-ui
module. Please remove thebeacon-core
module from yourbuild.gradle
file as it may cause compatibility issues.
Bug Fixes:
- Beacon will now skip opening the ask chooser when chat is disabled on your Beacon. #95
- Fixed article links within the Beacon activity note, so they now open the article. #110
- Users are now returned to the previously active ask screen when using Android's back button #100.
- Added visual polish to the chat header, push notifications, and the "home to chat" transition.
- Fixed several memory leaks
- We now support anonymous chats. To enable, uncheck email required on the Beacon builder contact options.
- It's now possible for users to rate Docs articles.
- Updated the UI when displaying an invalid email message in chat.
- Added animations when the Beacon is loaded, transitioning to chat or contact form, and when you rate an article.
- We've given the message, conversations, and reply screens a fresh new look.
- Conversations with over 20 threads are now collapsed by default, allowing users to focus on the most recent messages.
Bug Fixes:
- Fixed a crash with
PreFilledForm
when the host app uses Moshi Kotlin. Resolves #91 - We've updated to the latest version of PhotoView and removed the external dependency. There's no longer a need to add JitPack to your repositories. Resolves #87
- Resolved an issue with state restoration on the Message form when the Developer setting "don't keep activities" is enabled. Resolves #83
- Fixed a issue where links were not actionable via Previous Messages #93
- Fixed the upgrade issue found in version 2.1.1
- We discovered a regression issue when upgrading from Beacon SDK below version 2.0.2 directly to 2.1.1. Therefore removed 2.1.1 and aim to resolve this issue in the next release. Please use 2.1.0 in the mean time, thank you for your patience.
- New visually redesigned landing page with Answers and Ask tabs.
- Now supports Focus mode - see Settings Customization
- Fixed a crash when manually initializing the Beacon #79
- Other bug fixes and performance improvements
- Added support for special attributes on the Help Scout customer profile: avatar, company, and job title. See the new method,
Beacon.identify(email, name, company, jobTitle, avatar)
. - Tapping on images within a Chat now enlarges them.
Breaking changes: Due to an update in the OKHttp dependency, your app needs to define both sourceCompatibility and targetCompatibility to Java 1.8. Your app's build.gradle file should appear as follows:
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Bug Fixes:
- Better client-side handling of the attachment limit (20) for real-time chats
- Fixed an issue with the Up/Back button when using a Contact-only Beacon #75
Bug Fixes:
- This release includes a fix to prevent a crash when using non-image attachments in Chat.
- We've reduced visibility of an internal API,
Beacon.datastore()
. This is to prevent accidental usage which may result in the SDK getting into an unknown state.
Breaking changes:
- Added email to Pre-filled form.
- See 2.0.0-beta for more breaking changes.
Behavior change:
- Pre-filled content for the contact form is cleared after a successful send.
Bug Fixes:
- Removed Beacon SDK use of Koin's global scope to fix issues for host apps using Koin.
- Reduced visibility of Beacon SDK's Kotlin extensions. #70
- Removed com.commonsware.cwac.document repo dependency. #73
- Fixed issue where users could initiate a chat via Beacon.navigate() method when no agents are available.
Special thanks to @sipersso for raising these issues.
- Live chat - Now customers can start a chat from your app on their Android device, accessing great support no matter where they are.
Breaking changes:
- Migrate to AndroidX - The Beacon SDK dependencies have been migrated to use Google's AndroidX libraries. This removes the need to use Jetifier and should speed up your build process. To update your app to use AndroidX follow the instructions in Migrating to AndroidX.
Bug Fixes:
- Remove
@GlideModule
class as it causes a clash if the host app also uses Glide - Fixed issue where email used wasn't updated when changed on contact form #67
- Session Attributes: You are now able to include session-specific information on new messages. Check out our docs for more details.
Bug Fixes:
- Removed Stetho dependency #64
- Remapped some mobile-only translation strings to use Beacon Builder strings
- Beacon SDK 3rd party dependencies are now private (moved
api
toimplementation
) to avoid conflicts in host apps #66
- Behind the scenes updates for up and coming real-time chat beta
- Added a navigate option to allow you to open the Beacon directly to Previous Messages or Chat (beta coming soon)
- It is now possible to hide custom fields that you've pre-filled using the
Beacon.showPrefilledCustomFields(false)
Bug Fixes:
- Edited obfuscation config due to incompatibility with Firebase perf monitoring #62
- Fixed bug added in 1.0.5. Crash with message parameter chat should be non-null #60
Bug Fixes:
- Fix crash when using an app name in Chinese #57
- Fix an issue with Koin library crashing Roboelectric tests #59
Note: We removed support for right-to-left layouts, if you support it in your app please use tools:replace="android:supportsRtl"
in your Manifest. For more information check the samples apps.
Bug Fix:
- Fix to issue loading suggested article external links
API change:
- Removed static modifier from
BeaconPushNotificationsProcessor.process()
method.BeaconPushNotificationsProcessor.process(..)
becomesnew BeaconPushNotificationsProcessor().process()
.
Bug Fixes:
- Improved typing performance on the Reply screen
- Updated CSS for Articles
- Refactor to use Koin 2.0
Bug Fixes:
- Added meta data flag to ensure Firebase Analytics (that we do not use but is automatically included by Firebase Cloud Messaging) doesn't collect the Android Advertising ID
- The order of open articles is retained when rotating screen
- Agents avatars on previous conversations now display the correct agents
- Coloured the Agent avatar circle to match the Beacon color if no photo available
- When showing dates from previous years ensure the year is shown
- Fixed a cache bug when having multiple Beacons on the same application
- Android Beacon always prompts for the customer's name and email unless provided by the developer using
Beacon.login("[email protected]", "Name")
- Developers can specify custom suggested articles and URLs via the new
setOverrideSuggestedArticlesOrLinks()
method.
Bug Fixes:
- The Send Message toolbar could be pulled down after a successful message was sent
- An animation bug when the Send Message toolbar was swiped-up too quickly
- The back arrow now is now correctly visible when viewing the Previous Conversations screen after a message was successfully sent
- Navigation bugs during article search and viewing previous conversations
- We now support device rotation 🎉
Bug Fixes:
- Crash when Article preview was blank
- #36 Crash when loading conversation if any of the conversation threads was missing a creator.
- Contact us FAB was incorrectly shown on the search error screen
- Hyperlinks in conversation body are now converted to clickable links
- Tweak to text color formula to match web/iOS
- Crash on some devices running Android version <5.0 (unsupported)
- Prefill attachments
Bug Fixes:
- You can now correctly override the
messageEnabled
anddocsEnabled
flags on your Beacon - #33 Fixed crash when launching BeaconActivity with Context rather than Activity
- #36 Fixed crash when
lastThread
is null onConversationsAdapter
- #39 Fixed button coloring in low contrast conditions
- #39 Fixed white message icons on white backgrounds
- #39 Fixed back/navigate up button to have the correct Android design (use arrow_back, not keyboard_backspace)
- Suggested articles can now be overridden by the SDK
- Beacon Open and Close Event listeners - ideal for analytics to track when Beacon is used
- Contact form draft is now persisted so users can exit the Beacon and their draft message is restored when they resume their message. There's also a
contactFormReset()
so if you want it to reset and remove the draft. - Image attachments now show a preview of the image instead of an icon.
- Push notifications are grouped by conversation, instead of getting new ones.
Bug fixes:
- Related articles now correctly escaping HTML
- Change to the way activities are launched to prevent multi copies of Home/Suggestions screen being loaded
- Attachment button disabled once the limit of 3 reached.
- The We're on it tick/circle now matches your Beacon color
- The message text area expands to the bottom of the view on the contact screen to give more space for message text
- New attachment icons to match the file extension type
- Beacon Builder Config overrides
- UI string overrides based on Strings set in Beacon Builder
- Compatibility with host projects using support lib 28 and AndroidX
Bug fixes:
- Push notifications token registration API (re-order of the API calls)
- Fixed color of hyperlinks in previous message details
- Corrected issue where file extensions were missing from files picked from Android media folders
- Clear DeviceId/Install Id on Logout
- Back arrow was not tinted according to text contrast colour
- Support null/missing previous message subject
- New options to Open Beacon UI straight to the contact form, search results or specific article
- Beacon UI color is now taken from the server defined Beacon color (local override coming in next version)
- Email input is now inline with other contact form fields rather than separate UI to match JS SDK
Bug Fixes
- Fixed crash when downloading an attachment without a file extension.
- Removed
DisableableAppBarLayoutBehavior
which was causing issues when using different Android support library dependencies
Bug Fixes
- Fixed user attributes not shown on the first message a brand new user sends
- Fixed crash when scrolling through conversations
- Fixed crash when trying to attach some invalid extensions to a conversation or draft
- Initial Push notifications support via FCM. Note server side UI not available at this time.
- Support for pre filled contact form (name, subject, message)
Beacon.addPreFilledForm(..)
- Local override to disable the contact form
Beacon.setOverrideMessagingEnabled(false)
- Error screen for invalid beacon config
- Increased limit of user attributes permitted from 10 to 30
- Added Client-side validation for blacklisted attachment types
Bug Fixes
- Fixed issue where the Toolbar wasn't auto updating it's text color when
@color/hs_beacon_colorPrimary
was overridden in host app. - Corrected issue with User Attributes upload, which were only being uploaded to API when using secure mode. Fixed to also support basic mode.
- Send a message FAB not working - https://github.com/helpscout/beacon-android-sdk-sample/issues/17
- Internal repository invalid beacon fix - https://github.com/helpscout/beacon-android-sdk-sample/issues/16
- Error handling when registering Push token
- Clearing of user attributes on Logout
- Removed Moshi's Kotlin Type adapter to fix support for ProGuard in host app
- Previous messages list and message threads now load additional pages via infinite scrolling lists
- Message replies are now permitted with blank message if an attachment is present
Deprecated due to issue with 3rd party dependancy (Moshi's Kotlin Type adapter) preventing host app from using PorGuard.
- Draft support for message replies
- Support for HTTP caching of API responses
- Several minor UI fixes when in landscape mode
- Limit name & subject fields length on the Send a message form to match Web
- Hide avatar instead of displaying initials if image not present to match Web
- Fix Article CSS loading bug on Android 5
- Optimised search result handling to prevent unnecessary API call to get more results when none exist
- Fix screen flick after opening an article with related articles
- Added loading spinner before article loads
- Limited attachments to a total of 3, matching web-embed
- Fixed a bug that allowed a message to be sent before an attachments was fully uploaded
- Fix regression error when loading conversations with chat transcripts
- Show avatar placeholder image on enter email screen
- Enable/Disable Send button depending on Form validation state
- Replace Listviews with Recycler views
- Load all the pages of search, conversations and conversation threads
- Truncate preview text on conversations list
- Use plurals for dates
- allow full name to be set via login method
- fix hyperlinks on conversations