package edu.mit.mitmobile2.libraries; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.text.Html; import android.util.Log; import android.view.View; import android.widget.ListView; import android.widget.TextView; 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.objs.LoanListItem; public class LibraryRenewBooks extends NewModuleActivity { public static final String TAG = "LibraryLoans"; private View mLoanResults; private ListView mListView; private FullScreenLoader mLoadingView; private TextView loanTitleTV; private TextView loanAuthorTV; private TextView loanStatusTV; Context mContext; @Override protected void onCreate(Bundle savedInstanceState) { Log.d(TAG,"onCreate()"); super.onCreate(savedInstanceState); mContext = this; setContentView(R.layout.library_loans); addSecondaryTitle("Loans"); mLoanResults = (View) findViewById(R.id.loanResults); loanStatusTV = (TextView) findViewById(R.id.loanStatusTV); mListView = (ListView) findViewById(R.id.listLibraryLoans); mLoadingView = (FullScreenLoader) findViewById(R.id.librarySearchLoading); final ArrayList<LoanListItem> results = LibraryLoans.getLoanData().getLoans(); LibraryRenewBooksAdapter adapter = new LibraryRenewBooksAdapter(results); mListView.setAdapter(adapter); adapter.setLookupHandler(mListView, null); mLoadingView.setVisibility(View.GONE); //doSearch(); } @SuppressWarnings("unused") private void doSearch() { mLoanResults.setVisibility(View.GONE); mLoadingView.setVisibility(View.VISIBLE); mLoadingView.showLoading(); LibraryModel.fetchLoanDetail(this, uiHandler); } private Handler uiHandler = new Handler() { @Override public void handleMessage(Message msg) { Log.d(TAG,"handleMessage"); mLoadingView.setVisibility(View.GONE); if (msg.arg1 == MobileWebApi.SUCCESS) { Log.d(TAG,"MobileWebApi success"); LoanData loanData = (LoanData)msg.obj; LibraryLoans.setLoanData((LoanData)msg.obj); loanStatusTV.setText("You have " + loanData.getNumLoan() + " items on loan." + loanData.getNumOverdue() + " overdue."); final ArrayList<LoanListItem> results = loanData.getLoans(); if (results.size() == 0) { Toast.makeText(LibraryRenewBooks.this, "No loans found", Toast.LENGTH_SHORT).show(); } LibraryRenewBooksAdapter adapter = new LibraryRenewBooksAdapter(results); mListView.setAdapter(adapter); adapter.setLookupHandler(mListView, null); mLoanResults.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; } @Override protected boolean isScrollable() { return false; } @Override protected void onOptionSelected(String optionId) { } private class LibraryRenewBooksAdapter extends SimpleArrayAdapter<LoanListItem> { @SuppressWarnings("unused") private List<LoanListItem> libraryLoanItems; public LibraryRenewBooksAdapter(List<LoanListItem> items) { super(LibraryRenewBooks.this, items, R.layout.library_renew_books_action_row); libraryLoanItems = items; } public void setLookupHandler(ListView listView, final String extras) { setOnItemClickListener(listView, new SimpleArrayAdapter.OnItemClickListener<LoanListItem>() { @Override public void onItemSelected(LoanListItem item) { Log.d(TAG,item.getTitle() + " clicked"); //Intent intent = new Intent(mContext, LibraryLoanDetail.class); //intent.putExtra("index", item.getIndex()); //startActivity(intent); } }); } @Override public void updateView(LoanListItem item, View view) { // Title loanTitleTV = (TextView)view.findViewById(R.id.loanTitleTV); if (!item.getTitle().equalsIgnoreCase("")) { loanTitleTV.setText(item.getTitle()); } else { loanTitleTV.setVisibility(View.GONE); } // Year + Author loanAuthorTV = (TextView)view.findViewById(R.id.loanAuthorTV); if (!item.getAuthor().equalsIgnoreCase("") || !item.getYear().equalsIgnoreCase("")) { loanAuthorTV.setText(item.getYear() + "; " + item.getAuthor()); } else { loanAuthorTV.setVisibility(View.GONE); } // Status loanStatusTV = (TextView)view.findViewById(R.id.loanStatusTV); loanStatusTV.setText(Html.fromHtml(item.getDueText())); if (item.isOverdue() || item.isLongOverdue()) { loanStatusTV.setTextColor(Color.RED); } else { loanStatusTV.setTextColor(getResources().getColor(R.color.contents_text)); } } } }