package org.sana.android.task; import org.sana.R; import org.sana.android.util.SanaUtil; import android.app.ProgressDialog; import android.content.Context; import android.os.AsyncTask; import android.util.Log; /** * Clears the application database. * * @author Sana Development Team * */ public class ClearDatabaseTask extends AsyncTask<Context, Void, Integer> { private static final String TAG = ClearDatabaseTask.class.getSimpleName(); private ProgressDialog progressDialog; private Context mContext = null; // TODO context leak? /** * Instantiates a new task for clearing the database. * @param c the current Context */ public ClearDatabaseTask(Context c) { this.mContext = c; } /** {@inheritDoc} */ @Override protected Integer doInBackground(Context... params) { Log.i(TAG, "Executing ResetDatabaseTask"); Context c = params[0]; try{ SanaUtil.clearDatabase(c); } catch(Exception e){ SanaUtil.errorAlert(c.getApplicationContext(), c.getApplicationContext().getString(R.string.msg_err_reset_db)); } return 0; } /** {@inheritDoc} */ @Override protected void onPreExecute() { Log.i(TAG, "About to execute ResetDatabaseTask"); if (progressDialog != null) { progressDialog.dismiss(); progressDialog = null; } progressDialog = new ProgressDialog(mContext); progressDialog.setMessage("Clearing Database"); // TODO i18n progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); progressDialog.show(); } /** {@inheritDoc} */ @Override protected void onPostExecute(Integer result) { Log.i(TAG, "Completed ResetDatabaseTask"); if (progressDialog != null) { progressDialog.dismiss(); progressDialog = null; } } }