Skip to content

Conversation

@abelonogov-ld
Copy link
Contributor

@abelonogov-ld abelonogov-ld commented Nov 26, 2025

Summary

Implement capture multiple type of windows and draw them on each other.
Some windows like Toast still not captured. Hoping in the next PRs
image


Note

Adds multi-window capture and compositing (activity + dialogs) with per-window masking, refactors capture into replay.capture, and updates instrumentation/internals accordingly.

  • Capture (refactor to com.launchdarkly.observability.replay.capture):
    • Multi-window capture & compositing: New WindowInspector/WindowEntry enumerate app windows and choose a base window; captures overlays and composites bitmaps with position offsets.
    • CaptureSource rewrite: Uses PixelCopy (with fallback to canvas draw), synchronizes to frame, applies masking, encodes WEBP -> Base64, and emits CaptureEvent.
    • Moves CaptureEvent to replay.capture package.
  • Masking:
    • SensitiveAreasCollector.collectFromActivity now collects from a root View (not Activity), enabling per-window mask extraction.
  • Instrumentation:
    • ReplayInstrumentation integrates new CaptureSource API (no Activity lifecycle attach), continues emitting media/interaction logs.
  • Exporter/Tests:
    • Update imports to replay.capture.CaptureEvent; minor formatting/test adjustments.

Written by Cursor Bugbot for commit d07327d. This will update automatically on new commits. Configure here.

@abelonogov-ld abelonogov-ld requested a review from a team as a code owner November 26, 2025 22:55
@abelonogov-ld abelonogov-ld enabled auto-merge (squash) November 26, 2025 23:48
@abelonogov-ld abelonogov-ld merged commit 11b642f into main Nov 26, 2025
23 checks passed
@abelonogov-ld abelonogov-ld deleted the andrey/dialog-masking branch November 26, 2025 23:56
abelonogov-ld pushed a commit that referenced this pull request Nov 27, 2025
🤖 I have created a release *beep* *boop*
---


<details><summary>launchdarkly-observability-android: 0.17.0</summary>

##
[0.17.0](launchdarkly-observability-android-0.16.0...launchdarkly-observability-android-0.17.0)
(2025-11-26)


### Features

* Android Dialog Capture
([#302](#302))
([11b642f](11b642f))
</details>

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Release observability-android 0.17.0 with Android Dialog Capture and
update version references.
> 
> - **SDK `sdk/@launchdarkly/observability-android`**:
>   - Bump version to `0.17.0` in `gradle.properties`.
> - Update `CHANGELOG.md` with 0.17.0 entry adding feature: Android
Dialog Capture.
> - **Release config**:
> - Update `.release-please-manifest.json` to
`sdk/@launchdarkly/observability-android: 0.17.0`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
a527309. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
abelonogov-ld added a commit that referenced this pull request Dec 4, 2025
* main: (85 commits)
  doc: Add using ldMask in readme. (#311)
  chore: release main (#312)
  feat: take transformed coordinates, which are more precise in animation  (#309)
  chore: release main (#307)
  fix(SEC-7530): update react-server-dom-webpack to 19.0.1 (#310)
  feat: recursive mask collection (#308)
  feat: support non-standard windows added by WindowManager (#306)
  feat: Android SR Do not send duplicate screens (#304)
  test: Add UI and logic to evaluate boolean flags (#305)
  chore: release main (#303)
  feat: Android Dialog Capture (#302)
  chore: Update Android Test main screen (#301)
  chore: release main (#300)
  feat: XML Views Automasking options (#299)
  fix: missed imports (#298)
  chore: release main (#297)
  feat: Support ldMask() for Native and Compose views. (#295)
  chore: release main (#296)
  fix: tweaks Android InteractionDetector to delegate additional defaul… (#294)
  chore: release main (#293)
  ...

# Conflicts:
#	e2e/react-router/src/ldclientLazy.tsx
#	e2e/react-router/src/routes/root.tsx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants