From 1a1a8a851b8852924f1ce6404e4b82640b9aaf69 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Sun, 19 Oct 2025 18:25:01 +0200 Subject: [PATCH] Cleanup: use Stream.toList() Replaces Stream.collect(Collection.toList() | Collectors.toCollection()). --- .../de/dennisguse/opentracks/util/StringUtilsTest.java | 9 +++++---- .../opentracks/AbstractTrackDeleteActivity.java | 7 +++---- .../de/dennisguse/opentracks/data/SelectionData.java | 2 +- .../de/dennisguse/opentracks/data/TrackSelection.java | 4 ++-- .../dennisguse/opentracks/data/models/ActivityType.java | 3 +-- .../opentracks/io/file/exporter/ExportActivity.java | 3 +-- .../opentracks/io/file/exporter/ExportUtils.java | 5 +++-- .../opentracks/io/file/importer/ImportActivity.java | 5 +++-- .../dennisguse/opentracks/settings/PreferencesUtils.java | 7 +++++-- .../settings/bluetooth/BluetoothLeSensorPreference.java | 7 +++---- .../ui/customRecordingLayout/RecordingLayout.java | 2 +- 11 files changed, 28 insertions(+), 26 deletions(-) diff --git a/src/androidTest/java/de/dennisguse/opentracks/util/StringUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/util/StringUtilsTest.java index c74f34a7c..158f8ec45 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/util/StringUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/util/StringUtilsTest.java @@ -38,11 +38,10 @@ import java.time.OffsetDateTime; import java.time.ZoneId; import java.time.ZoneOffset; import java.time.format.TextStyle; -import java.util.ArrayList; import java.util.Arrays; +import java.util.List; import java.util.Locale; import java.util.TimeZone; -import java.util.stream.Collectors; import de.dennisguse.opentracks.LocaleRule; import de.dennisguse.opentracks.TimezoneRule; @@ -133,8 +132,10 @@ public class StringUtilsTest { @Test public void testFormatDateTodayRelative() { // given - ArrayList shortDays = Arrays.stream(DayOfWeek.values()).map(d -> d.getDisplayName(TextStyle.FULL, Locale.getDefault())).collect(Collectors.toCollection(ArrayList::new)); - ArrayList shortMonths = Arrays.stream(Month.values()).map(m -> m.getDisplayName(TextStyle.SHORT, Locale.getDefault())).collect(Collectors.toCollection(ArrayList::new)); + List shortDays = Arrays.stream(DayOfWeek.values()).map(d -> d.getDisplayName(TextStyle.FULL, Locale.getDefault())) + .toList(); + List shortMonths = Arrays.stream(Month.values()).map(m -> m.getDisplayName(TextStyle.SHORT, Locale.getDefault())) + .toList(); LocalDate today = LocalDateTime.ofInstant(Instant.now(), ZoneId.systemDefault()).toLocalDate(); LocalDate yesterday = today.minusDays(1); diff --git a/src/main/java/de/dennisguse/opentracks/AbstractTrackDeleteActivity.java b/src/main/java/de/dennisguse/opentracks/AbstractTrackDeleteActivity.java index 8d6d418fa..575e28829 100644 --- a/src/main/java/de/dennisguse/opentracks/AbstractTrackDeleteActivity.java +++ b/src/main/java/de/dennisguse/opentracks/AbstractTrackDeleteActivity.java @@ -23,9 +23,8 @@ import androidx.work.OneTimeWorkRequest; import androidx.work.WorkManager; import androidx.work.WorkRequest; -import java.util.ArrayList; import java.util.Arrays; -import java.util.stream.Collectors; +import java.util.List; import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.services.TrackDeletionWorker; @@ -50,8 +49,8 @@ public abstract class AbstractTrackDeleteActivity extends AbstractActivity imple //TODO A callback is better. @Override public void onConfirmDeleteDone(Track.Id... trackIds) { - ArrayList trackIdList = Arrays.stream(trackIds) - .filter(trackId -> !trackId.equals(getRecordingTrackId())).collect(Collectors.toCollection(ArrayList::new)); + List trackIdList = Arrays.stream(trackIds) + .filter(trackId -> !trackId.equals(getRecordingTrackId())).toList(); onDeleteConfirmed(); diff --git a/src/main/java/de/dennisguse/opentracks/data/SelectionData.java b/src/main/java/de/dennisguse/opentracks/data/SelectionData.java index f1bf97798..f4050d80b 100644 --- a/src/main/java/de/dennisguse/opentracks/data/SelectionData.java +++ b/src/main/java/de/dennisguse/opentracks/data/SelectionData.java @@ -2,7 +2,7 @@ package de.dennisguse.opentracks.data; public record SelectionData( String selection, - String[] selectionArgs + String[] selectionArgs //TODO Refactor to List ) { public SelectionData() { diff --git a/src/main/java/de/dennisguse/opentracks/data/TrackSelection.java b/src/main/java/de/dennisguse/opentracks/data/TrackSelection.java index 0890ec6b0..7510e4f41 100644 --- a/src/main/java/de/dennisguse/opentracks/data/TrackSelection.java +++ b/src/main/java/de/dennisguse/opentracks/data/TrackSelection.java @@ -6,7 +6,6 @@ import java.time.Instant; import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.data.tables.TracksColumns; @@ -67,7 +66,8 @@ public class TrackSelection implements ContentProviderUtils.ContentProviderSelec } // Builds selection arguments. - ArrayList args = trackIds.stream().map(id -> Long.toString(id.id())).collect(Collectors.toCollection(ArrayList::new)); + ArrayList args = new ArrayList<>(); + args.addAll(trackIds.stream().map(id -> Long.toString(id.id())).toList()); args.addAll(categories); args.addAll(fromToArgs); selectionArgs = args.toArray(String[]::new); diff --git a/src/main/java/de/dennisguse/opentracks/data/models/ActivityType.java b/src/main/java/de/dennisguse/opentracks/data/models/ActivityType.java index 031d8d646..09e79b0f8 100644 --- a/src/main/java/de/dennisguse/opentracks/data/models/ActivityType.java +++ b/src/main/java/de/dennisguse/opentracks/data/models/ActivityType.java @@ -7,7 +7,6 @@ import androidx.annotation.NonNull; import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; import de.dennisguse.opentracks.R; @@ -118,7 +117,7 @@ public enum ActivityType { return Arrays.stream(values()) .map(ActivityType::getLocalizedStringId) .map(context::getString) - .collect(Collectors.toList()); + .toList(); } @NonNull diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java index 2e8a10e5f..70663ee61 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java @@ -35,7 +35,6 @@ import androidx.work.WorkRequest; import java.util.ArrayList; import java.util.List; import java.util.concurrent.LinkedBlockingQueue; -import java.util.stream.Collectors; import de.dennisguse.opentracks.AbstractActivity; import de.dennisguse.opentracks.R; @@ -223,7 +222,7 @@ public class ExportActivity extends AbstractActivity { exportTasks = new ArrayList<>(); if (allInOneFile) { String filename = "OpenTracks-Backup"; - exportTasks.add(new ExportTask(filename, trackFileFormat, tracks.stream().map(Track::getId).collect(Collectors.toList()))); + exportTasks.add(new ExportTask(filename, trackFileFormat, tracks.stream().map(Track::getId).toList())); } else { exportTasks.addAll(tracks.stream().map(it -> new ExportTask(null, trackFileFormat, List.of(it.getId()))).toList()); } diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportUtils.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportUtils.java index d9c875aea..714b7ec42 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportUtils.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportUtils.java @@ -22,7 +22,6 @@ import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import de.dennisguse.opentracks.data.ContentProviderUtils; import de.dennisguse.opentracks.data.models.Track; @@ -105,7 +104,9 @@ public class ExportUtils { @Deprecated public static void exportTrack(Context context, DocumentFile directory, ExportTask exportTask) { ContentProviderUtils contentProviderUtils = new ContentProviderUtils(context); - List tracks = exportTask.getTrackIds().stream().map(contentProviderUtils::getTrack).collect(Collectors.toList()); + List tracks = exportTask.getTrackIds().stream() + .map(contentProviderUtils::getTrack) + .toList(); Uri exportDocumentFileUri; if (tracks.size() == 1) { exportDocumentFileUri = getExportDocumentFileUri(context, tracks.get(0), exportTask.getTrackFileFormat(), directory); diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportActivity.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportActivity.java index 2267ae123..b823cdde5 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportActivity.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportActivity.java @@ -28,7 +28,6 @@ import androidx.documentfile.provider.DocumentFile; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import de.dennisguse.opentracks.AbstractActivity; import de.dennisguse.opentracks.R; @@ -92,7 +91,9 @@ public class ImportActivity extends AbstractActivity { documentFiles = new ArrayList<>(); documentFiles.add(DocumentFile.fromTreeUri(this, documentUris.get(0))); } else { - documentFiles = documentUris.stream().map(it -> DocumentFile.fromSingleUri(this, it)).collect(Collectors.toList()); + documentFiles = documentUris.stream() + .map(it -> DocumentFile.fromSingleUri(this, it)) + .toList(); } importer = new Importer(this, documentFiles); diff --git a/src/main/java/de/dennisguse/opentracks/settings/PreferencesUtils.java b/src/main/java/de/dennisguse/opentracks/settings/PreferencesUtils.java index b05abf1d4..f6e103281 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/PreferencesUtils.java +++ b/src/main/java/de/dennisguse/opentracks/settings/PreferencesUtils.java @@ -829,7 +829,8 @@ public class PreferencesUtils { R.array.stats_custom_layout_fields_default_value_16, R.array.stats_custom_layout_fields_default_value_17, R.array.stats_custom_layout_fields_default_value_18 - ).map(id -> resources.obtainTypedArray(id)).collect(Collectors.toList()); + ).map(id -> resources.obtainTypedArray(id)) + .toList(); } @SuppressLint("ResourceType") @@ -904,7 +905,9 @@ public class PreferencesUtils { } public static List getAllCustomLayoutNames() { - return getAllCustomLayouts().stream().map(RecordingLayout::getName).collect(Collectors.toList()); + return getAllCustomLayouts().stream() + .map(RecordingLayout::getName) + .toList(); } public static void resetCustomLayoutPreferences() { diff --git a/src/main/java/de/dennisguse/opentracks/settings/bluetooth/BluetoothLeSensorPreference.java b/src/main/java/de/dennisguse/opentracks/settings/bluetooth/BluetoothLeSensorPreference.java index 013c2be98..8a5b7b5ee 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/bluetooth/BluetoothLeSensorPreference.java +++ b/src/main/java/de/dennisguse/opentracks/settings/bluetooth/BluetoothLeSensorPreference.java @@ -24,7 +24,6 @@ import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.sensors.BluetoothUtils; @@ -126,7 +125,7 @@ public abstract class BluetoothLeSensorPreference extends DialogPreference { @Override public void onBatchScanResults(List results) { - listAdapter.addAll(results.stream().map(ScanResult::getDevice).collect(Collectors.toList())); + listAdapter.addAll(results.stream().map(ScanResult::getDevice).toList()); } @Override @@ -149,7 +148,7 @@ public abstract class BluetoothLeSensorPreference extends DialogPreference { b.putParcelableArrayList(ARG_BLE_SERVICE_UUIDS, new ArrayList<>(sensorUUIDs.stream() .map(ServiceMeasurementUUID::serviceUUID) .map(ParcelUuid::new) - .collect(Collectors.toList()))); + .toList())); b.putBoolean(ARG_INCLUDE_INTERNAL, includeInternalSensor); fragment.setArguments(b); @@ -224,7 +223,7 @@ public abstract class BluetoothLeSensorPreference extends DialogPreference { if (PreferencesUtils.getBluetoothFilterEnabled()) { scanFilter = serviceUUIDs.stream() .map(it -> new ScanFilter.Builder().setServiceUuid(it).build()) - .collect(Collectors.toList()); + .toList(); } ScanSettings.Builder scanSettingsBuilder = new ScanSettings.Builder(); diff --git a/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/RecordingLayout.java b/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/RecordingLayout.java index bc05ffd10..2cbaa2db5 100644 --- a/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/RecordingLayout.java +++ b/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/RecordingLayout.java @@ -68,7 +68,7 @@ public class RecordingLayout implements Parcelable { public RecordingLayout toRecordingLayout(boolean visibility) { RecordingLayout result = new RecordingLayout(this.getName()); - result.addFields(dataFields.stream().filter(f -> f.isVisible() == visibility).collect(Collectors.toList())); + result.addFields(dataFields.stream().filter(f -> f.isVisible() == visibility).toList()); return result; }