From b73102d49e8875d70e72ce5d5fdd49382c9bbe34 Mon Sep 17 00:00:00 2001 From: Eugene Kudelevsky Date: Tue, 6 Sep 2011 13:29:32 +0400 Subject: [PATCH] IDEA-73890 android manifest dom: support intents completion for receiver and provider elements --- .../android/dom/manifest/AndroidManifestUtils.java | 2 +- .../org/jetbrains/android/dom/manifest/Receiver.java | 6 ++++++ .../org/jetbrains/android/dom/manifest/Service.java | 6 ++++++ .../testData/dom/manifest/intentsCompletion1.xml | 11 +++++++++++ .../dom/manifest/intentsCompletion1_after.xml | 11 +++++++++++ .../testData/dom/manifest/intentsCompletion2.xml | 11 +++++++++++ .../dom/manifest/intentsCompletion2_after.xml | 11 +++++++++++ .../jetbrains/android/dom/AndroidManifestDomTest.java | 8 ++++++++ 8 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 plugins/android/testData/dom/manifest/intentsCompletion1.xml create mode 100644 plugins/android/testData/dom/manifest/intentsCompletion1_after.xml create mode 100644 plugins/android/testData/dom/manifest/intentsCompletion2.xml create mode 100644 plugins/android/testData/dom/manifest/intentsCompletion2_after.xml diff --git a/plugins/android/src/org/jetbrains/android/dom/manifest/AndroidManifestUtils.java b/plugins/android/src/org/jetbrains/android/dom/manifest/AndroidManifestUtils.java index a1ce9837da1d..b2e2e980b5a7 100644 --- a/plugins/android/src/org/jetbrains/android/dom/manifest/AndroidManifestUtils.java +++ b/plugins/android/src/org/jetbrains/android/dom/manifest/AndroidManifestUtils.java @@ -81,7 +81,7 @@ public class AndroidManifestUtils { else if (element instanceof Application) { Collections.addAll(strings, "activity", "service", "provider", "receiver", "uses-library"); } - else if (element instanceof Activity || element instanceof ActivityAlias) { + else if (element instanceof Activity || element instanceof ActivityAlias || element instanceof Receiver || element instanceof Service) { strings.add("intent-filter"); } else if (element instanceof IntentFilter) { diff --git a/plugins/android/src/org/jetbrains/android/dom/manifest/Receiver.java b/plugins/android/src/org/jetbrains/android/dom/manifest/Receiver.java index 8a824af1cf5a..770e7c5db6c4 100644 --- a/plugins/android/src/org/jetbrains/android/dom/manifest/Receiver.java +++ b/plugins/android/src/org/jetbrains/android/dom/manifest/Receiver.java @@ -21,6 +21,8 @@ import org.jetbrains.android.dom.AndroidAttributeValue; import org.jetbrains.android.dom.converters.PackageClassConverter; import org.jetbrains.android.util.AndroidUtils; +import java.util.List; + /** * @author yole */ @@ -31,4 +33,8 @@ public interface Receiver extends ApplicationComponent { @Convert(PackageClassConverter.class) @ExtendClass(AndroidUtils.RECEIVER_CLASS_NAME) AndroidAttributeValue getReceiverClass(); + + List getIntentFilters(); + + IntentFilter addIntentFilter(); } \ No newline at end of file diff --git a/plugins/android/src/org/jetbrains/android/dom/manifest/Service.java b/plugins/android/src/org/jetbrains/android/dom/manifest/Service.java index 22a8f8c01a97..c693755c7092 100644 --- a/plugins/android/src/org/jetbrains/android/dom/manifest/Service.java +++ b/plugins/android/src/org/jetbrains/android/dom/manifest/Service.java @@ -21,6 +21,8 @@ import org.jetbrains.android.dom.AndroidAttributeValue; import org.jetbrains.android.dom.converters.PackageClassConverter; import org.jetbrains.android.util.AndroidUtils; +import java.util.List; + /** * @author yole */ @@ -31,4 +33,8 @@ public interface Service extends ApplicationComponent { @Convert(PackageClassConverter.class) @ExtendClass(AndroidUtils.SERVICE_CLASS_NAME) AndroidAttributeValue getServiceClass(); + + List getIntentFilters(); + + IntentFilter addIntentFilter(); } diff --git a/plugins/android/testData/dom/manifest/intentsCompletion1.xml b/plugins/android/testData/dom/manifest/intentsCompletion1.xml new file mode 100644 index 000000000000..053aa4ed1aec --- /dev/null +++ b/plugins/android/testData/dom/manifest/intentsCompletion1.xml @@ -0,0 +1,11 @@ + + + + + + + + + + \ No newline at end of file diff --git a/plugins/android/testData/dom/manifest/intentsCompletion1_after.xml b/plugins/android/testData/dom/manifest/intentsCompletion1_after.xml new file mode 100644 index 000000000000..a92ef89a7be8 --- /dev/null +++ b/plugins/android/testData/dom/manifest/intentsCompletion1_after.xml @@ -0,0 +1,11 @@ + + + + + + + + + + \ No newline at end of file diff --git a/plugins/android/testData/dom/manifest/intentsCompletion2.xml b/plugins/android/testData/dom/manifest/intentsCompletion2.xml new file mode 100644 index 000000000000..2d32d88eca25 --- /dev/null +++ b/plugins/android/testData/dom/manifest/intentsCompletion2.xml @@ -0,0 +1,11 @@ + + + + + + + + + + \ No newline at end of file diff --git a/plugins/android/testData/dom/manifest/intentsCompletion2_after.xml b/plugins/android/testData/dom/manifest/intentsCompletion2_after.xml new file mode 100644 index 000000000000..8eb309fdb2e8 --- /dev/null +++ b/plugins/android/testData/dom/manifest/intentsCompletion2_after.xml @@ -0,0 +1,11 @@ + + + + + + + + + + \ No newline at end of file diff --git a/plugins/android/testSrc/org/jetbrains/android/dom/AndroidManifestDomTest.java b/plugins/android/testSrc/org/jetbrains/android/dom/AndroidManifestDomTest.java index f5f3268b6bfd..b43a7a8db03b 100644 --- a/plugins/android/testSrc/org/jetbrains/android/dom/AndroidManifestDomTest.java +++ b/plugins/android/testSrc/org/jetbrains/android/dom/AndroidManifestDomTest.java @@ -154,4 +154,12 @@ public class AndroidManifestDomTest extends AndroidDomTest { copyFileToProject("MyActivity.java", "src/p1/p2/MyActivity.java"); doTestCompletion(false); } + + public void testIntentsCompletion1() throws Throwable { + doTestCompletion(); + } + + public void testIntentsCompletion2() throws Throwable { + doTestCompletion(); + } }