summaryrefslogtreecommitdiffhomepage
path: root/app/src/main/java/com/wireguard/config
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/wireguard/config')
-rw-r--r--app/src/main/java/com/wireguard/config/Attribute.java7
-rw-r--r--app/src/main/java/com/wireguard/config/Config.java26
-rw-r--r--app/src/main/java/com/wireguard/config/InetAddresses.java2
-rw-r--r--app/src/main/java/com/wireguard/config/InetNetwork.java5
-rw-r--r--app/src/main/java/com/wireguard/config/Interface.java53
-rw-r--r--app/src/main/java/com/wireguard/config/Peer.java51
6 files changed, 80 insertions, 64 deletions
diff --git a/app/src/main/java/com/wireguard/config/Attribute.java b/app/src/main/java/com/wireguard/config/Attribute.java
index bd9fa05d..e8b731b5 100644
--- a/app/src/main/java/com/wireguard/config/Attribute.java
+++ b/app/src/main/java/com/wireguard/config/Attribute.java
@@ -6,6 +6,7 @@
package com.wireguard.config;
+import android.support.annotation.Nullable;
import android.text.TextUtils;
import java.util.HashMap;
@@ -59,13 +60,13 @@ public enum Attribute {
return KEY_MAP.get(SEPARATOR_PATTERN.split(line)[0].toLowerCase());
}
- public static String[] stringToList(final String string) {
+ public static String[] stringToList(@Nullable final String string) {
if (TextUtils.isEmpty(string))
return EMPTY_LIST;
return LIST_SEPARATOR_PATTERN.split(string.trim());
}
- public String composeWith(final Object value) {
+ public String composeWith(@Nullable final Object value) {
return String.format("%s = %s%n", token, value);
}
@@ -77,11 +78,13 @@ public enum Attribute {
return String.format("%s = %s%n", token, iterableToString(value));
}
+ @Nullable
public String parse(final CharSequence line) {
final Matcher matcher = pattern.matcher(line);
return matcher.matches() ? matcher.group(1) : null;
}
+ @Nullable
public String[] parseList(final CharSequence line) {
final Matcher matcher = pattern.matcher(line);
return matcher.matches() ? stringToList(matcher.group(1)) : null;
diff --git a/app/src/main/java/com/wireguard/config/Config.java b/app/src/main/java/com/wireguard/config/Config.java
index 62ba252c..0599dec3 100644
--- a/app/src/main/java/com/wireguard/config/Config.java
+++ b/app/src/main/java/com/wireguard/config/Config.java
@@ -12,6 +12,7 @@ import android.databinding.ObservableArrayList;
import android.databinding.ObservableList;
import android.os.Parcel;
import android.os.Parcelable;
+import android.support.annotation.Nullable;
import com.android.databinding.library.baseAdapters.BR;
@@ -96,13 +97,19 @@ public class Config {
return new Observable[size];
}
};
- private String name;
- private Interface.Observable observableInterface;
- private ObservableList<Peer.Observable> observablePeers;
+ @Nullable private String name;
+ private final Interface.Observable observableInterface;
+ private final ObservableList<Peer.Observable> observablePeers;
- public Observable(final Config parent, final String name) {
+ public Observable(@Nullable final Config parent, @Nullable final String name) {
this.name = name;
- loadData(parent);
+
+ observableInterface = new Interface.Observable(parent == null ? null : parent.interfaceSection);
+ observablePeers = new ObservableArrayList<>();
+ if (parent != null) {
+ for (final Peer peer : parent.getPeers())
+ observablePeers.add(new Peer.Observable(peer));
+ }
}
private Observable(final Parcel in) {
@@ -144,15 +151,6 @@ public class Config {
return observablePeers;
}
- protected void loadData(final Config parent) {
- observableInterface = new Interface.Observable(parent == null ? null : parent.interfaceSection);
- observablePeers = new ObservableArrayList<>();
- if (parent != null) {
- for (final Peer peer : parent.getPeers())
- observablePeers.add(new Peer.Observable(peer));
- }
- }
-
public void setName(final String name) {
this.name = name;
notifyPropertyChanged(BR.name);
diff --git a/app/src/main/java/com/wireguard/config/InetAddresses.java b/app/src/main/java/com/wireguard/config/InetAddresses.java
index b943f03e..3cc84b01 100644
--- a/app/src/main/java/com/wireguard/config/InetAddresses.java
+++ b/app/src/main/java/com/wireguard/config/InetAddresses.java
@@ -6,7 +6,6 @@
package com.wireguard.config;
-import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import java.lang.reflect.InvocationTargetException;
@@ -29,7 +28,6 @@ public final class InetAddresses {
// Prevent instantiation.
}
- @NonNull
public static InetAddress parse(@Nullable final String address) {
if (address == null || address.isEmpty())
throw new IllegalArgumentException("Empty address");
diff --git a/app/src/main/java/com/wireguard/config/InetNetwork.java b/app/src/main/java/com/wireguard/config/InetNetwork.java
index 6f1be914..8f434753 100644
--- a/app/src/main/java/com/wireguard/config/InetNetwork.java
+++ b/app/src/main/java/com/wireguard/config/InetNetwork.java
@@ -6,8 +6,6 @@
package com.wireguard.config;
-import android.support.annotation.NonNull;
-
import java.net.Inet4Address;
import java.net.InetAddress;
import java.util.Objects;
@@ -16,7 +14,7 @@ public class InetNetwork {
private final InetAddress address;
private final int mask;
- public InetNetwork(@NonNull final String input) {
+ public InetNetwork(final String input) {
final int slash = input.lastIndexOf('/');
final int rawMask;
final String rawAddress;
@@ -40,7 +38,6 @@ public class InetNetwork {
return Objects.equals(address, other.address) && mask == other.mask;
}
- @NonNull
public InetAddress getAddress() {
return address;
}
diff --git a/app/src/main/java/com/wireguard/config/Interface.java b/app/src/main/java/com/wireguard/config/Interface.java
index 3f72e812..99336ae4 100644
--- a/app/src/main/java/com/wireguard/config/Interface.java
+++ b/app/src/main/java/com/wireguard/config/Interface.java
@@ -10,6 +10,7 @@ import android.databinding.BaseObservable;
import android.databinding.Bindable;
import android.os.Parcel;
import android.os.Parcelable;
+import android.support.annotation.Nullable;
import com.wireguard.android.BR;
import com.wireguard.crypto.Keypair;
@@ -27,7 +28,7 @@ public class Interface {
private final List<InetNetwork> addressList;
private final List<InetAddress> dnsList;
private final List<String> excludedApplications;
- private Keypair keypair;
+ @Nullable private Keypair keypair;
private int listenPort;
private int mtu;
@@ -37,7 +38,7 @@ public class Interface {
excludedApplications = new ArrayList<>();
}
- private void addAddresses(final String[] addresses) {
+ private void addAddresses(@Nullable final String[] addresses) {
if (addresses != null && addresses.length > 0) {
for (final String addr : addresses) {
if (addr.isEmpty())
@@ -47,7 +48,7 @@ public class Interface {
}
}
- private void addDnses(final String[] dnses) {
+ private void addDnses(@Nullable final String[] dnses) {
if (dnses != null && dnses.length > 0) {
for (final String dns : dnses) {
dnsList.add(InetAddresses.parse(dns));
@@ -55,12 +56,13 @@ public class Interface {
}
}
- private void addExcludedApplications(final String[] applications) {
+ private void addExcludedApplications(@Nullable final String[] applications) {
if (applications != null && applications.length > 0) {
excludedApplications.addAll(Arrays.asList(applications));
}
}
+ @Nullable
private String getAddressString() {
if (addressList.isEmpty())
return null;
@@ -71,6 +73,7 @@ public class Interface {
return addressList.toArray(new InetNetwork[addressList.size()]);
}
+ @Nullable
private String getDnsString() {
if (dnsList.isEmpty())
return null;
@@ -88,6 +91,7 @@ public class Interface {
return dnsList.toArray(new InetAddress[dnsList.size()]);
}
+ @Nullable
private String getExcludedApplicationsString() {
if (excludedApplications.isEmpty())
return null;
@@ -102,6 +106,7 @@ public class Interface {
return listenPort;
}
+ @Nullable
private String getListenPortString() {
if (listenPort == 0)
return null;
@@ -112,18 +117,21 @@ public class Interface {
return mtu;
}
+ @Nullable
private String getMtuString() {
if (mtu == 0)
return null;
return Integer.toString(mtu);
}
+ @Nullable
public String getPrivateKey() {
if (keypair == null)
return null;
return keypair.getPrivateKey();
}
+ @Nullable
public String getPublicKey() {
if (keypair == null)
return null;
@@ -156,17 +164,17 @@ public class Interface {
}
}
- private void setAddressString(final String addressString) {
+ private void setAddressString(@Nullable final String addressString) {
addressList.clear();
addAddresses(Attribute.stringToList(addressString));
}
- private void setDnsString(final String dnsString) {
+ private void setDnsString(@Nullable final String dnsString) {
dnsList.clear();
addDnses(Attribute.stringToList(dnsString));
}
- private void setExcludedApplicationsString(final String applicationsString) {
+ private void setExcludedApplicationsString(@Nullable final String applicationsString) {
excludedApplications.clear();
addExcludedApplications(Attribute.stringToList(applicationsString));
}
@@ -175,7 +183,7 @@ public class Interface {
this.listenPort = listenPort;
}
- private void setListenPortString(final String port) {
+ private void setListenPortString(@Nullable final String port) {
if (port != null && !port.isEmpty())
setListenPort(Integer.parseInt(port, 10));
else
@@ -186,14 +194,14 @@ public class Interface {
this.mtu = mtu;
}
- private void setMtuString(final String mtu) {
+ private void setMtuString(@Nullable final String mtu) {
if (mtu != null && !mtu.isEmpty())
setMtu(Integer.parseInt(mtu, 10));
else
setMtu(0);
}
- private void setPrivateKey(String privateKey) {
+ private void setPrivateKey(@Nullable String privateKey) {
if (privateKey != null && privateKey.isEmpty())
privateKey = null;
keypair = privateKey == null ? null : new Keypair(privateKey);
@@ -229,15 +237,15 @@ public class Interface {
return new Observable[size];
}
};
- private String addresses;
- private String dnses;
- private String excludedApplications;
- private String listenPort;
- private String mtu;
- private String privateKey;
- private String publicKey;
-
- public Observable(final Interface parent) {
+ @Nullable private String addresses;
+ @Nullable private String dnses;
+ @Nullable private String excludedApplications;
+ @Nullable private String listenPort;
+ @Nullable private String mtu;
+ @Nullable private String privateKey;
+ @Nullable private String publicKey;
+
+ public Observable(@Nullable final Interface parent) {
if (parent != null)
loadData(parent);
}
@@ -276,16 +284,19 @@ public class Interface {
notifyPropertyChanged(BR.publicKey);
}
+ @Nullable
@Bindable
public String getAddresses() {
return addresses;
}
+ @Nullable
@Bindable
public String getDnses() {
return dnses;
}
+ @Nullable
@Bindable
public String getExcludedApplications() {
return excludedApplications;
@@ -296,21 +307,25 @@ public class Interface {
return Attribute.stringToList(excludedApplications).length;
}
+ @Nullable
@Bindable
public String getListenPort() {
return listenPort;
}
+ @Nullable
@Bindable
public String getMtu() {
return mtu;
}
+ @Nullable
@Bindable
public String getPrivateKey() {
return privateKey;
}
+ @Nullable
@Bindable
public String getPublicKey() {
return publicKey;
diff --git a/app/src/main/java/com/wireguard/config/Peer.java b/app/src/main/java/com/wireguard/config/Peer.java
index 371072de..60fe5c82 100644
--- a/app/src/main/java/com/wireguard/config/Peer.java
+++ b/app/src/main/java/com/wireguard/config/Peer.java
@@ -10,6 +10,7 @@ import android.databinding.BaseObservable;
import android.databinding.Bindable;
import android.os.Parcel;
import android.os.Parcelable;
+import android.support.annotation.Nullable;
import com.android.databinding.library.baseAdapters.BR;
import com.wireguard.crypto.KeyEncoding;
@@ -34,16 +35,16 @@ import java9.lang.Iterables;
public class Peer {
private final List<InetNetwork> allowedIPsList;
- private InetSocketAddress endpoint;
+ @Nullable private InetSocketAddress endpoint;
private int persistentKeepalive;
- private String preSharedKey;
- private String publicKey;
+ @Nullable private String preSharedKey;
+ @Nullable private String publicKey;
public Peer() {
allowedIPsList = new ArrayList<>();
}
- private void addAllowedIPs(final String[] allowedIPs) {
+ private void addAllowedIPs(@Nullable final String[] allowedIPs) {
if (allowedIPs != null && allowedIPs.length > 0) {
for (final String allowedIP : allowedIPs) {
allowedIPsList.add(new InetNetwork(allowedIP));
@@ -55,16 +56,19 @@ public class Peer {
return allowedIPsList.toArray(new InetNetwork[allowedIPsList.size()]);
}
+ @Nullable
private String getAllowedIPsString() {
if (allowedIPsList.isEmpty())
return null;
return Attribute.iterableToString(allowedIPsList);
}
+ @Nullable
public InetSocketAddress getEndpoint() {
return endpoint;
}
+ @Nullable
private String getEndpointString() {
if (endpoint == null)
return null;
@@ -75,16 +79,19 @@ public class Peer {
return persistentKeepalive;
}
+ @Nullable
private String getPersistentKeepaliveString() {
if (persistentKeepalive == 0)
return null;
return Integer.valueOf(persistentKeepalive).toString();
}
+ @Nullable
public String getPreSharedKey() {
return preSharedKey;
}
+ @Nullable
public String getPublicKey() {
return publicKey;
}
@@ -130,16 +137,16 @@ public class Peer {
}
}
- private void setAllowedIPsString(final String allowedIPsString) {
+ private void setAllowedIPsString(@Nullable final String allowedIPsString) {
allowedIPsList.clear();
addAllowedIPs(Attribute.stringToList(allowedIPsString));
}
- private void setEndpoint(final InetSocketAddress endpoint) {
+ private void setEndpoint(@Nullable final InetSocketAddress endpoint) {
this.endpoint = endpoint;
}
- private void setEndpointString(final String endpoint) {
+ private void setEndpointString(@Nullable final String endpoint) {
if (endpoint != null && !endpoint.isEmpty()) {
final InetSocketAddress constructedEndpoint;
if (endpoint.indexOf('/') != -1 || endpoint.indexOf('?') != -1 || endpoint.indexOf('#') != -1)
@@ -160,14 +167,14 @@ public class Peer {
this.persistentKeepalive = persistentKeepalive;
}
- private void setPersistentKeepaliveString(final String persistentKeepalive) {
+ private void setPersistentKeepaliveString(@Nullable final String persistentKeepalive) {
if (persistentKeepalive != null && !persistentKeepalive.isEmpty())
setPersistentKeepalive(Integer.parseInt(persistentKeepalive, 10));
else
setPersistentKeepalive(0);
}
- private void setPreSharedKey(String preSharedKey) {
+ private void setPreSharedKey(@Nullable String preSharedKey) {
if (preSharedKey != null && preSharedKey.isEmpty())
preSharedKey = null;
if (preSharedKey != null)
@@ -175,7 +182,7 @@ public class Peer {
this.preSharedKey = preSharedKey;
}
- private void setPublicKey(String publicKey) {
+ private void setPublicKey(@Nullable String publicKey) {
if (publicKey != null && publicKey.isEmpty())
publicKey = null;
if (publicKey != null)
@@ -211,12 +218,12 @@ public class Peer {
return new Observable[size];
}
};
- private String allowedIPs;
- private String endpoint;
- private String persistentKeepalive;
- private String preSharedKey;
- private String publicKey;
- private List<String> interfaceDNSRoutes;
+ @Nullable private String allowedIPs;
+ @Nullable private String endpoint;
+ @Nullable private String persistentKeepalive;
+ @Nullable private String preSharedKey;
+ @Nullable private String publicKey;
+ private final List<String> interfaceDNSRoutes = new ArrayList<>();
private int numSiblings;
public Observable(final Peer parent) {
@@ -230,7 +237,6 @@ public class Peer {
preSharedKey = in.readString();
publicKey = in.readString();
numSiblings = in.readInt();
- interfaceDNSRoutes = new ArrayList<>();
in.readStringList(interfaceDNSRoutes);
}
@@ -284,27 +290,27 @@ public class Peer {
return numSiblings == 0 && Arrays.asList(Attribute.stringToList(allowedIPs)).containsAll(DEFAULT_ROUTE_MOD_RFC1918_V4);
}
- @Bindable
+ @Bindable @Nullable
public String getAllowedIPs() {
return allowedIPs;
}
- @Bindable
+ @Bindable @Nullable
public String getEndpoint() {
return endpoint;
}
- @Bindable
+ @Bindable @Nullable
public String getPersistentKeepalive() {
return persistentKeepalive;
}
- @Bindable
+ @Bindable @Nullable
public String getPreSharedKey() {
return preSharedKey;
}
- @Bindable
+ @Bindable @Nullable
public String getPublicKey() {
return publicKey;
}
@@ -315,7 +321,6 @@ public class Peer {
persistentKeepalive = parent.getPersistentKeepaliveString();
preSharedKey = parent.getPreSharedKey();
publicKey = parent.getPublicKey();
- interfaceDNSRoutes = new ArrayList<>();
}
public void setAllowedIPs(final String allowedIPs) {