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:
@@ -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
|
||||
|
||||
@@ -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. */
|
||||
|
||||
Reference in New Issue
Block a user