From 3c2c6d782a09880042ac4378ce717876ff1f32fc Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Tue, 6 Dec 2022 13:38:31 -0500 Subject: [PATCH] Revert "Clear formatting when pasting text." This reverts commit 77be721f5a8f71eaf6de5a8ee71cb833c67b3e56. If pasting an image will crash the application, does not handle pasting via multiple other methods like quick suggestion or via a clipboard manager like provided by Samsung via their keyboard. --- .../components/emoji/EmojiEditText.java | 49 ------------------- 1 file changed, 49 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiEditText.java b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiEditText.java index ca829988b4..ab234b81e3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiEditText.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/emoji/EmojiEditText.java @@ -4,12 +4,7 @@ import android.content.Context; import android.content.res.TypedArray; import android.graphics.drawable.Drawable; import android.text.InputFilter; -import android.text.Spannable; -import android.text.SpannableString; import android.util.AttributeSet; -import android.content.ClipData; -import android.content.ClipboardManager; -import android.text.Spanned; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -17,15 +12,11 @@ import androidx.appcompat.widget.AppCompatEditText; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.components.emoji.EmojiProvider.EmojiDrawable; -import org.thoughtcrime.securesms.components.mention.MentionAnnotation; -import org.thoughtcrime.securesms.database.model.Mention; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.util.EditTextExtensionsKt; -import org.thoughtcrime.securesms.util.ServiceUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import java.util.HashSet; -import java.util.List; import java.util.Set; @@ -104,44 +95,4 @@ public class EmojiEditText extends AppCompatEditText { return result; } - - @Override - public boolean onTextContextMenuItem(int id) { - if (id == android.R.id.paste) { - ClipboardManager clipboardManager = ServiceUtil.getClipboardManager(getContext()); - ClipData originalClipData = clipboardManager.getPrimaryClip(); - CharSequence pendingPaste = getTextFromClipData(originalClipData); - - if (pendingPaste == null) { - return super.onTextContextMenuItem(id); - } - - CharSequence sanitizedText = (pendingPaste instanceof Spanned) ? clearFormattingFromText(pendingPaste) - : pendingPaste; - - clipboardManager.setPrimaryClip(ClipData.newPlainText("signal_sanitized", sanitizedText)); - boolean performedAction = super.onTextContextMenuItem(id); - - clipboardManager.setPrimaryClip(originalClipData); - return performedAction; - } - return super.onTextContextMenuItem(id); - } - - private CharSequence clearFormattingFromText(CharSequence text) { - List mentions = MentionAnnotation.getMentionsFromAnnotations(text); - Spannable withoutFormatting = new SpannableString(text.toString()); - - MentionAnnotation.setMentionAnnotations(withoutFormatting, mentions); - - return withoutFormatting; - } - - private @Nullable CharSequence getTextFromClipData(ClipData data) { - if (data != null && data.getItemCount() > 0) { - return data.getItemAt(0).coerceToText(getContext()); - } else { - return null; - } - } }