diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysFileFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysFileFragment.java index 9bf106788..2f8a2cc7a 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysFileFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysFileFragment.java @@ -24,6 +24,7 @@ import android.net.Uri; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.Fragment; +import android.text.TextUtils; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -105,23 +106,29 @@ public class ImportKeysFileFragment extends Fragment { Uri.fromFile(Constants.Path.APP_DIR), "*/*", false, REQUEST_CODE_FILE); return true; case R.id.menu_import_keys_file_paste: - CharSequence clipboardText = ClipboardReflection.getClipboardText(getActivity()); - String sendText = ""; - if (clipboardText != null) { - sendText = clipboardText.toString(); - sendText = PgpHelper.getPgpKeyContent(sendText); - if (sendText == null) { - Notify.create(mActivity, R.string.error_bad_data, Style.ERROR).show(); - } else { - mCallback.loadKeys(new BytesLoaderState(sendText.getBytes(), null)); - } - } + importFromClipboard(); return true; } return super.onOptionsItemSelected(item); } + private void importFromClipboard() { + CharSequence clipboardText = ClipboardReflection.getClipboardText(getActivity()); + if (TextUtils.isEmpty(clipboardText)) { + Notify.create(mActivity, R.string.error_clipboard_empty, Style.ERROR).show(); + return; + } + + String keyText = PgpHelper.getPgpPublicKeyContent(clipboardText); + if (keyText == null) { + Notify.create(mActivity, R.string.error_clipboard_bad, Style.ERROR).show(); + return; + } + + mCallback.loadKeys(new BytesLoaderState(keyText.getBytes(), null)); + } + @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { switch (requestCode) { diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 13484be6e..7756b82e5 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -1648,6 +1648,7 @@ "Original file could not be deleted!" "Clipboard is empty!" "Error copying data to clipboard!" + "Could not read keys from clipboard!" "Error scanning fingerprint!" "Fingerprints did not match!" "Expiry date is in the past!"