summaryrefslogtreecommitdiff
path: root/integration-tests/TestApp/app/src/main/java/android/databinding
diff options
context:
space:
mode:
authorYigit Boyar <yboyar@google.com>2015-04-29 19:49:41 -0700
committerYigit Boyar <yboyar@google.com>2015-04-30 15:32:34 -0700
commite9b33bac04bb1ce1444d7f1744fcec1ecd3a57da (patch)
treedac2454bf8fae14152c532d36300407dfbf330f1 /integration-tests/TestApp/app/src/main/java/android/databinding
parentcffffe30fe53455856d3d41724b9d5dd21aebf9a (diff)
downloaddata-binding-e9b33bac04bb1ce1444d7f1744fcec1ecd3a57da.tar.gz
Support multi-param adapters in code generation
Bug: 19800022 Change-Id: I40c4ac72f24f965db12fd1c7dec6591184160ae5
Diffstat (limited to 'integration-tests/TestApp/app/src/main/java/android/databinding')
-rw-r--r--integration-tests/TestApp/app/src/main/java/android/databinding/testapp/adapter/MultiArgTestAdapter.java103
-rw-r--r--integration-tests/TestApp/app/src/main/java/android/databinding/testapp/vo/MultiAdapterSetterObj.java26
2 files changed, 129 insertions, 0 deletions
diff --git a/integration-tests/TestApp/app/src/main/java/android/databinding/testapp/adapter/MultiArgTestAdapter.java b/integration-tests/TestApp/app/src/main/java/android/databinding/testapp/adapter/MultiArgTestAdapter.java
new file mode 100644
index 00000000..a2702798
--- /dev/null
+++ b/integration-tests/TestApp/app/src/main/java/android/databinding/testapp/adapter/MultiArgTestAdapter.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.databinding.testapp.adapter;
+
+
+import android.databinding.BaseObservable;
+import android.databinding.Bindable;
+import android.databinding.BindingAdapter;
+import android.view.View;
+import android.databinding.testapp.BR;
+import android.widget.TextView;
+
+import org.apache.commons.lang3.StringUtils;
+
+public class MultiArgTestAdapter {
+
+ public static String join(BaseMultiBindingClass... classes) {
+ StringBuilder sb = new StringBuilder();
+ for(BaseMultiBindingClass instance : classes) {
+ sb.append(instance == null ? "??" : instance.getValue());
+ }
+ return sb.toString();
+ }
+
+ public static String join(String... strings) {
+ StringBuilder sb = new StringBuilder();
+ for(String str : strings) {
+ sb.append(str == null ? "??" : str);
+ }
+ return sb.toString();
+
+ }
+
+ @BindingAdapter(attributes={"android:class1", "android:class2"})
+ public static void setBoth(TextView view, MultiBindingClass1 class1,
+ MultiBindingClass2 class2) {
+ view.setText(join(class1, class2));
+ }
+
+ @BindingAdapter(attributes={"android:class1str", "android:class2str"})
+ public static void setBoth(TextView view, String str1,
+ String str2) {
+ view.setText(join(str1, str2));
+ }
+
+ @BindingAdapter(attributes={"android:class1"})
+ public static void setClass1(TextView view, MultiBindingClass1 class1) {
+ view.setText(class1.getValue());
+ }
+
+ @BindingAdapter(attributes={"android:classStr"})
+ public static void setClassStr(TextView view, String str) {
+ view.setText(str);
+ }
+
+ @BindingAdapter(attributes={"android:class2"})
+ public static void setClass2(TextView view, MultiBindingClass2 class2) {
+ view.setText(class2.getValue());
+ }
+
+ public static class MultiBindingClass1 extends BaseMultiBindingClass {
+
+ }
+
+ public static class MultiBindingClass2 extends BaseMultiBindingClass {
+
+ }
+
+ public static class BaseMultiBindingClass extends BaseObservable {
+ View mSetOn;
+ @Bindable
+ String mValue;
+ public View getSetOn() {
+ return mSetOn;
+ }
+
+ public String getValue() {
+ return mValue;
+ }
+
+ public void setValue(String value, boolean notify) {
+ mValue = value;
+ if (notify) {
+ notifyPropertyChanged(BR.value);
+ }
+ }
+
+ public void clear() {
+ mSetOn = null;
+ }
+ }
+}
diff --git a/integration-tests/TestApp/app/src/main/java/android/databinding/testapp/vo/MultiAdapterSetterObj.java b/integration-tests/TestApp/app/src/main/java/android/databinding/testapp/vo/MultiAdapterSetterObj.java
new file mode 100644
index 00000000..c23a41a8
--- /dev/null
+++ b/integration-tests/TestApp/app/src/main/java/android/databinding/testapp/vo/MultiAdapterSetterObj.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (C) 2015 The Android Open Source Project
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.databinding.testapp.vo;
+
+import android.view.View;
+
+public class MultiAdapterSetterObj {
+ public boolean isClickable;
+ public View.OnClickListener onClickListener = new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+
+ }
+ };
+}