Search in sources :

Example 1 with LongClickableSpan

use of com.franckrj.respawnirc.utils.LongClickableSpan 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)

Example 2 with LongClickableSpan

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

the class InsertStuffDialogFragment method replaceUrlSpans.

private Spannable replaceUrlSpans(Spanned spanToChange) {
    Spannable spannable = new SpannableString(spanToChange);
    URLSpan[] urlSpanArray = spannable.getSpans(0, spannable.length(), URLSpan.class);
    for (final URLSpan urlSpan : urlSpanArray) {
        Utils.replaceSpanByAnotherSpan(spannable, urlSpan, new LongClickableSpan() {

            @Override
            public void onLongClick(View view) {
                if (getActivity() instanceof StuffInserted) {
                    sendWhichInsertIsNeeded(urlSpan.getURL(), (StuffInserted) getActivity());
                }
            }

            @Override
            public void onClick(View view) {
                onLongClick(view);
                dismiss();
            }
        });
    }
    return spannable;
}
Also used : SpannableString(android.text.SpannableString) LongClickableSpan(com.franckrj.respawnirc.utils.LongClickableSpan) URLSpan(android.text.style.URLSpan) ImageView(android.widget.ImageView) View(android.view.View) TextView(android.widget.TextView) ScrollView(android.widget.ScrollView) Spannable(android.text.Spannable)

Aggregations

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