summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src/com/android/systemui/screenshot/ScrollCaptureClient.java
Commit message (Collapse)AuthorAgeFilesLines
* Use OnImageAvailableListener to wait for bufferMark Renouf2021-07-291-8/+46
| | | | | | | | | This eliminates a dependency on having the client wait until a buffer is produced before invoking the callback. Bug: 194927650 Test: atest ScrollCaptureClientTest Change-Id: I9b479217e23b8a7558ecc046a2d5c41156c22baa
* Long screenshot fixes for apps that return less than the requested rectMatt Casey2021-06-231-8/+15
| | | | | | | | | | | | | | | | | - Use pixel height instead of tile count to determine ideal long screenshot height. - After adding each tile, go back and see if there are gaps in the tile set, if so then try to fill in the gap before continuing walking up or down. - Set max tiles to a constant as it's for system safety and not a completion criteria in the common cases. - Remove ImageTileSet's unused OnBoundsChangedListener (definition got more complicated now that we're dealing with gaps). Test: atest ScrollCaptureControllerTest Test: atest FakeSessionTest Bug: 189475409 Change-Id: I0cfc9519e7fa444d662ac41e0bef4fced785a98e
* Screenshot to long screenshot shared transitionMiranda Kephart2021-06-091-0/+4
| | | | | | | Test: manual Bug: 183197533 Change-Id: I4bad5ba3db6d3808584bc1cccb5e3319789ff706
* update ScrollCaptureControllerTestMark Renouf2021-04-011-0/+7
| | | | | | | | | Extracted test setup, made all inputs explicit Rewrote FakeSession operate similarly to live capture Bug: 180390131 Test: atest ScrollCaptureControllerTest Change-Id: Ib9ffee00b5d5f9b9bdfa40de1cee4ff7c7ab3203
* Splits up internal binder api for scroll captureMark Renouf2021-03-161-209/+192
| | | | | | | | | | | | | | | 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
* Ensure the Surface is closed when the session endsMark Renouf2021-02-251-0/+2
| | | | | | Bug: 175830670 Test: manual Change-Id: Ifa86130810e19e45a2747076c6fd298fb2ec6cd1
* Long screenshots framework update and API unhideMark Renouf2021-02-251-108/+139
| | | | | | | | | | | | | | 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
* Long screenshots: toString for CaptureResultMark Renouf2021-02-161-0/+11
| | | | | | | Makes log statements useful by printing details. Test: manual Change-Id: I4994948ccca60d1357e12cdaf3cd1cb32c524b3c
* Long screenshots: allow adjusting the max capture sizeMark Renouf2021-02-111-8/+11
| | | | | | | | | | | Adjusts max capture size in multiples of page size example: adb shell settings put secure screenshot.scroll_max_pages 3.5 Bug: 179378294 Test: manual, adjust setting, capture long screenshot Change-Id: Id95e80ff333f8e39c07a59701b4b9f27d59ee5c9
* Long screenshots: limit batch capture to 3 pagesMark Renouf2021-02-111-2/+2
| | | | | | Bug: 179378294 Test: manual Change-Id: I63d524aefb9260e1e211848a46d3ebcaeae4e575
* Adds a model & view layer for long screenshot tilesMark Renouf2021-01-071-33/+64
| | | | | | | | | | | | | | | | | | | | An ImageTile wraps an Image with an attached HardwareBuffer, as received from an ImageReader as used by scroll capture. ImageTileSet provides a drawable to present the result on-screen, TiledImageDrawable maintains a display list which is updated when notified of a change. This object can also produce a Bitmap as output for export to a compressed image. This change also tightens up the ScrollCaptureClient interface to internally define tile size and limits. Instead of accepted arbitrary rectangles, accept only a single y-coordinate to specify the verical position of the tile to capture. Bug: 174571735 Bug: 148519342 Test: manually, take long screenshot Change-Id: I81032766c33396f51cb117f87a4d65288990f66d
* Screenshots logging updateMark Renouf2020-12-021-14/+13
| | | | | | | | | | | | Unify logging tags and flags across screenshots Log to single tag by default, with option for class name Individual flags for categories of logs and a master on/off Test: set LogConfig.DEBUG_ALL = true adb shell input keyevent SYSRQ adb logcat -s Screenshot:* Change-Id: I728de8e8b77269d74d40f382fcd947e4e40520ae
* Demo: show scroll chip and capture tall screenshot when tappedMark Renouf2020-11-031-0/+346
The result is shown via intent ACTION_VIEW, after saving to PNG. This change introduces ScrollCaptureClient, a light layer around the raw binder API for scroll capture (which is more disruptive to change). This provides a layer to help adapt patterns between the app interface and system UI, as well as provide an optimal testing strategy. Test: atest ScrollCaptureClientTest Change-Id: Ib6d0f61ae0b4d4dc3df459e07d9eaf34d11d59ed