package com.zulip.android.util; import android.content.Context; import android.text.TextPaint; import android.text.style.ClickableSpan; import android.view.View; import com.zulip.android.ZulipApp; import com.zulip.android.filters.NarrowFilterPM; import com.zulip.android.models.Person; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; public class ProfileSpan extends ClickableSpan { private String email; private int userMentionColor; public ProfileSpan(String email, int color) { this.email = email; userMentionColor = color; } @Override public void onClick(View widget) { Context context = widget.getContext().getApplicationContext(); List<Person> people = new ArrayList<Person>(); if (email.equals("*")) { //This is for "@all" try { people = Person.getAllPeople(ZulipApp.get()); } catch (SQLException e) { ZLog.logException(e); return; } } else { for (String email : this.email.split(",")) { Person person = Person.getByEmail(ZulipApp.get(), email); if (person != null) { people.add(person); } } people.add(ZulipApp.get().getYou()); } (((ZulipApp) context).getZulipActivity()).doNarrow(new NarrowFilterPM(people)); } @Override public void updateDrawState(TextPaint ds) { ds.setColor(userMentionColor); } }