aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java/com/wireguard/config/Interface.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/wireguard/config/Interface.java')
-rw-r--r--app/src/main/java/com/wireguard/config/Interface.java46
1 files changed, 44 insertions, 2 deletions
diff --git a/app/src/main/java/com/wireguard/config/Interface.java b/app/src/main/java/com/wireguard/config/Interface.java
index a4ea4b81..b291844a 100644
--- a/app/src/main/java/com/wireguard/config/Interface.java
+++ b/app/src/main/java/com/wireguard/config/Interface.java
@@ -3,16 +3,32 @@ 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.wireguard.android.BR;
-import com.wireguard.crypto.Keypair;
import com.wireguard.crypto.KeyEncoding;
+import com.wireguard.crypto.Keypair;
/**
* Represents the configuration for a WireGuard interface (an [Interface] block).
*/
-public class Interface extends BaseObservable implements Copyable<Interface>, Observable {
+public class Interface extends BaseObservable
+ implements Copyable<Interface>, Observable, Parcelable {
+ public static final Parcelable.Creator<Interface> CREATOR
+ = new Parcelable.Creator<Interface>() {
+ @Override
+ public Interface createFromParcel(final Parcel in) {
+ return new Interface(in);
+ }
+
+ @Override
+ public Interface[] newArray(final int size) {
+ return new Interface[size];
+ }
+ };
+
private String address;
private String dns;
private String listenPort;
@@ -20,6 +36,18 @@ public class Interface extends BaseObservable implements Copyable<Interface>, Ob
private String mtu;
private String privateKey;
+ public Interface() {
+ // Do nothing.
+ }
+
+ protected Interface(final Parcel in) {
+ address = in.readString();
+ dns = in.readString();
+ listenPort = in.readString();
+ mtu = in.readString();
+ setPrivateKey(in.readString());
+ }
+
@Override
public Interface copy() {
final Interface copy = new Interface();
@@ -45,6 +73,11 @@ public class Interface extends BaseObservable implements Copyable<Interface>, Ob
notifyChange();
}
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
public void generateKeypair() {
keypair = new Keypair();
privateKey = keypair.getPrivateKey();
@@ -158,4 +191,13 @@ public class Interface extends BaseObservable implements Copyable<Interface>, Ob
sb.append(Attribute.PRIVATE_KEY.composeWith(privateKey));
return sb.toString();
}
+
+ @Override
+ public void writeToParcel(final Parcel dest, final int flags) {
+ dest.writeString(address);
+ dest.writeString(dns);
+ dest.writeString(listenPort);
+ dest.writeString(mtu);
+ dest.writeString(privateKey);
+ }
}