diff options
author | Yigit Boyar <yboyar@google.com> | 2015-06-18 17:24:17 -0700 |
---|---|---|
committer | Yigit Boyar <yboyar@google.com> | 2015-06-22 11:35:57 -0700 |
commit | d37b47419005587c52ca4c099432327b7f06478d (patch) | |
tree | 02474cf3864603ba20a5da4cceb13b63905c7688 /integration-tests/TestApp/app/src/main/java/android/databinding/testapp | |
parent | 2ac58b34e5200a34b0ba63884c375a68c9a84303 (diff) | |
download | data-binding-d37b47419005587c52ca4c099432327b7f06478d.tar.gz |
Make observables parcelable
We got some feedback where people want to keep their View presenter
classes parcelable. This CL makes observables parcelable and
their lists transient to allow this.
Bug: 21785040
Change-Id: I76adc7d7ca3876c83fd8749f6dbcf02a926c97c2
Diffstat (limited to 'integration-tests/TestApp/app/src/main/java/android/databinding/testapp')
-rw-r--r-- | integration-tests/TestApp/app/src/main/java/android/databinding/testapp/vo/ObservableFieldBindingObject.java | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/integration-tests/TestApp/app/src/main/java/android/databinding/testapp/vo/ObservableFieldBindingObject.java b/integration-tests/TestApp/app/src/main/java/android/databinding/testapp/vo/ObservableFieldBindingObject.java index 87127fef..5f1fcb38 100644 --- a/integration-tests/TestApp/app/src/main/java/android/databinding/testapp/vo/ObservableFieldBindingObject.java +++ b/integration-tests/TestApp/app/src/main/java/android/databinding/testapp/vo/ObservableFieldBindingObject.java @@ -23,7 +23,10 @@ import android.databinding.ObservableField; import android.databinding.ObservableFloat; import android.databinding.ObservableInt; import android.databinding.ObservableLong; +import android.databinding.ObservableParcelable; import android.databinding.ObservableShort; +import android.os.Parcel; +import android.os.Parcelable; public class ObservableFieldBindingObject { public final ObservableBoolean bField = new ObservableBoolean(); @@ -34,9 +37,83 @@ public class ObservableFieldBindingObject { public final ObservableLong lField = new ObservableLong(); public final ObservableFloat fField = new ObservableFloat(); public final ObservableDouble dField = new ObservableDouble(); + public final ObservableParcelable<MyParcelable> pField; public final ObservableField<String> oField = new ObservableField<>(); public ObservableFieldBindingObject() { oField.set("Hello"); + MyParcelable myParcelable = new MyParcelable(3, "abc"); + pField = new ObservableParcelable(myParcelable); + } + + public static class MyParcelable implements Parcelable { + int x; + String y; + + public MyParcelable(int x, String y) { + this.x = x; + this.y = y; + } + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(Parcel dest, int flags) { + dest.writeInt(x); + dest.writeString(y); + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + MyParcelable that = (MyParcelable) o; + + if (x != that.x) { + return false; + } + if (y != null ? !y.equals(that.y) : that.y != null) { + return false; + } + + return true; + } + + public int getX() { + return x; + } + + public String getY() { + return y; + } + + @Override + public int hashCode() { + int result = x; + result = 31 * result + (y != null ? y.hashCode() : 0); + return result; + } + + public static final Parcelable.Creator<MyParcelable> CREATOR + = new Parcelable.Creator<MyParcelable>() { + + @Override + public MyParcelable createFromParcel(Parcel source) { + return new MyParcelable(source.readInt(), source.readString()); + } + + @Override + public MyParcelable[] newArray(int size) { + return new MyParcelable[size]; + } + }; } } |