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 */ 16package android.databinding.testapp.vo; 17 18import android.databinding.ObservableBoolean; 19import android.databinding.ObservableByte; 20import android.databinding.ObservableChar; 21import android.databinding.ObservableDouble; 22import android.databinding.ObservableField; 23import android.databinding.ObservableFloat; 24import android.databinding.ObservableInt; 25import android.databinding.ObservableLong; 26import android.databinding.ObservableParcelable; 27import android.databinding.ObservableShort; 28import android.os.Parcel; 29import android.os.Parcelable; 30 31public class ObservableFieldBindingObject { 32 public final ObservableBoolean bField = new ObservableBoolean(); 33 public final ObservableByte tField = new ObservableByte(); 34 public final ObservableShort sField = new ObservableShort(); 35 public final ObservableChar cField = new ObservableChar(); 36 public final ObservableInt iField = new ObservableInt(); 37 public final ObservableLong lField = new ObservableLong(); 38 public final ObservableFloat fField = new ObservableFloat(); 39 public final ObservableDouble dField = new ObservableDouble(); 40 public final ObservableParcelable<MyParcelable> pField; 41 public final ObservableField<String> oField = new ObservableField<>(); 42 43 public ObservableFieldBindingObject() { 44 oField.set("Hello"); 45 MyParcelable myParcelable = new MyParcelable(3, "abc"); 46 pField = new ObservableParcelable(myParcelable); 47 } 48 49 public static class MyParcelable implements Parcelable { 50 int x; 51 String y; 52 53 public MyParcelable(int x, String y) { 54 this.x = x; 55 this.y = y; 56 } 57 58 @Override 59 public int describeContents() { 60 return 0; 61 } 62 63 @Override 64 public void writeToParcel(Parcel dest, int flags) { 65 dest.writeInt(x); 66 dest.writeString(y); 67 } 68 69 @Override 70 public boolean equals(Object o) { 71 if (this == o) { 72 return true; 73 } 74 if (o == null || getClass() != o.getClass()) { 75 return false; 76 } 77 78 MyParcelable that = (MyParcelable) o; 79 80 if (x != that.x) { 81 return false; 82 } 83 if (y != null ? !y.equals(that.y) : that.y != null) { 84 return false; 85 } 86 87 return true; 88 } 89 90 public int getX() { 91 return x; 92 } 93 94 public String getY() { 95 return y; 96 } 97 98 @Override 99 public int hashCode() { 100 int result = x; 101 result = 31 * result + (y != null ? y.hashCode() : 0); 102 return result; 103 } 104 105 public static final Parcelable.Creator<MyParcelable> CREATOR 106 = new Parcelable.Creator<MyParcelable>() { 107 108 @Override 109 public MyParcelable createFromParcel(Parcel source) { 110 return new MyParcelable(source.readInt(), source.readString()); 111 } 112 113 @Override 114 public MyParcelable[] newArray(int size) { 115 return new MyParcelable[size]; 116 } 117 }; 118 } 119} 120