Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -271,7 +271,8 @@ dependencies {
implementation(libs.square.moshi)
ksp(libs.square.moshi.kotlin)

implementation("dev.mmrlx:terminal:1.0.3")
implementation(libs.mmrlx.terminal)
implementation(libs.mmrlx.webui.core)

implementation("dev.chrisbanes.haze:haze:1.6.10")
implementation("dev.chrisbanes.haze:haze-materials:1.6.10")
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
tools:ignore="PackageVisibilityPolicy,QueryAllPackagesPermission" />

<uses-permission android:name="${webuiPermissionId}.permission.WEBUI_X" />
<uses-permission android:name="${webuiPermissionId}.permission.WEBUI_LEGACY" />
Expand Down
28 changes: 15 additions & 13 deletions app/src/main/assets/markdown.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,19 +11,21 @@
</head>

<body>
<div class="toolbar"></div>
<div class="markdown-body" id="content"></div>
<div class="bottom-bar"></div>
<script type="module">
import { Marked } from "https://desc.mmrl.dev/internal/assets/marked/index.mjs";
import markedAlert from "https://desc.mmrl.dev/internal/assets/marked/alert.mjs";

const html = new Marked()
.use(markedAlert())
.parse(markdown.get())

document.getElementById("content").innerHTML = html;
</script>
<div class="toolbar"></div>
<div class="markdown-body" id="content"></div>
<div class="bottom-bar"></div>
<script type="module">
import { Marked } from "https://desc.mmrl.dev/internal/assets/marked/index.mjs";
import markedAlert from "https://desc.mmrl.dev/internal/assets/marked/alert.mjs";
fetch("https://desc.mmrl.dev/internal/readme.md")
.then((response) => response.text())
.then((text) => {
const html = new Marked()
.use(markedAlert())
.parse(text)
document.getElementById("content").innerHTML = html;
})
</script>
</body>

</html>
Original file line number Diff line number Diff line change
@@ -1,24 +1,19 @@
package com.dergoogler.mmrl.pathHandler

import android.annotation.SuppressLint
import android.content.Context
import android.util.Log
import android.webkit.WebResourceResponse
import com.dergoogler.mmrl.hybridwebui.HybridWebUI
import com.dergoogler.mmrl.hybridwebui.HybridWebUIResourceRequest
import dev.mmrlx.webui.PathHandler
import dev.mmrlx.webui.WebUI
import dev.mmrlx.webui.WebUIResourceRequest
import java.io.IOException

class AssetsPathHandler(
private val context: Context
) : HybridWebUI.PathHandler() {
webui: WebUI,
) : PathHandler(webui) {
private val assetHelper get() = kontext.assets

private val assetHelper get() = context.assets

@SuppressLint("WrongThread")
override fun handle(
view: HybridWebUI,
request: HybridWebUIResourceRequest,
): WebResourceResponse {
override fun handle(request: WebUIResourceRequest): WebResourceResponse {
val path = request.path

try {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,46 +1,52 @@
package com.dergoogler.mmrl.pathHandler


import android.content.Context
import android.util.Log
import android.webkit.WebResourceResponse
import androidx.compose.material3.ColorScheme
import com.dergoogler.mmrl.hybridwebui.HybridWebUI
import com.dergoogler.mmrl.hybridwebui.HybridWebUIInsets
import com.dergoogler.mmrl.hybridwebui.HybridWebUIResourceRequest
import com.dergoogler.mmrl.model.WebColors
import dev.mmrlx.webui.PathHandler
import dev.mmrlx.webui.WebUI
import dev.mmrlx.webui.WebUIResourceRequest
import java.io.IOException
import java.net.HttpURLConnection
import java.net.URL

class InternalPathHandler(
private val context: Context,
webui: WebUI,
private val readmeUrl: String,
private val colorScheme: ColorScheme,
private val insets: HybridWebUIInsets,
) : HybridWebUI.PathHandler() {
) : PathHandler(webui) {
override val id = "/internal/"
val webColors get() = WebColors(colorScheme)
val assetsPathHandler = AssetsPathHandler(context)
val assetsPathHandler = AssetsPathHandler(this)

override fun handle(
view: HybridWebUI,
request: HybridWebUIResourceRequest,
): WebResourceResponse {
override fun handle(request: WebUIResourceRequest): WebResourceResponse {
val path = request.path

try {
if (path.matches(Regex("^assets(/.*)?$"))) {
return assetsPathHandler.handle(
view,
HybridWebUIResourceRequest(
WebUIResourceRequest(
method = request.method,
isForMainFrame = request.isForMainFrame,
url = request.url,
path = path.removePrefix("assets/"),
requestHeaders = request.requestHeaders,
isRedirect = request.isRedirect,
hasGesture = request.hasGesture
hasGesture = request.hasGesture()
)
)
}



if (path.matches(Regex("readme\\.md"))) {
val connection = URL(readmeUrl).openConnection() as HttpURLConnection
connection.connect()
return htmlResponse(connection.getInputStream())
}

if (path.matches(Regex("insets\\.css"))) {
return insets.css.asStyleResponse()
}
Expand Down
Loading
Loading