Skip to content

Commit

Permalink
js: add moduleInfo method
Browse files Browse the repository at this point in the history
  • Loading branch information
jeffpeng3 committed Sep 14, 2024
1 parent b9449be commit d03a289
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 5 deletions.
9 changes: 9 additions & 0 deletions js/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -109,3 +109,12 @@ Show a toast message.
import { toast } from 'kernelsu';
toast('Hello, world!');
```

### moduleInfo

Get Module path.
```javascript
import { moduleInfo } from 'kernelsu';
// print moduleId in console
console.log(moduleInfo());
```
5 changes: 4 additions & 1 deletion js/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,12 @@ declare function fullScreen(isFullScreen: boolean);

declare function toast(message: string);

declare function moduleInfo(): string;

export {
exec,
spawn,
fullScreen,
toast
toast,
moduleInfo
}
4 changes: 4 additions & 0 deletions js/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -113,3 +113,7 @@ export function fullScreen(isFullScreen) {
export function toast(message) {
ksu.toast(message);
}

export function moduleInfo() {
return ksu.moduleInfo();
}
2 changes: 1 addition & 1 deletion js/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "kernelsu",
"version": "1.0.6",
"version": "1.0.7",
"description": "Library for KernelSU's module WebUI",
"main": "index.js",
"types": "index.d.ts",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ class WebUIActivity : ComponentActivity() {
val prefs = getSharedPreferences("settings", Context.MODE_PRIVATE)
WebView.setWebContentsDebuggingEnabled(prefs.getBoolean("enable_web_debugging", false))

val webRoot = File("/data/adb/modules/${moduleId}/webroot")
val moduleDir = "/data/adb/modules/${moduleId}"
val webRoot = File("${moduleDir}/webroot")
val rootShell = createRootShell(true).also { this.rootShell = it }
val webViewAssetLoader = WebViewAssetLoader.Builder()
.setDomain("mui.kernelsu.org")
Expand All @@ -52,7 +53,7 @@ class WebUIActivity : ComponentActivity() {
settings.javaScriptEnabled = true
settings.domStorageEnabled = true
settings.allowFileAccess = false
webviewInterface = WebViewInterface(this@WebUIActivity, this)
webviewInterface = WebViewInterface(this@WebUIActivity, this, moduleDir)
addJavascriptInterface(webviewInterface, "ksu")
setWebViewClient(webViewClient)
loadUrl("https://mui.kernelsu.org/index.html")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,15 @@ import androidx.core.view.WindowInsetsCompat
import androidx.core.view.WindowInsetsControllerCompat
import com.topjohnwu.superuser.CallbackList
import com.topjohnwu.superuser.ShellUtils
import me.weishu.kernelsu.ui.util.listModules
import me.weishu.kernelsu.ui.util.createRootShell
import me.weishu.kernelsu.ui.util.withNewRootShell
import org.json.JSONArray
import org.json.JSONObject
import java.util.concurrent.CompletableFuture
import java.io.File

class WebViewInterface(val context: Context, private val webView: WebView) {
class WebViewInterface(val context: Context, private val webView: WebView, private val modDir: String) {

@JavascriptInterface
fun exec(cmd: String): String {
Expand Down Expand Up @@ -170,6 +172,21 @@ class WebViewInterface(val context: Context, private val webView: WebView) {
}
}

@JavascriptInterface
fun moduleInfo(): String {
val moduleInfos = JSONArray(listModules())
var currentModuleInfo = JSONObject()
val moduleId = File(modDir).getName()
for (i in 0 until moduleInfos.length()) {
val currentInfo = moduleInfos.getJSONObject(i)

if (currentInfo.getString("id") == moduleId) {
currentModuleInfo = moduleInfo;
break;
}
}
return currentModuleInfo.toString();
}
}

fun hideSystemUI(window: Window) {
Expand Down

0 comments on commit d03a289

Please sign in to comment.