- public class DBManager
- {
- // Variable to hold the database instance
- private SQLiteDatabase db;
- // Database open/upgrade helper
- private DatabaseHelper dbHelper;
- public DBManager(Context _context)
- {
- Log.v("DBManager", "constructor");
- dbHelper = new DatabaseHelper(_context, SqlConstants.DATABASE_NAME, null, SqlConstants.DATABASE_VERSION);
- }
- public DBManager open() throws SQLException
- {
- Log.v("DBManager", "open");
- db = dbHelper.getWritableDatabase();
- return this;
- }
- public void close()
- {
- Log.v("DBManager", "close");
- db.close();
- }
- ...
- /**
- * Query all forms available locally.
- * @return A list with all forms (form.name and form.FormId) available on local db
- * or null if there was a problem.
- */
- public ArrayList<Form> getAllForms()
- {
- Log.v("DBManager", "getAllForms");
- ArrayList<Form> list = null;
- Cursor c = null;
- try
- {
- c = this.getAllFormsCursor();
- if (c != null)
- {
- int formNameIndex = c.getColumnIndex(SqlConstants.COLUMN_FORM_NAME);
- int formIdIndex = c.getColumnIndex(SqlConstants.COLUMN_FORM_ID);
- c.moveToFirst();
- if (c.getCount() > 0)
- {
- list = new ArrayList<Form>(c.getCount());
- do
- {
- Form f = new Form();
- f.Name = c.getString(formNameIndex);
- f.FormId = c.getString(formIdIndex);
- list.add(f);
- }
- while (c.moveToNext());
- }
- }
- }
- catch (Exception e)
- {
- e.printStackTrace();
- list = null;
- }
- finally
- {
- if (c != null)
- c.close();
- }
- return list;
- }
- private Cursor getAllFormsCursor()
- {
- Log.v("DBManager", "getAllFormsCursor");
- return db.query(SqlConstants.TABLE_FORM,
- new String[] {
- SqlConstants.COLUMN_FORM_ID,
- SqlConstants.COLUMN_FORM_NAME}, null, null, null, null, null);
- }
- }
- private class DbFormListAsyncTask extends AsyncTask<Void, Void, ArrayList<Form>>
- {
- private Context mContext;
- private ProgressDialog loadingDialog;
- private DBManager dbMan;
- DbFormListAsyncTask(Context context)
- {
- this.mContext = context;
- loadingDialog = new ProgressDialog(mContext);
- loadingDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
- loadingDialog.setMessage("Retriving forms. Please wait...");
- loadingDialog.setCancelable(false);
- loadingDialog.show();
- }
- @Override
- protected ArrayList<Form> doInBackground(Void... arg0)
- {
- dbMan = new DBManager(mContext);
- dbMan.open();
- return dbMan.getAllForms();
- }
- protected void onPostExecute(ArrayList<Form> forms)
- {
- if (forms != null)
- {
- ListActivity act = (ListActivity) mContext;
- act.setListAdapter(new AvaFormAdapter(act, R.layout.ava_list_item, forms));
- }
- else
- {
- TextView errorMsg = (TextView)
- ((FormsListActivity) mContext).findViewById(R.id.formErrorMsg);
- errorMsg.setText("Problem getting forms. Please try again later.");
- }
- loadingDialog.dismiss();
- if (dbMan != null)
- dbMan.close();
- }
- }
- protected ArrayList<Form> doInBackground(Void... arg0)
- {
- dbMan = new DBManager(mContext);
- dbMan.open();
- ArrayList<Form> resutl = dbMan.getAllForms();
- dbMan.close();
- return result;
- }