summaryrefslogtreecommitdiff
path: root/core/java/android/view/ScrollCaptureConnection.java
Commit message (Collapse)AuthorAgeFilesLines
* Fix crash due to race on close()Mark Renouf2022-07-061-1/+1
| | | | | | | | | | | | | | It's possible for close to be called during local cleanup concurrently with the remote call. A recent change (ag/15993920) added a missing Binder.unlinkToDeath call to close(). This now causes a crash now if the registration was removed at just the right time in another thread. This synchronizes access to close() to avoid this. Bug: 237406501 Test: atest ScrollCaptureConnectionTest Change-Id: I0126bfac1efdece2e4eff144a44f29a963553b74
* Avoid NPE on ScrollCaptureConnection callbacksMark Renouf2022-05-181-3/+12
| | | | | | | | | | | | | State is checked at the front half of some calls, but is dispatched onto the UI thread. If the connection is closed in this time, the queued call will NPE when the field it uses is cleared. This adds a simple null check in two places, and test for both. Bug: 232375183 Test: atest ScrollCaptureConnectionTest Change-Id: Ida7fbf0a21c206db8d774dc247b6ab5257dacabe
* Adds perfetto tracing to ScrollCaptureConnectionMark Renouf2022-04-291-0/+24
| | | | Change-Id: I7d018fa7c4e4eb3261a75165713303756b271520
* Change close guard logged messagesIoannis Ilkos2021-12-211-1/+1
| | | | | | | | | Unless we are looking at stack traces (e.g. from strict mode) it's not possible to identify which type of object is not being closed (most methods are 'close' or 'release). Change the logged text to clarify. Change-Id: Ib90eac716f43c2c2caf8d8c6fb64a7bd90562da9 Test: manual
* Ensure cleanup when interrupting scroll captureMark Renouf2021-10-071-18/+38
| | | | | | | | | | | | | | | | | | | | | | A batch of related cleanups and fixes: * Connects cancellation signals between the layers of scroll capture. * Handles cancellation on dismissal, ensuring clean shutdown of session. * Ensures any pending operation is cancelled on the client side and the connection is closed. * App side of connection handles a crash of SystemUI, ensure close() * ScrollCaptureController: Moves onCaptureResult to a background thread; it calls into binder. * Fixes accuracy and category of some log messages about dismissal gesture. Test: atest ScrollCaptureConnectionTest ScrollCaptureControllerTest Change-Id: I20014a4cb43e28fcb97f6980fb47af8c06deaca2
* Remove weak reference to prevent loss of callbackMark Renouf2021-09-281-16/+9
| | | | | | | | | | | | Callback was passed as a method reference and stored in a weak reference. This bug was hidden until ag/15819081 (no longer block for render thread) was merged. With this change, the callback now has a higher chance of being collected early and breaking capture. Bug: 201158402 Fix: 201158402 Test: atest ScrollCaptureConnectionTest Change-Id: I294a7e3b4e57f60117ea14492182a690f46f02bb
* ScrollCaptureConnection: fix npe on close() when activeMark Renouf2021-04-151-1/+2
| | | | | | | | | A reference to the callback was being removed while still needed. Instead use a local copy for posted callback. Bug: 12345678 Test: atest ScrollCaptureConnectionTest#testCloseWhileActive Change-Id: I3a11ac86a8c291972f442ebce962ba8a3a1ddee6
* Splits up internal binder api for scroll captureMark Renouf2021-03-161-72/+43
| | | | | | | | | | | | | | | Splits the connection callback out from the session callbacks. Use ListenableFuture at the ScrollCaptureClient layer to safely chain together futures, provide a better exception handling/reporting path, and allow for cancellation of background tasks. Bug: 180671218 Test: atest ScrollCaptureClientTest ScrollCaptureConnectionTest Test: atest ScrollCaptureFrameworkSmokeTest Change-Id: Ibc8536d12a5554f62b3d7e1f4f717d3589ec45e0
* Long screenshots framework update and API unhideMark Renouf2021-02-251-181/+192
| | | | | | | | | | | | | | This change includes a series of API review changes. The most significant update is the addition of cancellation signals to API methods where needed. Renames some internal classes and interfaces to support the API changes and to simplify tests and improve quality. Test: numerous presubmits Bug: 175830670 CTS-Coverage-Bug: 180419562 Change-Id: I9b1b950a2779fc902ecf4d6394e3c35171926700
* Refactor names of internal scrollcapture interfacesMark Renouf2020-10-191-0/+310
Renames to better align with use and existing naming patterns. Using 'connection' to avoid confusion as to control flow or roles. (A connection is direct from SystemUI --> App process) IScrollCaptureClient -> IScrollCaptureConnection IScrollCaptureController -> IScrollCaptureCallbacks Test: atest FrameworksCoreTests:ScrollCaptureConnectionTest \ FrameworksCoreTests:ScrollCaptureTargetResolverTest \ ScrollCaptureTest Change-Id: I9afd33109f6718b61d172ce3e4b3bb5d71a2897e