aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app
diff options
context:
space:
mode:
authorSamuel Holland <samuel@sholland.org>2017-11-08 00:50:11 -0600
committerSamuel Holland <samuel@sholland.org>2017-11-08 00:50:24 -0600
commit4a98d07806249017ba044d75de276bcd5e69cee6 (patch)
tree17733ea74c298aa4f21561194c78a2920d3733c2 /app
parentVpnService: Add helper for importing configs (diff)
downloadwireguard-android-4a98d07806249017ba044d75de276bcd5e69cee6.tar.xz
wireguard-android-4a98d07806249017ba044d75de276bcd5e69cee6.zip
ConfigActivity: Add import menu item
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/com/wireguard/android/ConfigActivity.java17
-rw-r--r--app/src/main/res/drawable/ic_open.xml9
-rw-r--r--app/src/main/res/menu/config_list.xml6
-rw-r--r--app/src/main/res/values/strings.xml1
4 files changed, 33 insertions, 0 deletions
diff --git a/app/src/main/java/com/wireguard/android/ConfigActivity.java b/app/src/main/java/com/wireguard/android/ConfigActivity.java
index 61ccbc14..881f3f9a 100644
--- a/app/src/main/java/com/wireguard/android/ConfigActivity.java
+++ b/app/src/main/java/com/wireguard/android/ConfigActivity.java
@@ -16,6 +16,7 @@ import com.wireguard.config.Config;
public class ConfigActivity extends BaseConfigActivity {
private static final String KEY_EDITOR_STATE = "editorState";
+ private static final int REQUEST_IMPORT = 1;
private static final String TAG_DETAIL = "detail";
private static final String TAG_EDIT = "edit";
private static final String TAG_LIST = "list";
@@ -130,6 +131,16 @@ public class ConfigActivity extends BaseConfigActivity {
}
@Override
+ public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
+ if (requestCode == REQUEST_IMPORT) {
+ if (resultCode == RESULT_OK)
+ VpnService.getInstance().importFrom(data.getData());
+ } else {
+ super.onActivityResult(requestCode, resultCode, data);
+ }
+ }
+
+ @Override
public void onBackPressed() {
super.onBackPressed();
// The visible fragment is now the one that was on top of the back stack, if there was one.
@@ -184,6 +195,12 @@ public class ConfigActivity extends BaseConfigActivity {
// Try to make the editing fragment visible.
setIsEditing(true);
return true;
+ case R.id.menu_action_import:
+ final Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
+ intent.addCategory(Intent.CATEGORY_OPENABLE);
+ intent.setType("*/*");
+ startActivityForResult(intent, REQUEST_IMPORT);
+ return true;
case R.id.menu_action_save:
// This menu item is handled by the editing fragment.
return false;
diff --git a/app/src/main/res/drawable/ic_open.xml b/app/src/main/res/drawable/ic_open.xml
new file mode 100644
index 00000000..f76831cd
--- /dev/null
+++ b/app/src/main/res/drawable/ic_open.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:pathData="M6,2c-1.1,0 -1.99,0.9 -1.99,2L4,20c0,1.1 0.89,2 1.99,2L18,22c1.1,0 2,-0.9 2,-2L20,8l-6,-6L6,2zM13,9L13,3.5L18.5,9L13,9z"
+ android:fillColor="#FFFFFF"/>
+</vector>
diff --git a/app/src/main/res/menu/config_list.xml b/app/src/main/res/menu/config_list.xml
index ef1651f6..9a0a481c 100644
--- a/app/src/main/res/menu/config_list.xml
+++ b/app/src/main/res/menu/config_list.xml
@@ -6,4 +6,10 @@
android:icon="@drawable/ic_action_add"
android:showAsAction="always"
android:title="@string/add" />
+ <item
+ android:id="@+id/menu_action_import"
+ android:alphabeticShortcut="o"
+ android:icon="@drawable/ic_open"
+ android:showAsAction="ifRoom"
+ android:title="@string/import_config" />
</menu>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bc2ec7a9..61602b12 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -42,4 +42,5 @@
<string name="settings">Settings</string>
<string name="status">Status</string>
<string name="toggle">Toggle</string>
+ <string name="import_config">Import</string>
</resources>