diff options
author | Samuel Holland <samuel@sholland.org> | 2017-08-23 23:47:44 -0500 |
---|---|---|
committer | Samuel Holland <samuel@sholland.org> | 2017-08-23 23:47:44 -0500 |
commit | b2357e58e3dcbba77797cc07dd3dec2349ccff1d (patch) | |
tree | 2d97b3190e3f044a7897b9ebae96cd365bba8596 /app/src/main/java/com/wireguard/config/Peer.java | |
parent | 95384851cd829b33dee99b3e7d5c5423cb69716f (diff) |
Config/Interface/Peer: Make Parcelable
This allows saving the editor state across restarts.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'app/src/main/java/com/wireguard/config/Peer.java')
-rw-r--r-- | app/src/main/java/com/wireguard/config/Peer.java | 37 |
1 files changed, 36 insertions, 1 deletions
diff --git a/app/src/main/java/com/wireguard/config/Peer.java b/app/src/main/java/com/wireguard/config/Peer.java index 912e8bf5..4f6d88b2 100644 --- a/app/src/main/java/com/wireguard/config/Peer.java +++ b/app/src/main/java/com/wireguard/config/Peer.java @@ -3,6 +3,8 @@ package com.wireguard.config; import android.databinding.BaseObservable; import android.databinding.Bindable; import android.databinding.Observable; +import android.os.Parcel; +import android.os.Parcelable; import com.android.databinding.library.baseAdapters.BR; @@ -10,7 +12,19 @@ import com.android.databinding.library.baseAdapters.BR; * Represents the configuration for a WireGuard peer (a [Peer] block). */ -public class Peer extends BaseObservable implements Copyable<Peer>, Observable { +public class Peer extends BaseObservable implements Copyable<Peer>, Observable, Parcelable { + public static final Parcelable.Creator<Peer> CREATOR = new Parcelable.Creator<Peer>() { + @Override + public Peer createFromParcel(final Parcel in) { + return new Peer(in); + } + + @Override + public Peer[] newArray(final int size) { + return new Peer[size]; + } + }; + private String allowedIPs; private final Config config; private String endpoint; @@ -21,6 +35,14 @@ public class Peer extends BaseObservable implements Copyable<Peer>, Observable { this.config = config; } + protected Peer(final Parcel in) { + allowedIPs = in.readString(); + config = null; + endpoint = in.readString(); + persistentKeepalive = in.readString(); + publicKey = in.readString(); + } + @Override public Peer copy() { return copy(config); @@ -41,6 +63,11 @@ public class Peer extends BaseObservable implements Copyable<Peer>, Observable { notifyChange(); } + @Override + public int describeContents() { + return 0; + } + @Bindable public String getAllowedIPs() { return allowedIPs; @@ -120,4 +147,12 @@ public class Peer extends BaseObservable implements Copyable<Peer>, Observable { sb.append(Attribute.PUBLIC_KEY.composeWith(publicKey)); return sb.toString(); } + + @Override + public void writeToParcel(final Parcel dest, final int flags) { + dest.writeString(allowedIPs); + dest.writeString(endpoint); + dest.writeString(persistentKeepalive); + dest.writeString(publicKey); + } } |