aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java/com/wireguard/android/ConfigListFragment.java
diff options
context:
space:
mode:
authorSamuel Holland <samuel@sholland.org>2017-08-13 07:24:03 -0500
committerSamuel Holland <samuel@sholland.org>2017-08-13 07:24:03 -0500
commit5e55d196be092f4a4dcb212cf09d7a1bdab70e00 (patch)
treeeb765a1b961fefdaa7ddc3cfae9cb83a09e0c031 /app/src/main/java/com/wireguard/android/ConfigListFragment.java
parentProfile: Add function to copy config from another profile (diff)
downloadwireguard-android-5e55d196be092f4a4dcb212cf09d7a1bdab70e00.tar.xz
wireguard-android-5e55d196be092f4a4dcb212cf09d7a1bdab70e00.zip
Major renaming and refactoring in activity and service
Apparently "configuration" is the proper term, not "profile". Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'app/src/main/java/com/wireguard/android/ConfigListFragment.java')
-rw-r--r--app/src/main/java/com/wireguard/android/ConfigListFragment.java61
1 files changed, 61 insertions, 0 deletions
diff --git a/app/src/main/java/com/wireguard/android/ConfigListFragment.java b/app/src/main/java/com/wireguard/android/ConfigListFragment.java
new file mode 100644
index 00000000..870453d7
--- /dev/null
+++ b/app/src/main/java/com/wireguard/android/ConfigListFragment.java
@@ -0,0 +1,61 @@
+package com.wireguard.android;
+
+import android.os.Bundle;
+import android.util.Log;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.AdapterView;
+import android.widget.ListView;
+
+import com.wireguard.android.databinding.ConfigListFragmentBinding;
+import com.wireguard.config.Config;
+
+/**
+ * Fragment containing the list of known WireGuard configurations.
+ */
+
+public class ConfigListFragment extends BaseConfigFragment {
+
+ @Override
+ public View onCreateView(final LayoutInflater inflater, final ViewGroup parent,
+ final Bundle savedInstanceState) {
+ final ConfigListFragmentBinding binding =
+ ConfigListFragmentBinding.inflate(inflater, parent, false);
+ binding.setConfigs(VpnService.getInstance().getConfigs());
+ final ListView listView = (ListView) binding.getRoot();
+ listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
+ @Override
+ public void onItemClick(final AdapterView<?> parent, final View view,
+ final int position, final long id) {
+ final Config config = (Config) parent.getItemAtPosition(position);
+ setCurrentConfig(config);
+ }
+ });
+ listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
+ @Override
+ public boolean onItemLongClick(final AdapterView<?> parent, final View view,
+ final int position, final long id) {
+ final Config config = (Config) parent.getItemAtPosition(position);
+ final VpnService service = VpnService.getInstance();
+ if (config == null || service == null)
+ return false;
+ if (config.isEnabled())
+ service.disable(config.getName());
+ else
+ service.enable(config.getName());
+ return true;
+ }
+ });
+ return binding.getRoot();
+ }
+
+ @Override
+ protected void onCurrentConfigChanged(final Config config) {
+ Log.d(getClass().getSimpleName(), "onCurrentConfigChanged config=" +
+ (config != null ? config.getName() : null));
+ final BaseConfigActivity activity = ((BaseConfigActivity) getActivity());
+ if (activity != null && activity.getCurrentConfig() != config)
+ activity.setCurrentConfig(config);
+ }
+}