summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt6
-rw-r--r--integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/BasicBindingTest.java9
-rw-r--r--integration-tests/TestApp/app/src/main/res/layout/just_id.xml5
3 files changed, 19 insertions, 1 deletions
diff --git a/compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt b/compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt
index f3bb53c8..6fd79cfa 100644
--- a/compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt
+++ b/compiler/src/main/kotlin/android/databinding/tool/writer/LayoutBinderWriter.kt
@@ -109,7 +109,11 @@ val BindingTarget.fieldName : String by Delegates.lazy { target : BindingTarget
}
val BindingTarget.androidId by Delegates.lazy { target : BindingTarget ->
- "R.id.${target.getId().androidId()}"
+ if (target.getId().startsWith("@android:id/")) {
+ "android.R.id.${target.getId().androidId()}"
+ } else {
+ "R.id.${target.getId().androidId()}"
+ }
}
val BindingTarget.interfaceType by Delegates.lazy { target : BindingTarget ->
diff --git a/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/BasicBindingTest.java b/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/BasicBindingTest.java
index d7bd2819..cfae4cc6 100644
--- a/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/BasicBindingTest.java
+++ b/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/BasicBindingTest.java
@@ -22,6 +22,7 @@ import android.databinding.testapp.databinding.JustIdBinding;
import android.test.UiThreadTest;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.TextView;
public class BasicBindingTest extends BaseDataBinderTest<BasicBindingBinding> {
public BasicBindingTest() {
@@ -152,6 +153,14 @@ public class BasicBindingTest extends BaseDataBinderTest<BasicBindingBinding> {
assertNotSame(binding.textView, mBinder.textView);
}
+ @UiThreadTest
+ public void testAndroidId() throws Throwable {
+ JustIdBinding binding = JustIdBinding.inflate(getActivity().getLayoutInflater());
+ assertNotNull(binding);
+ assertNotNull(binding.empty);
+ assertTrue(binding.empty instanceof TextView);
+ }
+
private void assertAB(String a, String b) {
mBinder.setA(a);
mBinder.setB(b);
diff --git a/integration-tests/TestApp/app/src/main/res/layout/just_id.xml b/integration-tests/TestApp/app/src/main/res/layout/just_id.xml
index 211761ad..47860f91 100644
--- a/integration-tests/TestApp/app/src/main/res/layout/just_id.xml
+++ b/integration-tests/TestApp/app/src/main/res/layout/just_id.xml
@@ -22,5 +22,10 @@
android:text="Hello World"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
+ <TextView
+ android:id="@android:id/empty"
+ android:text="Hello World"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"/>
</LinearLayout>
</layout> \ No newline at end of file