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>
This commit is contained in:
Jason A. Donenfeld
2018-04-30 05:29:54 +02:00
parent 622f41f11f
commit 73b0c4ea81
7 changed files with 206 additions and 286 deletions
@@ -1,35 +1,15 @@
package com.wireguard.config;
import android.os.Parcel;
import android.os.Parcelable;
import java.net.Inet4Address;
import java.net.Inet6Address;
import java.net.InetAddress;
import java.util.Locale;
public class IPCidr implements Parcelable {
public class IPCidr {
private InetAddress address;
private int cidr;
public static final Parcelable.Creator<IPCidr> CREATOR = new Parcelable.Creator<IPCidr>() {
@Override
public IPCidr createFromParcel(final Parcel in) {
return new IPCidr(in);
}
@Override
public IPCidr[] newArray(final int size) {
return new IPCidr[size];
}
};
IPCidr(String in) {
parse(in);
}
private void parse(String in) {
public IPCidr(String in) {
cidr = -1;
int slash = in.lastIndexOf('/');
if (slash != -1 && slash < in.length() - 1) {
@@ -58,22 +38,4 @@ public class IPCidr implements Parcelable {
public String toString() {
return String.format(Locale.getDefault(), "%s/%d", address.getHostAddress(), cidr);
}
@Override
public void writeToParcel(final Parcel dest, final int flags) {
dest.writeString(this.toString());
}
@Override
public int describeContents() {
return 0;
}
private IPCidr(final Parcel in) {
try {
parse(in.readString());
} catch (Exception ignored) {
}
}
}