From 0494dd1404baec0d93944ceba888852a88b2acdb Mon Sep 17 00:00:00 2001 From: Samuel Holland Date: Sat, 29 Jul 2017 06:08:54 -0500 Subject: [PATCH] Profile: Add minimal implementation This represents a wg-quick profile as two strings: the file name and the file contents. Signed-off-by: Jason A. Donenfeld --- .../java/com/wireguard/config/Profile.java | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 app/src/main/java/com/wireguard/config/Profile.java diff --git a/app/src/main/java/com/wireguard/config/Profile.java b/app/src/main/java/com/wireguard/config/Profile.java new file mode 100644 index 00000000..b8fd55a4 --- /dev/null +++ b/app/src/main/java/com/wireguard/config/Profile.java @@ -0,0 +1,56 @@ +package com.wireguard.config; + +import android.databinding.BaseObservable; +import android.databinding.Bindable; +import android.databinding.Observable; + +import com.wireguard.android.BR; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; + +/** + * Represents a wg-quick profile. + */ + +public class Profile extends BaseObservable implements Observable { + private String config; + private final String name; + + public Profile(String name) { + this.name = name; + } + + public void fromStream(InputStream stream) + throws IOException { + final StringBuilder sb = new StringBuilder(stream.available()); + String line; + try (BufferedReader reader = new BufferedReader(new InputStreamReader(stream))) { + while ((line = reader.readLine()) != null) + sb.append(line).append('\n'); + } + setConfig(sb.toString()); + } + + @Bindable + public String getConfig() { + return config; + } + + @Bindable + public String getName() { + return name; + } + + public void setConfig(String config) { + this.config = config; + notifyPropertyChanged(BR.config); + } + + @Override + public String toString() { + return getConfig(); + } +}