summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPankaj Garg <pgarg@codeaurora.org>2015-11-02 07:57:06 -0800
committerjrizzoli <joey@cyanogenmoditalia.it>2015-11-05 14:35:20 +0100
commit5762b36cd0b80d69b3ded5cbe1a70a326369569f (patch)
tree2aedcebd71d56ee68e13f80913278437129f1bf4 /src
parent1fdc94edcd49019b80863f4b0bfdf52747ab7f40 (diff)
downloadandroid_packages_apps_Gello-5762b36cd0b80d69b3ded5cbe1a70a326369569f.tar.gz
android_packages_apps_Gello-5762b36cd0b80d69b3ded5cbe1a70a326369569f.tar.bz2
android_packages_apps_Gello-5762b36cd0b80d69b3ded5cbe1a70a326369569f.zip
Provide authorization value to the download manager
- Provides the authorization code to the download manager while downloading a file. CR-Fixed: SWE-6011 Change-Id: Id99349169c138d714b26340b3baa6c9b664ea33c Conflicts: src/com/android/browser/DownloadHandler.java
Diffstat (limited to 'src')
-rw-r--r--src/com/android/browser/Controller.java9
-rw-r--r--src/com/android/browser/DownloadHandler.java27
-rw-r--r--src/com/android/browser/DownloadSettings.java4
-rw-r--r--src/com/android/browser/FetchUrlMimeType.java6
-rw-r--r--src/com/android/browser/PreloadController.java2
-rw-r--r--src/com/android/browser/Tab.java8
-rw-r--r--src/com/android/browser/WebViewController.java2
7 files changed, 37 insertions, 21 deletions
diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index 4c059067..4d75a5ff 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -594,7 +594,7 @@ public class Controller
case R.id.download_context_menu_id:
DownloadHandler.onDownloadStartNoStream(
mActivity, url, view.getSettings().getUserAgentString(),
- null, null, null, view.isPrivateBrowsingEnabled(), 0);
+ null, null, null, null, view.isPrivateBrowsingEnabled(), 0);
break;
case R.id.save_link_bookmark_context_menu_id:
if(title == null || title == "")
@@ -1229,12 +1229,13 @@ public class Controller
@Override
public void onDownloadStart(Tab tab, String url, String userAgent,
- String contentDisposition, String mimetype, String referer,
+ String contentDisposition, String mimetype, String referer, String auth,
long contentLength) {
WebView w = tab.getWebView();
if ( w == null) return;
boolean ret = DownloadHandler.onDownloadStart(mActivity, url, userAgent,
- contentDisposition, mimetype, referer, w.isPrivateBrowsingEnabled(), contentLength);
+ contentDisposition, mimetype, referer, auth,
+ w.isPrivateBrowsingEnabled(), contentLength);
if (ret == false && w.copyBackForwardList().getSize() == 0) {
// This Tab was opened for the sole purpose of downloading a
// file. Remove it.
@@ -2719,7 +2720,7 @@ public class Controller
saveDataUri();
} else {
DownloadHandler.onDownloadStartNoStream(mActivity, mText, mUserAgent,
- null, null, null, mPrivateBrowsing, 0);
+ null, null, null, null, mPrivateBrowsing, 0);
}
return true;
}
diff --git a/src/com/android/browser/DownloadHandler.java b/src/com/android/browser/DownloadHandler.java
index 0148fda4..3562f809 100644
--- a/src/com/android/browser/DownloadHandler.java
+++ b/src/com/android/browser/DownloadHandler.java
@@ -32,8 +32,11 @@ import android.os.Bundle;
import android.os.Environment;
import android.os.StatFs;
import android.os.storage.StorageManager;
+import android.text.TextUtils;
import android.util.Log;
import org.codeaurora.swe.CookieManager;
+import org.w3c.dom.Text;
+
import android.webkit.URLUtil;
import android.widget.Toast;
@@ -61,7 +64,8 @@ public class DownloadHandler {
public static void startingDownload(Activity activity,
String url, String userAgent, String contentDisposition,
- String mimetype, String referer, boolean privateBrowsing, long contentLength,
+ String mimetype, String referer, String auth,
+ boolean privateBrowsing, long contentLength,
String filename, String downloadPath) {
// java.net.URI is a lot stricter than KURL so we have to encode some
// extra characters. Fix for b 2538060 and b 1634719
@@ -107,6 +111,9 @@ public class DownloadHandler {
request.addRequestHeader("User-Agent", userAgent);
request.addRequestHeader("Referer", referer);
request.setVisibleInDownloadsUi(!privateBrowsing);
+ if (!TextUtils.isEmpty(auth)) {
+ request.addRequestHeader("Authorization", auth);
+ }
request.setNotificationVisibility(
DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
final DownloadManager manager = (DownloadManager) activity
@@ -152,7 +159,8 @@ public class DownloadHandler {
*/
public static boolean onDownloadStart(final Activity activity, final String url,
final String userAgent, final String contentDisposition, final String mimetype,
- final String referer, final boolean privateBrowsing, final long contentLength) {
+ final String referer, final String auth, final boolean privateBrowsing,
+ final long contentLength) {
// if we're dealing wih A/V content that's not explicitly marked
// for download, check if it's streamable.
if (contentDisposition == null
@@ -184,7 +192,7 @@ public class DownloadHandler {
.setPositiveButton(R.string.video_save, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
onDownloadStartNoStream(activity, url, userAgent, contentDisposition,
- mimetype, referer, privateBrowsing, contentLength);
+ mimetype, referer, auth, privateBrowsing, contentLength);
}
})
.setNegativeButton(R.string.video_play, new DialogInterface.OnClickListener() {
@@ -237,7 +245,7 @@ public class DownloadHandler {
}
}
onDownloadStartNoStream(activity, url, userAgent, contentDisposition,
- mimetype, referer, privateBrowsing, contentLength);
+ mimetype, referer, auth, privateBrowsing, contentLength);
return false;
}
@@ -284,7 +292,8 @@ public class DownloadHandler {
*/
/* package */static void onDownloadStartNoStream(Activity activity,
String url, String userAgent, String contentDisposition,
- String mimetype, String referer, boolean privateBrowsing, long contentLength) {
+ String mimetype, String referer, String auth,
+ boolean privateBrowsing, long contentLength) {
contentDisposition = trimContentDisposition(contentDisposition);
@@ -318,12 +327,12 @@ public class DownloadHandler {
if (mimetype == null) {
// We must have long pressed on a link or image to download it. We
// are not sure of the mimetype in this case, so do a head request
- new FetchUrlMimeType(activity, url, userAgent, referer,
+ new FetchUrlMimeType(activity, url, userAgent, referer, auth,
privateBrowsing, filename).start();
} else {
if (DownloadDirRestriction.getInstance().downloadsAllowed()) {
startDownloadSettings(activity, url, userAgent, contentDisposition, mimetype, referer,
- privateBrowsing, contentLength, filename);
+ auth, privateBrowsing, contentLength, filename);
}
else {
Toast.makeText(activity, R.string.managed_by_your_administrator, Toast.LENGTH_SHORT)
@@ -365,7 +374,8 @@ public class DownloadHandler {
public static void startDownloadSettings(Activity activity,
String url, String userAgent, String contentDisposition,
- String mimetype, String referer, boolean privateBrowsing, long contentLength,
+ String mimetype, String referer, String auth,
+ boolean privateBrowsing, long contentLength,
String filename) {
Bundle fileInfo = new Bundle();
fileInfo.putString("url", url);
@@ -373,6 +383,7 @@ public class DownloadHandler {
fileInfo.putString("contentDisposition", contentDisposition);
fileInfo.putString("mimetype", mimetype);
fileInfo.putString("referer", referer);
+ fileInfo.putString("authorization", auth);
fileInfo.putLong("contentLength", contentLength);
fileInfo.putBoolean("privateBrowsing", privateBrowsing);
fileInfo.putString("filename", filename);
diff --git a/src/com/android/browser/DownloadSettings.java b/src/com/android/browser/DownloadSettings.java
index 7f1150a8..d84d3b79 100644
--- a/src/com/android/browser/DownloadSettings.java
+++ b/src/com/android/browser/DownloadSettings.java
@@ -67,6 +67,7 @@ public class DownloadSettings extends Activity {
private String contentDisposition;
private String mimetype;
private String referer;
+ private String authorization;
private String filenameBase;
private String filename;
private String filenameExtension;
@@ -107,6 +108,7 @@ public class DownloadSettings extends Activity {
contentDisposition = fileInfo.getString("contentDisposition");
mimetype = fileInfo.getString("mimetype");
referer = fileInfo.getString("referer");
+ authorization = fileInfo.getString("authorization");
contentLength = fileInfo.getLong("contentLength");
privateBrowsing = fileInfo.getBoolean("privateBrowsing");
filename = fileInfo.getString("filename");
@@ -242,7 +244,7 @@ public class DownloadSettings extends Activity {
// staring downloading
DownloadHandler.startingDownload(DownloadSettings.this,
url, userAgent, contentDisposition,
- mimetype, referer, privateBrowsing, contentLength,
+ mimetype, referer, authorization, privateBrowsing, contentLength,
Uri.encode(filename), downloadPath);
isDownloadStarted = true;
}
diff --git a/src/com/android/browser/FetchUrlMimeType.java b/src/com/android/browser/FetchUrlMimeType.java
index 56ea4c30..e5abebbc 100644
--- a/src/com/android/browser/FetchUrlMimeType.java
+++ b/src/com/android/browser/FetchUrlMimeType.java
@@ -57,12 +57,13 @@ class FetchUrlMimeType extends Thread {
private String mUserAgent;
private String mFilename;
private String mReferer;
+ private String mAuth;
private Activity mActivity;
private boolean mPrivateBrowsing;
private long mContentLength;
public FetchUrlMimeType(Activity activity, String url, String userAgent,
- String referer, boolean privateBrowsing, String filename) {
+ String referer, String auth, boolean privateBrowsing, String filename) {
mActivity = activity;
mContext = activity.getApplicationContext();
mUri = url;
@@ -70,6 +71,7 @@ class FetchUrlMimeType extends Thread {
mPrivateBrowsing = privateBrowsing;
mFilename = filename;
mReferer = referer;
+ mAuth = auth;
}
@Override
@@ -185,7 +187,7 @@ class FetchUrlMimeType extends Thread {
}
DownloadHandler.startDownloadSettings(mActivity, mUri, mUserAgent, contentDisposition,
- mimeType, mReferer, mPrivateBrowsing, mContentLength, filename);
+ mimeType, mReferer, mAuth, mPrivateBrowsing, mContentLength, filename);
}
/**
diff --git a/src/com/android/browser/PreloadController.java b/src/com/android/browser/PreloadController.java
index a307e7bd..a9a7786f 100644
--- a/src/com/android/browser/PreloadController.java
+++ b/src/com/android/browser/PreloadController.java
@@ -151,7 +151,7 @@ public class PreloadController implements WebViewController {
@Override
public void onDownloadStart(Tab tab, String url, String useragent,
String contentDisposition, String mimeType,
- String referer, long contentLength) {
+ String referer, String auth, long contentLength) {
if (LOGD_ENABLED) Log.d(LOGTAG, "onDownloadStart()");
}
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index 7fafa03d..f5f72e7e 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -1188,10 +1188,10 @@ class Tab implements PictureListener {
mDownloadListener = new BrowserDownloadListener() {
public void onDownloadStart(String url, String userAgent,
- String contentDisposition, String mimetype, String referer,
+ String contentDisposition, String mimetype, String referer, String auth,
long contentLength) {
mWebViewController.onDownloadStart(Tab.this, url, userAgent, contentDisposition,
- mimetype, referer, contentLength);
+ mimetype, referer, auth, contentLength);
}
};
@@ -1433,10 +1433,10 @@ class Tab implements PictureListener {
// just need to dismiss the mSubView, rather than close the Tab
mSubView.setDownloadListener(new BrowserDownloadListener() {
public void onDownloadStart(String url, String userAgent,
- String contentDisposition, String mimetype, String referer,
+ String contentDisposition, String mimetype, String referer, String auth,
long contentLength) {
mWebViewController.onDownloadStart(Tab.this, url, userAgent,
- contentDisposition, mimetype, referer, contentLength);
+ contentDisposition, mimetype, referer, auth, contentLength);
if (mSubView.copyBackForwardList().getSize() == 0) {
// This subwindow was opened for the sole purpose of
// downloading a file. Remove it.
diff --git a/src/com/android/browser/WebViewController.java b/src/com/android/browser/WebViewController.java
index 6bf2f69b..c0ef23bb 100644
--- a/src/com/android/browser/WebViewController.java
+++ b/src/com/android/browser/WebViewController.java
@@ -71,7 +71,7 @@ public interface WebViewController {
final String host, final String realm);
void onDownloadStart(Tab tab, String url, String useragent, String contentDisposition,
- String mimeType, String referer, long contentLength);
+ String mimeType, String referer, String auth, long contentLength);
void showCustomView(Tab tab, View view, int requestedOrientation,
CustomViewCallback callback);