diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-04-30 05:00:51 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-04-30 05:29:54 +0200 |
commit | 73b0c4ea8116c4b1088dcd84cb2f4d7181baf7ab (patch) | |
tree | 225036077f4ef272531cf4e87e423c603181b449 /app/src/main/java/com/wireguard/config/Peer.java | |
parent | 622f41f11f92005e2dd3791fd13b0ace294958d5 (diff) |
TunnelEditorFragment: rewrite and simplify
This should remove some null pointer dereferences and overall make the
thing more robust.
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 | 82 |
1 files changed, 37 insertions, 45 deletions
diff --git a/app/src/main/java/com/wireguard/config/Peer.java b/app/src/main/java/com/wireguard/config/Peer.java index 28495f46..327365b3 100644 --- a/app/src/main/java/com/wireguard/config/Peer.java +++ b/app/src/main/java/com/wireguard/config/Peer.java @@ -21,27 +21,14 @@ import java.util.Locale; * Represents the configuration for a WireGuard peer (a [Peer] block). */ -public class Peer implements Parcelable { - public static final Creator<Peer> CREATOR = new Creator<Peer>() { - @Override - public Peer createFromParcel(final Parcel in) { - return new Peer(in); - } - - @Override - public Peer[] newArray(final int size) { - return new Peer[size]; - } - }; - - public static class Observable extends BaseObservable { +public class Peer { + public static class Observable extends BaseObservable implements Parcelable { private String allowedIPs; private String endpoint; private String persistentKeepalive; private String preSharedKey; private String publicKey; - public Observable(Peer parent) { loadData(parent); } @@ -118,6 +105,41 @@ public class Peer implements Parcelable { this.publicKey = publicKey; notifyPropertyChanged(BR.publicKey); } + + + public static final Creator<Observable> CREATOR = new Creator<Observable>() { + @Override + public Observable createFromParcel(final Parcel in) { + return new Observable(in); + } + + @Override + public Observable[] newArray(final int size) { + return new Observable[size]; + } + }; + + @Override + public int describeContents() { + return 0; + } + + @Override + public void writeToParcel(final Parcel dest, final int flags) { + dest.writeString(allowedIPs); + dest.writeString(endpoint); + dest.writeString(persistentKeepalive); + dest.writeString(preSharedKey); + dest.writeString(publicKey); + } + + private Observable(final Parcel in) { + allowedIPs = in.readString(); + endpoint = in.readString(); + persistentKeepalive = in.readString(); + preSharedKey = in.readString(); + publicKey = in.readString(); + } } private List<IPCidr> allowedIPsList; @@ -130,26 +152,6 @@ public class Peer implements Parcelable { allowedIPsList = new LinkedList<>(); } - private Peer(final Parcel in) { - allowedIPsList = in.createTypedArrayList(IPCidr.CREATOR); - String host = in.readString(); - int port = in.readInt(); - if (host != null && !host.isEmpty() && port > 0) - endpoint = InetSocketAddress.createUnresolved(host, port); - persistentKeepalive = in.readInt(); - preSharedKey = in.readString(); - if (preSharedKey != null && preSharedKey.isEmpty()) - preSharedKey = null; - publicKey = in.readString(); - if (publicKey != null && publicKey.isEmpty()) - publicKey = null; - } - - @Override - public int describeContents() { - return 0; - } - private String getAllowedIPsString() { if (allowedIPsList.isEmpty()) @@ -299,14 +301,4 @@ public class Peer implements Parcelable { sb.append(Attribute.PUBLIC_KEY.composeWith(publicKey)); return sb.toString(); } - - @Override - public void writeToParcel(final Parcel dest, final int flags) { - dest.writeTypedList(allowedIPsList); - dest.writeString(endpoint == null ? null : endpoint.getHostString()); - dest.writeInt(endpoint == null ? 0 : endpoint.getPort()); - dest.writeInt(persistentKeepalive); - dest.writeString(preSharedKey); - dest.writeString(publicKey); - } } |