package com.evancharlton.mileage.tasks;
import com.evancharlton.mileage.io.CsvDateFormatActivity;
import com.evancharlton.mileage.provider.Settings;
import android.util.Log;
import au.com.bytecode.opencsv.CSVReader;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class CsvDateReaderTask extends
AttachableAsyncTask<CsvDateFormatActivity, String, String, String> {
private static final String TAG = "CsvDateReaderTask";
private final int mIndex;
public CsvDateReaderTask(int index) {
mIndex = index;
Log.d(TAG, "Parsing date from column #" + index);
}
@Override
protected String doInBackground(String... params) {
final String inputFile = params[0];
final String absoluteInputFile = Settings.EXTERNAL_DIR + inputFile;
try {
BufferedReader reader = new BufferedReader(new FileReader(absoluteInputFile));
CSVReader csvReader = new CSVReader(reader);
// skip the first row of headers
csvReader.readNext();
String[] data = csvReader.readNext();
csvReader.close();
return data[mIndex];
} catch (IOException e) {
Log.e(TAG, "Could not get columns!", e);
}
return null;
}
@Override
protected void onPostExecute(String result) {
getParent().setRawDate(result);
}
}