commit a249d41887937b40b2d3fb80372ab31c5c60bd31 parent fe5c6306e1c8fd568823f82e6f52aa8359bb81f7 Author: rhunk <101876869+rhunk@users.noreply.github.com> Date: Wed, 27 Dec 2023 11:55:29 +0100 feat(scripting): sleep Diffstat:
3 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/Navigation.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/Navigation.kt @@ -39,8 +39,8 @@ class Navigation( navHostController, startDestination = startDestination.route, Modifier.padding(innerPadding), - enterTransition = { fadeIn(tween(200)) }, - exitTransition = { fadeOut(tween(200)) } + enterTransition = { fadeIn(tween(100)) }, + exitTransition = { fadeOut(tween(100)) } ) { sections.forEach { (_, instance) -> instance.navController = navHostController diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/scripting/ScriptsSection.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/sections/scripting/ScriptsSection.kt @@ -17,8 +17,10 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.core.net.toUri import androidx.documentfile.provider.DocumentFile +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import me.rhunk.snapenhance.common.scripting.type.ModuleInfo import me.rhunk.snapenhance.common.scripting.ui.EnumScriptInterface import me.rhunk.snapenhance.common.scripting.ui.InterfaceManager @@ -49,7 +51,7 @@ class ScriptsSection : Section() { Card( modifier = Modifier .fillMaxWidth() - .padding(12.dp), + .padding(8.dp), elevation = CardDefaults.cardElevation() ) { Row( @@ -179,7 +181,11 @@ class ScriptsSection : Section() { } LaunchedEffect(Unit) { - syncScripts() + refreshing = true + withContext(Dispatchers.IO) { + syncScripts() + refreshing = false + } } val pullRefreshState = rememberPullRefreshState(refreshing, onRefresh = { @@ -230,6 +236,9 @@ class ScriptsSection : Section() { items(scriptModules.size) { index -> ModuleItem(scriptModules[index]) } + item { + Spacer(modifier = Modifier.height(200.dp)) + } } PullRefreshIndicator( diff --git a/common/src/main/kotlin/me/rhunk/snapenhance/common/scripting/JSModule.kt b/common/src/main/kotlin/me/rhunk/snapenhance/common/scripting/JSModule.kt @@ -80,6 +80,12 @@ class JSModule( field.get(obj.unwrap()) } + moduleObject.putFunction("sleep") { args -> + val time = args?.get(0) as? Number ?: return@putFunction Undefined.instance + Thread.sleep(time.toLong()) + Undefined.instance + } + moduleObject.putFunction("findClass") { val className = it?.get(0).toString() val useModClassLoader = it?.getOrNull(1) as? Boolean ?: false