Android SDK — Release Notes
ai.revrag:embed-android · release history, newest first. Install the latest with implementation("ai.revrag:embed-android:1.2.0"); confirm the current version on Maven Central.
1.2.0: upgrading from 1.1.0
Upgrade
implementation("ai.revrag:embed-android:1.2.0")Drop-in. Nothing has been removed or changed in the public API, and the toolchain requirements are the same as 1.1.0 (minSdk 24, compileSdk 34, Kotlin 2.0+, JDK 17). If your app doesn't use the new APIs below, no code changes are needed.
New
WebView pages as separate screens: setSubScreen
For apps that show a WebView with several pages on one screen or nav route (KYC, DigiLocker, eSign, partner pages). Each web page reaches the backend as its own screen, while the widget follows the route that hosts the WebView.
webViewClient = object : WebViewClient() {
override fun doUpdateVisitedHistory(view: WebView, url: String?, isReload: Boolean) {
if (!isReload) embedHandle?.setSubScreen(pageNameFor(url)) // no tokens, IDs or personal data
}
}- List the route that hosts the WebView in
allowedScreens, not the web pages. - Moving between pages doesn't flicker the widget or end a live call.
- Leaving the route clears the page name automatically.
- If you used
setCurrentScreenfor web pages, switch tosetSubScreen:setCurrentScreenreplaces the route, so an unlisted page name hid the widget.
embedHandle is the EmbedOverlayHandle returned by EmbedProvider.attachOverlay(...).
App version at initialization
EmbedSDK.initialize(context = this, apiKey = key, appVersion = "2.4.0") { result -> }Optional. Without it, the SDK keeps detecting your app's versionName, as in 1.1.0.
Improved
The on-screen agent
- It no longer targets controls hidden behind a bottom sheet or dialog.
- It detects disabled buttons and fields and won't tap or type into them.
- Custom views that expose themselves through accessibility are now visible to it.
- Field labels are linked to their fields, so it types into the right field.
- Guided tours skip a missing element instead of stopping, and highlights are centred.
- Highlights and taps on Compose bottom sheets and dialogs land in the right place.
Stability
- Bad configuration values from the backend can no longer crash your app (zero-length animations, oversized avatars, negative padding, empty charts).
- A failure inside the SDK stays inside it: the widget is removed and your app keeps running. Exceptions thrown in your own SDK listeners are isolated too.
- The SDK's screen cache has memory limits, and a leak that kept an Activity alive is fixed.
UI
- The microphone-permission explainer uses its own floating dialog theme, in light and dark. Under some app themes it used to open full-screen.
Changed behaviour
- Logs in debug builds of your app. The SDK now prints lifecycle logs (initialization,
screen changes, visibility decisions, call steps) when your app is a debug build. In
1.1.0 the published SDK printed nothing at all, which made integration hard to diagnose.
Filter with
adb logcat | grep RevragEmbed. These logs never include on-screen text or user data. - Release builds are unchanged: the SDK prints nothing.
Known limitations
setSubScreenis Android only; it isn't on iOS yet.- The agent still can't read or fill content inside a WebView.
- Two library warnings can appear in release logs and aren't SDK faults: Lottie ("You have N images…", from the avatar animation) and three SLF4J lines at startup.
More detail: the Android Integration Guide (setup, screen naming and WebView steps) and the Android Copilot Integration prompt (full 1.2.0 contract for AI coding agents).