From cd772fa250f1a5d137d8b70cc391cfc0e1e67d05 Mon Sep 17 00:00:00 2001
From: 5ec1cff <56485584+5ec1cff@users.noreply.github.com>
Date: Sun, 3 Mar 2024 22:24:02 +0800
Subject: [PATCH] manager: allow enable webview debugging (#1412)
---
.../java/me/weishu/kernelsu/ui/screen/Settings.kt | 15 +++++++++++++++
.../me/weishu/kernelsu/ui/screen/WebScreen.kt | 4 ++++
.../app/src/main/res/values-zh-rCN/strings.xml | 2 ++
manager/app/src/main/res/values/strings.xml | 2 ++
4 files changed, 23 insertions(+)
diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Settings.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Settings.kt
index 9c88a2ad..b7d685f2 100644
--- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Settings.kt
+++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/Settings.kt
@@ -101,6 +101,21 @@ fun SettingScreen(navigator: DestinationsNavigator) {
checkUpdate = it
}
+ var enableWebDebugging by rememberSaveable {
+ mutableStateOf(
+ prefs.getBoolean("enable_web_debugging", false)
+ )
+ }
+ SwitchItem(
+ icon = Icons.Filled.Update,
+ title = stringResource(id = R.string.enable_web_debugging),
+ summary = stringResource(id = R.string.enable_web_debugging_summary),
+ checked = enableWebDebugging
+ ) {
+ prefs.edit().putBoolean("enable_web_debugging", it).apply()
+ enableWebDebugging = it
+ }
+
ListItem(
leadingContent = {
diff --git a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/WebScreen.kt b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/WebScreen.kt
index 737b8a6b..54d97d5a 100644
--- a/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/WebScreen.kt
+++ b/manager/app/src/main/java/me/weishu/kernelsu/ui/screen/WebScreen.kt
@@ -2,6 +2,8 @@ package me.weishu.kernelsu.ui.screen
import android.annotation.SuppressLint
import android.app.Activity
+import android.content.Context
+import android.util.Log
import android.webkit.WebResourceRequest
import android.webkit.WebResourceResponse
import android.webkit.WebView
@@ -31,6 +33,8 @@ fun WebScreen(navigator: DestinationsNavigator, moduleId: String, moduleName: St
val context = LocalContext.current
DisposableEffect(Unit) {
+ val prefs = context.getSharedPreferences("settings", Context.MODE_PRIVATE)
+ WebView.setWebContentsDebuggingEnabled(prefs.getBoolean("enable_web_debugging", false))
onDispose {
if (WebViewInterface.isHideSystemUI && context is Activity) {
showSystemUI(context.window)
diff --git a/manager/app/src/main/res/values-zh-rCN/strings.xml b/manager/app/src/main/res/values-zh-rCN/strings.xml
index 730fcaee..b9a8b612 100644
--- a/manager/app/src/main/res/values-zh-rCN/strings.xml
+++ b/manager/app/src/main/res/values-zh-rCN/strings.xml
@@ -106,4 +106,6 @@
在应用启动后自动检查是否有最新版
获取 root 失败!
打开
+ 启用 WebView 调试
+ 可用于调试 WebUI ,请仅在需要时启用。
\ No newline at end of file
diff --git a/manager/app/src/main/res/values/strings.xml b/manager/app/src/main/res/values/strings.xml
index 89f82362..b2429557 100644
--- a/manager/app/src/main/res/values/strings.xml
+++ b/manager/app/src/main/res/values/strings.xml
@@ -108,4 +108,6 @@
Automatically check for updates when opening the app
Failed to grant root!
Open
+ Enable WebView Debugging
+ Can be used to debug WebUI, please enable only when needed.