Don't use rotation to determine orientation

Looking more closely at documentation, rotation doesn't work as I
originally thought. ROTATION_0 is a device's *natural* resting state
which is portrait on phones but can differ for tablets or foldables.

The fix for this is to use the config value.

Test: manual - check that bubbles layout correctly on large tablet
Bug: 217211205
Change-Id: I3efc296d69d045be431b176f7acc71952b3f7bab
This commit is contained in:
Mady Mellor
2022-02-15 16:47:57 -08:00
parent db33f67f8d
commit ba78cb4529
2 changed files with 3 additions and 6 deletions

View File

@@ -423,7 +423,6 @@ public class BubbleController {
WindowContainerTransaction t) {
// This is triggered right before the rotation is applied
if (fromRotation != toRotation) {
mBubblePositioner.setRotation(toRotation);
if (mStackView != null) {
// Layout listener set on stackView will update the positioner
// once the rotation is applied

View File

@@ -20,6 +20,7 @@ import static java.lang.annotation.RetentionPolicy.SOURCE;
import android.annotation.IntDef;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Insets;
import android.graphics.PointF;
@@ -112,10 +113,6 @@ public class BubblePositioner {
update();
}
public void setRotation(int rotation) {
mRotation = rotation;
}
/**
* Available space and inset information. Call this when config changes
* occur or when added to a window.
@@ -273,7 +270,8 @@ public class BubblePositioner {
/** @return whether the device is in landscape orientation. */
public boolean isLandscape() {
return mRotation == Surface.ROTATION_90 || mRotation == Surface.ROTATION_270;
return mContext.getResources().getConfiguration().orientation
== Configuration.ORIENTATION_LANDSCAPE;
}
/** @return whether the screen is considered large. */