1e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount/* 2e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount * Copyright (C) 2015 The Android Open Source Project 3e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount * 4e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount * Licensed under the Apache License, Version 2.0 (the "License"); 5e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount * you may not use this file except in compliance with the License. 6e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount * You may obtain a copy of the License at 7e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount * 8e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount * http://www.apache.org/licenses/LICENSE-2.0 9e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount * 10e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount * Unless required by applicable law or agreed to in writing, software 11e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount * distributed under the License is distributed on an "AS IS" BASIS, 12e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount * See the License for the specific language governing permissions and 14e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount * limitations under the License. 15e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount */ 16e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mountpackage android.databinding.testapp.adapter; 17e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount 18e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mountimport android.databinding.BindingAdapter; 19e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mountimport android.databinding.DataBindingComponent; 20e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mountimport android.databinding.testapp.TestComponent; 21e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mountimport android.widget.TextView; 22e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount 23e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mountpublic class InstanceAdapter { 24e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount private final String format; 25e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount 26e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount public InstanceAdapter(String format) { 27e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount this.format = format; 28e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount } 29e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount 30e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount @BindingAdapter("instanceAttr0") 31e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount public void setInstanceAttr0(TextView view, String text) { 32e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount view.setText(String.format(format, text, "foo", "bar", "baz")); 33e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount } 34e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount 35e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount @BindingAdapter({"instanceAttr1", "instanceAttr2"}) 36e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount public void setInstanceAttr1(TextView view, String text, String text2) { 37e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount view.setText(String.format(format, text, text2, "foo", "bar")); 38e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount } 39e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount 40e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount @BindingAdapter("instanceAttr3") 41e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount public void setInstanceAttr3(TextView view, String oldText, String text) { 42e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount view.setText(String.format(format, oldText, text, "foo", "bar")); 43e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount } 44e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount 45e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount @BindingAdapter({"instanceAttr4", "instanceAttr5"}) 46e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount public void setInstanceAttr4(TextView view, String oldText1, String oldText2, 47e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount String text1, String text2) { 48e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount view.setText(String.format(format, oldText1, oldText2, text1, text2)); 49e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount } 50e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount 51e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount @BindingAdapter("instanceAttr6") 52e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount public static void setInstanceAttr6(DataBindingComponent component, TextView view, String text) { 53e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount view.setText(String.format("%s %s", text, component == null ? "null" : "component")); 54e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount } 55e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount 56e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount @BindingAdapter("instanceAttr7") 57e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount public void setInstanceAttr7(DataBindingComponent component, TextView view, String text) { 58e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount view.setText(String.format(format, text, component == null ? "null" : "component", "bar", "baz")); 59e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount } 60e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount 61e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount @BindingAdapter({"instanceAttr8", "instanceAttr9"}) 62e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount public void setInstanceAttr8(TestComponent component, TextView view, String text, String text2) { 63e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount view.setText(String.format(format, text, text2, component == null ? "null" : "component", 64e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount "bar")); 65e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount } 66e4cd38824a6627b9fef229c549c636e35ad63b5fGeorge Mount} 67