Bugfix: export was not checking properly if file exists.

Fixes #1283.
This commit is contained in:
Dennis Guse
2022-06-14 18:30:42 +02:00
parent f956e7fab3
commit cecc586868
3 changed files with 8 additions and 71 deletions
@@ -39,6 +39,7 @@ import de.dennisguse.opentracks.data.tables.TracksColumns;
import de.dennisguse.opentracks.databinding.ExportActivityBinding;
import de.dennisguse.opentracks.io.file.ErrorListDialog;
import de.dennisguse.opentracks.io.file.TrackFileFormat;
import de.dennisguse.opentracks.settings.PreferencesUtils;
import de.dennisguse.opentracks.util.ExportUtils;
import de.dennisguse.opentracks.util.FileUtils;
@@ -234,7 +235,7 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes
* @param conflictResolution conflict resolution to be applied if needed.
*/
private void export(Track track, int conflictResolution) {
boolean fileExists = ExportUtils.isExportFileExists(track.getUuid(), trackFileFormat.getExtension(), directoryFiles);
boolean fileExists = exportFileExists(track);
if (fileExists && conflictResolution == CONFLICT_NONE) {
conflict(track);
@@ -250,6 +251,11 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes
export(track, autoConflict);
}
private boolean exportFileExists(Track track) {
String filename = PreferencesUtils.getTrackFileformatGenerator().format(track, trackFileFormat);
return directoryFiles.stream().anyMatch(filename::equals);
}
private void setConflictVisibility(int visibility) {
viewBinding.exportProgressAlertIcon.setVisibility(visibility);
viewBinding.exportProgressAlertMsg.setVisibility(visibility);
@@ -315,7 +321,7 @@ public class ExportActivity extends FragmentActivity implements ExportServiceRes
public void onExportSuccess(Track.Id trackId) {
Track track = contentProviderUtils.getTrack(trackId);
if (ExportUtils.isExportFileExists(track.getUuid(), trackFileFormat.getExtension(), directoryFiles)) {
if (exportFileExists(track)) {
trackExportOverwrittenCount++;
} else {
trackExportSuccessCount++;
@@ -85,12 +85,6 @@ public class ExportUtils {
}
}
public static boolean isExportFileExists(UUID uuuid, String trackFileFormatExtension, List<String> filesName) {
String word = uuuid.toString().substring(0, 8) + ".*\\." + trackFileFormatExtension;
Pattern pattern = Pattern.compile(word);
return filesName.stream().anyMatch(w -> pattern.matcher(w).matches());
}
public static List<String> getAllFiles(Context context, Uri directoryUri) {
List<String> fileNames = new ArrayList<>();
final ContentResolver resolver = context.getContentResolver();