diff options
| -rw-r--r-- | core/java/android/content/pm/ActivityInfo.java | 16 | ||||
| -rw-r--r-- | core/java/android/content/pm/PackageParser.java | 3 |
2 files changed, 17 insertions, 2 deletions
diff --git a/core/java/android/content/pm/ActivityInfo.java b/core/java/android/content/pm/ActivityInfo.java index f58b16a7204f..14ef61ce63d4 100644 --- a/core/java/android/content/pm/ActivityInfo.java +++ b/core/java/android/content/pm/ActivityInfo.java @@ -789,6 +789,22 @@ public class ActivityInfo extends ComponentInfo } } + /** + * Returns true if the activity's orientation is fixed. + * @hide + */ + boolean isFixedOrientation() { + return screenOrientation == SCREEN_ORIENTATION_LANDSCAPE + || screenOrientation == SCREEN_ORIENTATION_PORTRAIT + || screenOrientation == SCREEN_ORIENTATION_SENSOR_LANDSCAPE + || screenOrientation == SCREEN_ORIENTATION_SENSOR_PORTRAIT + || screenOrientation == SCREEN_ORIENTATION_REVERSE_LANDSCAPE + || screenOrientation == SCREEN_ORIENTATION_REVERSE_PORTRAIT + || screenOrientation == SCREEN_ORIENTATION_USER_LANDSCAPE + || screenOrientation == SCREEN_ORIENTATION_USER_PORTRAIT + || screenOrientation == SCREEN_ORIENTATION_LOCKED; + } + /** @hide */ public static boolean isResizeableMode(int mode) { return mode == RESIZE_MODE_RESIZEABLE diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index 5ae8d4cf0ce4..562a3e7a1934 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -3447,8 +3447,7 @@ public class PackageParser { } } else if (owner.applicationInfo.targetSdkVersion >= Build.VERSION_CODES.N) { a.info.resizeMode = RESIZE_MODE_UNRESIZEABLE; - } else if (a.info.screenOrientation == SCREEN_ORIENTATION_UNSPECIFIED - && (a.info.flags & FLAG_IMMERSIVE) == 0) { + } else if (!a.info.isFixedOrientation() && (a.info.flags & FLAG_IMMERSIVE) == 0) { a.info.resizeMode = RESIZE_MODE_FORCE_RESIZEABLE; } |