summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/content/pm/ActivityInfo.java16
-rw-r--r--core/java/android/content/pm/PackageParser.java3
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;
}