Move clipboard access from DecryptActivity to EncryptDecryptFragment

This commit is contained in:
Christian Hagau 2019-12-28 00:00:00 +00:00
parent 084f73f1f5
commit 9b29a18ed8
2 changed files with 23 additions and 5 deletions

View file

@ -47,6 +47,8 @@ public class DecryptActivity extends BaseActivity {
/* Intents */ /* Intents */
public static final String ACTION_DECRYPT_FROM_CLIPBOARD = "DECRYPT_DATA_CLIPBOARD"; public static final String ACTION_DECRYPT_FROM_CLIPBOARD = "DECRYPT_DATA_CLIPBOARD";
public static final String EXTRA_CLIPDATA = "DECRYPT_DATA_CLIPBOARD_DATA";
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
@ -123,12 +125,10 @@ public class DecryptActivity extends BaseActivity {
} }
case ACTION_DECRYPT_FROM_CLIPBOARD: { case ACTION_DECRYPT_FROM_CLIPBOARD: {
ClipboardManager clipMan = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); ClipData clip = null;
if (clipMan == null) { if (intent.hasExtra(EXTRA_CLIPDATA)) {
break; clip = intent.getParcelableExtra(EXTRA_CLIPDATA);
} }
ClipData clip = clipMan.getPrimaryClip();
if (clip == null) { if (clip == null) {
break; break;
} }
@ -149,6 +149,7 @@ public class DecryptActivity extends BaseActivity {
String text = clip.getItemAt(0).coerceToText(this).toString(); String text = clip.getItemAt(0).coerceToText(this).toString();
uri = readToTempFile(text); uri = readToTempFile(text);
} }
if (uri != null) { if (uri != null) {
uris.add(uri); uris.add(uri);
} }

View file

@ -21,6 +21,9 @@ package org.sufficientlysecure.keychain.ui;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import android.app.Activity; import android.app.Activity;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.net.Uri; import android.net.Uri;
import android.os.AsyncTask; 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.Notify.Style;
import org.sufficientlysecure.keychain.ui.util.SubtleAttentionSeeker; import org.sufficientlysecure.keychain.ui.util.SubtleAttentionSeeker;
import org.sufficientlysecure.keychain.util.FileHelper; import org.sufficientlysecure.keychain.util.FileHelper;
import timber.log.Timber;
public class EncryptDecryptFragment extends Fragment { public class EncryptDecryptFragment extends Fragment {
@ -108,7 +112,20 @@ public class EncryptDecryptFragment extends Fragment {
return; 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); Intent clipboardDecrypt = new Intent(getActivity(), DecryptActivity.class);
clipboardDecrypt.putExtra(DecryptActivity.EXTRA_CLIPDATA, clip);
clipboardDecrypt.setAction(DecryptActivity.ACTION_DECRYPT_FROM_CLIPBOARD); clipboardDecrypt.setAction(DecryptActivity.ACTION_DECRYPT_FROM_CLIPBOARD);
startActivityForResult(clipboardDecrypt, 0); startActivityForResult(clipboardDecrypt, 0);
} }