aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java/com/wireguard/android/fragment/TunnelEditorFragment.java
diff options
context:
space:
mode:
authorEric Kuck <eric@bluelinelabs.com>2018-07-04 16:47:55 -0500
committerJason A. Donenfeld <Jason@zx2c4.com>2018-07-06 04:14:19 +0200
commitc74f219fb950a0b64fa5faf312c72e9c96cca4f8 (patch)
tree8eee63dc202e5e1414354f5827873a1e9c642be9 /app/src/main/java/com/wireguard/android/fragment/TunnelEditorFragment.java
parentTunnelEditor: better looking buttons (diff)
downloadwireguard-android-c74f219fb950a0b64fa5faf312c72e9c96cca4f8.tar.xz
wireguard-android-c74f219fb950a0b64fa5faf312c72e9c96cca4f8.zip
AppListDialogFragment: add implementation for excluding applications
Signed-off-by: Eric Kuck <eric@bluelinelabs.com>
Diffstat (limited to 'app/src/main/java/com/wireguard/android/fragment/TunnelEditorFragment.java')
-rw-r--r--app/src/main/java/com/wireguard/android/fragment/TunnelEditorFragment.java28
1 files changed, 27 insertions, 1 deletions
diff --git a/app/src/main/java/com/wireguard/android/fragment/TunnelEditorFragment.java b/app/src/main/java/com/wireguard/android/fragment/TunnelEditorFragment.java
index ea03077c..c2778c36 100644
--- a/app/src/main/java/com/wireguard/android/fragment/TunnelEditorFragment.java
+++ b/app/src/main/java/com/wireguard/android/fragment/TunnelEditorFragment.java
@@ -11,6 +11,7 @@ import android.content.Context;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.Snackbar;
+import android.support.v4.app.FragmentManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
@@ -24,16 +25,20 @@ import android.widget.Toast;
import com.wireguard.android.Application;
import com.wireguard.android.R;
import com.wireguard.android.databinding.TunnelEditorFragmentBinding;
+import com.wireguard.android.fragment.AppListDialogFragment.AppExclusionListener;
import com.wireguard.android.model.Tunnel;
import com.wireguard.android.model.TunnelManager;
import com.wireguard.android.util.ExceptionLoggers;
+import com.wireguard.config.Attribute;
import com.wireguard.config.Config;
+import java.util.List;
+
/**
* Fragment for editing a WireGuard configuration.
*/
-public class TunnelEditorFragment extends BaseFragment {
+public class TunnelEditorFragment extends BaseFragment implements AppExclusionListener {
private static final String KEY_LOCAL_CONFIG = "local_config";
private static final String KEY_ORIGINAL_NAME = "original_name";
private static final String TAG = "WireGuard/" + TunnelEditorFragment.class.getSimpleName();
@@ -202,6 +207,8 @@ public class TunnelEditorFragment extends BaseFragment {
@Override
public void onViewStateRestored(final Bundle savedInstanceState) {
+ binding.setFragment(this);
+
if (savedInstanceState == null) {
onSelectedTunnelChanged(null, getSelectedTunnel());
} else {
@@ -216,4 +223,23 @@ public class TunnelEditorFragment extends BaseFragment {
super.onViewStateRestored(savedInstanceState);
}
+
+ public void onRequestSetExcludedApplications(@SuppressWarnings("unused") final View view) {
+ FragmentManager fragmentManager = getFragmentManager();
+ if (fragmentManager != null) {
+ String[] excludedApps = excludedApplications();
+ AppListDialogFragment fragment = AppListDialogFragment.newInstance(excludedApps, this);
+ fragment.show(getFragmentManager(), null);
+ }
+ }
+
+ @Override
+ public void onExcludedAppsSelected(List<String> excludedApps) {
+ binding.getConfig().getInterfaceSection().setExcludedApplications(Attribute.iterableToString(excludedApps));
+ }
+
+ public String[] excludedApplications() {
+ return Attribute.stringToList(binding.getConfig().getInterfaceSection().getExcludedApplications());
+ }
+
}