diff options
author | George Mount <mount@google.com> | 2016-01-15 21:51:59 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-01-15 21:51:59 +0000 |
commit | b91ce25d417ffd3725252c94b256991f2cd86cec (patch) | |
tree | 79ba6f22badae2e46075dcfb2739558805c29394 | |
parent | 3b920788e90bb0abe615a5d5c899915f0014444b (diff) | |
parent | 99d74030fe5856572bd4b569bc04d2a11258f202 (diff) | |
download | data-binding-b91ce25d417ffd3725252c94b256991f2cd86cec.tar.gz |
Merge "Fixed warning when using a color resource." into studio-master-dev
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 |