1
0
Fork 0
mirror of https://github.com/M66B/FairEmail.git synced 2024-12-26 01:36:55 +00:00

Style pasted quotes

This commit is contained in:
M66B 2019-11-17 13:04:05 +01:00
parent e7f179c90d
commit 676342e66d

View file

@ -25,7 +25,9 @@ import android.content.Context;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.text.SpannableStringBuilder;
import android.text.Spanned; import android.text.Spanned;
import android.text.style.QuoteSpan;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.inputmethod.EditorInfo; import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputConnection; import android.view.inputmethod.InputConnection;
@ -71,6 +73,19 @@ public class EditTextCompose extends AppCompatEditText {
html = HtmlHelper.sanitize(context, html, false, false); html = HtmlHelper.sanitize(context, html, false, false);
Spanned paste = HtmlHelper.fromHtml(html); Spanned paste = HtmlHelper.fromHtml(html);
int colorPrimary = Helper.resolveColor(context, R.attr.colorPrimary);
SpannableStringBuilder ssb = new SpannableStringBuilder(paste);
QuoteSpan[] spans = ssb.getSpans(0, ssb.length(), QuoteSpan.class);
for (QuoteSpan span : spans) {
ssb.setSpan(
new StyledQuoteSpan(context, colorPrimary),
ssb.getSpanStart(span),
ssb.getSpanEnd(span),
ssb.getSpanFlags(span));
ssb.removeSpan(span);
}
int start = getSelectionStart(); int start = getSelectionStart();
int end = getSelectionEnd(); int end = getSelectionEnd();
@ -86,9 +101,9 @@ public class EditTextCompose extends AppCompatEditText {
} }
if (start == end) if (start == end)
getText().insert(start, paste); getText().insert(start, ssb);
else else
getText().replace(start, end, paste); getText().replace(start, end, ssb);
return true; return true;
} }