Load default GLE device profiles from the SDK.

Change-Id: Ife64397692912f892ec81af8237ac31914830be9
This commit is contained in:
Xavier Ducrohet
2009-09-30 23:01:19 -07:00
parent 69940e9bab
commit 227b8768fa
3 changed files with 76 additions and 80 deletions

View File

@@ -57,10 +57,11 @@ development/tools/scripts/layout.template platforms/${PLATFORM_NAME}/templates/l
development/tools/scripts/strings.template platforms/${PLATFORM_NAME}/templates/strings.template
development/tools/scripts/android_rules.xml platforms/${PLATFORM_NAME}/templates/android_rules.xml
development/tools/scripts/android_test_rules.xml platforms/${PLATFORM_NAME}/templates/android_test_rules.xml
development/tools/scripts/build.template tools/lib/build.template
development/tools/scripts/icon_ldpi.png platforms/${PLATFORM_NAME}/templates/icon_ldpi.png
development/tools/scripts/icon_mdpi.png platforms/${PLATFORM_NAME}/templates/icon_mdpi.png
development/tools/scripts/icon_hdpi.png platforms/${PLATFORM_NAME}/templates/icon_hdpi.png
development/tools/scripts/build.template tools/lib/build.template
tools/scripts/devices.xml tools/lib/devices.xml
# emacs support
development/tools/scripts/android.el tools/lib/android.el

View File

@@ -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));
private void loadDefaultLayoutDevices() {
SAXParserFactory parserFactory = SAXParserFactory.newInstance();
parserFactory.setNamespaceAware(true);
// 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);
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);
}
}
}
}

62
tools/scripts/devices.xml Normal file
View File

@@ -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>