summaryrefslogtreecommitdiffhomepage
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.java99
1 files changed, 99 insertions, 0 deletions
diff --git a/app/src/main/java/com/wireguard/config/Interface.java b/app/src/main/java/com/wireguard/config/Interface.java
new file mode 100644
index 00000000..828f2c47
--- /dev/null
+++ b/app/src/main/java/com/wireguard/config/Interface.java
@@ -0,0 +1,99 @@
+package com.wireguard.config;
+
+import android.databinding.BaseObservable;
+import android.databinding.Bindable;
+import android.databinding.Observable;
+
+import com.wireguard.android.BR;
+
+/**
+ * Represents the configuration for a WireGuard interface (an [Interface] block).
+ */
+
+public class Interface extends BaseObservable implements Observable {
+ private String address;
+ private String dns;
+ private String listenPort;
+ private String mtu;
+ private String privateKey;
+
+ @Bindable
+ public String getAddress() {
+ return address;
+ }
+
+ @Bindable
+ public String getDns() {
+ return dns;
+ }
+
+ @Bindable
+ public String getListenPort() {
+ return listenPort;
+ }
+
+ @Bindable
+ public String getMtu() {
+ return mtu;
+ }
+
+ @Bindable
+ public String getPrivateKey() {
+ return privateKey;
+ }
+
+ public void parseFrom(String line) {
+ final Attribute key = Attribute.match(line);
+ if (key == Attribute.ADDRESS)
+ address = key.parseFrom(line);
+ else if (key == Attribute.DNS)
+ dns = key.parseFrom(line);
+ else if (key == Attribute.LISTEN_PORT)
+ listenPort = key.parseFrom(line);
+ else if (key == Attribute.MTU)
+ mtu = key.parseFrom(line);
+ else if (key == Attribute.PRIVATE_KEY)
+ privateKey = key.parseFrom(line);
+ }
+
+ public void setAddress(String address) {
+ this.address = address;
+ notifyPropertyChanged(BR.address);
+ }
+
+ public void setDns(String dns) {
+ this.dns = dns;
+ notifyPropertyChanged(BR.dns);
+ }
+
+ public void setListenPort(String listenPort) {
+ this.listenPort = listenPort;
+ notifyPropertyChanged(BR.listenPort);
+ }
+
+ public void setMtu(String mtu) {
+ this.mtu = mtu;
+ notifyPropertyChanged(BR.mtu);
+ }
+
+ public void setPrivateKey(String privateKey) {
+ this.privateKey = privateKey;
+ notifyPropertyChanged(BR.privateKey);
+ }
+
+ @Override
+ public String toString() {
+ final StringBuilder sb = new StringBuilder().append("[Interface]\n");
+ if (address != null)
+ sb.append(Attribute.ADDRESS.composeWith(address));
+ if (dns != null)
+ sb.append(Attribute.DNS.composeWith(dns));
+ if (listenPort != null)
+ sb.append(Attribute.LISTEN_PORT.composeWith(listenPort));
+ if (mtu != null)
+ sb.append(Attribute.MTU.composeWith(mtu));
+ if (privateKey != null)
+ sb.append(Attribute.PRIVATE_KEY.composeWith(privateKey));
+ return sb.toString();
+ }
+}