From 02dfd2630437ea5591942e503606fdeff29eb11e Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Fri, 13 Aug 2010 12:34:58 -0700 Subject: Fix bug with calls to the typeless open API. Fix bug where we weren't using the default stream if a caller requested "*/*" as a type. This broke apps calling the old open APIs on content providers that did not report MIME types. Change-Id: Id6e3e64e36cb8637097c3a7834b09407c27487d2 --- core/java/android/content/ContentProvider.java | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'core') diff --git a/core/java/android/content/ContentProvider.java b/core/java/android/content/ContentProvider.java index e1d431f..8105843 100644 --- a/core/java/android/content/ContentProvider.java +++ b/core/java/android/content/ContentProvider.java @@ -851,8 +851,14 @@ public abstract class ContentProvider implements ComponentCallbacks { */ public AssetFileDescriptor openTypedAssetFile(Uri uri, String mimeTypeFilter, Bundle opts) throws FileNotFoundException { + if ("*/*".equals(mimeTypeFilter)) { + // If they can take anything, the untyped open call is good enough. + return openAssetFile(uri, "r"); + } String baseType = getType(uri); if (baseType != null && compareMimeTypes(baseType, mimeTypeFilter)) { + // Use old untyped open call if this provider has a type for this + // URI and it matches the request. return openAssetFile(uri, "r"); } throw new FileNotFoundException("Can't open " + uri + " as type " + mimeTypeFilter); -- cgit v1.1