Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2e59771e authored by Andrei Stingaceanu's avatar Andrei Stingaceanu Committed by Android Git Automerger
Browse files

am 0e6360f4: am a9b9907f: Merge "Fix insertion handle disappearing in extract mode" into mnc-dev

* commit '0e6360f4':
  Fix insertion handle disappearing in extract mode
parents ae2aaebb 0e6360f4
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -105,8 +105,8 @@ public class ExtractEditText extends EditText {
    @Override public boolean onTextContextMenuItem(int id) {
        if (mIME != null && mIME.onExtractTextContextMenuItem(id)) {
            // Mode was started on Extracted, needs to be stopped here.
            // Cut and paste will change the text, which stops selection mode.
            if (id == android.R.id.copy) stopTextActionMode();
            // Cut will change the text, which stops selection mode.
            if (id == android.R.id.copy || id == android.R.id.paste) stopTextActionMode();
            return true;
        }
        return super.onTextContextMenuItem(id);
+20 −9
Original line number Diff line number Diff line
@@ -6347,19 +6347,30 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
        if (text.text != null) {
            if (content == null) {
                setText(text.text, TextView.BufferType.EDITABLE);
            } else if (text.partialStartOffset < 0) {
                removeParcelableSpans(content, 0, content.length());
                content.replace(0, content.length(), text.text);
            } else {
                int start = 0;
                int end = content.length();

                if (text.partialStartOffset >= 0) {
                    final int N = content.length();
                int start = text.partialStartOffset;
                    start = text.partialStartOffset;
                    if (start > N) start = N;
                int end = text.partialEndOffset;
                    end = text.partialEndOffset;
                    if (end > N) end = N;
                }

                removeParcelableSpans(content, start, end);
                if (TextUtils.equals(content.subSequence(start, end), text.text)) {
                    if (text.text instanceof Spanned) {
                        // OK to copy spans only.
                        TextUtils.copySpansFrom((Spanned) text.text, start, end,
                                Object.class, content, start);
                    }
                } else {
                    content.replace(start, end, text.text);
                }
            }
        }

        // Now set the selection position...  make sure it is in range, to
        // avoid crashes.  If this is a partial update, it is possible that