package org.thoughtcrime.securesms.components.emoji;

import android.text.InputFilter;
import android.text.Spannable;
import android.text.Spanned;
import android.text.TextUtils;
import android.widget.TextView;

public class EmojiFilter implements InputFilter {
  private TextView view;

  public EmojiFilter(TextView view) {
    this.view = view;
  }

  @Override
  public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend)
  {
    char[] v = new char[end - start];
    TextUtils.getChars(source, start, end, v, 0);

    Spannable emojified = EmojiProvider.getInstance(view.getContext()).emojify(new String(v), view);

    if (source instanceof Spanned && emojified != null) {
      TextUtils.copySpansFrom((Spanned) source, start, end, null, emojified, 0);
    }

    return emojified;
  }
}