From a0edd0395022f2243a354a1ace6dcdae817fdc35 Mon Sep 17 00:00:00 2001 From: Jerome Gaillard Date: Mon, 2 Mar 2015 17:19:35 +0000 Subject: Fixes refactor bug when renaming style that has children When renaming a style using refactoring, the case where some child style has the parent value written starting with '@' was not handled properly. Change-Id: I2540839bafe22f565f5ed12b05cc6dcf28fb2ce8 --- .../jetbrains/android/dom/converters/ParentStyleConverter.java | 9 +++++++++ android/testData/rename/styles10.xml | 7 +++++++ android/testData/rename/styles10_after.xml | 7 +++++++ android/testSrc/org/jetbrains/android/AndroidRenameTest.java | 4 ++++ 4 files changed, 27 insertions(+) create mode 100644 android/testData/rename/styles10.xml create mode 100644 android/testData/rename/styles10_after.xml diff --git a/android/src/org/jetbrains/android/dom/converters/ParentStyleConverter.java b/android/src/org/jetbrains/android/dom/converters/ParentStyleConverter.java index 5c71d0eb9b4..d052b5ac4e0 100644 --- a/android/src/org/jetbrains/android/dom/converters/ParentStyleConverter.java +++ b/android/src/org/jetbrains/android/dom/converters/ParentStyleConverter.java @@ -27,6 +27,7 @@ import org.jetbrains.android.dom.resources.ResourceNameConverter; import org.jetbrains.android.dom.resources.ResourceValue; import org.jetbrains.android.facet.AndroidFacet; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.ArrayList; import java.util.List; @@ -105,4 +106,12 @@ public class ParentStyleConverter extends ResourceReferenceConverter { } return result.toArray(new PsiReference[result.size()]); } + + @Override + public String toString(@Nullable ResourceValue element, ConvertContext context) { + if (element.getPrefix() == '@') { + return element.toString(); + } + return super.toString(element, context); + } } diff --git a/android/testData/rename/styles10.xml b/android/testData/rename/styles10.xml new file mode 100644 index 00000000000..1aa170a1489 --- /dev/null +++ b/android/testData/rename/styles10.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/android/testData/rename/styles10_after.xml b/android/testData/rename/styles10_after.xml new file mode 100644 index 00000000000..5ad6249c122 --- /dev/null +++ b/android/testData/rename/styles10_after.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/android/testSrc/org/jetbrains/android/AndroidRenameTest.java b/android/testSrc/org/jetbrains/android/AndroidRenameTest.java index a3aa557d1ba..81b46637bef 100644 --- a/android/testSrc/org/jetbrains/android/AndroidRenameTest.java +++ b/android/testSrc/org/jetbrains/android/AndroidRenameTest.java @@ -219,6 +219,10 @@ public class AndroidRenameTest extends AndroidTestCase { doTestStyleInheritance("styles9.xml", "styles9_after.xml"); } + public void testStyleInheritance9() throws Throwable { + doTestStyleInheritance("styles10.xml", "styles10_after.xml"); + } + private void doTestStyleInheritance(String before, String after) throws IOException { doTestStyleInheritance(before, after, "newStyle"); } -- cgit v1.2.3