aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java/com/wireguard/config/Config.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/wireguard/config/Config.java')
-rw-r--r--app/src/main/java/com/wireguard/config/Config.java170
1 files changed, 84 insertions, 86 deletions
diff --git a/app/src/main/java/com/wireguard/config/Config.java b/app/src/main/java/com/wireguard/config/Config.java
index 6330ff5e..7e6ff77c 100644
--- a/app/src/main/java/com/wireguard/config/Config.java
+++ b/app/src/main/java/com/wireguard/config/Config.java
@@ -1,7 +1,5 @@
package com.wireguard.config;
-import com.android.databinding.library.baseAdapters.BR;
-
import android.databinding.BaseObservable;
import android.databinding.Bindable;
import android.databinding.ObservableArrayList;
@@ -9,6 +7,8 @@ import android.databinding.ObservableList;
import android.os.Parcel;
import android.os.Parcelable;
+import com.android.databinding.library.baseAdapters.BR;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
@@ -22,90 +22,6 @@ import java.util.List;
*/
public class Config {
- public static class Observable extends BaseObservable implements Parcelable {
- private String name;
- private Interface.Observable observableInterface;
- private ObservableList<Peer.Observable> observablePeers;
-
- public Observable(Config parent, String name) {
- this.name = name;
- loadData(parent);
- }
-
- public void loadData(Config parent) {
- this.observableInterface = new Interface.Observable(parent == null ? null : parent.interfaceSection);
- this.observablePeers = new ObservableArrayList<>();
- if (parent != null) {
- for (Peer peer : parent.getPeers())
- this.observablePeers.add(new Peer.Observable(peer));
- }
- }
-
- public void commitData(Config parent) {
- this.observableInterface.commitData(parent.interfaceSection);
- List<Peer> newPeers = new ArrayList<>(this.observablePeers.size());
- for (Peer.Observable observablePeer : this.observablePeers) {
- Peer peer = new Peer();
- observablePeer.commitData(peer);
- newPeers.add(peer);
- }
- parent.peers = newPeers;
- notifyChange();
- }
-
- @Bindable
- public String getName() {
- return name == null ? "" : name;
- }
-
- public void setName(String name) {
- this.name = name;
- notifyPropertyChanged(BR.name);
- }
-
- @Bindable
- public Interface.Observable getInterfaceSection() {
- return observableInterface;
- }
-
- @Bindable
- public ObservableList<Peer.Observable> getPeers() {
- return observablePeers;
- }
-
-
- public static final Creator<Observable> CREATOR = new Creator<Observable>() {
- @Override
- public Observable createFromParcel(final Parcel in) {
- return new Observable(in);
- }
-
- @Override
- public Observable[] newArray(final int size) {
- return new Observable[size];
- }
- };
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(final Parcel dest, final int flags) {
- dest.writeString(name);
- dest.writeParcelable(observableInterface, flags);
- dest.writeTypedList(observablePeers);
- }
-
- private Observable(final Parcel in) {
- name = in.readString();
- observableInterface = in.readParcelable(Interface.Observable.class.getClassLoader());
- observablePeers = new ObservableArrayList<>();
- in.readTypedList(observablePeers, Peer.Observable.CREATOR);
- }
- }
-
private final Interface interfaceSection = new Interface();
private List<Peer> peers = new ArrayList<>();
@@ -157,4 +73,86 @@ public class Config {
sb.append('\n').append(peer);
return sb.toString();
}
+
+ public static class Observable extends BaseObservable implements Parcelable {
+ public static final Creator<Observable> CREATOR = new Creator<Observable>() {
+ @Override
+ public Observable createFromParcel(final Parcel in) {
+ return new Observable(in);
+ }
+
+ @Override
+ public Observable[] newArray(final int size) {
+ return new Observable[size];
+ }
+ };
+ private String name;
+ private Interface.Observable observableInterface;
+ private ObservableList<Peer.Observable> observablePeers;
+
+ public Observable(Config parent, String name) {
+ this.name = name;
+ loadData(parent);
+ }
+
+ private Observable(final Parcel in) {
+ name = in.readString();
+ observableInterface = in.readParcelable(Interface.Observable.class.getClassLoader());
+ observablePeers = new ObservableArrayList<>();
+ in.readTypedList(observablePeers, Peer.Observable.CREATOR);
+ }
+
+ public void commitData(Config parent) {
+ this.observableInterface.commitData(parent.interfaceSection);
+ List<Peer> newPeers = new ArrayList<>(this.observablePeers.size());
+ for (Peer.Observable observablePeer : this.observablePeers) {
+ Peer peer = new Peer();
+ observablePeer.commitData(peer);
+ newPeers.add(peer);
+ }
+ parent.peers = newPeers;
+ notifyChange();
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Bindable
+ public Interface.Observable getInterfaceSection() {
+ return observableInterface;
+ }
+
+ @Bindable
+ public String getName() {
+ return name == null ? "" : name;
+ }
+
+ @Bindable
+ public ObservableList<Peer.Observable> getPeers() {
+ return observablePeers;
+ }
+
+ public void loadData(Config parent) {
+ this.observableInterface = new Interface.Observable(parent == null ? null : parent.interfaceSection);
+ this.observablePeers = new ObservableArrayList<>();
+ if (parent != null) {
+ for (Peer peer : parent.getPeers())
+ this.observablePeers.add(new Peer.Observable(peer));
+ }
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ notifyPropertyChanged(BR.name);
+ }
+
+ @Override
+ public void writeToParcel(final Parcel dest, final int flags) {
+ dest.writeString(name);
+ dest.writeParcelable(observableInterface, flags);
+ dest.writeTypedList(observablePeers);
+ }
+ }
}