diff options
author | George Mount <mount@google.com> | 2016-01-14 10:38:08 -0800 |
---|---|---|
committer | George Mount <mount@google.com> | 2016-01-15 13:31:42 -0800 |
commit | 99d74030fe5856572bd4b569bc04d2a11258f202 (patch) | |
tree | b13959677c5b6a0172150414ec26dc2edc168a39 | |
parent | d3f2b9229472c9dae9bf4ae8b3e2d653b5653b01 (diff) | |
download | data-binding-99d74030fe5856572bd4b569bc04d2a11258f202.tar.gz |
Fixed warning when using a color resource.
Bug 26254496
Change-Id: Ied6b942fada3a99ec331ad59f2f5ee6e6c33a20b
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 |