package com.conference.app.lib.ui; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.AsyncTask; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import com.conference.app.lib.R; import com.conference.app.lib.database.DatabaseHelper; import com.conference.app.lib.database.tables.SpeakerTable; import com.conference.app.lib.ui.adapter.SpeakerAdapter; public class Speaker extends Activity { private static final String TAG = Speaker.class.getName(); private static final boolean DEBUG = false; private ListView speakerList; private SQLiteDatabase db; private boolean isFirstInit = true; @Override protected void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.speaker); final DatabaseHelper helper = new DatabaseHelper(Speaker.this); db = helper.getReadableDatabase(); } @Override protected void onResume() { super.onResume(); if (!isFirstInit) { return; } isFirstInit = false; initViews(); initViewValues(); } @Override protected void onDestroy() { super.onDestroy(); if (db != null && db.isOpen()) { db.close(); } isFirstInit = true; } private void initViews() { speakerList = (ListView) findViewById(R.id.speakerlist); speakerList.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(final AdapterView<?> adapter, final View view, final int position, final long id) { final Cursor cursor = (Cursor) adapter.getItemAtPosition(position); final String uniqueSpeakerId = cursor.getString(cursor.getColumnIndex(SpeakerTable.UNIQUE_ID)); final Intent intent = new Intent(Speaker.this, SpeakerDetails.class); intent.putExtra(SpeakerDetails.EXTRA_SPEAKER_ID, uniqueSpeakerId); startActivity(intent); } }); } private void initViewValues() { new LoadSpeakers().execute(); } public void onClickActionBarHome(final View view) { final Intent intent = new Intent(this, Dashboard.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); // overridePendingTransition(R.anim.home_enter, R.anim.home_exit); } private class LoadSpeakers extends AsyncTask<Void, Void, Cursor> { @Override protected Cursor doInBackground(final Void... params) { final Cursor cursor = db.query(SpeakerTable.TABLE_NAME, new String[] { SpeakerTable.ID, SpeakerTable.UNIQUE_ID, SpeakerTable.DISPLAY_NAME, SpeakerTable.COMPANY, SpeakerTable.LAST_NAME }, null, null, null, null, SpeakerTable.LAST_NAME + " ASC"); startManagingCursor(cursor); return cursor; } @Override protected void onPostExecute(final Cursor result) { if (result != null) { final SpeakerAdapter adapter = new SpeakerAdapter(Speaker.this, result); speakerList.setAdapter(adapter); speakerList.invalidate(); adapter.notifyDataSetChanged(); } } } }