aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java/com/wireguard/android/viewmodel/InterfaceProxy.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/wireguard/android/viewmodel/InterfaceProxy.java')
-rw-r--r--app/src/main/java/com/wireguard/android/viewmodel/InterfaceProxy.java190
1 files changed, 0 insertions, 190 deletions
diff --git a/app/src/main/java/com/wireguard/android/viewmodel/InterfaceProxy.java b/app/src/main/java/com/wireguard/android/viewmodel/InterfaceProxy.java
deleted file mode 100644
index cc9f2dd8..00000000
--- a/app/src/main/java/com/wireguard/android/viewmodel/InterfaceProxy.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
- * Copyright © 2017-2019 WireGuard LLC. All Rights Reserved.
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package com.wireguard.android.viewmodel;
-
-import androidx.databinding.BaseObservable;
-import androidx.databinding.Bindable;
-import androidx.databinding.ObservableArrayList;
-import androidx.databinding.ObservableList;
-import android.os.Parcel;
-import android.os.Parcelable;
-
-import com.wireguard.android.BR;
-import com.wireguard.config.Attribute;
-import com.wireguard.config.BadConfigException;
-import com.wireguard.config.Interface;
-import com.wireguard.crypto.Key;
-import com.wireguard.crypto.KeyFormatException;
-import com.wireguard.crypto.KeyPair;
-
-import java.net.InetAddress;
-import java.util.List;
-
-import java9.util.stream.Collectors;
-import java9.util.stream.StreamSupport;
-
-public class InterfaceProxy extends BaseObservable implements Parcelable {
- public static final Parcelable.Creator<InterfaceProxy> CREATOR = new InterfaceProxyCreator();
-
- private final ObservableList<String> excludedApplications = new ObservableArrayList<>();
- private String addresses;
- private String dnsServers;
- private String listenPort;
- private String mtu;
- private String privateKey;
- private String publicKey;
-
- private InterfaceProxy(final Parcel in) {
- addresses = in.readString();
- dnsServers = in.readString();
- in.readStringList(excludedApplications);
- listenPort = in.readString();
- mtu = in.readString();
- privateKey = in.readString();
- publicKey = in.readString();
- }
-
- public InterfaceProxy(final Interface other) {
- addresses = Attribute.join(other.getAddresses());
- final List<String> dnsServerStrings = StreamSupport.stream(other.getDnsServers())
- .map(InetAddress::getHostAddress)
- .collect(Collectors.toUnmodifiableList());
- dnsServers = Attribute.join(dnsServerStrings);
- excludedApplications.addAll(other.getExcludedApplications());
- listenPort = other.getListenPort().map(String::valueOf).orElse("");
- mtu = other.getMtu().map(String::valueOf).orElse("");
- final KeyPair keyPair = other.getKeyPair();
- privateKey = keyPair.getPrivateKey().toBase64();
- publicKey = keyPair.getPublicKey().toBase64();
- }
-
- public InterfaceProxy() {
- addresses = "";
- dnsServers = "";
- listenPort = "";
- mtu = "";
- privateKey = "";
- publicKey = "";
- }
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- public void generateKeyPair() {
- final KeyPair keyPair = new KeyPair();
- privateKey = keyPair.getPrivateKey().toBase64();
- publicKey = keyPair.getPublicKey().toBase64();
- notifyPropertyChanged(BR.privateKey);
- notifyPropertyChanged(BR.publicKey);
- }
-
- @Bindable
- public String getAddresses() {
- return addresses;
- }
-
- @Bindable
- public String getDnsServers() {
- return dnsServers;
- }
-
- public ObservableList<String> getExcludedApplications() {
- return excludedApplications;
- }
-
- @Bindable
- public String getListenPort() {
- return listenPort;
- }
-
- @Bindable
- public String getMtu() {
- return mtu;
- }
-
- @Bindable
- public String getPrivateKey() {
- return privateKey;
- }
-
- @Bindable
- public String getPublicKey() {
- return publicKey;
- }
-
- public Interface resolve() throws BadConfigException {
- final Interface.Builder builder = new Interface.Builder();
- if (!addresses.isEmpty())
- builder.parseAddresses(addresses);
- if (!dnsServers.isEmpty())
- builder.parseDnsServers(dnsServers);
- if (!excludedApplications.isEmpty())
- builder.excludeApplications(excludedApplications);
- if (!listenPort.isEmpty())
- builder.parseListenPort(listenPort);
- if (!mtu.isEmpty())
- builder.parseMtu(mtu);
- if (!privateKey.isEmpty())
- builder.parsePrivateKey(privateKey);
- return builder.build();
- }
-
- public void setAddresses(final String addresses) {
- this.addresses = addresses;
- notifyPropertyChanged(BR.addresses);
- }
-
- public void setDnsServers(final String dnsServers) {
- this.dnsServers = dnsServers;
- notifyPropertyChanged(BR.dnsServers);
- }
-
- public void setListenPort(final String listenPort) {
- this.listenPort = listenPort;
- notifyPropertyChanged(BR.listenPort);
- }
-
- public void setMtu(final String mtu) {
- this.mtu = mtu;
- notifyPropertyChanged(BR.mtu);
- }
-
- public void setPrivateKey(final String privateKey) {
- this.privateKey = privateKey;
- try {
- publicKey = new KeyPair(Key.fromBase64(privateKey)).getPublicKey().toBase64();
- } catch (final KeyFormatException ignored) {
- publicKey = "";
- }
- notifyPropertyChanged(BR.privateKey);
- notifyPropertyChanged(BR.publicKey);
- }
-
- @Override
- public void writeToParcel(final Parcel dest, final int flags) {
- dest.writeString(addresses);
- dest.writeString(dnsServers);
- dest.writeStringList(excludedApplications);
- dest.writeString(listenPort);
- dest.writeString(mtu);
- dest.writeString(privateKey);
- dest.writeString(publicKey);
- }
-
- private static class InterfaceProxyCreator implements Parcelable.Creator<InterfaceProxy> {
- @Override
- public InterfaceProxy createFromParcel(final Parcel in) {
- return new InterfaceProxy(in);
- }
-
- @Override
- public InterfaceProxy[] newArray(final int size) {
- return new InterfaceProxy[size];
- }
- }
-}