aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/injectors/JsAssets.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/injectors/JsAssets.kt')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/injectors/JsAssets.kt19
1 files changed, 15 insertions, 4 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/injectors/JsAssets.kt b/app/src/main/kotlin/com/pitchedapps/frost/injectors/JsAssets.kt
index 0dccc751..4b1bde43 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/injectors/JsAssets.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/injectors/JsAssets.kt
@@ -16,9 +16,12 @@
*/
package com.pitchedapps.frost.injectors
+import android.content.Context
import android.webkit.WebView
import ca.allanwang.kau.kotlin.lazyContext
import com.pitchedapps.frost.utils.L
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.withContext
import java.io.BufferedReader
import java.io.FileNotFoundException
import java.util.Locale
@@ -33,8 +36,8 @@ enum class JsAssets : InjectorContract {
DOCUMENT_WATCHER
;
- var file = "${name.toLowerCase(Locale.CANADA)}.js"
- var injector = lazyContext {
+ private val file = "${name.toLowerCase(Locale.CANADA)}.js"
+ private val injector = lazyContext {
try {
val content = it.assets.open("js/$file").bufferedReader().use(BufferedReader::readText)
JsBuilder().js(content).single(name).build()
@@ -44,7 +47,15 @@ enum class JsAssets : InjectorContract {
}
}
- override fun inject(webView: WebView, callback: (() -> Unit)?) {
- injector(webView.context).inject(webView, callback)
+ override fun inject(webView: WebView) =
+ injector(webView.context).inject(webView)
+
+ companion object {
+ // Ensures that all non themes and the selected theme are loaded
+ suspend fun load(context: Context) {
+ withContext(Dispatchers.IO) {
+ JsAssets.values().forEach { it.injector.invoke(context) }
+ }
+ }
}
}