[WebView] Remove dependency on FileUtils.
We implement our own version of deleteContents to
avoid depending on FileUtils, a hidden Android API.
BUG:18152150
Change-Id: I8607e36827bacc38a80a35f65c13f39f561551a0
diff --git a/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java b/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
index 31708d1..cbeead5 100644
--- a/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
+++ b/chromium/java/com/android/webview/chromium/WebViewChromiumFactoryProvider.java
@@ -26,7 +26,6 @@
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Build;
-import android.os.FileUtils;
import android.os.Looper;
import android.os.StrictMode;
import android.os.SystemProperties;
@@ -135,7 +134,7 @@
String dataDir = PathUtils.getDataDirectory(ActivityThread.currentApplication());
Log.i(TAG, "WebView package downgraded from " + lastVersion + " to " + currentVersion +
"; deleting contents of " + dataDir);
- FileUtils.deleteContents(new File(dataDir));
+ deleteContents(new File(dataDir));
}
if (lastVersion != currentVersion) {
mWebViewPrefs.edit().putInt(VERSION_CODE_PREF, currentVersion).apply();
@@ -143,6 +142,20 @@
// Now safe to use WebView data directory.
}
+ private static void deleteContents(File dir) {
+ File[] files = dir.listFiles();
+ if (files != null) {
+ for (File file : files) {
+ if (file.isDirectory()) {
+ deleteContents(file);
+ }
+ if (!file.delete()) {
+ Log.w(TAG, "Failed to delete " + file);
+ }
+ }
+ }
+ }
+
private void initPlatSupportLibrary() {
DrawGLFunctor.setChromiumAwDrawGLFunction(AwContents.getAwDrawGLFunction());
AwContents.setAwDrawSWFunctionTable(GraphicsUtils.getDrawSWFunctionTable());