From 2bfa2ea1ecc538bef44ff2a7da1e2db149fd9970 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Mon, 31 Jan 2011 12:34:56 -0800 Subject: [PATCH] Fix issue #3408542: "resizeable" attribute required to get out of compat mode The "resizeable" attribute of supports-screens was never well documented, so many apps don't set it. Assuming that if they are explicitly saying they support large or xlarge screens then they are also implying that they are resizeable. Change-Id: Iaa1ad431c9868254af7581499477bff98ed109e5 --- core/java/android/content/res/CompatibilityInfo.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/core/java/android/content/res/CompatibilityInfo.java b/core/java/android/content/res/CompatibilityInfo.java index 6baf1c21db882..e403ac24242e7 100644 --- a/core/java/android/content/res/CompatibilityInfo.java +++ b/core/java/android/content/res/CompatibilityInfo.java @@ -141,10 +141,16 @@ public class CompatibilityInfo { appFlags = appInfo.flags; if ((appInfo.flags & ApplicationInfo.FLAG_SUPPORTS_LARGE_SCREENS) != 0) { - mCompatibilityFlags |= LARGE_SCREENS | CONFIGURED_LARGE_SCREENS; + // Saying you support large screens also implies you support xlarge + // screens; there is no compatibility mode for a large app on an + // xlarge screen. + mCompatibilityFlags |= LARGE_SCREENS | CONFIGURED_LARGE_SCREENS + | XLARGE_SCREENS | CONFIGURED_XLARGE_SCREENS + | EXPANDABLE | CONFIGURED_EXPANDABLE; } if ((appInfo.flags & ApplicationInfo.FLAG_SUPPORTS_XLARGE_SCREENS) != 0) { - mCompatibilityFlags |= XLARGE_SCREENS | CONFIGURED_XLARGE_SCREENS; + mCompatibilityFlags |= XLARGE_SCREENS | CONFIGURED_XLARGE_SCREENS + | EXPANDABLE | CONFIGURED_EXPANDABLE; } if ((appInfo.flags & ApplicationInfo.FLAG_RESIZEABLE_FOR_SCREENS) != 0) { mCompatibilityFlags |= EXPANDABLE | CONFIGURED_EXPANDABLE;