OSDN Git Service

DO NOT MERGE Fix issue #3408542: "resizeable" attribute required to get out of compat...
authorDianne Hackborn <hackbod@google.com>
Mon, 31 Jan 2011 20:34:56 +0000 (12:34 -0800)
committerDianne Hackborn <hackbod@google.com>
Mon, 31 Jan 2011 21:44:14 +0000 (13:44 -0800)
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: Ibce45539d8910dfddb4f548da5464b31ac4a3a89

core/java/android/content/res/CompatibilityInfo.java

index d0ba590..c33c4d6 100644 (file)
@@ -140,10 +140,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;