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.vo; 17 18 import android.content.Context; 19 import android.databinding.ObservableArrayList; 20 import android.databinding.ObservableArrayMap; 21 import android.databinding.ObservableBoolean; 22 import android.databinding.ObservableByte; 23 import android.databinding.ObservableChar; 24 import android.databinding.ObservableDouble; 25 import android.databinding.ObservableField; 26 import android.databinding.ObservableFloat; 27 import android.databinding.ObservableInt; 28 import android.databinding.ObservableLong; 29 import android.databinding.ObservableShort; 30 import android.widget.ArrayAdapter; 31 import android.widget.ListAdapter; 32 33 import java.util.concurrent.CountDownLatch; 34 35 public class TwoWayBindingObject { 36 private static final String[] VALUES = { 37 "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten" 38 }; 39 public final ListAdapter adapter; 40 public final ObservableInt selectedItemPosition = new ObservableInt(); 41 public final ObservableLong date = new ObservableLong(System.currentTimeMillis()); 42 public final ObservableBoolean checked = new ObservableBoolean(); 43 public final ObservableInt number = new ObservableInt(1); 44 public final ObservableFloat rating = new ObservableFloat(1); 45 public final ObservableInt progress = new ObservableInt(1); 46 public final ObservableInt currentTab = new ObservableInt(); 47 public final ObservableField<String> text = new ObservableField<>(); 48 public final ObservableInt hour = new ObservableInt(); 49 public final ObservableInt minute = new ObservableInt(); 50 public final ObservableInt year = new ObservableInt(1972); 51 public final ObservableInt month = new ObservableInt(9); 52 public final ObservableInt day = new ObservableInt(21); 53 public final ObservableArrayList<Integer> list = new ObservableArrayList<>(); 54 public final ObservableArrayMap<String, Integer> map = new ObservableArrayMap<>(); 55 public final ObservableField<int[]> array = new ObservableField<>(); 56 public final ObservableField<CharSequence> editText = new ObservableField<>(); 57 public final ObservableBoolean booleanField = new ObservableBoolean(); 58 public final ObservableByte byteField = new ObservableByte(); 59 public final ObservableShort shortField = new ObservableShort(); 60 public final ObservableInt intField = new ObservableInt(); 61 public final ObservableLong longField = new ObservableLong(); 62 public final ObservableFloat floatField = new ObservableFloat(); 63 public final ObservableDouble doubleField = new ObservableDouble(); 64 public final ObservableChar charField = new ObservableChar(); 65 public int text1Changes; 66 public int text2Changes; 67 public CountDownLatch textLatch; 68 69 public TwoWayBindingObject(Context context) { 70 this.adapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, VALUES); 71 int[] arr = new int[10]; 72 for (int i = 0; i < 10; i++) { 73 list.add(i); 74 arr[i] = i + 1; 75 } 76 array.set(arr); 77 for (int i = 0; i < VALUES.length; i++) { 78 map.put(VALUES[i], i + 1); 79 } 80 } 81 82 public void textChanged1(CharSequence s, int start, int before, int count) { 83 text1Changes++; 84 textLatch.countDown(); 85 } 86 87 public void textChanged2(CharSequence s, int start, int before, int count) { 88 text2Changes++; 89 textLatch.countDown(); 90 } 91 } 92