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