package what.whatandroid.barcode;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.AsyncTask;
import android.widget.Toast;
import api.barcode.Barcode;
/**
* Async task to delete some barcode from the database no parameters will indicate
* to clear all barcodes
*/
public class DeleteBarcodeTask extends AsyncTask<Barcode, Void, Boolean> {
private final Context context;
private BarcodeDatabaseHelper helper;
public DeleteBarcodeTask(Context c){
context = c;
helper = new BarcodeDatabaseHelper(context);
}
@Override
protected Boolean doInBackground(Barcode... params){
try {
SQLiteDatabase database = helper.getWritableDatabase();
if (database != null){
boolean status;
if (params.length == 0){
database.delete(BarcodeDatabaseHelper.TABLE, null, null);
status = true;
}
else {
status = database.delete(BarcodeDatabaseHelper.TABLE,
BarcodeDatabaseHelper.COL_UPC + "='" + params[0].getUpc() + "';", null) > 0;
}
database.close();
return status;
}
}
catch (SQLiteException e){
e.printStackTrace();
}
return false;
}
@Override
protected void onPostExecute(Boolean status){
if (!status){
Toast.makeText(context, "Could not delete barcode", Toast.LENGTH_SHORT).show();
}
}
}