package org.droidplanner.android.utils.file.IO; import com.o3dr.services.android.lib.drone.property.Parameter; import org.droidplanner.android.utils.file.FileStream; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; public class ParameterReader { private List<Parameter> parameters; public ParameterReader() { this.parameters = new ArrayList<Parameter>(); } public boolean openFile(String itemList) { if (!FileStream.isExternalStorageAvailable()) { return false; } try { FileInputStream in = new FileInputStream(itemList); BufferedReader reader = new BufferedReader(new InputStreamReader(in)); parseWaypointLines(reader); in.close(); } catch (Exception e) { e.printStackTrace(); return false; } return true; } private void parseWaypointLines(BufferedReader reader) throws IOException { String line; parameters.clear(); while ((line = reader.readLine()) != null) { try { parseLine(line); } catch (Exception e) { e.printStackTrace(); } } } private void parseLine(String line) throws Exception { String[] RowData = splitLine(line); String name = RowData[0]; Double value = Double.valueOf(RowData[1]); parameters.add(new Parameter(name, value, 0)); } private String[] splitLine(String line) throws Exception { String[] RowData = line.split(","); if (RowData.length != 2) { throw new Exception("Invalid Length"); } RowData[0] = RowData[0].trim(); return RowData; } public List<Parameter> getParameters() { return parameters; } }