summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2016-01-14 10:38:08 -0800
committerGeorge Mount <mount@google.com>2016-01-15 13:31:42 -0800
commit99d74030fe5856572bd4b569bc04d2a11258f202 (patch)
treeb13959677c5b6a0172150414ec26dc2edc168a39
parentd3f2b9229472c9dae9bf4ae8b3e2d653b5653b01 (diff)
downloaddata-binding-99d74030fe5856572bd4b569bc04d2a11258f202.tar.gz
Fixed warning when using a color resource.
Bug 26254496 Change-Id: Ied6b942fada3a99ec331ad59f2f5ee6e6c33a20b
-rw-r--r--compiler/src/main/java/android/databinding/annotationprocessor/ProcessDataBinding.java2
-rw-r--r--compiler/src/main/java/android/databinding/tool/expr/ResourceExpr.java2
-rw-r--r--compiler/src/main/kotlin/android/databinding/tool/writer/DynamicUtilWriter.kt11
-rw-r--r--integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/TextViewBindingAdapterTest.java7
-rw-r--r--integration-tests/TestApp/app/src/main/res/layout/text_view_adapter_test.xml5
5 files changed, 24 insertions, 3 deletions
diff --git a/compiler/src/main/java/android/databinding/annotationprocessor/ProcessDataBinding.java b/compiler/src/main/java/android/databinding/annotationprocessor/ProcessDataBinding.java
index 5d563b0b..4d1fadb3 100644
--- a/compiler/src/main/java/android/databinding/annotationprocessor/ProcessDataBinding.java
+++ b/compiler/src/main/java/android/databinding/annotationprocessor/ProcessDataBinding.java
@@ -103,7 +103,7 @@ public class ProcessDataBinding extends AbstractProcessor {
mLibraryProject = libraryProject;
mMinSdk = minSdk;
considerWritingMapper();
- //mChef.writeDynamicUtil();
+ mChef.writeDynamicUtil();
}
private void considerWritingMapper() {
diff --git a/compiler/src/main/java/android/databinding/tool/expr/ResourceExpr.java b/compiler/src/main/java/android/databinding/tool/expr/ResourceExpr.java
index 7a3b853f..752cb9f8 100644
--- a/compiler/src/main/java/android/databinding/tool/expr/ResourceExpr.java
+++ b/compiler/src/main/java/android/databinding/tool/expr/ResourceExpr.java
@@ -151,7 +151,7 @@ public class ResourceExpr extends Expr {
if ("anim".equals(mResourceType)) return "android.view.animation.AnimationUtils.loadAnimation(" + context + ", " + resourceName + ")";
if ("animator".equals(mResourceType)) return "android.animation.AnimatorInflater.loadAnimator(" + context + ", " + resourceName + ")";
if ("bool".equals(mResourceType)) return resources + ".getBoolean(" + resourceName + ")";
- if ("color".equals(mResourceType)) return resources + ".getColor(" + resourceName + ")";
+ if ("color".equals(mResourceType)) return "android.databinding.DynamicUtil.getColorFromResource(getRoot(), " + resourceName + ")";
if ("colorStateList".equals(mResourceType)) return "getColorStateListFromResource(" + resourceName + ")";
if ("dimen".equals(mResourceType)) return resources + ".getDimension(" + resourceName + ")";
if ("dimenOffset".equals(mResourceType)) return resources + ".getDimensionPixelOffset(" + resourceName + ")";
diff --git a/compiler/src/main/kotlin/android/databinding/tool/writer/DynamicUtilWriter.kt b/compiler/src/main/kotlin/android/databinding/tool/writer/DynamicUtilWriter.kt
index 07911e9b..34ac043c 100644
--- a/compiler/src/main/kotlin/android/databinding/tool/writer/DynamicUtilWriter.kt
+++ b/compiler/src/main/kotlin/android/databinding/tool/writer/DynamicUtilWriter.kt
@@ -7,6 +7,17 @@ class DynamicUtilWriter() {
nl("import android.os.Build.VERSION_CODES;")
nl("")
nl("public class DynamicUtil {")
+ tab("@SuppressWarnings(\"deprecation\")")
+ tab("public static int getColorFromResource(final android.view.View root, final int resourceId) {") {
+ if (targetSdk >= 23) {
+ tab("if (VERSION.SDK_INT >= VERSION_CODES.M) {") {
+ tab("return root.getContext().getColor(resourceId);")
+ }
+ tab("}")
+ }
+ tab("return root.getResources().getColor(resourceId);")
+ }
+ tab("}")
nl("}")
}
} \ No newline at end of file
diff --git a/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/TextViewBindingAdapterTest.java b/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/TextViewBindingAdapterTest.java
index 13814ae2..c6bc6715 100644
--- a/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/TextViewBindingAdapterTest.java
+++ b/integration-tests/TestApp/app/src/androidTestApi7/java/android/databinding/testapp/TextViewBindingAdapterTest.java
@@ -308,4 +308,11 @@ public class TextViewBindingAdapterTest
assertNotNull(textView.getTextColors());
}
+ @UiThreadTest
+ public void testTextWithColor() throws Throwable {
+ TextView textView = mBinder.textWithColor;
+ int expectedColor = mBinder.getRoot().getResources().getColor(
+ android.R.color.holo_blue_bright);
+ assertEquals(expectedColor, textView.getCurrentTextColor());
+ }
}
diff --git a/integration-tests/TestApp/app/src/main/res/layout/text_view_adapter_test.xml b/integration-tests/TestApp/app/src/main/res/layout/text_view_adapter_test.xml
index 1502e959..43b11da0 100644
--- a/integration-tests/TestApp/app/src/main/res/layout/text_view_adapter_test.xml
+++ b/integration-tests/TestApp/app/src/main/res/layout/text_view_adapter_test.xml
@@ -84,6 +84,9 @@
android:id="@+id/textWithTheme"
android:textColor="@{@colorStateList/text_colors}"
/>
-
+ <TextView android:layout_width="match_parent" android:layout_height="match_parent"
+ android:id="@+id/textWithColor"
+ android:textColor="@{@android:color/holo_blue_bright}"
+ />
</LinearLayout>
</layout> \ No newline at end of file