diff --git a/.idea/appInsightsSettings.xml b/.idea/appInsightsSettings.xml
new file mode 100644
index 0000000..371f2e2
--- /dev/null
+++ b/.idea/appInsightsSettings.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
index 4c9ea6e..5d2bc55 100644
--- a/.idea/deploymentTargetSelector.xml
+++ b/.idea/deploymentTargetSelector.xml
@@ -4,10 +4,10 @@
-
+
-
+
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 51be41a..98e7249 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -46,6 +46,7 @@ dependencies {
implementation(libs.androidx.activity.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.ui)
+ implementation(libs.androidx.webkit)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)
implementation(libs.androidx.material3)
diff --git a/app/src/main/assets/clock.html b/app/src/main/assets/clock.html
index fbefe06..9eee756 100644
--- a/app/src/main/assets/clock.html
+++ b/app/src/main/assets/clock.html
@@ -111,6 +111,28 @@
}
.calendar-day.today {
background-color: #8d2b68; /* Highlight color */
+ }
+ #gotify-container {
+ position: relative;
+ top: -550px;
+ left: 1415px;
+ width: 500px;
+ height: 300px;
+ border: 1px solid #ccc;
+ overflow-y: auto;
+ padding: 10px;
+ color: #eee;
+ font-family: Arial, sans-serif;
+ border: 1px solid;
+ }
+ /* Style each notification block */
+ .notification {
+ border-bottom: 1px solid #eee;
+ padding: 5px 0;
+ margin-bottom: 5px;
+ }
+ .notification:last-child {
+ border-bottom: none;
}
diff --git a/app/src/main/java/com/zefie/zkiosk/MainActivity.kt b/app/src/main/java/com/zefie/zkiosk/MainActivity.kt
index 4edc40a..9c5a96d 100644
--- a/app/src/main/java/com/zefie/zkiosk/MainActivity.kt
+++ b/app/src/main/java/com/zefie/zkiosk/MainActivity.kt
@@ -1,22 +1,26 @@
package com.zefie.zkiosk
import android.annotation.SuppressLint
-import android.os.Bundle
import android.graphics.Rect
+import android.net.Uri
+import android.os.Bundle
import android.os.PowerManager
-import androidx.appcompat.app.AppCompatActivity
-import com.google.android.material.floatingactionbutton.FloatingActionButton
-import org.videolan.libvlc.util.VLCVideoLayout
-import android.os.Build
import android.view.Gravity
import android.view.LayoutInflater
import android.view.View
import android.view.WindowManager
+import android.webkit.WebResourceRequest
+import android.webkit.WebResourceResponse
import android.webkit.WebView
+import android.webkit.WebViewClient
+import androidx.appcompat.app.AppCompatActivity
+import androidx.webkit.WebViewAssetLoader
import android.widget.PopupWindow
import android.widget.RelativeLayout
import android.widget.SeekBar
import android.widget.TextView
+import com.google.android.material.floatingactionbutton.FloatingActionButton
+import org.videolan.libvlc.util.VLCVideoLayout
import java.util.Locale
@@ -75,8 +79,31 @@ class MainActivity : AppCompatActivity() {
clockWebView.settings.displayZoomControls = false
clockWebView.settings.javaScriptEnabled = true
- wxWebView.loadUrl("file:///android_asset/radar.html")
- clockWebView.loadUrl("file:///android_asset/clock.html")
+ val assetLoader = WebViewAssetLoader.Builder()
+ .addPathHandler("/assets/", WebViewAssetLoader.AssetsPathHandler(this))
+ .addPathHandler("/res/", WebViewAssetLoader.ResourcesPathHandler(this))
+ .build()
+
+ wxWebView.webViewClient = object : WebViewClient() {
+ override fun shouldInterceptRequest(
+ view: WebView,
+ request: WebResourceRequest
+ ): WebResourceResponse? {
+ return assetLoader.shouldInterceptRequest(request.url)
+ }
+ }
+
+ clockWebView.webViewClient = object : WebViewClient() {
+ override fun shouldInterceptRequest(
+ view: WebView,
+ request: WebResourceRequest
+ ): WebResourceResponse? {
+ return assetLoader.shouldInterceptRequest(request.url)
+ }
+ }
+
+ wxWebView.loadUrl("https://appassets.androidplatform.net/assets/radar.html")
+ clockWebView.loadUrl("https://appassets.androidplatform.net/assets/clock.html")
startPlayer(1)
startPlayer(2)
diff --git a/app/src/main/java/com/zefie/zkiosk/VLCPlayer.kt b/app/src/main/java/com/zefie/zkiosk/VLCPlayer.kt
index f1152f5..902f875 100644
--- a/app/src/main/java/com/zefie/zkiosk/VLCPlayer.kt
+++ b/app/src/main/java/com/zefie/zkiosk/VLCPlayer.kt
@@ -38,7 +38,7 @@ class VLCPlayer(private val context: Context, private val videoLayout: VLCVideoL
streamUrl = url
val media = Media(libVLC, Uri.parse(url))
media.setHWDecoderEnabled(true, false)
- media.addOption(":network-caching=250") // Adjust caching to handle jitter
+ media.addOption(":network-caching=500") // Adjust caching to handle jitter
mediaPlayer.media = media
media.release()
mediaPlayer.play()
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index e6851c0..548b259 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -11,10 +11,12 @@ lifecycleRuntimeKtx = "2.8.7"
activityCompose = "1.10.1"
composeBom = "2025.03.01"
material = "1.12.0"
+webkit = "1.13.0"
[libraries]
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" }
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
+androidx-webkit = { module = "androidx.webkit:webkit", version.ref = "webkit" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }