Search in sources :

Example 1 with HoldingStringSpan

use of com.franckrj.respawnirc.utils.HoldingStringSpan in project RespawnIRC-Android by FranckRJ.

the class JVCTopicAdapter method replaceNeededSpansAndEmojis.

private CharSequence replaceNeededSpansAndEmojis(Spanned spanToChange, final JVCParser.MessageInfos infosOfMessage) {
    Spannable spannable = new SpannableString(spanToChange);
    QuoteSpan[] quoteSpanArray = spannable.getSpans(0, spannable.length(), QuoteSpan.class);
    for (QuoteSpan quoteSpan : quoteSpanArray) {
        Utils.replaceSpanByAnotherSpan(spannable, quoteSpan, new CustomQuoteSpan(ThemeManager.getColorInt(R.attr.themedQuoteBackgroundColor, parentActivity), ThemeManager.getColorInt(R.attr.colorPrimary, parentActivity), parentActivity.getResources().getDimensionPixelSize(R.dimen.quoteStripSize), parentActivity.getResources().getDimensionPixelSize(R.dimen.quoteStripGap)));
    }
    URLSpan[] urlSpanArray = spannable.getSpans(0, spannable.length(), URLSpan.class);
    for (final URLSpan urlSpan : urlSpanArray) {
        Utils.replaceSpanByAnotherSpan(spannable, urlSpan, new LongClickableSpan() {

            @Override
            public void onClick(View view) {
                if (urlCLickedListener != null) {
                    urlCLickedListener.getClickedURL(urlSpan.getURL(), false);
                }
            }

            @Override
            public void onLongClick(View v) {
                if (urlCLickedListener != null) {
                    urlCLickedListener.getClickedURL(urlSpan.getURL(), true);
                }
            }
        });
    }
    HoldingStringSpan[] holdingStringSpanArray = spannable.getSpans(0, spannable.length(), HoldingStringSpan.class);
    for (final HoldingStringSpan holdingStringSpan : holdingStringSpanArray) {
        Utils.replaceSpanByAnotherSpan(spannable, holdingStringSpan, new ClickableSpan() {

            @Override
            public void onClick(View view) {
                updateListOfSpoidIdToShow(infosOfMessage, holdingStringSpan.getString());
            }

            @Override
            public void updateDrawState(TextPaint ds) {
            // rien
            }
        });
    }
    return Utils.applyEmojiCompatIfPossible(spannable);
}
Also used : HoldingStringSpan(com.franckrj.respawnirc.utils.HoldingStringSpan) LongClickableSpan(com.franckrj.respawnirc.utils.LongClickableSpan) QuoteSpan(android.text.style.QuoteSpan) URLSpan(android.text.style.URLSpan) ImageView(android.widget.ImageView) View(android.view.View) CardView(android.support.v7.widget.CardView) TextView(android.widget.TextView) ClickableSpan(android.text.style.ClickableSpan) LongClickableSpan(com.franckrj.respawnirc.utils.LongClickableSpan) TextPaint(android.text.TextPaint) SpannableString(android.text.SpannableString) Spannable(android.text.Spannable)

Aggregations

CardView (android.support.v7.widget.CardView)1 Spannable (android.text.Spannable)1 SpannableString (android.text.SpannableString)1 TextPaint (android.text.TextPaint)1 ClickableSpan (android.text.style.ClickableSpan)1 QuoteSpan (android.text.style.QuoteSpan)1 URLSpan (android.text.style.URLSpan)1 View (android.view.View)1 ImageView (android.widget.ImageView)1 TextView (android.widget.TextView)1 HoldingStringSpan (com.franckrj.respawnirc.utils.HoldingStringSpan)1 LongClickableSpan (com.franckrj.respawnirc.utils.LongClickableSpan)1