summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--app/src/main/java/com/wireguard/android/ConfigEditFragment.java14
-rw-r--r--app/src/main/res/layout/config_edit_fragment.xml3
-rw-r--r--app/src/main/res/values/strings.xml2
3 files changed, 19 insertions, 0 deletions
diff --git a/app/src/main/java/com/wireguard/android/ConfigEditFragment.java b/app/src/main/java/com/wireguard/android/ConfigEditFragment.java
index 48d32d39..ebebef42 100644
--- a/app/src/main/java/com/wireguard/android/ConfigEditFragment.java
+++ b/app/src/main/java/com/wireguard/android/ConfigEditFragment.java
@@ -1,6 +1,8 @@
package com.wireguard.android;
import android.app.Activity;
+import android.content.ClipData;
+import android.content.ClipboardManager;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -23,6 +25,18 @@ public class ConfigEditFragment extends BaseConfigFragment {
private static final String KEY_MODIFIED_CONFIG = "modifiedConfig";
private static final String KEY_ORIGINAL_NAME = "originalName";
+ public static void copyPublicKey(final Context context, final String publicKey) {
+ if (publicKey == null || publicKey.isEmpty())
+ return;
+ final ClipboardManager clipboard =
+ (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
+ final String description =
+ context.getResources().getString(R.string.public_key_description);
+ clipboard.setPrimaryClip(ClipData.newPlainText(description, publicKey));
+ final String message = context.getResources().getString(R.string.public_key_copied_message);
+ Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
+ }
+
private Config localConfig;
private String originalName;
diff --git a/app/src/main/res/layout/config_edit_fragment.xml b/app/src/main/res/layout/config_edit_fragment.xml
index 86045324..e0d564f9 100644
--- a/app/src/main/res/layout/config_edit_fragment.xml
+++ b/app/src/main/res/layout/config_edit_fragment.xml
@@ -5,6 +5,8 @@
<data>
+ <import type="com.wireguard.android.ConfigEditFragment" />
+
<import type="com.wireguard.android.KeyInputFilter" />
<import type="com.wireguard.android.NameInputFilter" />
@@ -107,6 +109,7 @@
android:focusable="false"
android:hint="@string/hint_generated"
android:maxLines="1"
+ android:onClick="@{(view) -> ConfigEditFragment.copyPublicKey(view.getContext(), config.interface.publicKey)}"
android:text="@{config.interface.publicKey}" />
<TextView
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 62e4fa4e..bc2ec7a9 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -34,6 +34,8 @@
<string name="primary_config_summary">This configuration will be controlled by the quick settings tile</string>
<string name="private_key">Private key</string>
<string name="public_key">Public key</string>
+ <string name="public_key_copied_message">Public key copied to clipboard</string>
+ <string name="public_key_description">WireGuard public key</string>
<string name="restore_on_boot">Restore on boot</string>
<string name="restore_on_boot_summary">Restore previously enabled configurations on boot</string>
<string name="save">Save</string>