aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java/com/wireguard/config/Peer.java
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-04-30 05:00:51 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2018-04-30 05:29:54 +0200
commit73b0c4ea8116c4b1088dcd84cb2f4d7181baf7ab (patch)
tree225036077f4ef272531cf4e87e423c603181b449 /app/src/main/java/com/wireguard/config/Peer.java
parentAllow exporting to zip file (diff)
downloadwireguard-android-73b0c4ea8116c4b1088dcd84cb2f4d7181baf7ab.tar.xz
wireguard-android-73b0c4ea8116c4b1088dcd84cb2f4d7181baf7ab.zip
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.java82
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);
- }
}