package edu.mit.mitmobile2.qrreader;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import edu.mit.mitmobile2.DateStrings;
import edu.mit.mitmobile2.NewModule;
import edu.mit.mitmobile2.NewModuleActivity;
import edu.mit.mitmobile2.R;
import edu.mit.mitmobile2.SimpleArrayAdapter;
public class QRReaderHistoryActivity extends NewModuleActivity {
private QRCodeDB mQRCodeDB;
private ArrayList<QRCode> mQRCodes;
private QRCodeArrayAdapter mListAdapter;
private ListView mHistoryListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mQRCodeDB = QRCodeDB.getInstance(getApplicationContext());
List<QRCode> savedQRCodes = mQRCodeDB.getQRCodes();
mQRCodes = new ArrayList<QRCode>(savedQRCodes);
mListAdapter = new QRCodeArrayAdapter(this, mQRCodes);
setContentView(R.layout.qrreader_history);
mHistoryListView = (ListView) findViewById(R.id.qrreaderMainHistoryLV);
mHistoryListView.setAdapter(mListAdapter);
mListAdapter.setOnItemClickListener(mHistoryListView,
new SimpleArrayAdapter.OnItemClickListener<QRCode>() {
@Override
public void onItemSelected(QRCode item) {
QRReaderDetailActivity.launch(QRReaderHistoryActivity.this, item);
}
}
);
if(mQRCodes.size() > 0) {
mHistoryListView.setVisibility(View.VISIBLE);
}
}
private static class QRCodeArrayAdapter extends SimpleArrayAdapter<QRCode> {
public QRCodeArrayAdapter(Context context, List<QRCode> items) {
super(context, items, R.layout.qrreader_row);
}
@Override
public void updateView(QRCode item, View view) {
ImageView barcodeIV = (ImageView) view.findViewById(R.id.qrreaderRowIV);
TextView barcodeTitle = (TextView) view.findViewById(R.id.qrreaderRowTitle);
TextView barcodeSubtitle = (TextView) view.findViewById(R.id.qrreaderRowSubtitle);
barcodeIV.setImageBitmap(item.getBitmap());
barcodeTitle.setText(item.getId());
barcodeSubtitle.setText("Scanned " + DateStrings.agoString(item.getDate()));
}
}
// dont show history option in history activity
@Override
protected List<String> getMenuItemBlackList() {
ArrayList<String> items = new ArrayList<String>();
items.add("history");
return items;
}
@Override
protected NewModule getNewModule() {
return new QRReaderModule();
}
@Override
public boolean isModuleHomeActivity() {
return false;
}
@Override
protected boolean isScrollable() {
return false;
}
@Override
protected void onOptionSelected(String optionId) { }
}