diff options
| author | 2017-08-13 07:24:03 -0500 | |
|---|---|---|
| committer | 2017-08-13 07:24:03 -0500 | |
| commit | 5e55d196be092f4a4dcb212cf09d7a1bdab70e00 (patch) | |
| tree | eb765a1b961fefdaa7ddc3cfae9cb83a09e0c031 /app/src/main/java/com/wireguard/android/ConfigListFragment.java | |
| parent | Profile: Add function to copy config from another profile (diff) | |
| download | wireguard-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.java | 61 |
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); + } +} |
