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

This commit is contained in:
Nikita Dubrovsky
2021-05-07 16:57:02 +00:00
committed by Android (Google) Code Review

View File

@@ -19,7 +19,6 @@ package android.widget;
import static android.content.ContentResolver.SCHEME_CONTENT; import static android.content.ContentResolver.SCHEME_CONTENT;
import static android.view.ContentInfo.FLAG_CONVERT_TO_PLAIN_TEXT; import static android.view.ContentInfo.FLAG_CONVERT_TO_PLAIN_TEXT;
import static android.view.ContentInfo.SOURCE_AUTOFILL; 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 static android.view.ContentInfo.SOURCE_INPUT_METHOD;
import android.annotation.NonNull; import android.annotation.NonNull;
@@ -82,10 +81,6 @@ public final class TextViewOnReceiveContentListener implements OnReceiveContentL
onReceiveForAutofill((TextView) view, payload); onReceiveForAutofill((TextView) view, payload);
return null; return null;
} }
if (source == SOURCE_DRAG_AND_DROP) {
onReceiveForDragAndDrop((TextView) view, payload);
return null;
}
// The code here follows the original paste logic from TextView: // 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 // 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()); 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, private static @NonNull CharSequence coerceToText(@NonNull ClipData clip,
@NonNull Context context, @Flags int flags) { @NonNull Context context, @Flags int flags) {
SpannableStringBuilder ssb = new SpannableStringBuilder(); SpannableStringBuilder ssb = new SpannableStringBuilder();