Merge "DO NOT MERGE" into eclair-mr2

This commit is contained in:
Grace Kloba
2010-03-01 16:02:12 -08:00
committed by Android (Google) Code Review
2 changed files with 37 additions and 0 deletions

View File

@@ -24,10 +24,12 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.bouncycastle.crypto.Digest;
@@ -541,6 +543,26 @@ public final class CacheManager {
Log.e(LOGTAG, f.getPath() + " delete failed.");
}
}
// remove the unreferenced files in the cache directory
final List<String> fileList = mDataBase.getAllCacheFileNames();
if (fileList == null) return;
String[] toDelete = mBaseDir.list(new FilenameFilter() {
public boolean accept(File dir, String filename) {
if (fileList.contains(filename)) {
return false;
} else {
return true;
}
}
});
if (toDelete == null) return;
size = toDelete.length;
for (int i = 0; i < size; i++) {
File f = new File(mBaseDir, toDelete[i]);
if (!f.delete()) {
Log.e(LOGTAG, f.getPath() + " delete failed.");
}
}
}
}

View File

@@ -19,6 +19,7 @@ package android.webkit;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.Map.Entry;
@@ -727,6 +728,20 @@ public class WebViewDatabase {
return pathList;
}
List<String> getAllCacheFileNames() {
ArrayList<String> pathList = null;
Cursor cursor = mCacheDatabase.rawQuery("SELECT filepath FROM cache",
null);
if (cursor != null && cursor.moveToFirst()) {
pathList = new ArrayList<String>(cursor.getCount());
do {
pathList.add(cursor.getString(0));
} while (cursor.moveToNext());
}
cursor.close();
return pathList;
}
//
// password functions
//