summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src/com/android/systemui/screenshot/ImageTileSet.java
Commit message (Collapse)AuthorAgeFilesLines
* Quiet down long screenshots logcat outputMark Renouf2021-07-091-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | With this change, a long screen shot flow generates only the following log entries: D Screenshot: ScrollCapture: connected to window [com.example/.ExampleActivity] D Screenshot: onCaptureStarted D Screenshot: end() I Screenshot: Completed: LongScreenshot{w=1080, h=5339} Tags covered: LongScreenshotActivity Screenshot ScrollCaptureConnection ScrollCaptureInternal ScrollCaptureViewSupport ScrollCaptureController ViewRenderer Bug: 190399332 Test: observe logcat during long screenshot Change-Id: Ia2b018224897ad1ca153967ff9f60340a64f4815
* Long screenshot fixes for apps that return less than the requested rectMatt Casey2021-06-231-47/+19
| | | | | | | | | | | | | | | | | - 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
* Properly handle empty response rect in ScrollCaptureControllerMatt Casey2021-03-171-0/+3
| | | | | | | | | Add tests for ScrollCaptureController for this bug and other typical flows. Bug: 182926096 Test: atest ScrollCaptureControllerTest Change-Id: Ica2104c7c98b99b9322a6efe6bbc5b33c01d8b86
* Splits up internal binder api for scroll captureMark Renouf2021-03-161-10/+7
| | | | | | | | | | | | | | | 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
* Fix ImageTileSet support for multiple drawablesMark Renouf2021-03-041-25/+54
| | | | Change-Id: Ic850eff616140e5b0158f1d340ce8cfe02cc6c02
* Long screenshots: Fix/simplify ImageTileSet.toBitmapMark Renouf2021-02-111-11/+6
| | | | | | | | | | | | | | | | Bug: 179378294 Test: manual There were subtle mistakes in the drawing which caused bounds to fail when the image had tiles at negative offsets. toBitmap now delegates to the drawable impl which can already be cropped with setBounds In addition this fixes mistakes in TiledImageDrawable where translation is applied in the wrong direction and cropRect applied in the wrong position. Change-Id: Ica28e47031cb28353a49cdd657666f17115c4f6c
* Long screenshots: dispatch listeners on UI threadMark Renouf2021-02-111-13/+36
| | | | | | Bug: 179378294 Test: manual Change-Id: Id93cfc7d3428e3b81180f0b91f156ca9c4b0eaba
* Honor crop bounds for long screenshot bitmap exportMatt Casey2021-02-031-1/+13
| | | | | | | | | | Make toBitmap take a rect of which parts we want to render. Enable the CropView and use its selected bounds to derive that rect. Bug: 179175127 Test: Take long screenshot, move crop bounds, edit and verify that bounds are matched. Change-Id: I546ae4a7e8e39d7e9b88eb1f503b2d1bde31a3c7
* Adds a model & view layer for long screenshot tilesMark Renouf2021-01-071-0/+163
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