/* * 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.BindingAdapter; import android.databinding.testapp.GenericView; import android.widget.TextView; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; import java.util.List; public class GenericAdapter { @BindingAdapter("textList1") public static void setListText(TextView view, List list) { setText(view, list); } @BindingAdapter("textList2") public static void setCollectionText(TextView view, Collection list) { setText(view, list); } @BindingAdapter("textArray") public static void setArrayText(TextView view, T[] values) { setText(view, Arrays.asList(values)); } @BindingAdapter({"textList1", "textArray"}) public static void setListAndArray(TextView view, List list, T[] values) { setText(view, list); } @BindingAdapter("list") public static void setGenericViewValue(GenericView view, List value) { view.setList(value); } @BindingAdapter({"list", "array"}) public static void setGenericListAndArray(GenericView view, List list, T[] values) { view.setList(list); } @BindingAdapter("textList3") public static void setGenericList(TextView view, List list) { setText(view, list); } @BindingAdapter("textList3") public static void setGenericIntegerList(TextView view, List list) { } private static void setText(TextView view, Collection collection) { StringBuilder stringBuilder = new StringBuilder(); boolean isFirst = true; for (T val : collection) { if (isFirst) { isFirst = false; } else { stringBuilder.append(' '); } stringBuilder.append(val.toString()); } view.setText(stringBuilder.toString()); } }