Home | History | Annotate | Download | only in vo
      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