You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CaptureArgs.Builder.setExcludeLayers(...) may work differently for captureDisplay(...) than for captureLayers(...), though the API exists on-device.
Excluding the screenshot window may also exclude UI elements other than the preview. That may still be acceptable.
mSurfaceControl reflection may be blocked or renamed on some future builds.
Timing matters: the surface must remain attached when the next screenshot is captured.
Fallback Paths
Hook deeper and use hidden ScreenCapture.DisplayCaptureArgs.Builder if CaptureArgs.Builder.setExcludeLayers(...) is insufficient.
Hook framework/server code if IWindowManager.captureDisplay(...) ignores excluded layers for this path.
Exclude a child preview surface instead of the whole screenshot window if excluding the whole window removes too much UI.
Success Criteria
The red border appears around the screenshot preview.
Screenshot N+1 does not contain the visible screenshot preview from screenshot N.
The preview does not blink or disappear during repeated screenshots.
Prototype Status On crDroid 15
Red-border proof-of-life is confirmed.
ImageCaptureImpl.captureDisplay(...) interception is confirmed.
Surface timing behavior is now understood:
screenshot N cannot exclude its own freshly-created shelf because that shelf is not attached yet
screenshot N+1 can exclude screenshot N's already-attached ScreenshotUI surface
Repeated-shot saved files from the device were byte-identical while the second shot used setExcludeLayers(...), which strongly indicates the visible prior shelf was excluded successfully.
Reentry UX mitigation now uses a continuity overlay:
on screenshot N+1, use PixelCopy to snapshot the visible old shelf
add a temporary transparent overlay window at the same position
remove it shortly after the new shelf is ready
A stacked-shelf prototype is also now implemented in the stock shelf:
reuse screenshot_preview_blur as the first rear card
add one synthetic rear card for 3-shot bursts
repurpose screenshot_badge as a numeric count badge while the batch is active
preserve the batch across stock removeWindow() during screenshot reentry
The remaining unverified pieces are still UX-level:
confirm on the physical display that the shelf never visually blinks during screenshot N+1 for both hardware-key and gesture screenshot paths
confirm that the stacked shelf looks correct for 2-shot and 3-shot bursts