All notable changes to this project will be documented in this file. See standard-version for commit guidelines.
2.38.0 (2024-11-28)
- ensure that SDK callbacks are invoked on the main thread (#283) (b892ab4)
- target Android 14 (API 34) (a249039)
2.37.3 (2024-10-31)
2.37.2 (2024-10-30)
2.37.1 (2024-10-29)
2.37.0 (2024-10-29)
- introduce Kotlin compiler plugin and Gradle build plugin for compose UI redaction automation (#272) (9756bf9)
2.36.1 (2024-10-11)
2.36.0 (2024-10-04)
2.35.2 (2024-09-26)
- catch invalid selectors (2af549a)
2.35.1 (2024-09-14)
- optimisation for dashboard selectors (abce2de)
2.35.0 (2024-09-11)
- add Redaction index to improve selector performance (#273) (933f297)
- single level dashboard selector support for Compose UI (#275) (b92ff62)
2.34.3 (2024-08-27)
2.34.2 (2024-07-25)
- fix WebView over-redaction with ComposeUI (#271) (ed4dc44)
- the SDK now asks for the redacted views on scroll events (#269) (488e926)
2.34.1 (2024-07-03)
- auto-accept the media projection prompt on Google Pixel phones with Android 14 (#262) (ad0040e)
- avoid rendering incomplete frames if a hardware bitmap is on the screen (#267) (8aaac21)
- ensure we don't untrack webviews if they are still visible (#265) (8704ae0)
- update the CBOR Java dependency to
4.5.4
to fix CVE-2024-23684 (#268) (62df3a1)
2.34.0 (2024-06-05)
- Android 15 support; target Android 14 (#243) (d866903)
- force webviews to LAYER_TYPE_NONE while in session (#256) (7074f0c)
- auto-accepting the media projection prompt on Samsung with Android 14 (#253) (53a4e28)
- disable overscroll when in session to prevent leaking sensitive data on full device mode (#259) (ccc81ce)
- don't use the broken H264 encoder on Raspberry (#254) (b91157e)
- improve webview redaction with better handling of scroll state mismatches (#258) (d14141d)
- reduce number of suppressed frames on global layouts (804c32c)
- reduce redaction flicker caused by redacted webviews (#249) (23e0528)
- stop frames being rescheduled early too frequently (ee281b8)
2.33.1 (2024-04-22)
2.33.0 (2024-04-03)
2.32.2 (2024-02-20)
- ensure webview is redacted while calculating webview redaction even if the webview itself is unredacted (#237) (7cc04ea)
2.32.1 (2024-02-20)
- issue when a session is changed from a push notification received in a background thread (#234) (9a8ca86)
2.32.0 (2024-02-07)
2.31.1 (2024-01-17)
2.31.0 (2024-01-17)
2.30.4 (2024-01-02)
2.30.3 (2023-12-08)
2.30.2 (2023-11-22)
2.30.1 (2023-11-06)
- clear
currentSession()
if an error is returned (#212) (037a254) - declare
ACCESS_NETWORK_STATE
permission requirement (#218) (1d22031)
2.30.0 (2023-10-02)
2.29.0 (2023-09-11)
- add new method
CobrowseIO#setDeviceToken()
which does not require an applicaiton instance (#204) (aa4956c) - SDK now targets Android 13 (API 33) (#203) (aea9f40)
2.28.2 (2023-08-07)
- meet new requirements for foreground service on Android 14 (#196) (1d9d7fe)
- use a different default session indicator in the multi-window mode (#198) (eaad75e)
2.28.1 (2023-07-31)
2.28.0 (2023-06-30)
2.27.0 (2023-06-05)
2.26.0 (2023-05-01)
2.25.2 (2023-04-13)
2.25.1 (2023-03-13)
2.25.0 (2023-03-12)
2.24.0 (2023-03-02)
- allow new sessions to preempt existing ones (5a80566)
- Capabilities support (#175) (551ba76)
- support non-FQDN socket URLs (50698a2)
2.23.5 (2022-12-20)
- bug when SDK does not accept API URL with a trailing slash (#162) (fe2f3fc)
- networking concurrency issue that may throw
NullPointerException
invokingint java.util.Timer.purge()
on a null object reference (#170) (1c4681b)
2.23.4 (2022-11-08)
2.23.3 (2022-11-08)
2.23.2 (2022-11-08)
2.23.1 (2022-11-08)
2.23.0 (2022-09-06)
- allow customization of full device request behavior. (35a75ba)
- redaction overlay not appearing on TextView/EditText which have both
android:gravity="end"
andandroid:singleLine="true"
attributes set. (fffaca3) - remote redaction not applying to fragment dialogs. (e207bd0)
2.22.0 (2022-08-29)
- SDK now targets Android 12 (API 31). (d821ec7)
- automatically accept the MediaProjection prompt on Android 12L in the accessibility service. (529f838)
- don't use
COLOR_FormatYUV420SemiPlanar
on Android 12 and newer. (c249a6d) - H264 encoder on HTC 10 and Sharp SH-01L. (6fae952)
2.21.6 (2022-05-31)
- fix a case that could potentially cause duplicate full device prompts to be shown (ecd0ff9)
2.21.5 (2022-05-25)
- add support for redacting NestedScrollViews. (de54c26)
- don't set profile and level on MSM8996 devices with Android 8. (9f16851)
- remote drawing is not showing properly when device the refresh rate changes. (a2f6452)
2.21.4 (2022-05-12)
- add support for redacting horizontal scroll views (4b7cbd8)
2.21.3 (2022-05-06)
- redact all scroll content in ScrollViews (cc66ce5)
2.21.2 (2022-05-06)
- extend redaction overlays in scroll containers (d2e7bec)
2.21.1 (2022-05-06)
2.21.0 (2022-05-06)
- set a device token to lock sessions to the device
- fix H264 encoder on Google Pixel devices with Android 12.
2.20.1 (2022-04-26)
- trigger a new full device permission prompt the first time it is used in each session
2.20.0 (2022-04-19)
- expose new full device APIs
- set full_device state as enum properties
- use full device requested as default value for old servers
2.19.0 (2022-04-14)
- automatically accept the MediaProjection permission prompt only if the SDK is configured to do so.
- add the customer Proguard/R8 rules.
2.18.2 (2022-02-16)
- Fix untrusted touch events being blocked on Android 12
2.18.1 (2022-02-07)
- only call loaded event after call completes
2.18.0 (2022-02-02)
- add delegate method that's called the first time a session is fetched from the server
2.17.2 (2022-01-31)
- dynamically update full_device_control in device info on session object
2.17.1 (2022-01-31)
- add DPI-specific notification icons.
- add missing 'android:exported' attribute to all SDK components.
- crash on Android 12 if a session is activated in background.
- get rid of redundant process lifecycle listener.
- specify the mutability flag in the notification PendingIntent.
2.17.0 (2022-01-28)
- rearrange the sample app UI.
- Replace AsyncTask with java.util.concurrent classes
- skip custom data updates that match the cached version
2.16.0 (2021-12-08)
Special Consideration
Due to recent Google Play Store policy changes regarding use of the Accessibility Service APIs there are extra changes required to continue using our support for full device remote control. Please follow the docs here to ensure your Accessibility Service will still function: https://docs.cobrowse.io/sdk-features/full-device-capabilities
- don't activate 'android.permission.BIND_ACCESSIBILITY_SERVICE' by default.
2.15.1 (2021-12-08)
- slow screen update on back navigation.
- TextureView capture on Android 4.4.
2.15.0 (2021-11-29)
- activate COLOR_FormatYUV420PackedPlanar.
- implement COLOR_FormatYUV420Flexible support.
- use accessibility API to handle all remote touches in full-device mode.
- disable COLOR_FormatYUV420SemiPlanar on Google Pixel 3a XL.
2.14.1 (2021-11-15)
- initialise custom data as soon as 6 digit code is created.
2.14.0 (2021-11-08)
- activate foreground notification on older Android platforms.
- run initialization from a background thread.
- never stop CobrowseService before starting it again.
2.13.0 (2021-10-20)
- disable H.264 encoder on Android 4.4.
- implement handling remote 'Enter' key event.
- stop using 'WindowManagerGlobal' private API on Android 10+.
- target Android 11.
- avoid using Freescale hardware encoder on older platforms.
- don't destroy the MediaCodec instance when resetting the encoder.
- IllegalStateException when accessing 'MediaCodec.getOutputFormat()' on Android 4.4.
- remove warning for non-production APIs
- fix the mediaprojection prompt autoclick on Android 11. (c167cdc)
2.12.3 (2021-09-24)
- prevent black screen flashes on the agent side
- stop automatically accepting all MediaProjection prompts if the current session is not full-device.
2.12.2 (2021-09-14)
- full-device prompt auto-click on Android 5.1
2.12.1 (2021-07-13)
- Added experimental support for Surface based views
- Improved touch handling for full device control
- Expose full device setter
- Allow overriding the default remote control consent prompt
- Expose full device getter
- Provides access to agent email when account settings allow
- Add support for requesting consent before using remote control tools
- Make license() getter public
- Android X core 1.3.0
- Moved majority of docs to docs.cobrowse.io
- BREAKING: Core classes are now under the io.cobrowse namespace rather than io.cobrowse.core
- BREAKING: Delegate interfaces have been renamed and moved under the io.cobrowse.CobrowseIO namespace: CobrowseIO.SessionRequestDelegate (previously Session.RequestDelegate) CobrowseIO.SessionControlsDelegate (previously Session.SessionControlsDelegate) CobrowseIO.RedactionDelegate (previously Redaction.Delegate)
- BREAKING: A confirmation prompt is now shown to the user by default when a session is requested. You can disable or change this using the delegate methods above.
- BREAKING: A foreground service is started on newer versions on Android when a session is started. You can disable or change this using the delegate methods above.
- BREAKING: Removed remote control delegate methods while we develop an improved API
- Prevent multiple requests for full screen access at once, plus a few minor bug fixes
- Using a delegate without implementing RemoteControlDelegate should not prevent control
- Fix error caused by background job startup ordering
- Fix crash on API 19 devices
- Optimisations to rendering process