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