Give DownloadManager a useful user agent.
[android/platform/packages/providers/DownloadProvider.git] / src / com / android / providers / downloads / Constants.java
index ba7dfb3..27e2179 100644 (file)
@@ -16,7 +16,9 @@
 
 package com.android.providers.downloads;
 
-import android.util.Config;
+import android.os.Build;
+import android.os.Environment;
+import android.text.TextUtils;
 import android.util.Log;
 
 /**
@@ -29,7 +31,7 @@ public class Constants {
     public static final String TAG = "DownloadManager";
 
     /** The column that used to be used for the HTTP method of the request */
-    public static final String RETRY_AFTER___REDIRECT_COUNT = "method";
+    public static final String RETRY_AFTER_X_REDIRECT_COUNT = "method";
 
     /** The column that used to be used for the magic OTA update filename */
     public static final String OTA_UPDATE = "otaupdate";
@@ -80,7 +82,7 @@ public class Constants {
     public static final String FILENAME_SEQUENCE_SEPARATOR = "-";
 
     /** Where we store downloaded files on the external storage */
-    public static final String DEFAULT_DL_SUBDIR = "/download";
+    public static final String DEFAULT_DL_SUBDIR = "/" + Environment.DIRECTORY_DOWNLOADS;
 
     /** A magic filename that is allowed to exist within the system cache */
     public static final String KNOWN_SPURIOUS_FILENAME = "lost+found";
@@ -89,11 +91,37 @@ public class Constants {
     public static final String RECOVERY_DIRECTORY = "recovery";
 
     /** The default user agent used for downloads */
-    public static final String DEFAULT_USER_AGENT = "AndroidDownloadManager";
-
-    /** The MIME type of special DRM files */
-    public static final String MIMETYPE_DRM_MESSAGE =
-            android.drm.mobile1.DrmRawContent.DRM_MIMETYPE_MESSAGE_STRING;
+    public static final String DEFAULT_USER_AGENT;
+
+    static {
+        final StringBuilder builder = new StringBuilder();
+
+        final boolean validRelease = !TextUtils.isEmpty(Build.VERSION.RELEASE);
+        final boolean validId = !TextUtils.isEmpty(Build.ID);
+        final boolean includeModel = "REL".equals(Build.VERSION.CODENAME)
+                && !TextUtils.isEmpty(Build.MODEL);
+
+        builder.append("AndroidDownloadManager");
+        if (validRelease) {
+            builder.append("/").append(Build.VERSION.RELEASE);
+        }
+        builder.append(" (Linux; U; Android");
+        if (validRelease) {
+            builder.append(" ").append(Build.VERSION.RELEASE);
+        }
+        if (includeModel || validId) {
+            builder.append(";");
+            if (includeModel) {
+                builder.append(" ").append(Build.MODEL);
+            }
+            if (validId) {
+                builder.append(" Build/").append(Build.ID);
+            }
+        }
+        builder.append(")");
+
+        DEFAULT_USER_AGENT = builder.toString();
+    }
 
     /** The MIME type of APKs */
     public static final String MIMETYPE_APK = "application/vnd.android.package";
@@ -140,12 +168,14 @@ public class Constants {
      */
     public static final int RETRY_FIRST_DELAY = 30;
 
+    /** Enable separate connectivity logging */
+    static final boolean LOGX = false;
+
     /** Enable verbose logging - use with "setprop log.tag.DownloadManager VERBOSE" */
-    private static final boolean LOCAL_LOGV = true;
-    public static final boolean LOGV = Config.LOGV
-            || (Config.LOGD && LOCAL_LOGV && Log.isLoggable(TAG, Log.VERBOSE));
+    private static final boolean LOCAL_LOGV = false;
+    public static final boolean LOGV = LOCAL_LOGV && Log.isLoggable(TAG, Log.VERBOSE);
 
     /** Enable super-verbose logging */
-    private static final boolean LOCAL_LOGVV = true;
+    private static final boolean LOCAL_LOGVV = false;
     public static final boolean LOGVV = LOCAL_LOGVV && LOGV;
 }