summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2016-05-11 21:38:56 +0000
committerandroid-build-merger <android-build-merger@google.com>2016-05-11 21:38:56 +0000
commit0b0b3c36604e1e2aa040e3023d59e61dbc27b44b (patch)
treed315f4b45c37586daeffe3c9003253c9cc58ec55
parent0b88111151bad44cb829e958c436f4191e16ab81 (diff)
parentec9ad673825dec1e43fd7596a97f03c0709140ea (diff)
downloaddata-binding-0b0b3c36604e1e2aa040e3023d59e61dbc27b44b.tar.gz
Fix using custom Views in data binding layouts near includes.
am: ec9ad67382 * commit 'ec9ad673825dec1e43fd7596a97f03c0709140ea': Fix using custom Views in data binding layouts near includes. Change-Id: I71fbfcc2e9e6f8a11da0aa3c11769f0528601cf8
-rw-r--r--extensions/library/src/main/java/android/databinding/ViewDataBinding.java10
1 files changed, 6 insertions, 4 deletions
diff --git a/extensions/library/src/main/java/android/databinding/ViewDataBinding.java b/extensions/library/src/main/java/android/databinding/ViewDataBinding.java
index f50267b8..70c79c41 100644
--- a/extensions/library/src/main/java/android/databinding/ViewDataBinding.java
+++ b/extensions/library/src/main/java/android/databinding/ViewDataBinding.java
@@ -989,7 +989,8 @@ public abstract class ViewDataBinding extends BaseObservable {
if (existingBinding != null) {
return;
}
- final String tag = (String) view.getTag();
+ Object objTag = view.getTag();
+ final String tag = (objTag instanceof String) ? (String) objTag : null;
boolean isBound = false;
if (isRoot && tag != null && tag.startsWith("layout")) {
final int underscoreIndex = tag.lastIndexOf('_');
@@ -1032,9 +1033,9 @@ public abstract class ViewDataBinding extends BaseObservable {
for (int i = 0; i < count; i++) {
final View child = viewGroup.getChildAt(i);
boolean isInclude = false;
- if (indexInIncludes >= 0) {
+ if (indexInIncludes >= 0 && child.getTag() instanceof String) {
String childTag = (String) child.getTag();
- if (childTag != null && childTag.endsWith("_0") &&
+ if (childTag.endsWith("_0") &&
childTag.startsWith("layout") && childTag.indexOf('/') > 0) {
// This *could* be an include. Test against the expected includes.
int includeIndex = findIncludeIndex(childTag, minInclude,
@@ -1094,7 +1095,8 @@ public abstract class ViewDataBinding extends BaseObservable {
int max = firstIncludedIndex;
for (int i = firstIncludedIndex + 1; i < count; i++) {
final View view = viewGroup.getChildAt(i);
- final String tag = (String) view.getTag();
+ final Object objTag = view.getTag();
+ final String tag = objTag instanceof String ? (String) view.getTag() : null;
if (tag != null && tag.startsWith(tagBase)) {
if (tag.length() == firstViewTag.length() && tag.charAt(tag.length() - 1) == '0') {
return max; // Found another instance of the include