package com.greenfrvr.hashtagview.sample.fragments;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import com.greenfrvr.hashtagview.sample.R;
import com.greenfrvr.hashtagview.sample.utils.IntentFactory;
import butterknife.Bind;
/**
* Created by greenfrvr
*/
public class ContactsFragment extends BaseFragment {
protected @Bind(R.id.next_button) Button nextButton;
protected @Bind(R.id.contact) TextView contactTextView;
protected @Bind(R.id.sources) TextView sourcesTextView;
private Listener listener;
@Override
public void onAttach(Context context) {
super.onAttach(context);
if(context instanceof Listener) {
listener = (Listener) context;
}
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_contacts, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
nextButton.setVisibility(View.GONE);
contactTextView.setMovementMethod(LinkMovementMethod.getInstance());
sourcesTextView.setMovementMethod(LinkMovementMethod.getInstance());
contactTextView.setText(getContactText());
sourcesTextView.setText(getSourcesText());
}
private CharSequence getSourcesText() {
SpannableString spannable = new SpannableString(getString(R.string.sources));
spannable.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
if (listener != null) {
listener.openGitHubPage();
}
}
}, spannable.toString().length() - 6, spannable.toString().length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return spannable;
}
private CharSequence getContactText() {
SpannableString spannable = new SpannableString(getString(R.string.contact));
spannable.setSpan(new ClickableSpan() {
@Override
public void onClick(View widget) {
IntentFactory.email(getActivity(), getString(R.string.email));
}
}, 8, 31, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
return spannable;
}
public interface Listener {
void openGitHubPage();
}
}