summaryrefslogtreecommitdiffstats
path: root/core/java/android/webkit/FileLoader.java
diff options
context:
space:
mode:
authorGrace Kloba <klobag@google.com>2010-02-03 10:24:06 -0800
committerGrace Kloba <klobag@google.com>2010-02-04 08:59:10 -0800
commitac75f56600691d318d40301204baaf840c9586f2 (patch)
treeef2e3648d49ed787c732f85bb226e68dd1f9c221 /core/java/android/webkit/FileLoader.java
parentbca1c65fe491d070470ca248e804166a33e998a7 (diff)
downloadframeworks_base-ac75f56600691d318d40301204baaf840c9586f2.zip
frameworks_base-ac75f56600691d318d40301204baaf840c9586f2.tar.gz
frameworks_base-ac75f56600691d318d40301204baaf840c9586f2.tar.bz2
Enable StreamLoader to be loaded in a separate thread.
Move ContentLoader and FileLoader to this new way as they involves IO. Will work on CacheLoader later. Change StreamLoader to contain a Handler instead of derive from a Handler so that the Handler can be created in the thread where load() is called. Rename StreamLoader's old "LoadListener mHandler" to mLoadListener. Remove unused import and unreachable exception. Fix http://b/issue?id=2158613 This improved page_cycler performance in moz/intl by 10-30% as we are not blocked by IO any more.
Diffstat (limited to 'core/java/android/webkit/FileLoader.java')
-rw-r--r--core/java/android/webkit/FileLoader.java34
1 files changed, 7 insertions, 27 deletions
diff --git a/core/java/android/webkit/FileLoader.java b/core/java/android/webkit/FileLoader.java
index e856cde..e21e9ef 100644
--- a/core/java/android/webkit/FileLoader.java
+++ b/core/java/android/webkit/FileLoader.java
@@ -18,11 +18,9 @@ package android.webkit;
import com.android.internal.R;
-import android.content.Context;
import android.content.res.AssetManager;
import android.net.http.EventHandler;
import android.net.http.Headers;
-import android.os.Environment;
import android.util.Log;
import android.util.TypedValue;
@@ -111,7 +109,7 @@ class FileLoader extends StreamLoader {
// "<package>.R$drawable"
if (mPath == null || mPath.length() == 0) {
Log.e(LOGTAG, "Need a path to resolve the res file");
- mHandler.error(EventHandler.FILE_ERROR, mContext
+ mLoadListener.error(EventHandler.FILE_ERROR, mContext
.getString(R.string.httpErrorFileNotFound));
return false;
@@ -120,7 +118,7 @@ class FileLoader extends StreamLoader {
int dot = mPath.indexOf('.', slash);
if (slash == -1 || dot == -1) {
Log.e(LOGTAG, "Incorrect res path: " + mPath);
- mHandler.error(EventHandler.FILE_ERROR, mContext
+ mLoadListener.error(EventHandler.FILE_ERROR, mContext
.getString(R.string.httpErrorFileNotFound));
return false;
}
@@ -157,13 +155,13 @@ class FileLoader extends StreamLoader {
errorMsg = "Caught IllegalAccessException: " + e;
}
if (errorMsg != null) {
- mHandler.error(EventHandler.FILE_ERROR, mContext
+ mLoadListener.error(EventHandler.FILE_ERROR, mContext
.getString(R.string.httpErrorFileNotFound));
return false;
}
} else {
if (!mAllowFileAccess) {
- mHandler.error(EventHandler.FILE_ERROR,
+ mLoadListener.error(EventHandler.FILE_ERROR,
mContext.getString(R.string.httpErrorFileNotFound));
return false;
}
@@ -171,14 +169,14 @@ class FileLoader extends StreamLoader {
mDataStream = new FileInputStream(mPath);
mContentLength = (new File(mPath)).length();
}
- mHandler.status(1, 1, 200, "OK");
+ mLoadListener.status(1, 1, 200, "OK");
} catch (java.io.FileNotFoundException ex) {
- mHandler.error(EventHandler.FILE_NOT_FOUND_ERROR, errString(ex));
+ mLoadListener.error(EventHandler.FILE_NOT_FOUND_ERROR, errString(ex));
return false;
} catch (java.io.IOException ex) {
- mHandler.error(EventHandler.FILE_ERROR, errString(ex));
+ mLoadListener.error(EventHandler.FILE_ERROR, errString(ex));
return false;
}
return true;
@@ -188,22 +186,4 @@ class FileLoader extends StreamLoader {
protected void buildHeaders(Headers headers) {
// do nothing.
}
-
-
- /**
- * Construct a FileLoader and instruct it to start loading.
- *
- * @param url Full file url pointing to content to be loaded
- * @param loadListener LoadListener to pass the content to
- * @param asset true if url points to an asset.
- * @param allowFileAccess true if this FileLoader can load files from the
- * file system.
- */
- public static void requestUrl(String url, LoadListener loadListener,
- int type, boolean allowFileAccess) {
- FileLoader loader = new FileLoader(url, loadListener, type,
- allowFileAccess);
- loader.load();
- }
-
}