mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-31 14:27:57 +01:00 
			
		
		
		
	Add advanced setting to clear WebView data
This commit is contained in:
		| @@ -4,6 +4,8 @@ import android.annotation.SuppressLint | ||||
| import android.content.ActivityNotFoundException | ||||
| import android.content.Intent | ||||
| import android.provider.Settings | ||||
| import android.webkit.WebStorage | ||||
| import android.webkit.WebView | ||||
| import androidx.core.net.toUri | ||||
| import androidx.preference.PreferenceScreen | ||||
| import com.google.android.material.dialog.MaterialAlertDialogBuilder | ||||
| @@ -39,8 +41,11 @@ import eu.kanade.tachiyomi.util.preference.switchPreference | ||||
| import eu.kanade.tachiyomi.util.preference.titleRes | ||||
| import eu.kanade.tachiyomi.util.system.DeviceUtil | ||||
| 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.setDefaultSettings | ||||
| import eu.kanade.tachiyomi.util.system.toast | ||||
| import logcat.LogPriority | ||||
| import rikka.sui.Sui | ||||
| import uy.kohesive.injekt.injectLazy | ||||
| import eu.kanade.tachiyomi.data.preference.PreferenceKeys as Keys | ||||
| @@ -139,6 +144,12 @@ class SettingsAdvancedController : SettingsController() { | ||||
|                 titleRes = R.string.pref_auto_clear_chapter_cache | ||||
|                 defaultValue = false | ||||
|             } | ||||
|             preference { | ||||
|                 key = "pref_clear_webview_data" | ||||
|                 titleRes = R.string.pref_clear_webview_data | ||||
|  | ||||
|                 onClick { clearWebViewData() } | ||||
|             } | ||||
|             preference { | ||||
|                 key = "pref_clear_database" | ||||
|                 titleRes = R.string.pref_clear_database | ||||
| @@ -275,10 +286,28 @@ class SettingsAdvancedController : SettingsController() { | ||||
|                         resources?.getString(R.string.used_cache, chapterCache.readableSize) | ||||
|                 } | ||||
|             } catch (e: Throwable) { | ||||
|                 logcat(LogPriority.ERROR, e) | ||||
|                 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 const val CLEAR_CACHE_KEY = "pref_clear_cache_key" | ||||
|   | ||||
| @@ -469,7 +469,7 @@ | ||||
|     <string name="pref_clear_chapter_cache">Clear chapter cache</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_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_clear_database">Clear database</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_completed">Entries deleted</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_tracking">Refresh tracking</string> | ||||
|     <string name="pref_refresh_library_tracking_summary">Updates status, score and last chapter read from the tracking services</string> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user