From 79671052f669d4688847c23b45dc897724179fa8 Mon Sep 17 00:00:00 2001 From: Andrey Novikov Date: Mon, 5 Feb 2024 14:29:15 +0300 Subject: [PATCH] Sort native tracks by time --- app/src/main/java/mobi/maptrek/DataLoader.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/mobi/maptrek/DataLoader.java b/app/src/main/java/mobi/maptrek/DataLoader.java index b6eefae9..d7a307b1 100644 --- a/app/src/main/java/mobi/maptrek/DataLoader.java +++ b/app/src/main/java/mobi/maptrek/DataLoader.java @@ -1,5 +1,5 @@ /* - * Copyright 2018 Andrey Novikov + * Copyright 2024 Andrey Novikov * * This program is free software: you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License as published by the Free Software @@ -29,6 +29,8 @@ import java.io.FileInputStream; import java.io.IOException; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -203,6 +205,8 @@ public void deliverResult(List data) { mData = newData; } + Collections.sort(mData, fileDataSourceComparator); + for (FileDataSource source : data) { mFiles.add(source.path); } @@ -309,4 +313,14 @@ public void onCanceled(List data) { // Attempt to cancel the current asynchronous load. super.onCanceled(data); } + + private final Comparator fileDataSourceComparator = (Comparator) (o1, o2) -> { + if (o1.isNativeTrack() && o2.isNativeTrack()) { + File o1f = new File(o1.path); + File o2f = new File(o2.path); + return Long.compare(o1f.lastModified(), o2f.lastModified()); + } else { + return o1.path.compareTo(o2.path); + } + }; } \ No newline at end of file