package edu.mit.mitmobile2.libraries; import java.util.ArrayList; import java.util.List; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.widget.ListView; import android.widget.Toast; import edu.mit.mitmobile2.FullScreenLoader; import edu.mit.mitmobile2.MobileWebApi; import edu.mit.mitmobile2.NewModule; import edu.mit.mitmobile2.NewModuleActivity; import edu.mit.mitmobile2.R; import edu.mit.mitmobile2.SimpleArrayAdapter; import edu.mit.mitmobile2.TwoLineActionRow; public class LibraryLocationAndHour extends NewModuleActivity { private ListView mListView; private FullScreenLoader mLoadingView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.library_location_hour); mListView = (ListView) findViewById(R.id.listLibraryLocation); mLoadingView = (FullScreenLoader) findViewById(R.id.librarySearchLoading); addSecondaryTitle("Locations & Hours"); doFetch(); } private void doFetch() { mListView.setVisibility(View.GONE); mLoadingView.setVisibility(View.VISIBLE); mLoadingView.showLoading(); LibraryModel.fetchLocationsAndHours(this, uiHandler); } private Handler uiHandler = new Handler() { @Override public void handleMessage(Message msg) { mLoadingView.setVisibility(View.GONE); if (msg.arg1 == MobileWebApi.SUCCESS) { @SuppressWarnings("unchecked") final ArrayList<LibraryItem> results = (ArrayList<LibraryItem>) msg.obj; if (results.size() == 0) { Toast.makeText(LibraryLocationAndHour.this, "No libraries found", Toast.LENGTH_SHORT).show(); } LibraryListAdapter adapter = new LibraryListAdapter(results); mListView.setAdapter(adapter); adapter.setLookupHandler(mListView, null); mListView.setVisibility(View.VISIBLE); } else if (msg.arg1 == MobileWebApi.ERROR) { mLoadingView.showError(); } else if (msg.arg1 == MobileWebApi.CANCELLED) { mLoadingView.showError(); } } }; @Override protected NewModule getNewModule() { return new LibrariesModule(); } @Override public boolean isModuleHomeActivity() { return false; } private class LibraryListAdapter extends SimpleArrayAdapter<LibraryItem> { private List<LibraryItem> libraryItems; public LibraryListAdapter(List<LibraryItem> items) { super(LibraryLocationAndHour.this, items, R.layout.boring_action_row); libraryItems = items; } public void setLookupHandler(ListView listView, final String extras) { setOnItemClickListener(listView, new SimpleArrayAdapter.OnItemClickListener<LibraryItem>() { @Override public void onItemSelected(LibraryItem item) { LibraryDetailActivity.launchActivity(getContext(), libraryItems, libraryItems.indexOf(item)); } }); } @Override public void updateView(LibraryItem item, View view) { TwoLineActionRow twoLineActionRow = (TwoLineActionRow) view; twoLineActionRow.setTitle(item.library); twoLineActionRow.setSubtitle(item.status); } } @Override protected boolean isScrollable() { return false; } @Override protected void onOptionSelected(String optionId) { // TODO Auto-generated method stub } }