package org.thoughtcrime.securesms;

import android.content.Context;
import android.text.SpannableString;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;

import org.thoughtcrime.securesms.components.emoji.EmojiTextView;
import org.thoughtcrime.securesms.util.LongClickMovementMethod;

public class ProfileStatusItem extends LinearLayout {

  private EmojiTextView statusTextView;
  private final PassthroughClickListener passthroughClickListener   = new PassthroughClickListener();

  public ProfileStatusItem(Context context) {
    super(context);
  }

  public ProfileStatusItem(Context context, AttributeSet attrs) {
    super(context, attrs);
  }

  @Override
  protected void onFinishInflate() {
    super.onFinishInflate();
    statusTextView = findViewById(R.id.status_text);
    statusTextView.setOnLongClickListener(passthroughClickListener);
    statusTextView.setOnClickListener(passthroughClickListener);
    statusTextView.setMovementMethod(LongClickMovementMethod.getInstance(getContext()));
  }

  public void set(String status) {
    statusTextView.setText(EmojiTextView.linkify(new SpannableString(status)));
  }

  private class PassthroughClickListener implements View.OnLongClickListener, View.OnClickListener {

    @Override
    public boolean onLongClick(View v) {
      if (statusTextView.hasSelection()) {
        return false;
      }
      performLongClick();
      return true;
    }

    @Override
    public void onClick(View v) {
      performClick();
    }
  }
}
