Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Skip to content
Commit 2dc699a5 authored by Riddle Hsu's avatar Riddle Hsu
Browse files

Use screen space to calculate snapshot scale

The "frame = calculateSnapshotFrame(crop)" is in snapshot space.
So originally the scale only undoes config_highResTaskSnapshotScale.
But the purpose is to show on screen, so the target size should be
current task size.

This also fixes extra x-offset when navigation bar is on left side.
The case should draw from 0,0 but the frame from calculateSnapshotFrame
will add mSystemBarInsets.left.

An example of the various bounds:
 Snapshot_getTaskSize=2000x1000 (the size when capturing)
 Snapshot_BufferSize=1600x800 (scaled snapshot)
 Current_mTaskBounds=3000x1500 (assume screen size is changed)
 Current_mFrame=3000x1400 (window frame may exclude cutout)
Now mTaskBounds is deleted and mFrame is used as the target bounds.
Because the purpose is to fill the window container and the snapshot
surface can be used for activity and task, the window frame is not
important. Besides, it can reduce false alarm of !isAspectRatioMatch
from comparing the window frame with snapshot size.

Also fix SnapshotDrawerUtilsTest which was not able to run due to
inaccessible package-private methods.

Bug: 336964874
Test: atest SnapshotDrawerUtilsTest
Test: Toggle different screen resolutions and switch between
      multiple existing tasks. The snapshot of starting window
      should match the real content.
Change-Id: Ia164e35ba71e73dd22ec8ce0dad7d356fe791ced
parent b9406495
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment