forked from upstream-mirrors/OpenTracks
Refactor: RecordingLayout.
This commit is contained in:
@@ -5,13 +5,26 @@ import androidx.annotation.Nullable;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
//TODO refactor; rename ot CsvUtils
|
||||
public final class CsvLayoutUtils {
|
||||
|
||||
@Deprecated //TODO private | package private
|
||||
public static final String LINE_SEPARATOR = "\n";
|
||||
@Deprecated //TODO private | package private
|
||||
public static final String ITEM_SEPARATOR = ";";
|
||||
@Deprecated //TODO private | package private
|
||||
public static final String PROPERTY_SEPARATOR = ",";
|
||||
|
||||
private CsvLayoutUtils() {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static List<String> getCsvLines(String csv) {
|
||||
if (csv == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return Arrays.stream(csv.split(CsvLayoutUtils.LINE_SEPARATOR)).toList();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+12
-3
@@ -17,9 +17,18 @@ public class RecordingLayout implements Parcelable {
|
||||
private int columnsPerRow;
|
||||
private final List<DataField> dataFields = new ArrayList<>();
|
||||
|
||||
public static RecordingLayout fromDefault(String newName) {
|
||||
RecordingLayout defaultLayout = PreferencesUtils.getDefaultLayout();
|
||||
|
||||
RecordingLayout recordingLayout = new RecordingLayout(newName, defaultLayout.getColumnsPerRow());
|
||||
recordingLayout.addFields(defaultLayout.getFields());
|
||||
return recordingLayout;
|
||||
}
|
||||
|
||||
@Deprecated //TODO please set columnsPerRow explicitly
|
||||
public RecordingLayout(String name) {
|
||||
this.name = name;
|
||||
this.columnsPerRow = PreferencesUtils.getLayoutColumnsByDefault();
|
||||
this.columnsPerRow = PreferencesUtils.getDefaultLayout().getColumnsPerRow();
|
||||
}
|
||||
|
||||
public RecordingLayout(String name, int columnsPerRow) {
|
||||
@@ -90,11 +99,11 @@ public class RecordingLayout implements Parcelable {
|
||||
}
|
||||
|
||||
public boolean sameName(RecordingLayout recordingLayout) {
|
||||
return this.name.equalsIgnoreCase(recordingLayout.getName());
|
||||
return sameName(recordingLayout.getName());
|
||||
}
|
||||
|
||||
public boolean sameName(String name) {
|
||||
return this.name.equalsIgnoreCase(name);
|
||||
return this.name.equals(name);
|
||||
}
|
||||
|
||||
public String toCsv() {
|
||||
|
||||
+8
-2
@@ -19,11 +19,17 @@ public class RecordingLayoutIO {
|
||||
private static final String YES_VALUE = "1";
|
||||
private static final String NOT_VALUE = "0";
|
||||
|
||||
public static RecordingLayout fromCsv(@NonNull String csvLine, @NonNull Resources resources) {
|
||||
public static List<RecordingLayout> fromCsv(@NonNull String csv, @NonNull Resources resources) {
|
||||
return CsvLayoutUtils.getCsvLines(csv).stream()
|
||||
.map(line -> RecordingLayoutIO.fromCsvLine(line, resources))
|
||||
.toList();
|
||||
}
|
||||
|
||||
public static RecordingLayout fromCsvLine(@NonNull String csvLine, @NonNull Resources resources) {
|
||||
List<String> csvParts = CsvLayoutUtils.getCsvLineParts(csvLine);
|
||||
if (csvParts == null) {
|
||||
Log.e(TAG, "Invalid CSV layout. It shouldn't happen: " + csvLine);
|
||||
return new RecordingLayout(PreferencesUtils.getDefaultLayoutName());
|
||||
return PreferencesUtils.getDefaultLayout();
|
||||
}
|
||||
|
||||
RecordingLayout recordingLayout = new RecordingLayout(csvParts.get(0), Integer.parseInt(csvParts.get(1)));
|
||||
|
||||
Reference in New Issue
Block a user