package com.evancharlton.mileage.tasks; import com.evancharlton.mileage.io.CsvColumnMappingActivity; 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 CsvColumnReaderTask extends AttachableAsyncTask<CsvColumnMappingActivity, String, Void, String[]> { @Override protected String[] doInBackground(String... inputFiles) { final String inputFile = inputFiles[0]; final String absoluteInputFile = Settings.EXTERNAL_DIR + inputFile; try { BufferedReader reader = new BufferedReader(new FileReader(absoluteInputFile)); CSVReader csvReader = new CSVReader(reader); // Note: it's assumed that the first row is the column names. String[] columnNames = csvReader.readNext(); csvReader.close(); return columnNames; } catch (IOException e) { Log.e("ColumnReaderTask", "Could not get columns!", e); } return null; } @Override protected void onPostExecute(String[] columnNames) { getParent().setColumns(columnNames); } }