From 9b29a18ed88161226fbbc495e981910d1c1d4db8 Mon Sep 17 00:00:00 2001 From: Christian Hagau Date: Sat, 28 Dec 2019 00:00:00 +0000 Subject: [PATCH] Move clipboard access from DecryptActivity to EncryptDecryptFragment --- .../keychain/ui/DecryptActivity.java | 11 ++++++----- .../keychain/ui/EncryptDecryptFragment.java | 17 +++++++++++++++++ 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptActivity.java index a6b799a59..3fefd4455 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptActivity.java @@ -47,6 +47,8 @@ public class DecryptActivity extends BaseActivity { /* Intents */ public static final String ACTION_DECRYPT_FROM_CLIPBOARD = "DECRYPT_DATA_CLIPBOARD"; + public static final String EXTRA_CLIPDATA = "DECRYPT_DATA_CLIPBOARD_DATA"; + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -123,12 +125,10 @@ public class DecryptActivity extends BaseActivity { } case ACTION_DECRYPT_FROM_CLIPBOARD: { - ClipboardManager clipMan = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); - if (clipMan == null) { - break; + ClipData clip = null; + if (intent.hasExtra(EXTRA_CLIPDATA)) { + clip = intent.getParcelableExtra(EXTRA_CLIPDATA); } - - ClipData clip = clipMan.getPrimaryClip(); if (clip == null) { break; } @@ -149,6 +149,7 @@ public class DecryptActivity extends BaseActivity { String text = clip.getItemAt(0).coerceToText(this).toString(); uri = readToTempFile(text); } + if (uri != null) { uris.add(uri); } diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptDecryptFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptDecryptFragment.java index 97c8d2991..eb362d0f3 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptDecryptFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EncryptDecryptFragment.java @@ -21,6 +21,9 @@ package org.sufficientlysecure.keychain.ui; import java.util.regex.Matcher; import android.app.Activity; +import android.content.ClipData; +import android.content.ClipboardManager; +import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.AsyncTask; @@ -39,6 +42,7 @@ import org.sufficientlysecure.keychain.ui.util.Notify; import org.sufficientlysecure.keychain.ui.util.Notify.Style; import org.sufficientlysecure.keychain.ui.util.SubtleAttentionSeeker; import org.sufficientlysecure.keychain.util.FileHelper; +import timber.log.Timber; public class EncryptDecryptFragment extends Fragment { @@ -108,7 +112,20 @@ public class EncryptDecryptFragment extends Fragment { return; } + ClipboardManager clipMan = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); + if (clipMan == null) { + Timber.e("Couldn't get ClipboardManager instance!"); + return; + } + + ClipData clip = clipMan.getPrimaryClip(); + if (clip == null) { + Timber.e("Couldn't get clipboard data!"); + return; + } + Intent clipboardDecrypt = new Intent(getActivity(), DecryptActivity.class); + clipboardDecrypt.putExtra(DecryptActivity.EXTRA_CLIPDATA, clip); clipboardDecrypt.setAction(DecryptActivity.ACTION_DECRYPT_FROM_CLIPBOARD); startActivityForResult(clipboardDecrypt, 0); }