diff --git a/app/src/main/java/io/legado/app/constant/PreferKey.kt b/app/src/main/java/io/legado/app/constant/PreferKey.kt
index b1a4809b7..850f83caf 100644
--- a/app/src/main/java/io/legado/app/constant/PreferKey.kt
+++ b/app/src/main/java/io/legado/app/constant/PreferKey.kt
@@ -123,6 +123,7 @@ object PreferKey {
const val audioPlayWakeLock = "audioPlayWakeLock"
const val readAloudWakeLock = "readAloudWakeLock"
const val showLastUpdateTime = "showLastUpdateTime"
+ const val clearWebViewData = "clearWebViewData"
const val cPrimary = "colorPrimary"
const val cAccent = "colorAccent"
diff --git a/app/src/main/java/io/legado/app/ui/config/ConfigViewModel.kt b/app/src/main/java/io/legado/app/ui/config/ConfigViewModel.kt
index a3d4316d3..bcf9c8697 100644
--- a/app/src/main/java/io/legado/app/ui/config/ConfigViewModel.kt
+++ b/app/src/main/java/io/legado/app/ui/config/ConfigViewModel.kt
@@ -1,6 +1,7 @@
package io.legado.app.ui.config
import android.app.Application
+import android.content.Context
import io.legado.app.R
import io.legado.app.base.BaseViewModel
import io.legado.app.help.AppWebDav
@@ -25,5 +26,13 @@ class ConfigViewModel(application: Application) : BaseViewModel(application) {
}
}
+ fun clearWebViewData() {
+ execute {
+ FileUtils.delete(context.getDir("webview", Context.MODE_PRIVATE))
+ }.onSuccess {
+ context.toastOnUi(R.string.success)
+ }
+ }
-}
\ No newline at end of file
+
+}
diff --git a/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt b/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt
index 88a865f6f..85368eb45 100644
--- a/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt
+++ b/app/src/main/java/io/legado/app/ui/config/OtherConfigFragment.kt
@@ -2,6 +2,7 @@ package io.legado.app.ui.config
import android.annotation.SuppressLint
import android.content.ComponentName
+import android.content.Context
import android.content.SharedPreferences
import android.content.pm.PackageManager
import android.os.Bundle
@@ -131,6 +132,7 @@ class OtherConfigFragment : PreferenceFragment(),
AppConfig.sourceEditMaxLine = it
}
}
+ PreferKey.clearWebViewData -> clearWebViewData()
}
return super.onPreferenceTreeClick(preference)
}
@@ -230,6 +232,15 @@ class OtherConfigFragment : PreferenceFragment(),
}
}
+ private fun clearWebViewData() {
+ alert(R.string.clear_webview_data, R.string.sure_del) {
+ okButton {
+ viewModel.clearWebViewData()
+ }
+ noButton()
+ }
+ }
+
private fun isProcessTextEnabled(): Boolean {
return packageManager.getComponentEnabledSetting(componentName) != PackageManager.COMPONENT_ENABLED_STATE_DISABLED
}
diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml
index e496056c6..4304a0559 100644
--- a/app/src/main/res/values-es-rES/strings.xml
+++ b/app/src/main/res/values-es-rES/strings.xml
@@ -1069,4 +1069,6 @@
黑名单(contentBlacklist)
确认
跳转其它应用
+ 清除 WebView 数据
+ 清除内置浏览器所有数据
diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml
index 5651853e4..c113ccd43 100644
--- a/app/src/main/res/values-ja-rJP/strings.xml
+++ b/app/src/main/res/values-ja-rJP/strings.xml
@@ -1072,4 +1072,6 @@
黑名单(contentBlacklist)
确认
跳转其它应用
+ 清除 WebView 数据
+ 清除内置浏览器所有数据
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index abccc269a..c898eb40c 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -1072,4 +1072,6 @@
黑名单(contentBlacklist)
确认
跳转其它应用
+ 清除 WebView 数据
+ 清除内置浏览器所有数据
diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml
index 4b060bb67..688ac37b1 100644
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -1069,4 +1069,6 @@
黑名单(contentBlacklist)
确认
跳转其它应用
+ 清除 WebView 数据
+ 清除内置浏览器所有数据
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 4dc47d403..d85773a60 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -1071,4 +1071,6 @@
黑名单(contentBlacklist)
确认
跳转其它应用
+ 清除 WebView 数据
+ 清除内置浏览器所有数据
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
index fda031eaa..d75227614 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh/strings.xml
@@ -1071,4 +1071,6 @@
黑名单(contentBlacklist)
确认
跳转其它应用
+ 清除 WebView 数据
+ 清除内置浏览器所有数据
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8b9e458fb..60b623db3 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1057,8 +1057,8 @@
Audio service wake-up lock
The wake-up lock is enabled when playing audio, and some phones will be killed when the wake-up lock is turned on.
Toggle search scope
- Copy Rul
- Paste Rul
+ Copy Rule
+ Paste Rule
Multi-group / book source
Replace (enable / disable)
Show last updated time
@@ -1072,4 +1072,6 @@
黑名单(contentBlacklist)
Confirm
Jump to another app
+ 清除 WebView 数据
+ 清除内置浏览器所有数据
diff --git a/app/src/main/res/xml/pref_config_other.xml b/app/src/main/res/xml/pref_config_other.xml
index bae6f2303..a6a7f0172 100644
--- a/app/src/main/res/xml/pref_config_other.xml
+++ b/app/src/main/res/xml/pref_config_other.xml
@@ -145,6 +145,12 @@
android:title="@string/clear_cache"
app:iconSpaceReserved="false" />
+
+