package com.tokenautocomplete;
import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.TextView;
import java.util.List;
import java.util.Random;
public class TokenActivity extends Activity implements TokenCompleteTextView.TokenListener<Person> {
ContactsCompletionView completionView;
Person[] people;
ArrayAdapter<Person> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
people = new Person[]{
new Person("Marshall Weir", "marshall@example.com"),
new Person("Margaret Smith", "margaret@example.com"),
new Person("Max Jordan", "max@example.com"),
new Person("Meg Peterson", "meg@example.com"),
new Person("Amanda Johnson", "amanda@example.com"),
new Person("Terry Anderson", "terry@example.com"),
new Person("Siniša Damianos Pilirani Karoline Slootmaekers",
"siniša_damianos_pilirani_karoline_slootmaekers@example.com")
};
adapter = new FilteredArrayAdapter<Person>(this, R.layout.person_layout, people) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater l = (LayoutInflater)getContext().getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = l.inflate(R.layout.person_layout, parent, false);
}
Person p = getItem(position);
((TextView)convertView.findViewById(R.id.name)).setText(p.getName());
((TextView)convertView.findViewById(R.id.email)).setText(p.getEmail());
return convertView;
}
@Override
protected boolean keepObject(Person person, String mask) {
mask = mask.toLowerCase();
return person.getName().toLowerCase().startsWith(mask) || person.getEmail().toLowerCase().startsWith(mask);
}
};
completionView = (ContactsCompletionView)findViewById(R.id.searchView);
completionView.setAdapter(adapter);
completionView.setTokenListener(this);
completionView.setTokenClickStyle(TokenCompleteTextView.TokenClickStyle.Select);
if (savedInstanceState == null) {
completionView.setPrefix("To: ", Color.parseColor("blue"));
completionView.addObject(people[0]);
completionView.addObject(people[1]);
}
Button removeButton = (Button)findViewById(R.id.removeButton);
removeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
List<Person> people = completionView.getObjects();
if (people.size() > 0) {
completionView.removeObject(people.get(people.size() - 1));
}
}
});
Button addButton = (Button)findViewById(R.id.addButton);
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Random rand = new Random();
completionView.addObject(people[rand.nextInt(people.length)]);
}
});
}
private void updateTokenConfirmation() {
StringBuilder sb = new StringBuilder("Current tokens:\n");
for (Object token: completionView.getObjects()) {
sb.append(token.toString());
sb.append("\n");
}
((TextView)findViewById(R.id.tokens)).setText(sb);
}
@Override
public void onTokenAdded(Person token) {
((TextView)findViewById(R.id.lastEvent)).setText("Added: " + token);
updateTokenConfirmation();
}
@Override
public void onTokenRemoved(Person token) {
((TextView)findViewById(R.id.lastEvent)).setText("Removed: " + token);
updateTokenConfirmation();
}
}