summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers/downloads/DownloadProvider.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/providers/downloads/DownloadProvider.java')
-rw-r--r--src/com/android/providers/downloads/DownloadProvider.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/com/android/providers/downloads/DownloadProvider.java b/src/com/android/providers/downloads/DownloadProvider.java
index 66d49227..80e0d22f 100644
--- a/src/com/android/providers/downloads/DownloadProvider.java
+++ b/src/com/android/providers/downloads/DownloadProvider.java
@@ -145,6 +145,9 @@ public final class DownloadProvider extends ContentProvider {
private static final List<String> downloadManagerColumnsList =
Arrays.asList(DownloadManager.UNDERLYING_COLUMNS);
+ // TODO is there a better way to get this package name
+ private static final Object GSF_PACKAGE_NAME = "com.google.android.gsf";
+
/** The database that lies underneath this content provider */
private SQLiteOpenHelper mOpenHelper = null;
@@ -617,6 +620,13 @@ public final class DownloadProvider extends ContentProvider {
copyBoolean(Downloads.Impl.COLUMN_ALLOW_ROAMING, values, filteredValues);
}
+ // TODO: replace this hack with something cleaner
+ if (pckg.equals(GSF_PACKAGE_NAME) &&
+ (getContext().checkCallingPermission(Downloads.Impl.PERMISSION_ACCESS_ADVANCED)
+ == PackageManager.PERMISSION_GRANTED)) {
+ filteredValues.put(Constants.OTA_UPDATE, Boolean.TRUE);
+ }
+
if (Constants.LOGVV) {
Log.v(Constants.TAG, "initiating download with UID "
+ filteredValues.getAsInteger(Constants.UID));