Add advanced setting to clear WebView data
(cherry picked from commit 2b76a9798901cf077c55550bd03b9f484c5262cd) # Conflicts: # app/src/main/java/eu/kanade/tachiyomi/ui/setting/SettingsAdvancedController.kt
This commit is contained in:
parent
f6b7f9e29f
commit
743482dfd2
@ -6,6 +6,8 @@ import android.content.ActivityNotFoundException
|
|||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
|
import android.webkit.WebStorage
|
||||||
|
import android.webkit.WebView
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.core.net.toUri
|
import androidx.core.net.toUri
|
||||||
@ -49,7 +51,9 @@ import eu.kanade.tachiyomi.util.preference.titleRes
|
|||||||
import eu.kanade.tachiyomi.util.storage.DiskUtil
|
import eu.kanade.tachiyomi.util.storage.DiskUtil
|
||||||
import eu.kanade.tachiyomi.util.system.DeviceUtil
|
import eu.kanade.tachiyomi.util.system.DeviceUtil
|
||||||
import eu.kanade.tachiyomi.util.system.isPackageInstalled
|
import eu.kanade.tachiyomi.util.system.isPackageInstalled
|
||||||
|
import eu.kanade.tachiyomi.util.system.logcat
|
||||||
import eu.kanade.tachiyomi.util.system.powerManager
|
import eu.kanade.tachiyomi.util.system.powerManager
|
||||||
|
import eu.kanade.tachiyomi.util.system.setDefaultSettings
|
||||||
import eu.kanade.tachiyomi.util.system.toast
|
import eu.kanade.tachiyomi.util.system.toast
|
||||||
import exh.debug.SettingsDebugController
|
import exh.debug.SettingsDebugController
|
||||||
import exh.log.EHLogLevel
|
import exh.log.EHLogLevel
|
||||||
@ -57,6 +61,7 @@ import exh.source.BlacklistedSources
|
|||||||
import exh.source.EH_SOURCE_ID
|
import exh.source.EH_SOURCE_ID
|
||||||
import exh.source.EXH_SOURCE_ID
|
import exh.source.EXH_SOURCE_ID
|
||||||
import kotlinx.coroutines.Job
|
import kotlinx.coroutines.Job
|
||||||
|
import logcat.LogPriority
|
||||||
import rikka.sui.Sui
|
import rikka.sui.Sui
|
||||||
import uy.kohesive.injekt.Injekt
|
import uy.kohesive.injekt.Injekt
|
||||||
import uy.kohesive.injekt.api.get
|
import uy.kohesive.injekt.api.get
|
||||||
@ -147,6 +152,12 @@ class SettingsAdvancedController : SettingsController() {
|
|||||||
titleRes = R.string.pref_auto_clear_chapter_cache
|
titleRes = R.string.pref_auto_clear_chapter_cache
|
||||||
defaultValue = false
|
defaultValue = false
|
||||||
}
|
}
|
||||||
|
preference {
|
||||||
|
key = "pref_clear_webview_data"
|
||||||
|
titleRes = R.string.pref_clear_webview_data
|
||||||
|
|
||||||
|
onClick { clearWebViewData() }
|
||||||
|
}
|
||||||
preference {
|
preference {
|
||||||
key = "pref_clear_database"
|
key = "pref_clear_database"
|
||||||
titleRes = R.string.pref_clear_database
|
titleRes = R.string.pref_clear_database
|
||||||
@ -486,11 +497,29 @@ class SettingsAdvancedController : SettingsController() {
|
|||||||
resources?.getString(R.string.used_cache, chapterCache.readableSize)
|
resources?.getString(R.string.used_cache, chapterCache.readableSize)
|
||||||
}
|
}
|
||||||
} catch (e: Throwable) {
|
} catch (e: Throwable) {
|
||||||
|
logcat(LogPriority.ERROR, e)
|
||||||
withUIContext { activity?.toast(R.string.cache_delete_error) }
|
withUIContext { activity?.toast(R.string.cache_delete_error) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun clearWebViewData() {
|
||||||
|
if (activity == null) return
|
||||||
|
try {
|
||||||
|
val webview = WebView(activity!!)
|
||||||
|
webview.setDefaultSettings()
|
||||||
|
webview.clearCache(true)
|
||||||
|
webview.clearFormData()
|
||||||
|
webview.clearHistory()
|
||||||
|
webview.clearSslPreferences()
|
||||||
|
WebStorage.getInstance().deleteAllData()
|
||||||
|
activity?.toast(R.string.webview_data_deleted)
|
||||||
|
} catch (e: Throwable) {
|
||||||
|
logcat(LogPriority.ERROR, e)
|
||||||
|
activity?.toast(R.string.cache_delete_error)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private companion object {
|
private companion object {
|
||||||
// SY -->
|
// SY -->
|
||||||
private var job: Job? = null
|
private var job: Job? = null
|
||||||
|
@ -469,7 +469,7 @@
|
|||||||
<string name="pref_clear_chapter_cache">Clear chapter cache</string>
|
<string name="pref_clear_chapter_cache">Clear chapter cache</string>
|
||||||
<string name="used_cache">Used: %1$s</string>
|
<string name="used_cache">Used: %1$s</string>
|
||||||
<string name="cache_deleted">Cache cleared. %1$d files have been deleted</string>
|
<string name="cache_deleted">Cache cleared. %1$d files have been deleted</string>
|
||||||
<string name="cache_delete_error">An error occurred while clearing cache</string>
|
<string name="cache_delete_error">Error occurred while clearing</string>
|
||||||
<string name="pref_auto_clear_chapter_cache">Clear chapter cache on app close</string>
|
<string name="pref_auto_clear_chapter_cache">Clear chapter cache on app close</string>
|
||||||
<string name="pref_clear_database">Clear database</string>
|
<string name="pref_clear_database">Clear database</string>
|
||||||
<string name="pref_clear_database_summary">Delete history for manga that are not saved in your library</string>
|
<string name="pref_clear_database_summary">Delete history for manga that are not saved in your library</string>
|
||||||
@ -477,6 +477,8 @@
|
|||||||
<string name="clear_database_confirmation">Are you sure? Read chapters and progress of non-library manga will be lost</string>
|
<string name="clear_database_confirmation">Are you sure? Read chapters and progress of non-library manga will be lost</string>
|
||||||
<string name="clear_database_completed">Entries deleted</string>
|
<string name="clear_database_completed">Entries deleted</string>
|
||||||
<string name="database_clean">Database clean</string>
|
<string name="database_clean">Database clean</string>
|
||||||
|
<string name="pref_clear_webview_data">Clear WebView data</string>
|
||||||
|
<string name="webview_data_deleted">WebView data cleared</string>
|
||||||
<string name="pref_refresh_library_covers">Refresh library manga covers</string>
|
<string name="pref_refresh_library_covers">Refresh library manga covers</string>
|
||||||
<string name="pref_refresh_library_tracking">Refresh tracking</string>
|
<string name="pref_refresh_library_tracking">Refresh tracking</string>
|
||||||
<string name="pref_refresh_library_tracking_summary">Updates status, score and last chapter read from the tracking services</string>
|
<string name="pref_refresh_library_tracking_summary">Updates status, score and last chapter read from the tracking services</string>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user