aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/META-INF/MANIFEST.MF1
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationComposite.java4
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/KeyboardStateQualifier.java67
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/NavigationMethodQualifier.java76
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/PixelDensityQualifier.java126
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/ScreenOrientationQualifier.java66
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/ScreenRatioQualifier.java65
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/ScreenSizeQualifier.java65
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/TextInputMethodQualifier.java75
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/TouchScreenQualifier.java74
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/manager/SingleResourceFile.java9
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/LayoutDeviceHandler.java22
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/ui/ConfigurationSelector.java46
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/newproject/NewProjectWizard.java2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/functests/layoutRendering/ApiDemosRenderingTest.java22
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/UiElementPullParserTest.java3
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/KeyboardStateQualifierTest.java7
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/NavigationMethodQualifierTest.java12
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/PixelDensityQualifierTest.java2
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/ScreenOrientationQualifierTest.java8
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/TextInputMethodQualifierTest.java12
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/TouchScreenQualifierTest.java11
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/manager/ConfigMatchTest.java22
-rw-r--r--layoutlib_api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java15
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/resources/Density.java116
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/resources/Keyboard.java82
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/resources/KeyboardState.java82
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/resources/Navigation.java83
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/resources/ScreenOrientation.java83
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/resources/ScreenRatio.java82
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/resources/ScreenSize.java83
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/resources/TouchScreen.java83
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/xml/AndroidManifestParser.java1
-rw-r--r--sdkmanager/libs/sdklib/src/com/android/sdklib/xml/ManifestData.java39
-rw-r--r--sdkmanager/libs/sdklib/tests/com/android/sdklib/xml/AndroidManifestParserTest.java10
35 files changed, 877 insertions, 679 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/META-INF/MANIFEST.MF b/eclipse/plugins/com.android.ide.eclipse.adt/META-INF/MANIFEST.MF
index aab1077..8aab0af 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/META-INF/MANIFEST.MF
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/META-INF/MANIFEST.MF
@@ -102,6 +102,7 @@ Export-Package: com.android.ide.eclipse.adt;x-friends:="com.android.ide.eclipse.
com.android.sdklib.internal.repository;x-friends:="com.android.ide.eclipse.tests",
com.android.sdklib.io;x-friends:="com.android.ide.eclipse.tests",
com.android.sdklib.repository;x-friends:="com.android.ide.eclipse.tests",
+ com.android.sdklib.resources;x-friends:="com.android.ide.eclipse.tests",
com.android.sdklib.xml;x-friends:="com.android.ide.eclipse.tests",
com.android.sdkstats;x-friends:="com.android.ide.eclipse.tests",
com.android.sdkuilib.internal.repository;x-friends:="com.android.ide.eclipse.tests",
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationComposite.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationComposite.java
index 6b648e2..89285bf 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationComposite.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/editors/layout/configuration/ConfigurationComposite.java
@@ -26,8 +26,6 @@ import com.android.ide.eclipse.adt.internal.resources.configurations.RegionQuali
import com.android.ide.eclipse.adt.internal.resources.configurations.ResourceQualifier;
import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenDimensionQualifier;
import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenOrientationQualifier;
-import com.android.ide.eclipse.adt.internal.resources.configurations.PixelDensityQualifier.Density;
-import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenOrientationQualifier.ScreenOrientation;
import com.android.ide.eclipse.adt.internal.resources.manager.ProjectResources;
import com.android.ide.eclipse.adt.internal.resources.manager.ResourceFile;
import com.android.ide.eclipse.adt.internal.resources.manager.ResourceFolder;
@@ -43,6 +41,8 @@ import com.android.ide.eclipse.adt.internal.ui.ConfigurationSelector.LanguageReg
import com.android.layoutlib.api.IResourceValue;
import com.android.layoutlib.api.IStyleResourceValue;
import com.android.sdklib.IAndroidTarget;
+import com.android.sdklib.resources.Density;
+import com.android.sdklib.resources.ScreenOrientation;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/KeyboardStateQualifier.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/KeyboardStateQualifier.java
index e00428e..1375d2a 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/KeyboardStateQualifier.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/KeyboardStateQualifier.java
@@ -18,11 +18,10 @@ package com.android.ide.eclipse.adt.internal.resources.configurations;
import com.android.ide.eclipse.adt.internal.editors.IconFactory;
import com.android.sdklib.IAndroidTarget;
+import com.android.sdklib.resources.KeyboardState;
import org.eclipse.swt.graphics.Image;
-
-
/**
* Resource Qualifier for keyboard state.
*/
@@ -32,70 +31,6 @@ public final class KeyboardStateQualifier extends ResourceQualifier {
private KeyboardState mValue = null;
- /**
- * Screen Orientation enum.
- */
- public static enum KeyboardState {
- EXPOSED("keysexposed", "Exposed"), //$NON-NLS-1$
- HIDDEN("keyshidden", "Hidden"), //$NON-NLS-1$
- SOFT("keyssoft", "Soft"); //$NON-NLS-1$
-
- private String mValue;
- private String mDisplayValue;
-
- private KeyboardState(String value, String displayValue) {
- mValue = value;
- mDisplayValue = displayValue;
- }
-
- /**
- * Returns the enum for matching the provided qualifier value.
- * @param value The qualifier value.
- * @return the enum for the qualifier value or null if no matching was found.
- */
- public static KeyboardState getEnum(String value) {
- for (KeyboardState orient : values()) {
- if (orient.mValue.equals(value)) {
- return orient;
- }
- }
-
- return null;
- }
-
- public String getValue() {
- return mValue;
- }
-
- public String getDisplayValue() {
- return mDisplayValue;
- }
-
- public static int getIndex(KeyboardState value) {
- int i = 0;
- for (KeyboardState input : values()) {
- if (value == input) {
- return i;
- }
-
- i++;
- }
-
- return -1;
- }
-
- public static KeyboardState getByIndex(int index) {
- int i = 0;
- for (KeyboardState value : values()) {
- if (i == index) {
- return value;
- }
- i++;
- }
- return null;
- }
- }
-
public KeyboardStateQualifier() {
// pass
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/NavigationMethodQualifier.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/NavigationMethodQualifier.java
index 50cb9cb..e82ea63 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/NavigationMethodQualifier.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/NavigationMethodQualifier.java
@@ -18,11 +18,10 @@ package com.android.ide.eclipse.adt.internal.resources.configurations;
import com.android.ide.eclipse.adt.internal.editors.IconFactory;
import com.android.sdklib.IAndroidTarget;
+import com.android.sdklib.resources.Navigation;
import org.eclipse.swt.graphics.Image;
-
-
/**
* Resource Qualifier for Navigation Method.
*/
@@ -30,82 +29,17 @@ public final class NavigationMethodQualifier extends ResourceQualifier {
public static final String NAME = "Navigation Method";
- private NavigationMethod mValue;
-
- /**
- * Navigation Method enum.
- */
- public static enum NavigationMethod {
- DPAD("dpad", "D-pad"), //$NON-NLS-1$
- TRACKBALL("trackball", "Trackball"), //$NON-NLS-1$
- WHEEL("wheel", "Wheel"), //$NON-NLS-1$
- NONAV("nonav", "No Navigation"); //$NON-NLS-1$
-
- private String mValue;
- private String mDisplay;
-
- private NavigationMethod(String value, String display) {
- mValue = value;
- mDisplay = display;
- }
-
- /**
- * Returns the enum for matching the provided qualifier value.
- * @param value The qualifier value.
- * @return the enum for the qualifier value or null if no matching was found.
- */
- public static NavigationMethod getEnum(String value) {
- for (NavigationMethod orient : values()) {
- if (orient.mValue.equals(value)) {
- return orient;
- }
- }
-
- return null;
- }
-
- public String getValue() {
- return mValue;
- }
-
- public String getDisplayValue() {
- return mDisplay;
- }
-
- public static int getIndex(NavigationMethod value) {
- int i = 0;
- for (NavigationMethod nav : values()) {
- if (nav == value) {
- return i;
- }
-
- i++;
- }
-
- return -1;
- }
-
- public static NavigationMethod getByIndex(int index) {
- int i = 0;
- for (NavigationMethod value : values()) {
- if (i == index) {
- return value;
- }
- i++;
- }
- return null;
- }
- }
+ private Navigation mValue;
public NavigationMethodQualifier() {
// pass
}
- public NavigationMethodQualifier(NavigationMethod value) {
+ public NavigationMethodQualifier(Navigation value) {
mValue = value;
}
- public NavigationMethod getValue() {
+ public Navigation getValue() {
return mValue;
}
@@ -132,7 +66,7 @@ public final class NavigationMethodQualifier extends ResourceQualifier {
@Override
public boolean checkAndSet(String value, FolderConfiguration config) {
- NavigationMethod method = NavigationMethod.getEnum(value);
+ Navigation method = Navigation.getEnum(value);
if (method != null) {
NavigationMethodQualifier qualifier = new NavigationMethodQualifier(method);
config.setNavigationMethodQualifier(qualifier);
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/PixelDensityQualifier.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/PixelDensityQualifier.java
index ed33994..5b3ba91 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/PixelDensityQualifier.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/PixelDensityQualifier.java
@@ -17,9 +17,9 @@
package com.android.ide.eclipse.adt.internal.resources.configurations;
import com.android.ide.eclipse.adt.internal.editors.IconFactory;
-import com.android.layoutlib.api.IDensityBasedResourceValue;
import com.android.sdklib.AndroidVersion;
import com.android.sdklib.IAndroidTarget;
+import com.android.sdklib.resources.Density;
import org.eclipse.swt.graphics.Image;
@@ -36,114 +36,6 @@ public final class PixelDensityQualifier extends ResourceQualifier {
private Density mValue = Density.MEDIUM;
- /**
- * Screen Orientation enum.
- */
- public static enum Density {
- HIGH("hdpi", "High Density", IDensityBasedResourceValue.Density.HIGH), //$NON-NLS-1$
- MEDIUM("mdpi", "Medium Density", IDensityBasedResourceValue.Density.MEDIUM), //$NON-NLS-1$
- LOW("ldpi", "Low Density", IDensityBasedResourceValue.Density.LOW), //$NON-NLS-1$
- NODPI("nodpi", "No Density", IDensityBasedResourceValue.Density.NODPI); //$NON-NLS-1$
-
- private final String mValue;
- private final String mDisplayValue;
- private final IDensityBasedResourceValue.Density mDensity;
-
- private Density(String value, String displayValue,
- IDensityBasedResourceValue.Density density) {
- mValue = value;
- mDisplayValue = displayValue;
- mDensity = density;
- }
-
- /**
- * Returns the enum for matching the provided qualifier value.
- * @param value The qualifier value.
- * @return the enum for the qualifier value or null if no matching was found.
- */
- public static Density getEnum(String value) {
- for (Density orient : values()) {
- if (orient.mValue.equals(value)) {
- return orient;
- }
- }
-
- return null;
- }
-
- static Density getLegacyEnum(String value) {
- Matcher m = sDensityLegacyPattern.matcher(value);
- if (m.matches()) {
- String v = m.group(1);
-
- try {
- int density = Integer.parseInt(v);
- for (Density orient : values()) {
- if (orient.mDensity.getValue() == density) {
- return orient;
- }
- }
- } catch (NumberFormatException e) {
- // looks like the string we extracted wasn't a valid number
- // which really shouldn't happen since the regexp would have failed.
- }
- }
- return null;
- }
-
- public String getValue() {
- return mValue;
- }
-
- public int getDpiValue() {
- return mDensity.getValue();
- }
-
- public String getLegacyValue() {
- if (this != NODPI) {
- return String.format("%1$ddpi", getDpiValue());
- }
-
- return "";
- }
-
- public String getDisplayValue() {
- return mDisplayValue;
- }
-
- /**
- * Returns the {@link com.android.layoutlib.api.IDensityBasedResourceValue.Density} value
- * associated to this {@link Density}.
- */
- public IDensityBasedResourceValue.Density getDensity() {
- return mDensity;
- }
-
- public static int getIndex(Density value) {
- int i = 0;
- for (Density input : values()) {
- if (value == input) {
- return i;
- }
-
- i++;
- }
-
- return -1;
- }
-
- public static Density getByIndex(int index) {
- int i = 0;
- for (Density value : values()) {
- if (i == index) {
- return value;
- }
- i++;
- }
- return null;
- }
- }
-
public PixelDensityQualifier() {
// pass
}
@@ -180,7 +72,19 @@ public final class PixelDensityQualifier extends ResourceQualifier {
public boolean checkAndSet(String value, FolderConfiguration config) {
Density density = Density.getEnum(value);
if (density == null) {
- density = Density.getLegacyEnum(value);
+
+ // attempt to read a legacy value.
+ Matcher m = sDensityLegacyPattern.matcher(value);
+ if (m.matches()) {
+ String v = m.group(1);
+
+ try {
+ density = Density.getEnum(Integer.parseInt(v));
+ } catch (NumberFormatException e) {
+ // looks like the string we extracted wasn't a valid number
+ // which really shouldn't happen since the regexp would have failed.
+ }
+ }
}
if (density != null) {
@@ -221,7 +125,7 @@ public final class PixelDensityQualifier extends ResourceQualifier {
// if reference is high, we want highest dpi.
// if reference is medium, we'll prefer to scale down high dpi, than scale up low dpi
// if reference if low, we'll prefer to scale down high than medium (2:1 over 4:3)
- return mValue.mDensity.getValue() > compareQ.mValue.mDensity.getValue();
+ return mValue.getDpiValue() > compareQ.mValue.getDpiValue();
}
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/ScreenOrientationQualifier.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/ScreenOrientationQualifier.java
index a78f217..9ba6abb 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/ScreenOrientationQualifier.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/ScreenOrientationQualifier.java
@@ -18,6 +18,7 @@ package com.android.ide.eclipse.adt.internal.resources.configurations;
import com.android.ide.eclipse.adt.internal.editors.IconFactory;
import com.android.sdklib.IAndroidTarget;
+import com.android.sdklib.resources.ScreenOrientation;
import org.eclipse.swt.graphics.Image;
@@ -30,71 +31,6 @@ public final class ScreenOrientationQualifier extends ResourceQualifier {
private ScreenOrientation mValue = null;
- /**
- * Screen Orientation enum.
- */
- public static enum ScreenOrientation {
- PORTRAIT("port", "Portrait"), //$NON-NLS-1$
- LANDSCAPE("land", "Landscape"), //$NON-NLS-1$
- SQUARE("square", "Square"); //$NON-NLS-1$
-
- private String mValue;
- private String mDisplayValue;
-
- private ScreenOrientation(String value, String displayValue) {
- mValue = value;
- mDisplayValue = displayValue;
- }
-
- /**
- * Returns the enum for matching the provided qualifier value.
- * @param value The qualifier value.
- * @return the enum for the qualifier value or null if no matching was found.
- */
- public static ScreenOrientation getEnum(String value) {
- for (ScreenOrientation orient : values()) {
- if (orient.mValue.equals(value)) {
- return orient;
- }
- }
-
- return null;
- }
-
- public String getValue() {
- return mValue;
- }
-
- public String getDisplayValue() {
- return mDisplayValue;
- }
-
- public static int getIndex(ScreenOrientation orientation) {
- int i = 0;
- for (ScreenOrientation orient : values()) {
- if (orient == orientation) {
- return i;
- }
-
- i++;
- }
-
- return -1;
- }
-
- public static ScreenOrientation getByIndex(int index) {
- int i = 0;
- for (ScreenOrientation orient : values()) {
- if (i == index) {
- return orient;
- }
- i++;
- }
-
- return null;
- }
- }
-
public ScreenOrientationQualifier() {
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/ScreenRatioQualifier.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/ScreenRatioQualifier.java
index 08bce4f..73feb60 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/ScreenRatioQualifier.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/ScreenRatioQualifier.java
@@ -19,6 +19,7 @@ package com.android.ide.eclipse.adt.internal.resources.configurations;
import com.android.ide.eclipse.adt.internal.editors.IconFactory;
import com.android.sdklib.AndroidVersion;
import com.android.sdklib.IAndroidTarget;
+import com.android.sdklib.resources.ScreenRatio;
import org.eclipse.swt.graphics.Image;
@@ -28,70 +29,6 @@ public class ScreenRatioQualifier extends ResourceQualifier {
private ScreenRatio mValue = null;
- /**
- * Screen Orientation enum.
- */
- public static enum ScreenRatio {
- NOTLONG("notlong", "Not Long"), //$NON-NLS-1$
- LONG("long", "Long"); //$NON-NLS-1$
-
- private String mValue;
- private String mDisplayValue;
-
- private ScreenRatio(String value, String displayValue) {
- mValue = value;
- mDisplayValue = displayValue;
- }
-
- /**
- * Returns the enum for matching the provided qualifier value.
- * @param value The qualifier value.
- * @return the enum for the qualifier value or null if no matching was found.
- */
- public static ScreenRatio getEnum(String value) {
- for (ScreenRatio orient : values()) {
- if (orient.mValue.equals(value)) {
- return orient;
- }
- }
-
- return null;
- }
-
- public String getValue() {
- return mValue;
- }
-
- public String getDisplayValue() {
- return mDisplayValue;
- }
-
- public static int getIndex(ScreenRatio orientation) {
- int i = 0;
- for (ScreenRatio orient : values()) {
- if (orient == orientation) {
- return i;
- }
-
- i++;
- }
-
- return -1;
- }
-
- public static ScreenRatio getByIndex(int index) {
- int i = 0;
- for (ScreenRatio orient : values()) {
- if (i == index) {
- return orient;
- }
- i++;
- }
-
- return null;
- }
- }
-
public ScreenRatioQualifier() {
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/ScreenSizeQualifier.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/ScreenSizeQualifier.java
index f48f54d..59d5ca1 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/ScreenSizeQualifier.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/ScreenSizeQualifier.java
@@ -19,6 +19,7 @@ package com.android.ide.eclipse.adt.internal.resources.configurations;
import com.android.ide.eclipse.adt.internal.editors.IconFactory;
import com.android.sdklib.AndroidVersion;
import com.android.sdklib.IAndroidTarget;
+import com.android.sdklib.resources.ScreenSize;
import org.eclipse.swt.graphics.Image;
@@ -31,70 +32,6 @@ public class ScreenSizeQualifier extends ResourceQualifier {
private ScreenSize mValue = null;
- /**
- * Screen Orientation enum.
- */
- public static enum ScreenSize {
- SMALL("small", "Small"), //$NON-NLS-1$
- NORMAL("normal", "Normal"), //$NON-NLS-1$
- LARGE("large", "Large"); //$NON-NLS-1$
-
- private String mValue;
- private String mDisplayValue;
-
- private ScreenSize(String value, String displayValue) {
- mValue = value;
- mDisplayValue = displayValue;
- }
-
- /**
- * Returns the enum for matching the provided qualifier value.
- * @param value The qualifier value.
- * @return the enum for the qualifier value or null if no matching was found.
- */
- public static ScreenSize getEnum(String value) {
- for (ScreenSize orient : values()) {
- if (orient.mValue.equals(value)) {
- return orient;
- }
- }
-
- return null;
- }
-
- public String getValue() {
- return mValue;
- }
-
- public String getDisplayValue() {
- return mDisplayValue;
- }
-
- public static int getIndex(ScreenSize orientation) {
- int i = 0;
- for (ScreenSize orient : values()) {
- if (orient == orientation) {
- return i;
- }
-
- i++;
- }
-
- return -1;
- }
-
- public static ScreenSize getByIndex(int index) {
- int i = 0;
- for (ScreenSize orient : values()) {
- if (i == index) {
- return orient;
- }
- i++;
- }
-
- return null;
- }
- }
public ScreenSizeQualifier() {
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/TextInputMethodQualifier.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/TextInputMethodQualifier.java
index b73776c..a4d2ad3 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/TextInputMethodQualifier.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/TextInputMethodQualifier.java
@@ -18,12 +18,10 @@ package com.android.ide.eclipse.adt.internal.resources.configurations;
import com.android.ide.eclipse.adt.internal.editors.IconFactory;
import com.android.sdklib.IAndroidTarget;
+import com.android.sdklib.resources.Keyboard;
import org.eclipse.swt.graphics.Image;
-
-
-
/**
* Resource Qualifier for Text Input Method.
*/
@@ -31,81 +29,18 @@ public final class TextInputMethodQualifier extends ResourceQualifier {
public static final String NAME = "Text Input Method";
- private TextInputMethod mValue;
-
- /**
- * Screen Orientation enum.
- */
- public static enum TextInputMethod {
- NOKEY("nokeys", "No Keys"), //$NON-NLS-1$
- QWERTY("qwerty", "Qwerty"), //$NON-NLS-1$
- TWELVEKEYS("12key", "12 Key"); //$NON-NLS-1$
-
- private String mValue;
- private String mDisplayValue;
-
- private TextInputMethod(String value, String displayValue) {
- mValue = value;
- mDisplayValue = displayValue;
- }
-
- /**
- * Returns the enum for matching the provided qualifier value.
- * @param value The qualifier value.
- * @return the enum for the qualifier value or null if no matching was found.
- */
- public static TextInputMethod getEnum(String value) {
- for (TextInputMethod orient : values()) {
- if (orient.mValue.equals(value)) {
- return orient;
- }
- }
-
- return null;
- }
+ private Keyboard mValue;
- public String getValue() {
- return mValue;
- }
-
- public String getDisplayValue() {
- return mDisplayValue;
- }
-
- public static int getIndex(TextInputMethod value) {
- int i = 0;
- for (TextInputMethod input : values()) {
- if (value == input) {
- return i;
- }
-
- i++;
- }
-
- return -1;
- }
-
- public static TextInputMethod getByIndex(int index) {
- int i = 0;
- for (TextInputMethod value : values()) {
- if (i == index) {
- return value;
- }
- i++;
- }
- return null;
- }
- }
public TextInputMethodQualifier() {
// pass
}
- public TextInputMethodQualifier(TextInputMethod value) {
+ public TextInputMethodQualifier(Keyboard value) {
mValue = value;
}
- public TextInputMethod getValue() {
+ public Keyboard getValue() {
return mValue;
}
@@ -131,7 +66,7 @@ public final class TextInputMethodQualifier extends ResourceQualifier {
@Override
public boolean checkAndSet(String value, FolderConfiguration config) {
- TextInputMethod method = TextInputMethod.getEnum(value);
+ Keyboard method = Keyboard.getEnum(value);
if (method != null) {
TextInputMethodQualifier qualifier = new TextInputMethodQualifier();
qualifier.mValue = method;
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/TouchScreenQualifier.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/TouchScreenQualifier.java
index b3bad48..b46b014 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/TouchScreenQualifier.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/configurations/TouchScreenQualifier.java
@@ -18,6 +18,7 @@ package com.android.ide.eclipse.adt.internal.resources.configurations;
import com.android.ide.eclipse.adt.internal.editors.IconFactory;
import com.android.sdklib.IAndroidTarget;
+import com.android.sdklib.resources.TouchScreen;
import org.eclipse.swt.graphics.Image;
@@ -29,82 +30,17 @@ public final class TouchScreenQualifier extends ResourceQualifier {
public static final String NAME = "Touch Screen";
- private TouchScreenType mValue;
-
- /**
- * Screen Orientation enum.
- */
- public static enum TouchScreenType {
- NOTOUCH("notouch", "No Touch"), //$NON-NLS-1$
- STYLUS("stylus", "Stylus"), //$NON-NLS-1$
- FINGER("finger", "Finger"); //$NON-NLS-1$
-
- private String mValue;
- private String mDisplayValue;
-
- private TouchScreenType(String value, String displayValue) {
- mValue = value;
- mDisplayValue = displayValue;
- }
-
- /**
- * Returns the enum for matching the provided qualifier value.
- * @param value The qualifier value.
- * @return the enum for the qualifier value or null if no matching was found.
- */
- public static TouchScreenType getEnum(String value) {
- for (TouchScreenType orient : values()) {
- if (orient.mValue.equals(value)) {
- return orient;
- }
- }
-
- return null;
- }
-
- public String getValue() {
- return mValue;
- }
-
- public String getDisplayValue() {
- return mDisplayValue;
- }
-
- public static int getIndex(TouchScreenType touch) {
- int i = 0;
- for (TouchScreenType t : values()) {
- if (t == touch) {
- return i;
- }
-
- i++;
- }
-
- return -1;
- }
-
- public static TouchScreenType getByIndex(int index) {
- int i = 0;
- for (TouchScreenType value : values()) {
- if (i == index) {
- return value;
- }
- i++;
- }
-
- return null;
- }
- }
+ private TouchScreen mValue;
public TouchScreenQualifier() {
// pass
}
- public TouchScreenQualifier(TouchScreenType touchValue) {
+ public TouchScreenQualifier(TouchScreen touchValue) {
mValue = touchValue;
}
- public TouchScreenType getValue() {
+ public TouchScreen getValue() {
return mValue;
}
@@ -130,7 +66,7 @@ public final class TouchScreenQualifier extends ResourceQualifier {
@Override
public boolean checkAndSet(String value, FolderConfiguration config) {
- TouchScreenType type = TouchScreenType.getEnum(value);
+ TouchScreen type = TouchScreen.getEnum(value);
if (type != null) {
TouchScreenQualifier qualifier = new TouchScreenQualifier();
qualifier.mValue = type;
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/manager/SingleResourceFile.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/manager/SingleResourceFile.java
index 074180b..f17c397 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/manager/SingleResourceFile.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/resources/manager/SingleResourceFile.java
@@ -19,6 +19,7 @@ package com.android.ide.eclipse.adt.internal.resources.manager;
import com.android.ide.eclipse.adt.internal.resources.ResourceType;
import com.android.ide.eclipse.adt.internal.resources.configurations.PixelDensityQualifier;
import com.android.layoutlib.api.IResourceValue;
+import com.android.layoutlib.api.IDensityBasedResourceValue.Density;
import com.android.layoutlib.utils.DensityBasedResourceValue;
import com.android.layoutlib.utils.ResourceValue;
import com.android.sdklib.io.IAbstractFile;
@@ -75,8 +76,12 @@ public class SingleResourceFile extends ResourceFile {
mValue = new ResourceValue(mType.getName(), getResourceName(mType),
file.getOsLocation(), isFramework());
} else {
- mValue = new DensityBasedResourceValue(mType.getName(), getResourceName(mType),
- file.getOsLocation(), qualifier.getValue().getDensity(), isFramework());
+ mValue = new DensityBasedResourceValue(
+ mType.getName(),
+ getResourceName(mType),
+ file.getOsLocation(),
+ Density.getEnum(qualifier.getValue().getDpiValue()),
+ isFramework());
}
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/LayoutDeviceHandler.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/LayoutDeviceHandler.java
index 7ad4e5d..8f54255 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/LayoutDeviceHandler.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/LayoutDeviceHandler.java
@@ -28,14 +28,14 @@ import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenRatio
import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenSizeQualifier;
import com.android.ide.eclipse.adt.internal.resources.configurations.TextInputMethodQualifier;
import com.android.ide.eclipse.adt.internal.resources.configurations.TouchScreenQualifier;
-import com.android.ide.eclipse.adt.internal.resources.configurations.KeyboardStateQualifier.KeyboardState;
-import com.android.ide.eclipse.adt.internal.resources.configurations.NavigationMethodQualifier.NavigationMethod;
-import com.android.ide.eclipse.adt.internal.resources.configurations.PixelDensityQualifier.Density;
-import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenOrientationQualifier.ScreenOrientation;
-import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenRatioQualifier.ScreenRatio;
-import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenSizeQualifier.ScreenSize;
-import com.android.ide.eclipse.adt.internal.resources.configurations.TextInputMethodQualifier.TextInputMethod;
-import com.android.ide.eclipse.adt.internal.resources.configurations.TouchScreenQualifier.TouchScreenType;
+import com.android.sdklib.resources.Density;
+import com.android.sdklib.resources.Keyboard;
+import com.android.sdklib.resources.KeyboardState;
+import com.android.sdklib.resources.Navigation;
+import com.android.sdklib.resources.ScreenOrientation;
+import com.android.sdklib.resources.ScreenRatio;
+import com.android.sdklib.resources.ScreenSize;
+import com.android.sdklib.resources.TouchScreen;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
@@ -145,7 +145,7 @@ class LayoutDeviceHandler extends DefaultHandler {
mCurrentConfig.setPixelDensityQualifier(pdq);
} else if (LayoutDevicesXsd.NODE_TOUCH_TYPE.equals(localName)) {
TouchScreenQualifier tsq = new TouchScreenQualifier(
- TouchScreenType.getEnum(mStringAccumulator.toString()));
+ TouchScreen.getEnum(mStringAccumulator.toString()));
mCurrentConfig.setTouchTypeQualifier(tsq);
} else if (LayoutDevicesXsd.NODE_KEYBOARD_STATE.equals(localName)) {
KeyboardStateQualifier ksq = new KeyboardStateQualifier(
@@ -153,11 +153,11 @@ class LayoutDeviceHandler extends DefaultHandler {
mCurrentConfig.setKeyboardStateQualifier(ksq);
} else if (LayoutDevicesXsd.NODE_TEXT_INPUT_METHOD.equals(localName)) {
TextInputMethodQualifier timq = new TextInputMethodQualifier(
- TextInputMethod.getEnum(mStringAccumulator.toString()));
+ Keyboard.getEnum(mStringAccumulator.toString()));
mCurrentConfig.setTextInputMethodQualifier(timq);
} else if (LayoutDevicesXsd.NODE_NAV_METHOD.equals(localName)) {
NavigationMethodQualifier nmq = new NavigationMethodQualifier(
- NavigationMethod.getEnum(mStringAccumulator.toString()));
+ Navigation.getEnum(mStringAccumulator.toString()));
mCurrentConfig.setNavigationMethodQualifier(nmq);
} else if (LayoutDevicesXsd.NODE_SCREEN_DIMENSION.equals(localName)) {
ScreenDimensionQualifier qual = ScreenDimensionQualifier.getQualifier(mSize1, mSize2);
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/ui/ConfigurationSelector.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/ui/ConfigurationSelector.java
index f52a069..89bc57f 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/ui/ConfigurationSelector.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/ui/ConfigurationSelector.java
@@ -32,15 +32,15 @@ import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenSizeQ
import com.android.ide.eclipse.adt.internal.resources.configurations.TextInputMethodQualifier;
import com.android.ide.eclipse.adt.internal.resources.configurations.TouchScreenQualifier;
import com.android.ide.eclipse.adt.internal.resources.configurations.VersionQualifier;
-import com.android.ide.eclipse.adt.internal.resources.configurations.KeyboardStateQualifier.KeyboardState;
-import com.android.ide.eclipse.adt.internal.resources.configurations.NavigationMethodQualifier.NavigationMethod;
-import com.android.ide.eclipse.adt.internal.resources.configurations.PixelDensityQualifier.Density;
-import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenOrientationQualifier.ScreenOrientation;
-import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenRatioQualifier.ScreenRatio;
-import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenSizeQualifier.ScreenSize;
-import com.android.ide.eclipse.adt.internal.resources.configurations.TextInputMethodQualifier.TextInputMethod;
-import com.android.ide.eclipse.adt.internal.resources.configurations.TouchScreenQualifier.TouchScreenType;
import com.android.ide.eclipse.adt.internal.resources.manager.ResourceManager;
+import com.android.sdklib.resources.Density;
+import com.android.sdklib.resources.Keyboard;
+import com.android.sdklib.resources.KeyboardState;
+import com.android.sdklib.resources.Navigation;
+import com.android.sdklib.resources.ScreenOrientation;
+import com.android.sdklib.resources.ScreenRatio;
+import com.android.sdklib.resources.ScreenSize;
+import com.android.sdklib.resources.TouchScreen;
import org.eclipse.jface.viewers.ILabelProviderListener;
import org.eclipse.jface.viewers.ISelection;
@@ -1152,8 +1152,8 @@ public class ConfigurationSelector extends Composite {
super(parent, TouchScreenQualifier.NAME);
mTouchScreen = new Combo(this, SWT.DROP_DOWN | SWT.READ_ONLY);
- TouchScreenType[] tstValues = TouchScreenType.values();
- for (TouchScreenType value : tstValues) {
+ TouchScreen[] tstValues = TouchScreen.values();
+ for (TouchScreen value : tstValues) {
mTouchScreen.add(value.getDisplayValue());
}
@@ -1174,7 +1174,7 @@ public class ConfigurationSelector extends Composite {
if (index != -1) {
mSelectedConfiguration.setTouchTypeQualifier(new TouchScreenQualifier(
- TouchScreenType.getByIndex(index)));
+ TouchScreen.getByIndex(index)));
} else {
// empty selection, means no qualifier.
// Since the qualifier classes are immutable, and we don't want to
@@ -1190,11 +1190,11 @@ public class ConfigurationSelector extends Composite {
public void setQualifier(ResourceQualifier qualifier) {
TouchScreenQualifier q = (TouchScreenQualifier)qualifier;
- TouchScreenType value = q.getValue();
+ TouchScreen value = q.getValue();
if (value == null) {
mTouchScreen.clearSelection();
} else {
- mTouchScreen.select(TouchScreenType.getIndex(value));
+ mTouchScreen.select(TouchScreen.getIndex(value));
}
}
}
@@ -1269,8 +1269,8 @@ public class ConfigurationSelector extends Composite {
super(parent, TextInputMethodQualifier.NAME);
mTextInput = new Combo(this, SWT.DROP_DOWN | SWT.READ_ONLY);
- TextInputMethod[] timValues = TextInputMethod.values();
- for (TextInputMethod value : timValues) {
+ Keyboard[] timValues = Keyboard.values();
+ for (Keyboard value : timValues) {
mTextInput.add(value.getDisplayValue());
}
@@ -1291,7 +1291,7 @@ public class ConfigurationSelector extends Composite {
if (index != -1) {
mSelectedConfiguration.setTextInputMethodQualifier(new TextInputMethodQualifier(
- TextInputMethod.getByIndex(index)));
+ Keyboard.getByIndex(index)));
} else {
// empty selection, means no qualifier.
// Since the qualifier classes are immutable, and we don't want to
@@ -1308,11 +1308,11 @@ public class ConfigurationSelector extends Composite {
public void setQualifier(ResourceQualifier qualifier) {
TextInputMethodQualifier q = (TextInputMethodQualifier)qualifier;
- TextInputMethod value = q.getValue();
+ Keyboard value = q.getValue();
if (value == null) {
mTextInput.clearSelection();
} else {
- mTextInput.select(TextInputMethod.getIndex(value));
+ mTextInput.select(Keyboard.getIndex(value));
}
}
}
@@ -1328,8 +1328,8 @@ public class ConfigurationSelector extends Composite {
super(parent, NavigationMethodQualifier.NAME);
mNavigation = new Combo(this, SWT.DROP_DOWN | SWT.READ_ONLY);
- NavigationMethod[] nmValues = NavigationMethod.values();
- for (NavigationMethod value : nmValues) {
+ Navigation[] nmValues = Navigation.values();
+ for (Navigation value : nmValues) {
mNavigation.add(value.getDisplayValue());
}
@@ -1350,7 +1350,7 @@ public class ConfigurationSelector extends Composite {
if (index != -1) {
mSelectedConfiguration.setNavigationMethodQualifier(new NavigationMethodQualifier(
- NavigationMethod.getByIndex(index)));
+ Navigation.getByIndex(index)));
} else {
// empty selection, means no qualifier.
// Since the qualifier classes are immutable, and we don't want to
@@ -1367,11 +1367,11 @@ public class ConfigurationSelector extends Composite {
public void setQualifier(ResourceQualifier qualifier) {
NavigationMethodQualifier q = (NavigationMethodQualifier)qualifier;
- NavigationMethod value = q.getValue();
+ Navigation value = q.getValue();
if (value == null) {
mNavigation.clearSelection();
} else {
- mNavigation.select(NavigationMethod.getIndex(value));
+ mNavigation.select(Navigation.getIndex(value));
}
}
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/newproject/NewProjectWizard.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/newproject/NewProjectWizard.java
index 1bfff9f..901bafe 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/newproject/NewProjectWizard.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/wizards/newproject/NewProjectWizard.java
@@ -20,12 +20,12 @@ import com.android.ide.eclipse.adt.AdtPlugin;
import com.android.ide.eclipse.adt.AndroidConstants;
import com.android.ide.eclipse.adt.internal.project.AndroidNature;
import com.android.ide.eclipse.adt.internal.project.ProjectHelper;
-import com.android.ide.eclipse.adt.internal.resources.configurations.PixelDensityQualifier.Density;
import com.android.ide.eclipse.adt.internal.sdk.Sdk;
import com.android.ide.eclipse.adt.internal.wizards.newproject.NewProjectCreationPage.IMainInfo;
import com.android.ide.eclipse.adt.internal.wizards.newproject.NewTestProjectCreationPage.TestInfo;
import com.android.sdklib.IAndroidTarget;
import com.android.sdklib.SdkConstants;
+import com.android.sdklib.resources.Density;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/functests/layoutRendering/ApiDemosRenderingTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/functests/layoutRendering/ApiDemosRenderingTest.java
index 0712cf9..900e031 100644
--- a/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/functests/layoutRendering/ApiDemosRenderingTest.java
+++ b/eclipse/plugins/com.android.ide.eclipse.tests/src/com/android/ide/eclipse/tests/functests/layoutRendering/ApiDemosRenderingTest.java
@@ -26,14 +26,6 @@ import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenRatio
import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenSizeQualifier;
import com.android.ide.eclipse.adt.internal.resources.configurations.TextInputMethodQualifier;
import com.android.ide.eclipse.adt.internal.resources.configurations.TouchScreenQualifier;
-import com.android.ide.eclipse.adt.internal.resources.configurations.KeyboardStateQualifier.KeyboardState;
-import com.android.ide.eclipse.adt.internal.resources.configurations.NavigationMethodQualifier.NavigationMethod;
-import com.android.ide.eclipse.adt.internal.resources.configurations.PixelDensityQualifier.Density;
-import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenOrientationQualifier.ScreenOrientation;
-import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenRatioQualifier.ScreenRatio;
-import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenSizeQualifier.ScreenSize;
-import com.android.ide.eclipse.adt.internal.resources.configurations.TextInputMethodQualifier.TextInputMethod;
-import com.android.ide.eclipse.adt.internal.resources.configurations.TouchScreenQualifier.TouchScreenType;
import com.android.ide.eclipse.adt.internal.resources.manager.ProjectResources;
import com.android.ide.eclipse.adt.internal.resources.manager.ResourceManager;
import com.android.ide.eclipse.adt.internal.sdk.AndroidTargetData;
@@ -47,6 +39,14 @@ import com.android.layoutlib.api.IXmlPullParser;
import com.android.sdklib.IAndroidTarget;
import com.android.sdklib.SdkConstants;
import com.android.sdklib.io.FolderWrapper;
+import com.android.sdklib.resources.Density;
+import com.android.sdklib.resources.Keyboard;
+import com.android.sdklib.resources.KeyboardState;
+import com.android.sdklib.resources.Navigation;
+import com.android.sdklib.resources.ScreenOrientation;
+import com.android.sdklib.resources.ScreenRatio;
+import com.android.sdklib.resources.ScreenSize;
+import com.android.sdklib.resources.TouchScreen;
import org.kxml2.io.KXmlParser;
import org.xmlpull.v1.XmlPullParser;
@@ -242,10 +242,10 @@ public class ApiDemosRenderingTest extends SdkTestCase {
config.addQualifier(new ScreenRatioQualifier(ScreenRatio.NOTLONG));
config.addQualifier(new ScreenOrientationQualifier(ScreenOrientation.PORTRAIT));
config.addQualifier(new PixelDensityQualifier(Density.MEDIUM));
- config.addQualifier(new TouchScreenQualifier(TouchScreenType.FINGER));
+ config.addQualifier(new TouchScreenQualifier(TouchScreen.FINGER));
config.addQualifier(new KeyboardStateQualifier(KeyboardState.HIDDEN));
- config.addQualifier(new TextInputMethodQualifier(TextInputMethod.QWERTY));
- config.addQualifier(new NavigationMethodQualifier(NavigationMethod.TRACKBALL));
+ config.addQualifier(new TextInputMethodQualifier(Keyboard.QWERTY));
+ config.addQualifier(new NavigationMethodQualifier(Navigation.TRACKBALL));
config.addQualifier(new ScreenDimensionQualifier(480, 320));
return config;
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/UiElementPullParserTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/UiElementPullParserTest.java
index 7499f5d..72dbf81 100644
--- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/UiElementPullParserTest.java
+++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/layout/UiElementPullParserTest.java
@@ -19,11 +19,10 @@ package com.android.ide.eclipse.adt.internal.editors.layout;
import com.android.ide.eclipse.adt.internal.editors.descriptors.AttributeDescriptor;
import com.android.ide.eclipse.adt.internal.editors.descriptors.ElementDescriptor;
import com.android.ide.eclipse.adt.internal.editors.descriptors.TextAttributeDescriptor;
-import com.android.ide.eclipse.adt.internal.editors.layout.UiElementPullParser;
import com.android.ide.eclipse.adt.internal.editors.mock.MockXmlNode;
import com.android.ide.eclipse.adt.internal.editors.uimodel.UiElementNode;
-import com.android.ide.eclipse.adt.internal.resources.configurations.PixelDensityQualifier.Density;
import com.android.sdklib.SdkConstants;
+import com.android.sdklib.resources.Density;
import org.w3c.dom.Node;
import org.xmlpull.v1.XmlPullParser;
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/KeyboardStateQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/KeyboardStateQualifierTest.java
index 4953747..0ae0a08 100644
--- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/KeyboardStateQualifierTest.java
+++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/KeyboardStateQualifierTest.java
@@ -18,6 +18,7 @@ package com.android.ide.eclipse.adt.internal.editors.resources.configurations;
import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration;
import com.android.ide.eclipse.adt.internal.resources.configurations.KeyboardStateQualifier;
+import com.android.sdklib.resources.KeyboardState;
import junit.framework.TestCase;
@@ -43,16 +44,14 @@ public class KeyboardStateQualifierTest extends TestCase {
public void testExposed() {
assertEquals(true, ksq.checkAndSet("keysexposed", config)); //$NON-NLS-1$
assertTrue(config.getKeyboardStateQualifier() != null);
- assertEquals(KeyboardStateQualifier.KeyboardState.EXPOSED,
- config.getKeyboardStateQualifier().getValue());
+ assertEquals(KeyboardState.EXPOSED, config.getKeyboardStateQualifier().getValue());
assertEquals("keysexposed", config.getKeyboardStateQualifier().toString()); //$NON-NLS-1$
}
public void testHidden() {
assertEquals(true, ksq.checkAndSet("keyshidden", config)); //$NON-NLS-1$
assertTrue(config.getKeyboardStateQualifier() != null);
- assertEquals(KeyboardStateQualifier.KeyboardState.HIDDEN,
- config.getKeyboardStateQualifier().getValue());
+ assertEquals(KeyboardState.HIDDEN, config.getKeyboardStateQualifier().getValue());
assertEquals("keyshidden", config.getKeyboardStateQualifier().toString()); //$NON-NLS-1$
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/NavigationMethodQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/NavigationMethodQualifierTest.java
index 8e5d9ec..384f29f 100644
--- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/NavigationMethodQualifierTest.java
+++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/NavigationMethodQualifierTest.java
@@ -18,6 +18,7 @@ package com.android.ide.eclipse.adt.internal.editors.resources.configurations;
import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration;
import com.android.ide.eclipse.adt.internal.resources.configurations.NavigationMethodQualifier;
+import com.android.sdklib.resources.Navigation;
import junit.framework.TestCase;
@@ -39,28 +40,25 @@ public class NavigationMethodQualifierTest extends TestCase {
config = null;
nmq = null;
}
-
+
public void testDPad() {
assertEquals(true, nmq.checkAndSet("dpad", config)); //$NON-NLS-1$
assertTrue(config.getNavigationMethodQualifier() != null);
- assertEquals(NavigationMethodQualifier.NavigationMethod.DPAD,
- config.getNavigationMethodQualifier().getValue());
+ assertEquals(Navigation.DPAD, config.getNavigationMethodQualifier().getValue());
assertEquals("dpad", config.getNavigationMethodQualifier().toString()); //$NON-NLS-1$
}
public void testTrackball() {
assertEquals(true, nmq.checkAndSet("trackball", config)); //$NON-NLS-1$
assertTrue(config.getNavigationMethodQualifier() != null);
- assertEquals(NavigationMethodQualifier.NavigationMethod.TRACKBALL,
- config.getNavigationMethodQualifier().getValue());
+ assertEquals(Navigation.TRACKBALL, config.getNavigationMethodQualifier().getValue());
assertEquals("trackball", config.getNavigationMethodQualifier().toString()); //$NON-NLS-1$
}
public void testWheel() {
assertEquals(true, nmq.checkAndSet("wheel", config)); //$NON-NLS-1$
assertTrue(config.getNavigationMethodQualifier() != null);
- assertEquals(NavigationMethodQualifier.NavigationMethod.WHEEL,
- config.getNavigationMethodQualifier().getValue());
+ assertEquals(Navigation.WHEEL, config.getNavigationMethodQualifier().getValue());
assertEquals("wheel", config.getNavigationMethodQualifier().toString()); //$NON-NLS-1$
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/PixelDensityQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/PixelDensityQualifierTest.java
index 658d4d2..bb05adb 100644
--- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/PixelDensityQualifierTest.java
+++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/PixelDensityQualifierTest.java
@@ -18,7 +18,7 @@ package com.android.ide.eclipse.adt.internal.editors.resources.configurations;
import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration;
import com.android.ide.eclipse.adt.internal.resources.configurations.PixelDensityQualifier;
-import com.android.ide.eclipse.adt.internal.resources.configurations.PixelDensityQualifier.Density;
+import com.android.sdklib.resources.Density;
import junit.framework.TestCase;
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/ScreenOrientationQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/ScreenOrientationQualifierTest.java
index 15d9686..452a1ff 100644
--- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/ScreenOrientationQualifierTest.java
+++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/ScreenOrientationQualifierTest.java
@@ -18,6 +18,7 @@ package com.android.ide.eclipse.adt.internal.editors.resources.configurations;
import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration;
import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenOrientationQualifier;
+import com.android.sdklib.resources.ScreenOrientation;
import junit.framework.TestCase;
@@ -43,15 +44,14 @@ public class ScreenOrientationQualifierTest extends TestCase {
public void testPortrait() {
assertEquals(true, soq.checkAndSet("port", config)); //$NON-NLS-1$
assertTrue(config.getScreenOrientationQualifier() != null);
- assertEquals(ScreenOrientationQualifier.ScreenOrientation.PORTRAIT,
- config.getScreenOrientationQualifier().getValue());
+ assertEquals(ScreenOrientation.PORTRAIT, config.getScreenOrientationQualifier().getValue());
assertEquals("port", config.getScreenOrientationQualifier().toString()); //$NON-NLS-1$
}
public void testLanscape() {
assertEquals(true, soq.checkAndSet("land", config)); //$NON-NLS-1$
assertTrue(config.getScreenOrientationQualifier() != null);
- assertEquals(ScreenOrientationQualifier.ScreenOrientation.LANDSCAPE,
+ assertEquals(ScreenOrientation.LANDSCAPE,
config.getScreenOrientationQualifier().getValue());
assertEquals("land", config.getScreenOrientationQualifier().toString()); //$NON-NLS-1$
}
@@ -59,7 +59,7 @@ public class ScreenOrientationQualifierTest extends TestCase {
public void testSquare() {
assertEquals(true, soq.checkAndSet("square", config)); //$NON-NLS-1$
assertTrue(config.getScreenOrientationQualifier() != null);
- assertEquals(ScreenOrientationQualifier.ScreenOrientation.SQUARE,
+ assertEquals(ScreenOrientation.SQUARE,
config.getScreenOrientationQualifier().getValue());
assertEquals("square", config.getScreenOrientationQualifier().toString()); //$NON-NLS-1$
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/TextInputMethodQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/TextInputMethodQualifierTest.java
index c679295..04eb8da 100644
--- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/TextInputMethodQualifierTest.java
+++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/TextInputMethodQualifierTest.java
@@ -18,11 +18,12 @@ package com.android.ide.eclipse.adt.internal.editors.resources.configurations;
import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration;
import com.android.ide.eclipse.adt.internal.resources.configurations.TextInputMethodQualifier;
+import com.android.sdklib.resources.Keyboard;
import junit.framework.TestCase;
public class TextInputMethodQualifierTest extends TestCase {
-
+
private TextInputMethodQualifier timq;
private FolderConfiguration config;
@@ -43,24 +44,21 @@ public class TextInputMethodQualifierTest extends TestCase {
public void testQuerty() {
assertEquals(true, timq.checkAndSet("qwerty", config)); //$NON-NLS-1$
assertTrue(config.getTextInputMethodQualifier() != null);
- assertEquals(TextInputMethodQualifier.TextInputMethod.QWERTY,
- config.getTextInputMethodQualifier().getValue());
+ assertEquals(Keyboard.QWERTY, config.getTextInputMethodQualifier().getValue());
assertEquals("qwerty", config.getTextInputMethodQualifier().toString()); //$NON-NLS-1$
}
public void test12Key() {
assertEquals(true, timq.checkAndSet("12key", config)); //$NON-NLS-1$
assertTrue(config.getTextInputMethodQualifier() != null);
- assertEquals(TextInputMethodQualifier.TextInputMethod.TWELVEKEYS,
- config.getTextInputMethodQualifier().getValue());
+ assertEquals(Keyboard.TWELVEKEYS, config.getTextInputMethodQualifier().getValue());
assertEquals("12key", config.getTextInputMethodQualifier().toString()); //$NON-NLS-1$
}
public void testNoKey() {
assertEquals(true, timq.checkAndSet("nokeys", config)); //$NON-NLS-1$
assertTrue(config.getTextInputMethodQualifier() != null);
- assertEquals(TextInputMethodQualifier.TextInputMethod.NOKEY,
- config.getTextInputMethodQualifier().getValue());
+ assertEquals(Keyboard.NOKEY, config.getTextInputMethodQualifier().getValue());
assertEquals("nokeys", config.getTextInputMethodQualifier().toString()); //$NON-NLS-1$
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/TouchScreenQualifierTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/TouchScreenQualifierTest.java
index b5d7933..209bb57 100644
--- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/TouchScreenQualifierTest.java
+++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/configurations/TouchScreenQualifierTest.java
@@ -18,6 +18,7 @@ package com.android.ide.eclipse.adt.internal.editors.resources.configurations;
import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration;
import com.android.ide.eclipse.adt.internal.resources.configurations.TouchScreenQualifier;
+import com.android.sdklib.resources.TouchScreen;
import junit.framework.TestCase;
@@ -43,24 +44,21 @@ public class TouchScreenQualifierTest extends TestCase {
public void testNoTouch() {
assertEquals(true, tsq.checkAndSet("notouch", config)); //$NON-NLS-1$
assertTrue(config.getTouchTypeQualifier() != null);
- assertEquals(TouchScreenQualifier.TouchScreenType.NOTOUCH,
- config.getTouchTypeQualifier().getValue());
+ assertEquals(TouchScreen.NOTOUCH, config.getTouchTypeQualifier().getValue());
assertEquals("notouch", config.getTouchTypeQualifier().toString()); //$NON-NLS-1$
}
public void testFinger() {
assertEquals(true, tsq.checkAndSet("finger", config)); //$NON-NLS-1$
assertTrue(config.getTouchTypeQualifier() != null);
- assertEquals(TouchScreenQualifier.TouchScreenType.FINGER,
- config.getTouchTypeQualifier().getValue());
+ assertEquals(TouchScreen.FINGER, config.getTouchTypeQualifier().getValue());
assertEquals("finger", config.getTouchTypeQualifier().toString()); //$NON-NLS-1$
}
public void testStylus() {
assertEquals(true, tsq.checkAndSet("stylus", config)); //$NON-NLS-1$
assertTrue(config.getTouchTypeQualifier() != null);
- assertEquals(TouchScreenQualifier.TouchScreenType.STYLUS,
- config.getTouchTypeQualifier().getValue());
+ assertEquals(TouchScreen.STYLUS, config.getTouchTypeQualifier().getValue());
assertEquals("stylus", config.getTouchTypeQualifier().toString()); //$NON-NLS-1$
}
@@ -69,5 +67,4 @@ public class TouchScreenQualifierTest extends TestCase {
assertEquals(false, tsq.checkAndSet("STYLUS", config));//$NON-NLS-1$
assertEquals(false, tsq.checkAndSet("other", config));//$NON-NLS-1$
}
-
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/manager/ConfigMatchTest.java b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/manager/ConfigMatchTest.java
index 4ce011e..31f9784 100644
--- a/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/manager/ConfigMatchTest.java
+++ b/eclipse/plugins/com.android.ide.eclipse.tests/unittests/com/android/ide/eclipse/adt/internal/editors/resources/manager/ConfigMatchTest.java
@@ -18,11 +18,6 @@ package com.android.ide.eclipse.adt.internal.editors.resources.manager;
import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration;
import com.android.ide.eclipse.adt.internal.resources.configurations.ResourceQualifier;
-import com.android.ide.eclipse.adt.internal.resources.configurations.KeyboardStateQualifier.KeyboardState;
-import com.android.ide.eclipse.adt.internal.resources.configurations.NavigationMethodQualifier.NavigationMethod;
-import com.android.ide.eclipse.adt.internal.resources.configurations.ScreenOrientationQualifier.ScreenOrientation;
-import com.android.ide.eclipse.adt.internal.resources.configurations.TextInputMethodQualifier.TextInputMethod;
-import com.android.ide.eclipse.adt.internal.resources.configurations.TouchScreenQualifier.TouchScreenType;
import com.android.ide.eclipse.adt.internal.resources.manager.ProjectResources;
import com.android.ide.eclipse.adt.internal.resources.manager.ResourceFile;
import com.android.ide.eclipse.adt.internal.resources.manager.ResourceFolder;
@@ -35,6 +30,11 @@ import com.android.ide.eclipse.mock.FileMock;
import com.android.ide.eclipse.mock.FolderMock;
import com.android.sdklib.IAndroidTarget;
import com.android.sdklib.io.IAbstractFolder;
+import com.android.sdklib.resources.Keyboard;
+import com.android.sdklib.resources.KeyboardState;
+import com.android.sdklib.resources.Navigation;
+import com.android.sdklib.resources.ScreenOrientation;
+import com.android.sdklib.resources.TouchScreen;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
@@ -164,10 +164,10 @@ public class ConfigMatchTest extends TestCase {
"notlong", // screen ratio
ScreenOrientation.LANDSCAPE.getValue(), // screen orientation
"mdpi", // dpi
- TouchScreenType.FINGER.getValue(), // touch mode
+ TouchScreen.FINGER.getValue(), // touch mode
KeyboardState.EXPOSED.getValue(), // keyboard state
- TextInputMethod.QWERTY.getValue(), // text input
- NavigationMethod.DPAD.getValue(), // navigation
+ Keyboard.QWERTY.getValue(), // text input
+ Navigation.DPAD.getValue(), // navigation
"480x320", // screen dimension
"v3"); // version
@@ -190,10 +190,10 @@ public class ConfigMatchTest extends TestCase {
"notlong", // screen ratio
ScreenOrientation.LANDSCAPE.getValue(), // screen orientation
"mdpi", // dpi
- TouchScreenType.FINGER.getValue(), // touch mode
+ TouchScreen.FINGER.getValue(), // touch mode
KeyboardState.EXPOSED.getValue(), // keyboard state
- TextInputMethod.QWERTY.getValue(), // text input
- NavigationMethod.DPAD.getValue(), // navigation
+ Keyboard.QWERTY.getValue(), // text input
+ Navigation.DPAD.getValue(), // navigation
"480x320", // screen dimension
"v3"); // version
diff --git a/layoutlib_api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java b/layoutlib_api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java
index 57a776f..c004f2f 100644
--- a/layoutlib_api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java
+++ b/layoutlib_api/src/com/android/layoutlib/api/IDensityBasedResourceValue.java
@@ -38,6 +38,21 @@ public interface IDensityBasedResourceValue extends IResourceValue {
public int getValue() {
return mValue;
}
+
+ /**
+ * Returns the enum matching the given density value
+ * @param value The density value.
+ * @return the enum for the density value or null if no match was found.
+ */
+ public static Density getEnum(int value) {
+ for (Density d : values()) {
+ if (d.mValue == value) {
+ return d;
+ }
+ }
+
+ return null;
+ }
}
/**
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/Density.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/Density.java
new file mode 100644
index 0000000..d4d5256
--- /dev/null
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/Density.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.sdklib.resources;
+
+
+/**
+ * Density enum.
+ * <p/>This is used in the manifest in the uses-configuration node and in the resource folder names
+ * as well as other places needing to know the density values.
+ */
+public enum Density {
+ HIGH("hdpi", "High Density", 240), //$NON-NLS-1$
+ MEDIUM("mdpi", "Medium Density", 160), //$NON-NLS-1$
+ LOW("ldpi", "Low Density", 120), //$NON-NLS-1$
+ NODPI("nodpi", "No Density", 0); //$NON-NLS-1$
+
+ public final static int DEFAULT_DENSITY = 160;
+
+ private final String mValue;
+ private final String mDisplayValue;
+ private final int mDensity;
+
+ private Density(String value, String displayValue, int density) {
+ mValue = value;
+ mDisplayValue = displayValue;
+ mDensity = density;
+ }
+
+ /**
+ * Returns the enum matching the provided qualifier value.
+ * @param value The qualifier value.
+ * @return the enum for the qualifier value or null if no match was found.
+ */
+ public static Density getEnum(String value) {
+ for (Density orient : values()) {
+ if (orient.mValue.equals(value)) {
+ return orient;
+ }
+ }
+
+ return null;
+ }
+
+ /**
+ * Returns the enum matching the given density value
+ * @param value The density value.
+ * @return the enum for the density value or null if no match was found.
+ */
+ public static Density getEnum(int value) {
+ for (Density d : values()) {
+ if (d.mDensity == value) {
+ return d;
+ }
+ }
+
+ return null;
+ }
+
+ public String getValue() {
+ return mValue;
+ }
+
+ public int getDpiValue() {
+ return mDensity;
+ }
+
+ public String getLegacyValue() {
+ if (this != NODPI) {
+ return String.format("%1$ddpi", getDpiValue());
+ }
+
+ return "";
+ }
+
+ public String getDisplayValue() {
+ return mDisplayValue;
+ }
+
+ public static int getIndex(Density value) {
+ int i = 0;
+ for (Density input : values()) {
+ if (value == input) {
+ return i;
+ }
+
+ i++;
+ }
+
+ return -1;
+ }
+
+ public static Density getByIndex(int index) {
+ int i = 0;
+ for (Density value : values()) {
+ if (i == index) {
+ return value;
+ }
+ i++;
+ }
+ return null;
+ }
+}
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/Keyboard.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/Keyboard.java
new file mode 100644
index 0000000..1b910d4
--- /dev/null
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/Keyboard.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.sdklib.resources;
+
+/**
+ * Keyboard enum.
+ * <p/>This is used in the manifest in the uses-configuration node and in the resource folder names.
+ */
+public enum Keyboard {
+ NOKEY("nokeys", "No Keys"), //$NON-NLS-1$
+ QWERTY("qwerty", "Qwerty"), //$NON-NLS-1$
+ TWELVEKEYS("12key", "12 Key"); //$NON-NLS-1$
+
+ private String mValue;
+ private String mDisplayValue;
+
+ private Keyboard(String value, String displayValue) {
+ mValue = value;
+ mDisplayValue = displayValue;
+ }
+
+ /**
+ * Returns the enum for matching the provided qualifier value.
+ * @param value The qualifier value.
+ * @return the enum for the qualifier value or null if no matching was found.
+ */
+ public static Keyboard getEnum(String value) {
+ for (Keyboard orient : values()) {
+ if (orient.mValue.equals(value)) {
+ return orient;
+ }
+ }
+
+ return null;
+ }
+
+ public String getValue() {
+ return mValue;
+ }
+
+ public String getDisplayValue() {
+ return mDisplayValue;
+ }
+
+ public static int getIndex(Keyboard value) {
+ int i = 0;
+ for (Keyboard input : values()) {
+ if (value == input) {
+ return i;
+ }
+
+ i++;
+ }
+
+ return -1;
+ }
+
+ public static Keyboard getByIndex(int index) {
+ int i = 0;
+ for (Keyboard value : values()) {
+ if (i == index) {
+ return value;
+ }
+ i++;
+ }
+ return null;
+ }
+}
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/KeyboardState.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/KeyboardState.java
new file mode 100644
index 0000000..730a32b
--- /dev/null
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/KeyboardState.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.sdklib.resources;
+
+/**
+ * Keyboard state enum.
+ * <p/>This is used in the manifest in the uses-configuration node and in the resource folder names.
+ */
+public enum KeyboardState {
+ EXPOSED("keysexposed", "Exposed"), //$NON-NLS-1$
+ HIDDEN("keyshidden", "Hidden"), //$NON-NLS-1$
+ SOFT("keyssoft", "Soft"); //$NON-NLS-1$
+
+ private String mValue;
+ private String mDisplayValue;
+
+ private KeyboardState(String value, String displayValue) {
+ mValue = value;
+ mDisplayValue = displayValue;
+ }
+
+ /**
+ * Returns the enum for matching the provided qualifier value.
+ * @param value The qualifier value.
+ * @return the enum for the qualifier value or null if no matching was found.
+ */
+ public static KeyboardState getEnum(String value) {
+ for (KeyboardState orient : values()) {
+ if (orient.mValue.equals(value)) {
+ return orient;
+ }
+ }
+
+ return null;
+ }
+
+ public String getValue() {
+ return mValue;
+ }
+
+ public String getDisplayValue() {
+ return mDisplayValue;
+ }
+
+ public static int getIndex(KeyboardState value) {
+ int i = 0;
+ for (KeyboardState input : values()) {
+ if (value == input) {
+ return i;
+ }
+
+ i++;
+ }
+
+ return -1;
+ }
+
+ public static KeyboardState getByIndex(int index) {
+ int i = 0;
+ for (KeyboardState value : values()) {
+ if (i == index) {
+ return value;
+ }
+ i++;
+ }
+ return null;
+ }
+}
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/Navigation.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/Navigation.java
new file mode 100644
index 0000000..b69f855
--- /dev/null
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/Navigation.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.sdklib.resources;
+
+/**
+ * Navigation enum.
+ * <p/>This is used in the manifest in the uses-configuration node and in the resource folder names.
+ */
+public enum Navigation {
+ NONAV("nonav", "No Navigation"), //$NON-NLS-1$
+ DPAD("dpad", "D-pad"), //$NON-NLS-1$
+ TRACKBALL("trackball", "Trackball"), //$NON-NLS-1$
+ WHEEL("wheel", "Wheel"); //$NON-NLS-1$
+
+ private String mValue;
+ private String mDisplay;
+
+ private Navigation(String value, String display) {
+ mValue = value;
+ mDisplay = display;
+ }
+
+ /**
+ * Returns the enum for matching the provided qualifier value.
+ * @param value The qualifier value.
+ * @return the enum for the qualifier value or null if no matching was found.
+ */
+ public static Navigation getEnum(String value) {
+ for (Navigation orient : values()) {
+ if (orient.mValue.equals(value)) {
+ return orient;
+ }
+ }
+
+ return null;
+ }
+
+ public String getValue() {
+ return mValue;
+ }
+
+ public String getDisplayValue() {
+ return mDisplay;
+ }
+
+ public static int getIndex(Navigation value) {
+ int i = 0;
+ for (Navigation nav : values()) {
+ if (nav == value) {
+ return i;
+ }
+
+ i++;
+ }
+
+ return -1;
+ }
+
+ public static Navigation getByIndex(int index) {
+ int i = 0;
+ for (Navigation value : values()) {
+ if (i == index) {
+ return value;
+ }
+ i++;
+ }
+ return null;
+ }
+} \ No newline at end of file
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/ScreenOrientation.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/ScreenOrientation.java
new file mode 100644
index 0000000..8e28b10
--- /dev/null
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/ScreenOrientation.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.sdklib.resources;
+
+/**
+ * Screen Orientation enum.
+ * <p/>This is used in the manifest in the uses-configuration node and in the resource folder names.
+ */
+public enum ScreenOrientation {
+ PORTRAIT("port", "Portrait"), //$NON-NLS-1$
+ LANDSCAPE("land", "Landscape"), //$NON-NLS-1$
+ SQUARE("square", "Square"); //$NON-NLS-1$
+
+ private String mValue;
+ private String mDisplayValue;
+
+ private ScreenOrientation(String value, String displayValue) {
+ mValue = value;
+ mDisplayValue = displayValue;
+ }
+
+ /**
+ * Returns the enum for matching the provided qualifier value.
+ * @param value The qualifier value.
+ * @return the enum for the qualifier value or null if no matching was found.
+ */
+ public static ScreenOrientation getEnum(String value) {
+ for (ScreenOrientation orient : values()) {
+ if (orient.mValue.equals(value)) {
+ return orient;
+ }
+ }
+
+ return null;
+ }
+
+ public String getValue() {
+ return mValue;
+ }
+
+ public String getDisplayValue() {
+ return mDisplayValue;
+ }
+
+ public static int getIndex(ScreenOrientation orientation) {
+ int i = 0;
+ for (ScreenOrientation orient : values()) {
+ if (orient == orientation) {
+ return i;
+ }
+
+ i++;
+ }
+
+ return -1;
+ }
+
+ public static ScreenOrientation getByIndex(int index) {
+ int i = 0;
+ for (ScreenOrientation orient : values()) {
+ if (i == index) {
+ return orient;
+ }
+ i++;
+ }
+
+ return null;
+ }
+}
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/ScreenRatio.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/ScreenRatio.java
new file mode 100644
index 0000000..4a3577f
--- /dev/null
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/ScreenRatio.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.sdklib.resources;
+
+/**
+ * Screen Ratio enum.
+ * <p/>This is used in the manifest in the uses-configuration node and in the resource folder names.
+ */
+public enum ScreenRatio {
+ NOTLONG("notlong", "Not Long"), //$NON-NLS-1$
+ LONG("long", "Long"); //$NON-NLS-1$
+
+ private String mValue;
+ private String mDisplayValue;
+
+ private ScreenRatio(String value, String displayValue) {
+ mValue = value;
+ mDisplayValue = displayValue;
+ }
+
+ /**
+ * Returns the enum for matching the provided qualifier value.
+ * @param value The qualifier value.
+ * @return the enum for the qualifier value or null if no matching was found.
+ */
+ public static ScreenRatio getEnum(String value) {
+ for (ScreenRatio orient : values()) {
+ if (orient.mValue.equals(value)) {
+ return orient;
+ }
+ }
+
+ return null;
+ }
+
+ public String getValue() {
+ return mValue;
+ }
+
+ public String getDisplayValue() {
+ return mDisplayValue;
+ }
+
+ public static int getIndex(ScreenRatio orientation) {
+ int i = 0;
+ for (ScreenRatio orient : values()) {
+ if (orient == orientation) {
+ return i;
+ }
+
+ i++;
+ }
+
+ return -1;
+ }
+
+ public static ScreenRatio getByIndex(int index) {
+ int i = 0;
+ for (ScreenRatio orient : values()) {
+ if (i == index) {
+ return orient;
+ }
+ i++;
+ }
+
+ return null;
+ }
+}
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/ScreenSize.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/ScreenSize.java
new file mode 100644
index 0000000..1aae15a
--- /dev/null
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/ScreenSize.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.sdklib.resources;
+
+/**
+ * Screen size enum.
+ * <p/>This is used in the manifest in the uses-configuration node and in the resource folder names.
+ */
+public enum ScreenSize {
+ SMALL("small", "Small"), //$NON-NLS-1$
+ NORMAL("normal", "Normal"), //$NON-NLS-1$
+ LARGE("large", "Large"); //$NON-NLS-1$
+
+ private String mValue;
+ private String mDisplayValue;
+
+ private ScreenSize(String value, String displayValue) {
+ mValue = value;
+ mDisplayValue = displayValue;
+ }
+
+ /**
+ * Returns the enum for matching the provided qualifier value.
+ * @param value The qualifier value.
+ * @return the enum for the qualifier value or null if no matching was found.
+ */
+ public static ScreenSize getEnum(String value) {
+ for (ScreenSize orient : values()) {
+ if (orient.mValue.equals(value)) {
+ return orient;
+ }
+ }
+
+ return null;
+ }
+
+ public String getValue() {
+ return mValue;
+ }
+
+ public String getDisplayValue() {
+ return mDisplayValue;
+ }
+
+ public static int getIndex(ScreenSize orientation) {
+ int i = 0;
+ for (ScreenSize orient : values()) {
+ if (orient == orientation) {
+ return i;
+ }
+
+ i++;
+ }
+
+ return -1;
+ }
+
+ public static ScreenSize getByIndex(int index) {
+ int i = 0;
+ for (ScreenSize orient : values()) {
+ if (i == index) {
+ return orient;
+ }
+ i++;
+ }
+
+ return null;
+ }
+}
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/TouchScreen.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/TouchScreen.java
new file mode 100644
index 0000000..3def049
--- /dev/null
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/resources/TouchScreen.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2010 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.sdklib.resources;
+
+/**
+ * Touch screen enum.
+ * <p/>This is used in the manifest in the uses-configuration node and in the resource folder names.
+ */
+public enum TouchScreen {
+ NOTOUCH("notouch", "No Touch"), //$NON-NLS-1$
+ STYLUS("stylus", "Stylus"), //$NON-NLS-1$
+ FINGER("finger", "Finger"); //$NON-NLS-1$
+
+ private String mValue;
+ private String mDisplayValue;
+
+ private TouchScreen(String value, String displayValue) {
+ mValue = value;
+ mDisplayValue = displayValue;
+ }
+
+ /**
+ * Returns the enum for matching the provided qualifier value.
+ * @param value The qualifier value.
+ * @return the enum for the qualifier value or null if no matching was found.
+ */
+ public static TouchScreen getEnum(String value) {
+ for (TouchScreen orient : values()) {
+ if (orient.mValue.equals(value)) {
+ return orient;
+ }
+ }
+
+ return null;
+ }
+
+ public String getValue() {
+ return mValue;
+ }
+
+ public String getDisplayValue() {
+ return mDisplayValue;
+ }
+
+ public static int getIndex(TouchScreen touch) {
+ int i = 0;
+ for (TouchScreen t : values()) {
+ if (t == touch) {
+ return i;
+ }
+
+ i++;
+ }
+
+ return -1;
+ }
+
+ public static TouchScreen getByIndex(int index) {
+ int i = 0;
+ for (TouchScreen value : values()) {
+ if (i == index) {
+ return value;
+ }
+ i++;
+ }
+
+ return null;
+ }
+}
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/xml/AndroidManifestParser.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/xml/AndroidManifestParser.java
index 3b9cd0b..cd7bca4 100644
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/xml/AndroidManifestParser.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/xml/AndroidManifestParser.java
@@ -23,7 +23,6 @@ import com.android.sdklib.io.StreamException;
import com.android.sdklib.xml.ManifestData.Activity;
import com.android.sdklib.xml.ManifestData.Instrumentation;
import com.android.sdklib.xml.ManifestData.SupportsScreens;
-import com.sun.rowset.internal.XmlErrorHandler;
import org.xml.sax.Attributes;
import org.xml.sax.ErrorHandler;
diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/xml/ManifestData.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/xml/ManifestData.java
index 3a9d034..5101736 100644
--- a/sdkmanager/libs/sdklib/src/com/android/sdklib/xml/ManifestData.java
+++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/xml/ManifestData.java
@@ -23,7 +23,7 @@ import java.util.TreeSet;
/**
* Class containing the manifest info obtained during the parsing.
*/
-public class ManifestData {
+public final class ManifestData {
/** Application package */
String mPackage;
/** Application version Code, null if the attribute is not present. */
@@ -49,7 +49,7 @@ public class ManifestData {
/**
* Instrumentation info obtained from manifest
*/
- public static class Instrumentation {
+ public final static class Instrumentation {
private final String mName;
private final String mTargetPackage;
@@ -76,7 +76,7 @@ public class ManifestData {
/**
* Activity info obtained from the manifest.
*/
- public static class Activity {
+ public final static class Activity {
private final String mName;
private final boolean mIsExported;
private boolean mHasAction = false;
@@ -127,12 +127,37 @@ public class ManifestData {
}
}
- public static class SupportsScreens {
+ public final static class SupportsScreens {
Boolean mResizeable;
- Boolean mSmallScreens;
Boolean mAnyDensity;
+ Boolean mSmallScreens;
Boolean mLargeScreens;
Boolean mNormalScreens;
+
+ public Boolean getResizeable() {
+ return mResizeable;
+ }
+
+ public Boolean getAnyDensity() {
+ return mAnyDensity;
+ }
+
+ public Boolean getSmallScreens() {
+ return mSmallScreens;
+ }
+
+ public Boolean getNormalScreens() {
+ return mNormalScreens;
+ }
+
+ public Boolean getLargeScreens() {
+ return mLargeScreens;
+ }
+ }
+
+ public final static class UsesConfiguration {
+ Boolean mReqFiveWayNav;
+ Boolean mReqHardKeyboard;
}
/**
@@ -210,6 +235,10 @@ public class ManifestData {
return mLibraries.toArray(new String[mLibraries.size()]);
}
+ public SupportsScreens getSupportsScreens() {
+ return mSupportsScreens;
+ }
+
void addProcessName(String processName) {
if (mProcesses == null) {
mProcesses = new TreeSet<String>();
diff --git a/sdkmanager/libs/sdklib/tests/com/android/sdklib/xml/AndroidManifestParserTest.java b/sdkmanager/libs/sdklib/tests/com/android/sdklib/xml/AndroidManifestParserTest.java
index c2ee943..647aa74 100644
--- a/sdkmanager/libs/sdklib/tests/com/android/sdklib/xml/AndroidManifestParserTest.java
+++ b/sdkmanager/libs/sdklib/tests/com/android/sdklib/xml/AndroidManifestParserTest.java
@@ -92,6 +92,16 @@ public class AndroidManifestParserTest extends TestCase {
assertTrue(activity.isHomeActivity());
}
+ public void testSupportsScreen() {
+ ManifestData.SupportsScreens supportsScreens = mManifestTestApp.getSupportsScreens();
+
+ assertEquals(Boolean.TRUE, supportsScreens.getAnyDensity());
+ assertEquals(Boolean.TRUE, supportsScreens.getResizeable());
+ assertEquals(Boolean.TRUE, supportsScreens.getSmallScreens());
+ assertEquals(Boolean.TRUE, supportsScreens.getNormalScreens());
+ assertEquals(Boolean.TRUE, supportsScreens.getLargeScreens());
+ }
+
private void assertEquals(ManifestData.Activity lhs, ManifestData.Activity rhs) {
assertTrue(lhs == rhs || (lhs != null && rhs != null));
if (lhs != null && rhs != null) {