Skip to content

Instantly share code, notes, and snippets.

@GlebMaltsev
Created March 14, 2017 09:59
Show Gist options
  • Save GlebMaltsev/95c7a474b288d127153eec5a651d416a to your computer and use it in GitHub Desktop.
Save GlebMaltsev/95c7a474b288d127153eec5a651d416a to your computer and use it in GitHub Desktop.
private class DatabaseLoadTask extends AsyncTask<Void, Void, Void> {
@Override
public Void doInBackground(Void... params) {
Repository.getInstance().addArrayOfStringsList(CsvHelper.readArrayOfStringsList(), new Repository.TransactionListener() {
@Override
public boolean isCancelled() {
return DatabaseLoadTask.this.isCancelled();
}
});
return null;
}
@Override
public void onPostExecute(Void result) {
super.onPostExecute(result);
PreferenceUtils.setDatabaseWasLoaded();
if (userClickFinishIntro) {
finishIntro();
}
}
}
public void addArrayOfStringsList(List<String[]> lineList, TransactionListener transactionListener) {
if (lineList != null) {
Iterator<String[]> lineIterator = lineList.iterator();
database.beginTransaction();
while (lineIterator.hasNext()) {
if (transactionListener.isCancelled()) {
database.endTransaction();
break;
}
List<String> stringList = Arrays.asList(lineIterator.next());
if (stringList.size() == CsvHelper.COLUMN_COUNT) {
Iterator<String> stringIterator = stringList.iterator();
ContentValues contentValues = new ContentValues();
String name = stringIterator.next();
contentValues.put(DbHelper.COLUMN_NAME, name);
contentValues.put(DbHelper.COLUMN_CALORIES, NumberUtils.toDouble(stringIterator.next(), 0));
contentValues.put(DbHelper.COLUMN_PROTEIN, NumberUtils.toDouble(stringIterator.next(), 0));
contentValues.put(DbHelper.COLUMN_FAT, NumberUtils.toDouble(stringIterator.next(), 0));
contentValues.put(DbHelper.COLUMN_CARBOHYDRATES, NumberUtils.toDouble(stringIterator.next(), 0));
long rowId = database.insert(DbHelper.TABLE_DISHES_NAME, null, contentValues);
Log.d(LOG_TAG, "row inserted, ID = " + rowId + ", " + DbHelper.COLUMN_NAME + " " + name);
}
}
database.setTransactionSuccessful();
database.endTransaction();
}
}
public interface TransactionListener {
boolean isCancelled();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment