diff options
author | Leon Scroggins <scroggo@google.com> | 2010-01-22 09:35:34 -0500 |
---|---|---|
committer | Leon Scroggins <scroggo@google.com> | 2010-01-22 09:39:07 -0500 |
commit | 581abbbbeba49e64219e5f11f8a8474760a2f902 (patch) | |
tree | af303eb84ae79ec25c967c7d843e4e7ccfd50e27 /src/com/android/providers/downloads/Helpers.java | |
parent | 4d3a380d338b1f6ee120fb9de2001f138be398ff (diff) | |
download | android_packages_providers_DownloadProvider-581abbbbeba49e64219e5f11f8a8474760a2f902.tar.gz android_packages_providers_DownloadProvider-581abbbbeba49e64219e5f11f8a8474760a2f902.tar.bz2 android_packages_providers_DownloadProvider-581abbbbeba49e64219e5f11f8a8474760a2f902.zip |
Revert "Download files even if there is no activity to launch them."
This reverts commit 0f1aae327a9e4c68044d767e9bafbac747b6d985.
I misunderstood the bug. We do not want to be able to download
files for which there is currently no Activity to launch them.
Diffstat (limited to 'src/com/android/providers/downloads/Helpers.java')
-rw-r--r-- | src/com/android/providers/downloads/Helpers.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/com/android/providers/downloads/Helpers.java b/src/com/android/providers/downloads/Helpers.java index 0847b78e..0113ac4d 100644 --- a/src/com/android/providers/downloads/Helpers.java +++ b/src/com/android/providers/downloads/Helpers.java @@ -19,6 +19,8 @@ package com.android.providers.downloads; import android.content.ContentUris; import android.content.Context; import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; import android.database.Cursor; import android.drm.mobile1.DrmRawContent; import android.net.ConnectivityManager; @@ -97,6 +99,31 @@ public class Helpers { } return new DownloadFileInfo(null, null, Downloads.Impl.STATUS_NOT_ACCEPTABLE); } + if (!DrmRawContent.DRM_MIMETYPE_MESSAGE_STRING.equalsIgnoreCase(mimeType)) { + // Check to see if we are allowed to download this file. Only files + // that can be handled by the platform can be downloaded. + // special case DRM files, which we should always allow downloading. + Intent intent = new Intent(Intent.ACTION_VIEW); + + // We can provide data as either content: or file: URIs, + // so allow both. (I think it would be nice if we just did + // everything as content: URIs) + // Actually, right now the download manager's UId restrictions + // prevent use from using content: so it's got to be file: or + // nothing + + PackageManager pm = context.getPackageManager(); + intent.setDataAndType(Uri.fromParts("file", "", null), mimeType); + ResolveInfo ri = pm.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY); + //Log.i(Constants.TAG, "*** FILENAME QUERY " + intent + ": " + list); + + if (ri == null) { + if (Config.LOGD) { + Log.d(Constants.TAG, "no handler found for type " + mimeType); + } + return new DownloadFileInfo(null, null, Downloads.Impl.STATUS_NOT_ACCEPTABLE); + } + } } String filename = chooseFilename( url, hint, contentDisposition, contentLocation, destination); |