diff options
Diffstat (limited to 'src/com/android/providers/downloads/DownloadProvider.java')
-rw-r--r-- | src/com/android/providers/downloads/DownloadProvider.java | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java index 5fbe42a5..40ebd2bb 100644 --- a/src/com/android/providers/downloads/DownloadProvider.java +++ b/src/com/android/providers/downloads/DownloadProvider.java @@ -39,6 +39,7 @@ import android.os.ParcelFileDescriptor; import android.os.Process; import android.provider.Downloads; import android.provider.OpenableColumns; +import android.text.TextUtils; import android.util.Log; import com.google.android.collect.Maps; @@ -55,7 +56,6 @@ import java.util.Iterator; import java.util.List; import java.util.Map; - /** * Allows application to interact with the download manager. */ @@ -463,17 +463,20 @@ public final class DownloadProvider extends ContentProvider { return DOWNLOAD_LIST_TYPE; } case MY_DOWNLOADS_ID: - case ALL_DOWNLOADS_ID: { - return DOWNLOAD_TYPE; - } + case ALL_DOWNLOADS_ID: case PUBLIC_DOWNLOAD_ID: { // return the mimetype of this id from the database final String id = getDownloadIdFromUri(uri); final SQLiteDatabase db = mOpenHelper.getReadableDatabase(); - return DatabaseUtils.stringForQuery(db, + final String mimeType = DatabaseUtils.stringForQuery(db, "SELECT " + Downloads.Impl.COLUMN_MIME_TYPE + " FROM " + DB_TABLE + " WHERE " + Downloads.Impl._ID + " = ?", new String[]{id}); + if (TextUtils.isEmpty(mimeType)) { + return DOWNLOAD_TYPE; + } else { + return mimeType; + } } default: { if (Constants.LOGV) { |