aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSiva Velusamy <vsiva@google.com>2012-11-06 16:36:53 -0800
committerSiva Velusamy <vsiva@google.com>2012-11-06 16:37:56 -0800
commit5065448f1d979c5c0159c4ca3967d24bfedc2c98 (patch)
tree5410d89ae0c72b9f12f8b00231bfb645fb69225d
parentc31088897719dd995036616ff6d6785812c4a899 (diff)
downloadsdk-5065448f1d979c5c0159c4ca3967d24bfedc2c98.zip
sdk-5065448f1d979c5c0159c4ca3967d24bfedc2c98.tar.gz
sdk-5065448f1d979c5c0159c4ca3967d24bfedc2c98.tar.bz2
Assume Activity Aliases are just like activities.
Change-Id: Ide586077b63accc17cc3c4c68e0b62f06fe83b66
-rw-r--r--sdk_common/src/com/android/ide/common/xml/AndroidManifestParser.java3
-rw-r--r--sdk_common/tests/src/com/android/ide/common/xml/AndroidManifestParserTest.java16
-rw-r--r--sdkmanager/libs/sdklib/tests/src/com/android/sdklib/testdata/AndroidManifest-activityalias.xml23
3 files changed, 39 insertions, 3 deletions
diff --git a/sdk_common/src/com/android/ide/common/xml/AndroidManifestParser.java b/sdk_common/src/com/android/ide/common/xml/AndroidManifestParser.java
index 38dc1c4..7fde6ce 100644
--- a/sdk_common/src/com/android/ide/common/xml/AndroidManifestParser.java
+++ b/sdk_common/src/com/android/ide/common/xml/AndroidManifestParser.java
@@ -228,7 +228,8 @@ public class AndroidManifestParser {
}
break;
case LEVEL_INSIDE_APPLICATION:
- if (AndroidManifest.NODE_ACTIVITY.equals(localName)) {
+ if (AndroidManifest.NODE_ACTIVITY.equals(localName)
+ || AndroidManifest.NODE_ACTIVITY_ALIAS.equals(localName)) {
processActivityNode(attributes);
mValidLevel++;
} else if (AndroidManifest.NODE_SERVICE.equals(localName)) {
diff --git a/sdk_common/tests/src/com/android/ide/common/xml/AndroidManifestParserTest.java b/sdk_common/tests/src/com/android/ide/common/xml/AndroidManifestParserTest.java
index 1bd6402..fee6014 100644
--- a/sdk_common/tests/src/com/android/ide/common/xml/AndroidManifestParserTest.java
+++ b/sdk_common/tests/src/com/android/ide/common/xml/AndroidManifestParserTest.java
@@ -22,10 +22,10 @@ import com.android.resources.Keyboard;
import com.android.resources.Navigation;
import com.android.resources.TouchScreen;
-import java.io.InputStream;
-
import junit.framework.TestCase;
+import java.io.InputStream;
+
/**
* Tests for {@link AndroidManifestParser}
*/
@@ -39,6 +39,8 @@ public class AndroidManifestParserTest extends TestCase {
"AndroidManifest-instrumentation.xml"; //$NON-NLS-1$
private static final String TESTAPP_XML = TESTDATA_PATH +
"AndroidManifest-testapp.xml"; //$NON-NLS-1$
+ private static final String ACTIVITY_ALIAS_XML = TESTDATA_PATH +
+ "AndroidManifest-activityalias.xml"; //$NON-NLS-1$
private static final String PACKAGE_NAME = "com.android.testapp"; //$NON-NLS-1$
private static final Integer VERSION_CODE = 42;
private static final String ACTIVITY_NAME = "com.android.testapp.MainActivity"; //$NON-NLS-1$
@@ -160,4 +162,14 @@ public class AndroidManifestParserTest extends TestCase {
public void testGetPackageName() {
assertEquals(PACKAGE_NAME, mManifestTestApp.getPackage());
}
+
+ public void testActivityAlias() throws Exception {
+ InputStream manifestStream = this.getClass().getResourceAsStream(ACTIVITY_ALIAS_XML);
+
+ ManifestData manifest = AndroidManifestParser.parse(manifestStream);
+ assertNotNull(manifest);
+
+ assertEquals(manifest.getLauncherActivity().getName(),
+ "com.android.testapp.AliasActivity"); //$NON-NLS-1$
+ }
}
diff --git a/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/testdata/AndroidManifest-activityalias.xml b/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/testdata/AndroidManifest-activityalias.xml
new file mode 100644
index 0000000..6f63897
--- /dev/null
+++ b/sdkmanager/libs/sdklib/tests/src/com/android/sdklib/testdata/AndroidManifest-activityalias.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.testapp" android:versionCode="42"
+ android:versionName="1.42">
+
+ <application android:icon="@drawable/icon">
+ <activity android:name="com.android.testapp.MainActivity"
+ android:label="@string/app_name">
+ </activity>
+
+ <activity-alias android:name="com.android.testapp.AliasActivity"
+ android:label="@string/app_name"
+ android:targetActivity="com.android.testapp.MainActivity">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity-alias>
+ </application>
+
+ <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="8" />
+
+</manifest>