Merge "Make drop consistent with paste for multiple text items in a ClipData" into sc-dev am: 4b2ab9bba3

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14455023

Change-Id: Ibe6077007c0f7938f2ddc19a769ac1dab64118fe
This commit is contained in:
Nikita Dubrovsky
2021-05-07 16:58:17 +00:00
committed by Automerger Merge Worker

View File

@@ -19,7 +19,6 @@ package android.widget;
import static android.content.ContentResolver.SCHEME_CONTENT;
import static android.view.ContentInfo.FLAG_CONVERT_TO_PLAIN_TEXT;
import static android.view.ContentInfo.SOURCE_AUTOFILL;
import static android.view.ContentInfo.SOURCE_DRAG_AND_DROP;
import static android.view.ContentInfo.SOURCE_INPUT_METHOD;
import android.annotation.NonNull;
@@ -82,10 +81,6 @@ public final class TextViewOnReceiveContentListener implements OnReceiveContentL
onReceiveForAutofill((TextView) view, payload);
return null;
}
if (source == SOURCE_DRAG_AND_DROP) {
onReceiveForDragAndDrop((TextView) view, payload);
return null;
}
// The code here follows the original paste logic from TextView:
// https://cs.android.com/android/_/android/platform/frameworks/base/+/9fefb65aa9e7beae9ca8306b925b9fbfaeffecc9:core/java/android/widget/TextView.java;l=12644
@@ -147,13 +142,6 @@ public final class TextViewOnReceiveContentListener implements OnReceiveContentL
Selection.setSelection(editable, editable.length());
}
private static void onReceiveForDragAndDrop(@NonNull TextView view,
@NonNull ContentInfo payload) {
final CharSequence text = coerceToText(payload.getClip(), view.getContext(),
payload.getFlags());
replaceSelection((Editable) view.getText(), text);
}
private static @NonNull CharSequence coerceToText(@NonNull ClipData clip,
@NonNull Context context, @Flags int flags) {
SpannableStringBuilder ssb = new SpannableStringBuilder();