1 /* 2 * Copyright (C) 2015 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package android.databinding.testapp.adapter; 17 18 import android.annotation.TargetApi; 19 import android.databinding.BindingAdapter; 20 import android.os.Build.VERSION_CODES; 21 import android.view.View; 22 23 public class WeirdListeners { 24 @BindingAdapter("android:onFoo") 25 public static void setListener(View view, OnFoo onFoo) {} 26 27 @BindingAdapter("android:onFoo2") 28 public static void setListener(View view, OnFoo2 onFoo) {} 29 30 @BindingAdapter("android:onBar1") 31 public static void setListener(View view, OnBar1 onBar) {} 32 33 @BindingAdapter("android:onBar2") 34 public static void setListener(View view, OnBar2 onBar) {} 35 36 @BindingAdapter({"runnable", "fooId", "barId"}) 37 public static void setRunnable(View view, Runnable runnable, int foo, int bar) { 38 runnable.run(); 39 } 40 41 @TargetApi(VERSION_CODES.ICE_CREAM_SANDWICH) 42 public static abstract class OnFoo { 43 public abstract void onFoo(); 44 45 public void onBar() {} 46 } 47 48 public interface OnFoo2 { 49 void onFoo(); 50 } 51 52 @TargetApi(VERSION_CODES.ICE_CREAM_SANDWICH) 53 public interface OnBar1 { 54 void onBar(); 55 } 56 57 @TargetApi(VERSION_CODES.GINGERBREAD) 58 public interface OnBar2 { 59 boolean onBar(View view); 60 } 61 } 62