summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2009-09-30 23:01:19 -0700
committerXavier Ducrohet <xav@android.com>2009-09-30 23:01:19 -0700
commit227b8768fa8accff8a9e3555351af05d41ad7840 (patch)
tree000416dfd95fe51c95d48c139cfd26caffdac32f /tools
parent69940e9babbdf06c3a9942c4fbdd507479c847c9 (diff)
downloadandroid_development-227b8768fa8accff8a9e3555351af05d41ad7840.tar.gz
android_development-227b8768fa8accff8a9e3555351af05d41ad7840.tar.bz2
android_development-227b8768fa8accff8a9e3555351af05d41ad7840.zip
Load default GLE device profiles from the SDK.
Change-Id: Ife64397692912f892ec81af8237ac31914830be9
Diffstat (limited to 'tools')
-rw-r--r--tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java93
-rw-r--r--tools/scripts/devices.xml62
2 files changed, 75 insertions, 80 deletions
diff --git a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java
index 960636e45..9fd90feb0 100644
--- a/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java
+++ b/tools/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/sdk/Sdk.java
@@ -19,24 +19,6 @@ package com.android.ide.eclipse.adt.internal.sdk;
import com.android.ddmlib.IDevice;
import com.android.ide.eclipse.adt.AdtPlugin;
import com.android.ide.eclipse.adt.internal.project.AndroidClasspathContainerInitializer;
-import com.android.ide.eclipse.adt.internal.resources.configurations.FolderConfiguration;
-import com.android.ide.eclipse.adt.internal.resources.configurations.KeyboardStateQualifier;
-import com.android.ide.eclipse.adt.internal.resources.configurations.NavigationMethodQualifier;
-import com.android.ide.eclipse.adt.internal.resources.configurations.PixelDensityQualifier;
-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.ScreenRatioQualifier;
-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.ResourceMonitor;
import com.android.ide.eclipse.adt.internal.resources.manager.ResourceMonitor.IProjectListener;
import com.android.ide.eclipse.adt.internal.sdk.AndroidTargetData.LayoutBridge;
@@ -469,8 +451,8 @@ public class Sdk implements IProjectListener {
mDocBaseUrl = getDocumentationBaseUrl(mManager.getLocation() +
SdkConstants.OS_SDK_DOCS_FOLDER);
- // create some built-in layout devices
- createDefaultLayoutDevices();
+ // load the built-in layout devices
+ loadDefaultLayoutDevices();
}
/**
@@ -668,66 +650,17 @@ public class Sdk implements IProjectListener {
/**
* Creates some built-it layout devices.
*/
- private void createDefaultLayoutDevices() {
- DeviceConfiguration adp1 = new DeviceConfiguration("ADP1");
- adp1.setXDpi(180.6f);
- adp1.setYDpi(182.f);
- mLayoutDevices.add(adp1);
- // default config
- FolderConfiguration defConfig = new FolderConfiguration();
- defConfig.addQualifier(new ScreenSizeQualifier(ScreenSize.NORMAL));
- defConfig.addQualifier(new ScreenRatioQualifier(ScreenRatio.NOTLONG));
- defConfig.addQualifier(new PixelDensityQualifier(Density.MEDIUM));
- defConfig.addQualifier(new TouchScreenQualifier(TouchScreenType.FINGER));
- defConfig.addQualifier(new KeyboardStateQualifier(KeyboardState.SOFT));
- defConfig.addQualifier(new TextInputMethodQualifier(TextInputMethod.QWERTY));
- defConfig.addQualifier(new NavigationMethodQualifier(NavigationMethod.TRACKBALL));
- defConfig.addQualifier(new ScreenDimensionQualifier(480, 320));
-
- // specific configs
- FolderConfiguration closedPort = new FolderConfiguration();
- closedPort.set(defConfig);
- closedPort.addQualifier(new ScreenOrientationQualifier(ScreenOrientation.PORTRAIT));
- adp1.addConfig("Portrait, closed", closedPort);
-
- FolderConfiguration closedLand = new FolderConfiguration();
- closedLand.set(defConfig);
- closedLand.addQualifier(new ScreenOrientationQualifier(ScreenOrientation.LANDSCAPE));
- adp1.addConfig("Landscape, closed", closedLand);
-
- FolderConfiguration opened = new FolderConfiguration();
- opened.set(defConfig);
- opened.addQualifier(new ScreenOrientationQualifier(ScreenOrientation.LANDSCAPE));
- opened.addQualifier(new KeyboardStateQualifier(KeyboardState.EXPOSED));
- adp1.addConfig("Landscape, opened", opened);
-
- DeviceConfiguration ion = new DeviceConfiguration("Ion");
- ion.setXDpi(180.6f);
- ion.setYDpi(182.f);
- mLayoutDevices.add(ion);
- // default config
- defConfig = new FolderConfiguration();
- defConfig.addQualifier(new ScreenSizeQualifier(ScreenSize.NORMAL));
- defConfig.addQualifier(new ScreenRatioQualifier(ScreenRatio.NOTLONG));
- defConfig.addQualifier(new PixelDensityQualifier(Density.MEDIUM));
- defConfig.addQualifier(new TouchScreenQualifier(TouchScreenType.FINGER));
- defConfig.addQualifier(new KeyboardStateQualifier(KeyboardState.EXPOSED));
- defConfig.addQualifier(new TextInputMethodQualifier(TextInputMethod.NOKEY));
- defConfig.addQualifier(new NavigationMethodQualifier(NavigationMethod.TRACKBALL));
- defConfig.addQualifier(new ScreenDimensionQualifier(480, 320));
-
- // specific configs
- FolderConfiguration landscape = new FolderConfiguration();
- landscape.set(defConfig);
- landscape.addQualifier(new ScreenOrientationQualifier(ScreenOrientation.LANDSCAPE));
- ion.addConfig("Landscape", landscape);
-
- FolderConfiguration portrait = new FolderConfiguration();
- portrait.set(defConfig);
- portrait.addQualifier(new ScreenOrientationQualifier(ScreenOrientation.PORTRAIT));
- ion.addConfig("Portrait", portrait);
+ private void loadDefaultLayoutDevices() {
+ SAXParserFactory parserFactory = SAXParserFactory.newInstance();
+ parserFactory.setNamespaceAware(true);
+
+ File toolsFolder = new File(mManager.getLocation(), SdkConstants.OS_SDK_TOOLS_LIB_FOLDER);
+ if (toolsFolder.isDirectory()) {
+ File deviceXml = new File(toolsFolder, SdkConstants.FN_DEVICES_XML);
+ if (deviceXml.isFile()) {
+ parseLayoutDevices(parserFactory, deviceXml);
+ }
+ }
}
}
-
-
diff --git a/tools/scripts/devices.xml b/tools/scripts/devices.xml
new file mode 100644
index 000000000..e600a199a
--- /dev/null
+++ b/tools/scripts/devices.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0"?>
+<d:layout-configs
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:d="http://schemas.android.com/sdk/android/layout-configs/1">
+
+ <d:device name="ADP1">
+ <d:default>
+ <d:screen-size>normal</d:screen-size>
+ <d:screen-ratio>notlong</d:screen-ratio>
+ <d:screen-orientation>port</d:screen-orientation>
+ <d:pixel-density>mdpi</d:pixel-density>
+ <d:touch-type>finger</d:touch-type>
+ <d:text-input-method>qwerty</d:text-input-method>
+ <d:nav-method>trackball</d:nav-method>
+ <d:screen-dimension>
+ <d:size>320</d:size>
+ <d:size>480</d:size>
+ </d:screen-dimension>
+ <d:xdpi>180.6</d:xdpi>
+ <d:ydpi>182</d:ydpi>
+ </d:default>
+
+ <d:config name="Portrait">
+ <d:keyboard-state>keyssoft</d:keyboard-state>
+ <d:screen-orientation>port</d:screen-orientation>
+ </d:config>
+ <d:config name="Landscape, closed">
+ <d:keyboard-state>keyssoft</d:keyboard-state>
+ <d:screen-orientation>land</d:screen-orientation>
+ </d:config>
+ <d:config name="Landscape, open">
+ <d:keyboard-state>keysexposed</d:keyboard-state>
+ <d:screen-orientation>land</d:screen-orientation>
+ </d:config>
+ </d:device>
+
+ <d:device name="Ion">
+ <d:default>
+ <d:screen-size>normal</d:screen-size>
+ <d:screen-ratio>notlong</d:screen-ratio>
+ <d:screen-orientation>port</d:screen-orientation>
+ <d:pixel-density>mdpi</d:pixel-density>
+ <d:touch-type>finger</d:touch-type>
+ <d:keyboard-state>keyssoft</d:keyboard-state>
+ <d:text-input-method>nokeys</d:text-input-method>
+ <d:nav-method>trackball</d:nav-method>
+ <d:screen-dimension>
+ <d:size>320</d:size>
+ <d:size>480</d:size>
+ </d:screen-dimension>
+ <d:xdpi>180.6</d:xdpi>
+ <d:ydpi>182</d:ydpi>
+ </d:default>
+
+ <d:config name="Portrait">
+ <d:screen-orientation>port</d:screen-orientation>
+ </d:config>
+ <d:config name="Landscape">
+ <d:screen-orientation>land</d:screen-orientation>
+ </d:config>
+ </d:device>
+</d:layout-configs>