Remove automatic converstions to Object.
Bug 23348140
Change-Id: I6bdcb0982c2e755dc4ad0eb53b35e07d1ac9ebed
diff --git a/compiler/src/main/java/android/databinding/tool/store/SetterStore.java b/compiler/src/main/java/android/databinding/tool/store/SetterStore.java
index 6c51c25..b5b579a 100644
--- a/compiler/src/main/java/android/databinding/tool/store/SetterStore.java
+++ b/compiler/src/main/java/android/databinding/tool/store/SetterStore.java
@@ -676,6 +676,9 @@
private MethodDescription getConversionMethod(ModelClass from, ModelClass to,
Map<String, String> imports) {
if (from != null && to != null) {
+ if (to.isObject()) {
+ return null;
+ }
for (String fromClassName : mStore.conversionMethods.keySet()) {
try {
ModelClass convertFrom = mClassAnalyzer.findClass(fromClassName, imports);
diff --git a/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/FindMethodTest.java b/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/FindMethodTest.java
index f5f5c72..a7799dc 100644
--- a/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/FindMethodTest.java
+++ b/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/FindMethodTest.java
@@ -116,4 +116,11 @@
mBinder.executePendingBindings();
assertEquals("barfoo", mBinder.textView26.getText().toString());
}
+
+ @UiThreadTest
+ public void testPrimitiveToObject() throws Throwable {
+ mBinder.executePendingBindings();
+ assertTrue(mBinder.textView27.getTag() instanceof Integer);
+ assertEquals((Integer)1, mBinder.textView27.getTag());
+ }
}
diff --git a/integration-tests/TestApp/app/src/main/res/layout/find_method_test.xml b/integration-tests/TestApp/app/src/main/res/layout/find_method_test.xml
index 3755b73..509517f 100644
--- a/integration-tests/TestApp/app/src/main/res/layout/find_method_test.xml
+++ b/integration-tests/TestApp/app/src/main/res/layout/find_method_test.xml
@@ -11,7 +11,8 @@
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<variable name="obj" type="android.databinding.testapp.vo.FindMethodBindingObject"/>
<import type="android.databinding.testapp.vo.FindMethodBindingObject.Bar"/>
@@ -134,5 +135,9 @@
android:id="@+id/textView26"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="@{obj.observableClass.x}"/>
+ <TextView
+ android:id="@+id/textView27"
+ android:layout_width="wrap_content" android:layout_height="wrap_content"
+ app:tag="@{1}"/>
</LinearLayout>
</layout>
\ No newline at end of file