package edu.mit.mitmobile2.people;
import java.util.Arrays;
import java.util.List;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.text.Spannable;
import android.text.style.TextAppearanceSpan;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ListView;
import android.widget.TextView;
import edu.mit.mitmobile2.CommonActions;
import edu.mit.mitmobile2.HighlightEffects;
import edu.mit.mitmobile2.MITMenuItem;
import edu.mit.mitmobile2.NewModule;
import edu.mit.mitmobile2.NewModuleActivity;
import edu.mit.mitmobile2.R;
import edu.mit.mitmobile2.TwoLineActionRow;
import edu.mit.mitmobile2.emergency.EmergencyContactsActivity;
import edu.mit.mitmobile2.objs.PersonItem;
import edu.mit.mitmobile2.objs.PersonItem.PersonDetailViewMode;
public class PeopleActivity extends NewModuleActivity {
private ListView mRecentlyViewed;
private View mRecentlyViewedListViewHeader;
private View mRecentlyViewedSectionHeader;
private List<PersonItem> mRecents;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
createViews();
}
@Override
protected void onResume() {
super.onResume();
populateRecentlyViewed();
}
private void createViews() {
setContentView(R.layout.people_main);
mRecentlyViewed = (ListView) findViewById(R.id.peopleRecentlyViewed);
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View headerView = inflater.inflate(R.layout.people_main_header, null);
mRecentlyViewedListViewHeader = headerView;
TwoLineActionRow mainDirectoryCall = (TwoLineActionRow) headerView.findViewById(R.id.peopleDirectoryNumberRow);
TwoLineActionRow moreEmergencyContacts = (TwoLineActionRow) headerView.findViewById(R.id.moreEmergencyContactsRow);
String title1 = "Phone Directory";
String title2 = "(617.253.1000)";
mainDirectoryCall.setTitle(title1 + " " + title2, TextView.BufferType.SPANNABLE);
Spannable spannable = (Spannable) mainDirectoryCall.getTitle();
int separator = title1.length() + 1;
spannable.setSpan(
new TextAppearanceSpan(this, R.style.ListItemPrimary),
0, separator, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
spannable.setSpan(
new TextAppearanceSpan(this, R.style.ListItemSecondary),
separator,
spannable.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
mainDirectoryCall.setActionIconResource(R.drawable.action_phone);
mainDirectoryCall.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CommonActions.callPhone(PeopleActivity.this, "6172531000");
}
});
moreEmergencyContacts.setTitle("Emergency Contacts");
final Context context = this;
moreEmergencyContacts.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(context, EmergencyContactsActivity.class);
startActivity(intent);
}
});
mRecentlyViewedSectionHeader = headerView.findViewById(R.id.peopleMainRecentlyViewedSectionHeader);
HighlightEffects.turnOffHighlightingEffects(headerView);
mRecentlyViewed.addHeaderView(mRecentlyViewedListViewHeader);
}
private void populateRecentlyViewed() {
mRecents = PeopleModel.getRecentlyViewed(this);
if(mRecents.size() > 0) {
mRecentlyViewedSectionHeader.setVisibility(View.VISIBLE);
} else {
mRecentlyViewedSectionHeader.setVisibility(View.GONE);
}
PeopleListAdapter recentlyViewedListAdapter = new PeopleListAdapter(PeopleActivity.this, mRecents, R.layout.boring_action_row);
recentlyViewedListAdapter.setHasHeader(true);
mRecentlyViewed.setAdapter(recentlyViewedListAdapter);
recentlyViewedListAdapter.setLookupHandler(mRecentlyViewed, PersonDetailViewMode.RECENT, null);
}
private static String MENU_CLEAR_RECENTS = "clear_recents";
@Override
protected List<MITMenuItem> getSecondaryMenuItems() {
return Arrays.asList(
new MITMenuItem(MENU_CLEAR_RECENTS, "Clear Recents")
);
}
@Override
public boolean isModuleHomeActivity() {
return true;
}
@Override
protected NewModule getNewModule() {
return new PeopleModule();
}
@Override
protected boolean isScrollable() {
return false;
}
@Override
protected void onOptionSelected(String id) {
if (id.equals(MENU_CLEAR_RECENTS)) {
PeopleDB.getInstance(this).clearAll();
populateRecentlyViewed();
}
}
}