From bf7fc28bb0f72a814ac10620bbcb837fd2f14c44 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Fri, 29 Nov 2019 22:23:00 +0100 Subject: [PATCH] Bugfix: picture name suffixes were malformed on export and thus could not be re-imported. --- .../java/de/dennisguse/opentracks/util/FileUtilsTest.java | 7 ++++++- src/main/java/de/dennisguse/opentracks/util/FileUtils.java | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/androidTest/java/de/dennisguse/opentracks/util/FileUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/util/FileUtilsTest.java index 0042e8dfd..a79cdcdba 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/util/FileUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/util/FileUtilsTest.java @@ -60,10 +60,15 @@ public class FileUtilsTest extends TestCase { */ public void testSanitizeFileName() { String name = "Swim\10ming-^across:/the/ pacific (ocean)."; - String expected = "Swim_ming-^across_the_ pacific (ocean)_"; + String expected = "Swim_ming-^across_the_ pacific (ocean)."; assertEquals(expected, FileUtils.sanitizeFileName(name)); } + public void testSanitizeFileNameWithSuffix() { + String name = "FileName.jpeg"; + assertEquals(name, FileUtils.sanitizeFileName(name)); + } + /** * Tests {@link FileUtils#sanitizeFileName(String)} with i18n characters (in Chinese and Russian). * Verifies that they are allowed. diff --git a/src/main/java/de/dennisguse/opentracks/util/FileUtils.java b/src/main/java/de/dennisguse/opentracks/util/FileUtils.java index 0a450527d..dc4a61462 100644 --- a/src/main/java/de/dennisguse/opentracks/util/FileUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/FileUtils.java @@ -204,12 +204,13 @@ public class FileUtils { * * @param name name */ + // TODO Check if this function is still needed. public static String sanitizeFileName(String name) { StringBuilder builder = new StringBuilder(name.length()); for (int i = 0; i < name.length(); i++) { int codePoint = name.codePointAt(i); char character = name.charAt(i); - if (Character.isLetterOrDigit(character) || codePoint > 127 || isSpecialFat32(character)) { + if (Character.isLetterOrDigit(character) || codePoint > 127 || isSpecialFat32(character) || character == '.') { builder.appendCodePoint(codePoint); } else { builder.append("_");