From 4585d3191d3fd91157e4542e0eec8d6cc45639ba Mon Sep 17 00:00:00 2001 From: chrisws Date: Mon, 15 Apr 2024 21:18:17 +0930 Subject: [PATCH] ANDROID: fix web page regression --- src/platform/android/app/build.gradle | 2 +- .../net/sourceforge/smallbasic/MainActivity.java | 3 ++- .../java/net/sourceforge/smallbasic/WebServer.java | 14 +++++++++++++- src/platform/android/webui/package.json | 2 +- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/platform/android/app/build.gradle b/src/platform/android/app/build.gradle index 3dd59f3e..b7d378a5 100644 --- a/src/platform/android/app/build.gradle +++ b/src/platform/android/app/build.gradle @@ -9,7 +9,7 @@ android { applicationId 'net.sourceforge.smallbasic' minSdkVersion 19 targetSdkVersion 34 - versionCode 60 + versionCode 61 versionName '12.27' resourceConfigurations += ['en'] } diff --git a/src/platform/android/app/src/main/java/net/sourceforge/smallbasic/MainActivity.java b/src/platform/android/app/src/main/java/net/sourceforge/smallbasic/MainActivity.java index f51d8120..56cac8ae 100644 --- a/src/platform/android/app/src/main/java/net/sourceforge/smallbasic/MainActivity.java +++ b/src/platform/android/app/src/main/java/net/sourceforge/smallbasic/MainActivity.java @@ -1095,7 +1095,8 @@ protected Response getFile(String remoteHost, String path, boolean asset) throws String name = "webui/" + path; long length = getFileLength(name); log("Opened " + name + " " + length + " bytes"); - result = new Response(getAssets().open(name), length); + String contentType = path.endsWith("js") ? "text/javascript" : "text/html"; + result = new Response(getAssets().open(name), length, contentType); if ("index.html".equals(path) && isHostNotPermitted(remoteHost)) { requestHostPermission(remoteHost); } diff --git a/src/platform/android/app/src/main/java/net/sourceforge/smallbasic/WebServer.java b/src/platform/android/app/src/main/java/net/sourceforge/smallbasic/WebServer.java index e70e5dca..9fc5c75c 100644 --- a/src/platform/android/app/src/main/java/net/sourceforge/smallbasic/WebServer.java +++ b/src/platform/android/app/src/main/java/net/sourceforge/smallbasic/WebServer.java @@ -44,6 +44,7 @@ public abstract class WebServer { private static final int SC_NOT_AUTHORISED = 401; private static final int SC_NOT_FOUND = 404; private static final ExecutorService THREAD_POOL = Executors.newCachedThreadPool(); + private static final String TEXT_HTML = "text/html"; public WebServer() { super(); @@ -641,17 +642,27 @@ public class Response { private final InputStream inputStream; private final long length; private final int errorCode; + private final String contentType; + + public Response(InputStream inputStream, long length, String contentType) { + this.inputStream = inputStream; + this.length = length; + this.errorCode = SC_OKAY; + this.contentType = contentType; + } public Response(InputStream inputStream, long length) { this.inputStream = inputStream; this.length = length; this.errorCode = SC_OKAY; + this.contentType = TEXT_HTML; } public Response(byte[] bytes) { this.inputStream = new ByteArrayInputStream(bytes); this.length = bytes.length; this.errorCode = SC_OKAY; + this.contentType = TEXT_HTML; } public Response(int errorCode) throws IOException { @@ -659,6 +670,7 @@ public Response(int errorCode) throws IOException { this.inputStream = new ByteArrayInputStream(bytes); this.length = bytes.length; this.errorCode = errorCode; + this.contentType = TEXT_HTML; } /** @@ -670,7 +682,7 @@ void send(Socket socket, String cookie) throws IOException { BufferedOutputStream out = new BufferedOutputStream(socket.getOutputStream()); String code = errorCode == SC_OKAY ? SC_OKAY + " OK" : String.valueOf(errorCode); out.write(("HTTP/1.0 " + code + "\r\n").getBytes(UTF_8)); - out.write("Content-type: text/html\r\n".getBytes(UTF_8)); + out.write(("Content-type: " + contentType + "\r\n").getBytes(UTF_8)); out.write(contentLength.getBytes(UTF_8)); if (cookie != null) { out.write(("Set-Cookie: " + TOKEN + "=" + cookie + "\r\n").getBytes(UTF_8)); diff --git a/src/platform/android/webui/package.json b/src/platform/android/webui/package.json index a0844ee7..dab6935d 100644 --- a/src/platform/android/webui/package.json +++ b/src/platform/android/webui/package.json @@ -23,7 +23,7 @@ }, "scripts": { "start": "vite --host", - "build": "GENERATE_SOURCEMAP=false vite build && rm ../app/src/main/assets/webui/static/js/main.* && cp -R build/* ../app/src/main/assets/webui/", + "build": "GENERATE_SOURCEMAP=false vite build && rm -rf ../app/src/main/assets/webui/* && cp -R dist/* ../app/src/main/assets/webui/", "update": "npm update && ncu -u && npm install && npm audit fix" }, "eslintConfig": {