Use activity rotation to compute delta

When computing applying the rotation matrix to the TaskView thumnail,
use the rotation of the window configuration instead of the displays.

The forced rotation (ag/10176951) does not yet provide overrided values
for the display orientation when the requesting app is being forced
rotated, which is the case of the launcher. So
getDisplay().getRotation() would return the true rotation of the display
and not the rotation of the activity.

Test: with "adb shell settings put global forced_rotation 1"
and ag/10176951 and parents applied
 1. Open landscape application
 2. Display recents view
 3. Check that the thumnail is in the same rotation as the opened
 application

+ tests from I060a5dfcbcbb2ac21624d2ac778f76562bd60f40
Bug: 143053092
Bug: 143892437

Change-Id: Iee250459050b3c75dc3b79deed0682f809c7168b
This commit is contained in:
Vadim Caen
2020-02-10 15:48:03 +01:00
committed by Winson Chung
parent 6929b9a197
commit b6465b2118
2 changed files with 6 additions and 1 deletions

View File

@@ -48,3 +48,6 @@
-dontwarn android.view.**
-dontwarn android.os.**
-dontwarn android.graphics.**
# Ignore warnings for hidden utility classes referenced from the shared lib
-dontwarn com.android.internal.util.**

View File

@@ -54,6 +54,7 @@ import com.android.systemui.plugins.OverviewScreenshotActions;
import com.android.systemui.plugins.PluginListener;
import com.android.systemui.shared.recents.model.Task;
import com.android.systemui.shared.recents.model.ThumbnailData;
import com.android.systemui.shared.system.ConfigurationCompat;
/**
* A task in the Recents view.
@@ -357,7 +358,8 @@ public class TaskThumbnailView extends View implements PluginListener<OverviewSc
final float thumbnailScale;
int thumbnailRotation = mThumbnailData.rotation;
int currentRotation = getDisplay() != null ? getDisplay().getRotation() : 0;
int currentRotation = ConfigurationCompat.getWindowConfigurationRotation(
getResources().getConfiguration());
int deltaRotate = getRotationDelta(currentRotation, thumbnailRotation);
// Landscape vs portrait change
boolean windowingModeSupportsRotation = !mActivity.isInMultiWindowMode()