diff options
author | olly <olly@google.com> | 2010-12-21 19:09:12 +0000 |
---|---|---|
committer | olly <olly@google.com> | 2010-12-21 19:09:12 +0000 |
commit | 6bf8b8d183ef3fa118ad9fb8eb35c2ee101e46a1 (patch) | |
tree | c66bb21b6ffba9df33545dfa7e372ed679c5d434 /src/com/android/providers | |
parent | 0ecf66c946cb4fdf2dd4763023f4320b41eedd24 (diff) | |
download | android_packages_providers_DownloadProvider-6bf8b8d183ef3fa118ad9fb8eb35c2ee101e46a1.tar.gz android_packages_providers_DownloadProvider-6bf8b8d183ef3fa118ad9fb8eb35c2ee101e46a1.tar.bz2 android_packages_providers_DownloadProvider-6bf8b8d183ef3fa118ad9fb8eb35c2ee101e46a1.zip |
Fixing Helpers to correctly parse file names / extensions in the case where the filename does not have a file extension but there are one or more dots in the parent directory names.
e.g. /mnt/sdcard/Android/data/com.google.android.youtube/files/file
Change-Id: I5aad1625a9f36135e947c0f929ee740fc66eb0d3
Diffstat (limited to 'src/com/android/providers')
-rw-r--r-- | src/com/android/providers/downloads/Helpers.java | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/com/android/providers/downloads/Helpers.java b/src/com/android/providers/downloads/Helpers.java index ac4c6502..f392f3e9 100644 --- a/src/com/android/providers/downloads/Helpers.java +++ b/src/com/android/providers/downloads/Helpers.java @@ -157,7 +157,8 @@ public class Helpers { // Add an extension if filename does not have one String extension = null; int dotIndex = filename.lastIndexOf('.'); - if (dotIndex < 0) { + boolean missingExtension = dotIndex < 0 || dotIndex < filename.lastIndexOf("/"); + if (missingExtension) { extension = chooseExtensionFromMimeType(mimeType, true); } else { extension = chooseExtensionFromFilename(mimeType, destination, filename, dotIndex); @@ -414,12 +415,11 @@ public class Helpers { } private static String chooseExtensionFromFilename(String mimeType, int destination, - String filename, int dotIndex) { + String filename, int lastDotIndex) { String extension = null; if (mimeType != null) { // Compare the last segment of the extension against the mime type. // If there's a mismatch, discard the entire extension. - int lastDotIndex = filename.lastIndexOf('.'); String typeFromExt = MimeTypeMap.getSingleton().getMimeTypeFromExtension( filename.substring(lastDotIndex + 1)); if (typeFromExt == null || !typeFromExt.equalsIgnoreCase(mimeType)) { @@ -439,7 +439,7 @@ public class Helpers { if (Constants.LOGVV) { Log.v(Constants.TAG, "keeping extension"); } - extension = filename.substring(dotIndex); + extension = filename.substring(lastDotIndex); } return extension; } |