fix: conversation activity now receives extra text shared via intent and accepts content shared by IME

This commit is contained in:
jubb
2021-07-12 15:44:46 +10:00
parent 462a7ed977
commit 9cb7d9ece8
4 changed files with 69 additions and 16 deletions

View File

@@ -76,6 +76,7 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity
private ImageView searchAction;
private View progressWheel;
private Uri resolvedExtra;
private CharSequence resolvedPlaintext;
private String mimeType;
private boolean isPassingAlongMedia;
@@ -173,12 +174,16 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity
isPassingAlongMedia = false;
Uri streamExtra = getIntent().getParcelableExtra(Intent.EXTRA_STREAM);
mimeType = getMimeType(streamExtra);
CharSequence charSequenceExtra = getIntent().getCharSequenceExtra(Intent.EXTRA_TEXT);
mimeType = getMimeType(streamExtra);
if (streamExtra != null && PartAuthority.isLocalUri(streamExtra)) {
isPassingAlongMedia = true;
resolvedExtra = streamExtra;
handleResolvedMedia(getIntent(), false);
} else if (charSequenceExtra != null && mimeType != null && mimeType.startsWith("text/")) {
resolvedPlaintext = charSequenceExtra;
handleResolvedMedia(getIntent(), false);
} else {
contactsFragment.getView().setVisibility(View.GONE);
progressWheel.setVisibility(View.VISIBLE);
@@ -225,7 +230,11 @@ public class ShareActivity extends PassphraseRequiredActionBarActivity
private Intent getBaseShareIntent(final @NonNull Class<?> target) {
final Intent intent = new Intent(this, target);
if (resolvedExtra != null) intent.setDataAndType(resolvedExtra, mimeType);
if (resolvedExtra != null) {
intent.setDataAndType(resolvedExtra, mimeType);
} else if (resolvedPlaintext != null) {
intent.putExtra(Intent.EXTRA_TEXT, resolvedPlaintext);
}
return intent;
}