From 9f5bf0e66a666edfd1a701ae6dba7cff3a84e58596347157c773a87c8d36af8b Mon Sep 17 00:00:00 2001 From: snap Date: Fri, 13 Mar 2026 13:13:30 +0000 Subject: [PATCH] Create project to learn how to use scene 2d --- uitest/.editorconfig | 18 ++ uitest/.gitattributes | 2 + uitest/.gitignore | 164 ++++++++++++ uitest/README.md | 32 +++ uitest/android/AndroidManifest.xml | 27 ++ uitest/android/build.gradle | 136 ++++++++++ uitest/android/ic_launcher-web.png | Bin 0 -> 39311 bytes uitest/android/proguard-rules.pro | 52 ++++ uitest/android/project.properties | 14 + .../res/drawable-anydpi-v26/ic_launcher.xml | 6 + .../ic_launcher_foreground.xml | 28 ++ .../android/res/drawable-hdpi/ic_launcher.png | Bin 0 -> 4774 bytes .../android/res/drawable-mdpi/ic_launcher.png | Bin 0 -> 2874 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 6679 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 10114 bytes .../res/drawable-xxxhdpi/ic_launcher.png | Bin 0 -> 13695 bytes uitest/android/res/values/color.xml | 5 + uitest/android/res/values/strings.xml | 4 + uitest/android/res/values/styles.xml | 5 + .../uitest/android/AndroidLauncher.kt | 18 ++ uitest/assets/logo.png | Bin 0 -> 1432 bytes uitest/build.gradle | 74 ++++++ uitest/core/build.gradle | 46 ++++ .../kotlin/com/iofferyoutea/uitest/Main.kt | 73 ++++++ uitest/gradle.properties | 27 ++ uitest/gradle/gradle-daemon-jvm.properties | 12 + uitest/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 48966 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + uitest/gradlew | 248 ++++++++++++++++++ uitest/gradlew.bat | 93 +++++++ uitest/settings.gradle | 8 + 31 files changed, 1099 insertions(+) create mode 100644 uitest/.editorconfig create mode 100644 uitest/.gitattributes create mode 100644 uitest/.gitignore create mode 100644 uitest/README.md create mode 100644 uitest/android/AndroidManifest.xml create mode 100644 uitest/android/build.gradle create mode 100644 uitest/android/ic_launcher-web.png create mode 100644 uitest/android/proguard-rules.pro create mode 100644 uitest/android/project.properties create mode 100644 uitest/android/res/drawable-anydpi-v26/ic_launcher.xml create mode 100644 uitest/android/res/drawable-anydpi-v26/ic_launcher_foreground.xml create mode 100644 uitest/android/res/drawable-hdpi/ic_launcher.png create mode 100644 uitest/android/res/drawable-mdpi/ic_launcher.png create mode 100644 uitest/android/res/drawable-xhdpi/ic_launcher.png create mode 100644 uitest/android/res/drawable-xxhdpi/ic_launcher.png create mode 100644 uitest/android/res/drawable-xxxhdpi/ic_launcher.png create mode 100644 uitest/android/res/values/color.xml create mode 100644 uitest/android/res/values/strings.xml create mode 100644 uitest/android/res/values/styles.xml create mode 100644 uitest/android/src/main/kotlin/com/iofferyoutea/uitest/android/AndroidLauncher.kt create mode 100644 uitest/assets/logo.png create mode 100644 uitest/build.gradle create mode 100644 uitest/core/build.gradle create mode 100644 uitest/core/src/main/kotlin/com/iofferyoutea/uitest/Main.kt create mode 100644 uitest/gradle.properties create mode 100644 uitest/gradle/gradle-daemon-jvm.properties create mode 100644 uitest/gradle/wrapper/gradle-wrapper.jar create mode 100644 uitest/gradle/wrapper/gradle-wrapper.properties create mode 100644 uitest/gradlew create mode 100644 uitest/gradlew.bat create mode 100644 uitest/settings.gradle diff --git a/uitest/.editorconfig b/uitest/.editorconfig new file mode 100644 index 0000000..f6943b1 --- /dev/null +++ b/uitest/.editorconfig @@ -0,0 +1,18 @@ +# https://editorconfig.org +root = true + +[*] +indent_style = space +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.{java,scala,groovy,kt,kts}] +indent_size = 4 + +[*.gradle] +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false diff --git a/uitest/.gitattributes b/uitest/.gitattributes new file mode 100644 index 0000000..05c96d8 --- /dev/null +++ b/uitest/.gitattributes @@ -0,0 +1,2 @@ +* text=auto eol=lf +*.bat text=auto eol=crlf diff --git a/uitest/.gitignore b/uitest/.gitignore new file mode 100644 index 0000000..b8796a9 --- /dev/null +++ b/uitest/.gitignore @@ -0,0 +1,164 @@ +## Gradle: +.gradle/ +gradle-app.setting +/build/ +/android/build/ +/core/build/ +/lwjgl2/build/ +/lwjgl3/build/ +/html/build/ +/teavm/build/ +/ios/build/ +/ios-moe/build/ +/headless/build/ +/server/build/ +/shared/build/ + +## Java: +*.class +*.war +*.ear +hs_err_pid* +.attach_pid* + +## Android: +/android/libs/armeabi-v7a/ +/android/libs/arm64-v8a/ +/android/libs/x86/ +/android/libs/x86_64/ +/android/gen/ +/android/out/ +local.properties +com_crashlytics_export_strings.xml + +## Robovm: +/ios/robovm-build/ + +## iOS: +/ios/xcode/*.xcodeproj/* +!/ios/xcode/*.xcodeproj/xcshareddata +!/ios/xcode/*.xcodeproj/project.pbxproj +/ios/xcode/native/ +/ios/IOSLauncher.app +/ios/IOSLauncher.app.dSYM + +## GWT: +/html/war/ +/html/gwt-unitCache/ +.apt_generated/ +/html/war/WEB-INF/deploy/ +/html/war/WEB-INF/classes/ +.gwt/ +gwt-unitCache/ +www-test/ +.gwt-tmp/ + +## TeaVM: +# Not sure yet... + +## IntelliJ, Android Studio: +.idea/ +*.ipr +*.iws +*.iml + +## Eclipse: +.classpath +.project +.metadata/ +/android/bin/ +/core/bin/ +/lwjgl2/bin/ +/lwjgl3/bin/ +/html/bin/ +/teavm/bin/ +/ios/bin/ +/ios-moe/bin/ +/headless/bin/ +/server/bin/ +/shared/bin/ +*.tmp +*.bak +*.swp +*~.nib +.settings/ +.loadpath +.externalToolBuilders/ +*.launch + + +## NetBeans: + +/nbproject/private/ +/android/nbproject/private/ +/core/nbproject/private/ +/lwjgl2/nbproject/private/ +/lwjgl3/nbproject/private/ +/html/nbproject/private/ +/teavm/nbproject/private/ +/ios/nbproject/private/ +/ios-moe/nbproject/private/ +/headless/nbproject/private/ +/server/nbproject/private/ +/shared/nbproject/private/ + +/nbbuild/ +/android/nbbuild/ +/core/nbbuild/ +/lwjgl2/nbbuild/ +/lwjgl3/nbbuild/ +/html/nbbuild/ +/teavm/nbbuild/ +/ios/nbbuild/ +/ios-moe/nbbuild/ +/headless/nbbuild/ +/server/nbbuild/ +/shared/nbbuild/ + +/dist/ +/android/dist/ +/core/dist/ +/lwjgl2/dist/ +/lwjgl3/dist/ +/html/dist/ +/teavm/dist/ +/ios/dist/ +/ios-moe/dist/ +/headless/dist/ +/server/dist/ +/shared/dist/ + +/nbdist/ +/android/nbdist/ +/core/nbdist/ +/lwjgl2/nbdist/ +/lwjgl3/nbdist/ +/html/nbdist/ +/teavm/nbdist/ +/ios/nbdist/ +/ios-moe/nbdist/ +/headless/nbdist/ +/server/nbdist/ +/shared/nbdist/ + +nbactions.xml +nb-configuration.xml + +## OS-Specific: +.DS_Store +Thumbs.db + +## Miscellaneous: +*~ +*.*# +*#*# +/.kotlin/ +/assets/assets.txt + +## Special cases: + +## There is a resource-config.json file generated by nativeimage.gradle if you use Graal Native Image. +## Some usage may need extra resource configuration in a different file with the same name. +## You could also add that configuration to the text in nativeimage.gradle . +## You should delete or comment out the next line if you have configuration in a different resource-config.json . +**/resource-config.json diff --git a/uitest/README.md b/uitest/README.md new file mode 100644 index 0000000..d3dd191 --- /dev/null +++ b/uitest/README.md @@ -0,0 +1,32 @@ +# uitest + +A [libGDX](https://libgdx.com/) project generated with [gdx-liftoff](https://github.com/libgdx/gdx-liftoff). + +This project was generated with a Kotlin project template that includes Kotlin application launchers and [KTX](https://libktx.github.io/) utilities. + +## Platforms + +- `core`: Main module with the application logic shared by all platforms. +- `android`: Android mobile platform. Needs Android SDK. + +## Gradle + +This project uses [Gradle](https://gradle.org/) to manage dependencies. +The Gradle wrapper was included, so you can run Gradle tasks using `gradlew.bat` or `./gradlew` commands. +Useful Gradle tasks and flags: + +- `--continue`: when using this flag, errors will not stop the tasks from running. +- `--daemon`: thanks to this flag, Gradle daemon will be used to run chosen tasks. +- `--offline`: when using this flag, cached dependency archives will be used. +- `--refresh-dependencies`: this flag forces validation of all dependencies. Useful for snapshot versions. +- `android:lint`: performs Android project validation. +- `build`: builds sources and archives of every project. +- `cleanEclipse`: removes Eclipse project data. +- `cleanIdea`: removes IntelliJ project data. +- `clean`: removes `build` folders, which store compiled classes and built archives. +- `eclipse`: generates Eclipse project data. +- `idea`: generates IntelliJ project data. +- `test`: runs unit tests (if any). + +Note that most tasks that are not specific to a single project can be run with `name:` prefix, where the `name` should be replaced with the ID of a specific project. +For example, `core:clean` removes `build` folder only from the `core` project. diff --git a/uitest/android/AndroidManifest.xml b/uitest/android/AndroidManifest.xml new file mode 100644 index 0000000..a630e26 --- /dev/null +++ b/uitest/android/AndroidManifest.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + diff --git a/uitest/android/build.gradle b/uitest/android/build.gradle new file mode 100644 index 0000000..75759fb --- /dev/null +++ b/uitest/android/build.gradle @@ -0,0 +1,136 @@ + +buildscript { + repositories { + mavenCentral() + google() + } +} +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +android { + namespace = "com.iofferyoutea.uitest" + compileSdk = 35 + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + java.setSrcDirs(['src/main/java', 'src/main/kotlin']) + aidl.setSrcDirs(['src/main/java', 'src/main/kotlin']) + renderscript.setSrcDirs(['src/main/java', 'src/main/kotlin']) + res.setSrcDirs(['res']) + assets.setSrcDirs(['../assets']) + jniLibs.setSrcDirs(['libs']) + } + } + packagingOptions { + resources { + excludes += ['META-INF/robovm/ios/robovm.xml', 'META-INF/DEPENDENCIES.txt', 'META-INF/DEPENDENCIES', + 'META-INF/dependencies.txt', '**/*.gwt.xml'] + pickFirsts += ['META-INF/LICENSE.txt', 'META-INF/LICENSE', 'META-INF/license.txt', 'META-INF/LGPL2.1', + 'META-INF/NOTICE.txt', 'META-INF/NOTICE', 'META-INF/notice.txt'] + } + } + defaultConfig { + applicationId 'com.iofferyoutea.uitest' + minSdkVersion 21 + targetSdkVersion 35 + versionCode 1 + versionName "1.0" + } + compileOptions { + sourceCompatibility "8" + targetCompatibility "8" + coreLibraryDesugaringEnabled = true + } + buildTypes { + release { + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + + kotlin.compilerOptions.jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8) + +} + +repositories { + // needed for AAPT2, may be needed for other tools + google() +} + +configurations { natives } + +dependencies { + coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5' + implementation "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion" + implementation project(':core') + + natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-arm64-v8a" + natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a" + natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86" + natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86_64" + natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-arm64-v8a" + natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-armeabi-v7a" + natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86" + natives "com.badlogicgames.gdx:gdx-freetype-platform:$gdxVersion:natives-x86_64" + natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a" + natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a" + natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86" + natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64" + +} + +// Called every time gradle gets executed, takes the native dependencies of +// the natives configuration, and extracts them to the proper libs/ folders +// so they get packed with the APK. +tasks.register('copyAndroidNatives') { + doFirst { + file("libs/armeabi-v7a/").mkdirs() + file("libs/arm64-v8a/").mkdirs() + file("libs/x86_64/").mkdirs() + file("libs/x86/").mkdirs() + + configurations.natives.copy().files.each { jar -> + def outputDir = null + if(jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a") + if(jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a") + if(jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64") + if(jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86") + if(outputDir != null) { + copy { + from zipTree(jar) + into outputDir + include "*.so" + } + } + } + } +} + +tasks.matching { it.name.contains("merge") && it.name.contains("JniLibFolders") }.configureEach { packageTask -> + packageTask.dependsOn 'copyAndroidNatives' +} + +tasks.register('run', Exec) { + def path + def localProperties = project.file("../local.properties") + if (localProperties.exists()) { + Properties properties = new Properties() + localProperties.withInputStream { instr -> + properties.load(instr) + } + def sdkDir = properties.getProperty('sdk.dir') + if (sdkDir) { + path = sdkDir + } else { + path = "$System.env.ANDROID_SDK_ROOT" + } + } else { + path = "$System.env.ANDROID_SDK_ROOT" + } + + def adb = path + "/platform-tools/adb" + commandLine "$adb", 'shell', 'am', 'start', '-n', 'com.iofferyoutea.uitest/com.iofferyoutea.uitest.android.AndroidLauncher' +} + +eclipse.project.name = appName + "-android" diff --git a/uitest/android/ic_launcher-web.png b/uitest/android/ic_launcher-web.png new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..67f210170e5f51ff7339d3112fbbfe59bc0604bc4bf1a720ec63b932a91c58be GIT binary patch literal 39311 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 + + + + diff --git a/uitest/android/res/drawable-anydpi-v26/ic_launcher_foreground.xml b/uitest/android/res/drawable-anydpi-v26/ic_launcher_foreground.xml new file mode 100644 index 0000000..8e1c344 --- /dev/null +++ b/uitest/android/res/drawable-anydpi-v26/ic_launcher_foreground.xml @@ -0,0 +1,28 @@ + + + + + + + + + diff --git a/uitest/android/res/drawable-hdpi/ic_launcher.png b/uitest/android/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..36210f32121d53ff6e8dab01e0c31bcd57c4a5d550d505d4c73e359dc053eadd GIT binary patch literal 4774 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 literal 0 HcmV?d00001 diff --git a/uitest/android/res/drawable-xxhdpi/ic_launcher.png b/uitest/android/res/drawable-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..60f611c134964c4ed96f612093f603dbfafebc0b020ba6a5245ad72f5d9f0752 GIT binary patch literal 10114 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 literal 0 HcmV?d00001 diff --git a/uitest/android/res/drawable-xxxhdpi/ic_launcher.png b/uitest/android/res/drawable-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..6a87b2d3bf67bac1c62a58b7576335b9688177e3790f5b5dc3b99bbac62cef90 GIT binary patch literal 13695 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

Dtqwj?VR;N1AN@UI)Nj|^EmhuuUU7>BfkmTl;H z>&WnT_pGCBDD>7y}b$A7|IeU9HDh2r8FTHLrg?X@#1 zKe%lKPvf^DOd-7`RlQ6O<>8to{ijCP^VBNiez0lZ-=M^a9La>5EuvOLFSCv;PNcm| z@V&N835EToE@A`z23=jQzm|(8ty!y63IWmWI=BAHKWDagEp!Akn_rVpEID5}?1}wA zadwKDMy~iSDtWy#SH<%_*{DG2-V-Jo7?sXV0tZ@j_lV6nH-vCRx=TB?ezreAybqTVM!ED)MgJ56NGaiFKX)u?v}L8%^-smNL__dhIz&H~>dT@_F_ygg(S? z9u8+j-w1roReo?@$DkFnm6p1%|4{*7fUAua;`%G~R z82ua+6`mb6KzDXTU6LA;qrh-=l4m*^7`R52?Kb=F#uJe`_VMdZU^z+QB`396h5N6* zsHoM2dESkz*G~)7g-e*k$Wa!aZ4fK=wUV`&O8r|HNUq2kDf0O!C)UQ(W8N^@wb_hK|PMvec{blUr z{gMb3kT(~N=Wy_kxK|jiIk;{ZTYvD|s=CmKC94! z*UL8poYi?d0@N~ZwgoH;^X|Uw8jJenVbokV9>4)UNf3?K>k_=P+BdyADvk|5t(~#3 z?aM+8)a9^IuA%f$SyX7|-vu|lfR}O^yAnS!EG*G(*N!ZIo@d?#NdLo7sP>3a{l(;u zGdZ~!8w{N!=uu;M)^zj=GORAABN@jOu>lUrnI-Ejod zpB+`Vw_cNuQy4tA6eZi|a(V&yPr^TwtnY`5mF|DN3HKq*`-_Y;*(Gz+;<#|h#3sx5 zSN|8wj+*JmPmQPmVPLLwWTmg(-8f>j>NgUHW9 z6)`Kpr++t_D-Q|9_e7J(hEt2i!BA3Rx@eTvkH4yD4EAKxv;xd*um8Q>SChD%KUYRA z!*=}G&E9!;)svVg%M{8>)hQc ztM0~ra}4K5d}Sy5u5-ud8<8T?AtQ0wXPYImQm^I#Q6;YPC9humFO$W-`S0yD{hbz) z-h&pr9%deBry_G**B$Ko^gkX|Hxg%_8^)t;KXrB+8m^;=gZq$_bOlP!OQf2ZjWbg> z+BMDGlKlGDhcrv^Op@KKr6)VmNVLq)Z-z5-WOW!*{UE1i^5%oVnblkyAr9w@-5dpk zqnnZA$DP*9IW2h!=DsU2U*3=%!rJ3{fq<~a5QJK`q!j{AI&n)1Z*w`^^oFL=vg5T ztBIz)WywxQRed_#VkZnP4OCp?Ryf)iB3AX)C86FV_Uk(aKU~rWc52?Woa<)SpLC@O zS`xuvlnYg+Yk*b`lIm;Z0A3$f(>R0Fcf@4EQ$ts3iQ z`k>Jq*O_wYc=}zq;|JWW^`H$SSi1X%$ItL}d4{O^6B6ajT6DN@NDWqWph-}pva5MM zED5CrDYJE~8mJzdOF^V6>Rq?^-Z6q$#aqo?k9fCe z29!JfW;5zn`*;&5!f5*443n#0g3+ZyC((>C&?A4Z>L%!h9&x!c>hf#Xx7~W4zpOv1 zuBb>NeiWUocB_IqN5GYB+O{?4zbUWDcoM#%*^Ni;#P;;F^&}*I^js;faI1t4F@|K* zLLM!i?%^Sg?_92%Fcu|7CnS~=0&RvQLpCwW-rXXXPPM#;RA`~btVRfoVc(r=-LRfK zg{Ek1ZLQD6@6Z;yl|kc*=LfnCK4efi7|Rf~rkGm0S!F<53AHVx(N6zY0XHl~r1{`iBXcYZR&TLk zxmzJr_XS;jAX!-@Q~@IZxqdIJ6u8m_Y2cE~u`?D*Q6}vhJ~wcNu=BJ+7aOLFv%uoV z!}s8pIi$nXl_=^7Qabxh8$u|PvFr;AeM0Ydw|@`hAVu?7fz`cz@Xy_Es5FVB@)oNC ztldcKWAo5WJ5bkfy)fG`8Ko0r)6wBIaWwSfpQR6k%RuCSM~BT^(#S`9EihnR4n&CA j!E1F0Yb3gq`tP`|0w6l)$eY^)o|EEh6}c)I)1dzYCa0uh literal 0 HcmV?d00001 diff --git a/uitest/android/res/values/color.xml b/uitest/android/res/values/color.xml new file mode 100644 index 0000000..b3461fe --- /dev/null +++ b/uitest/android/res/values/color.xml @@ -0,0 +1,5 @@ + + + #F5A623FF + #FFFFFFFF + diff --git a/uitest/android/res/values/strings.xml b/uitest/android/res/values/strings.xml new file mode 100644 index 0000000..05a53fa --- /dev/null +++ b/uitest/android/res/values/strings.xml @@ -0,0 +1,4 @@ + + + uitest + diff --git a/uitest/android/res/values/styles.xml b/uitest/android/res/values/styles.xml new file mode 100644 index 0000000..ef98b63 --- /dev/null +++ b/uitest/android/res/values/styles.xml @@ -0,0 +1,5 @@ + + + diff --git a/uitest/android/src/main/kotlin/com/iofferyoutea/uitest/android/AndroidLauncher.kt b/uitest/android/src/main/kotlin/com/iofferyoutea/uitest/android/AndroidLauncher.kt new file mode 100644 index 0000000..8ae273a --- /dev/null +++ b/uitest/android/src/main/kotlin/com/iofferyoutea/uitest/android/AndroidLauncher.kt @@ -0,0 +1,18 @@ +package com.iofferyoutea.uitest.android + +import android.os.Bundle + +import com.badlogic.gdx.backends.android.AndroidApplication +import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration +import com.iofferyoutea.uitest.Main + +/** Launches the Android application. */ +class AndroidLauncher : AndroidApplication() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + initialize(Main(), AndroidApplicationConfiguration().apply { + // Configure your application here. + useImmersiveMode = true // Recommended, but not required. + }) + } +} diff --git a/uitest/assets/logo.png b/uitest/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..e6d211edd798615d81c097a3f770675a0c04b40529d5f95ba87a02919fc301e6 GIT binary patch literal 1432 zcmc(f{ZAWp9LKMA!T=9h%qrM+)G<3*r2eptdWn_Fx&UH7E&`n9QZx(Us(L%?(@0V zz2BeD`BV?N|v_rT|IaoV=qqm%bsQc zU$1-n)N!8UE@*k(v2}YEujltQd)BHod)>Z!#g_ZPzW4c_yEi*4LmfxvI|`@l#evSU z?yirlT{w!U}rea_&6Bp zQA_0#lWQp>n0P|s(u2}J#4$}B8c}+wZ|KV)-U+f81i6VF11l|wMw;;{!`(#4z;}B< z?$TGKv*MUCjU_?EfQ8lp?T!7Wd%(UF6dEUCY~$}^EwT#kjpWSqUxRPt>suCNZLO1N zk5?s{AVY>6<~3lsC`gK9CC&vf{b_6fY?V9ot|eYj2bMmCfH41~*h-Hb$C$I-&Ez;k(1sRut%8&*i7b&Ul^sWDH}iO9A1=I5ZL zP9udz6=t9e{#TNdXtft@L1T$lS`(Vmgj2qOsK12trHBT1+D!G1QWna9)Di$`h=%^O zZ3mr3qW_`3v~vd?MQX_%Rd4z-i}vC$5@k_?mU5ul!H%;syA+nt-&{WL`d=2hVDhF3YMkoX63uto~fuBWN@p2>y z&a(JuNOdTw#AT%K@e(hLfc>Ks7ETC=RB%c|{)$cOs+mRcpfhbziQmDCuxV{hV$oP0 z;iDt!cwhLF@sj>gl_Uw{YA^cZ02h~g(GgG-Ui1nmm0tAA0ghCjYie0LApGL+Y({Vn z?Wrv^9N~hmx-1s%~nAiDqf}^2eL!zp}LF@FL)E2vr@gQFzPW|MXvH?$Ue! literal 0 HcmV?d00001 diff --git a/uitest/build.gradle b/uitest/build.gradle new file mode 100644 index 0000000..70a5e84 --- /dev/null +++ b/uitest/build.gradle @@ -0,0 +1,74 @@ +buildscript { + repositories { + mavenCentral() + gradlePluginPortal() + mavenLocal() + google() + maven { url = 'https://central.sonatype.com/repository/maven-snapshots/' } + } + dependencies { + classpath "com.android.tools.build:gradle:8.9.3" + classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" + + } +} + +allprojects { + apply plugin: 'eclipse' + apply plugin: 'idea' + + // This allows you to "Build and run using IntelliJ IDEA", an option in IDEA's Settings. + idea { + module { + outputDir = file('build/classes/java/main') + testOutputDir = file('build/classes/java/test') + } + } +} + +configure(subprojects - project(':android')) { + apply plugin: 'java-library' + apply plugin: 'kotlin' + java.sourceCompatibility = 8 + + // From https://lyze.dev/2021/04/29/libGDX-Internal-Assets-List/ + // The article can be helpful when using assets.txt in your project. + tasks.register('generateAssetList') { + inputs.dir("${project.rootDir}/assets/") + // projectFolder/assets + File assetsFolder = new File("${project.rootDir}/assets/") + // projectFolder/assets/assets.txt + File assetsFile = new File(assetsFolder, "assets.txt") + // delete that file in case we've already created it + assetsFile.delete() + + // iterate through all files inside that folder + // convert it to a relative path + // and append it to the file assets.txt + fileTree(assetsFolder).collect { assetsFolder.relativePath(it) }.sort().each { + assetsFile.append(it + "\n") + } + } + processResources.dependsOn 'generateAssetList' + + compileJava { + options.incremental = true + } + compileKotlin.compilerOptions.jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8) + compileTestKotlin.compilerOptions.jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_1_8) + +} + +subprojects { + version = "$projectVersion" + ext.appName = 'uitest' + repositories { + mavenCentral() + // You may want to remove the following line if you have errors downloading dependencies. + mavenLocal() + maven { url = 'https://central.sonatype.com/repository/maven-snapshots/' } + maven { url = 'https://jitpack.io' } + } +} + +eclipse.project.name = 'uitest' + '-parent' diff --git a/uitest/core/build.gradle b/uitest/core/build.gradle new file mode 100644 index 0000000..04f37ee --- /dev/null +++ b/uitest/core/build.gradle @@ -0,0 +1,46 @@ +[compileJava, compileTestJava]*.options*.encoding = 'UTF-8' +eclipse.project.name = appName + '-core' + +dependencies { + api "com.badlogicgames.ashley:ashley:$ashleyVersion" + api "com.badlogicgames.gdx:gdx-ai:$aiVersion" + api "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" + api "com.badlogicgames.gdx:gdx-freetype:$gdxVersion" + api "com.badlogicgames.gdx:gdx:$gdxVersion" + api "io.github.libktx:ktx-actors:$ktxVersion" + api "io.github.libktx:ktx-ai:$ktxVersion" + api "io.github.libktx:ktx-app:$ktxVersion" + api "io.github.libktx:ktx-artemis:$ktxVersion" + api "io.github.libktx:ktx-ashley:$ktxVersion" + api "io.github.libktx:ktx-assets-async:$ktxVersion" + api "io.github.libktx:ktx-assets:$ktxVersion" + api "io.github.libktx:ktx-async:$ktxVersion" + api "io.github.libktx:ktx-box2d:$ktxVersion" + api "io.github.libktx:ktx-collections:$ktxVersion" + api "io.github.libktx:ktx-freetype-async:$ktxVersion" + api "io.github.libktx:ktx-freetype:$ktxVersion" + api "io.github.libktx:ktx-graphics:$ktxVersion" + api "io.github.libktx:ktx-i18n:$ktxVersion" + api "io.github.libktx:ktx-inject:$ktxVersion" + api "io.github.libktx:ktx-json:$ktxVersion" + api "io.github.libktx:ktx-log:$ktxVersion" + api "io.github.libktx:ktx-math:$ktxVersion" + api "io.github.libktx:ktx-preferences:$ktxVersion" + api "io.github.libktx:ktx-reflect:$ktxVersion" + api "io.github.libktx:ktx-scene2d:$ktxVersion" + api "io.github.libktx:ktx-style:$ktxVersion" + api "io.github.libktx:ktx-tiled:$ktxVersion" + api "io.github.libktx:ktx-vis-style:$ktxVersion" + api "io.github.libktx:ktx-vis:$ktxVersion" + api "net.onedaybeard.artemis:artemis-odb:$artemisOdbVersion" + api "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion" + api "org.jetbrains.kotlinx:kotlinx-coroutines-core:$kotlinxCoroutinesVersion" + + if(enableGraalNative == 'true') { + implementation "io.github.berstanio:gdx-svmhelper-annotations:$graalHelperVersion" + } +} + +jar { + duplicatesStrategy = DuplicatesStrategy.EXCLUDE +} diff --git a/uitest/core/src/main/kotlin/com/iofferyoutea/uitest/Main.kt b/uitest/core/src/main/kotlin/com/iofferyoutea/uitest/Main.kt new file mode 100644 index 0000000..934c7d4 --- /dev/null +++ b/uitest/core/src/main/kotlin/com/iofferyoutea/uitest/Main.kt @@ -0,0 +1,73 @@ +package com.iofferyoutea.uitest + +import com.badlogic.gdx.graphics.Color +import com.badlogic.gdx.graphics.Texture +import com.badlogic.gdx.graphics.g2d.BitmapFont +import com.badlogic.gdx.scenes.scene2d.Stage +import com.badlogic.gdx.scenes.scene2d.ui.Container +import com.badlogic.gdx.scenes.scene2d.ui.Label +import com.badlogic.gdx.scenes.scene2d.ui.Table +import com.badlogic.gdx.scenes.scene2d.ui.TextButton +import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable +import ktx.app.KtxGame +import ktx.app.KtxScreen +import ktx.app.clearScreen +import ktx.async.KtxAsync +import org.w3c.dom.Text + +class Main : KtxGame() { + override fun create() { + KtxAsync.initiate() + + addScreen(FirstScreen()) + setScreen() + } +} + +class FirstScreen : KtxScreen { + val stage = Stage() + val table = Table() + + //region Label + val labelStyle = Label.LabelStyle( + BitmapFont(), + Color.BLACK + ) + val label = Label("My Label", labelStyle) + //endregion + + //region TextButton + val textButtonStyle = TextButton.TextButtonStyle( + TextureRegionDrawable(Texture("logo.png")), + TextureRegionDrawable(Texture("logo.png")), + TextureRegionDrawable(Texture("logo.png")), + BitmapFont() + ) + val textButton = TextButton("My Text Button", textButtonStyle) + //endregion + + override fun show() { + stage.addActor(table) + + table.setFillParent(true) + table.debug = true + + label.setFontScale(5f) + table.add(label) + + table.row() + textButton.label.fontScaleX = 10f + table.add(textButton) + } + + override fun render(delta: Float) { + clearScreen(red = 0.7f, green = 0.7f, blue = 0.7f) + + stage.act() + stage.draw() + } + + override fun dispose() { + stage.dispose() + } +} diff --git a/uitest/gradle.properties b/uitest/gradle.properties new file mode 100644 index 0000000..6423d85 --- /dev/null +++ b/uitest/gradle.properties @@ -0,0 +1,27 @@ +# This doesn't need to be false, and some projects may be able to take advantage of setting daemon to true. +# We set it to false by default in order to avoid too many daemons from being created and persisting; each needs RAM. +org.gradle.daemon=false +# Sets starting memory usage to 512MB, maximum memory usage to 1GB, and tries to set as much to use Unicode as we can. +org.gradle.jvmargs=-Xms512M -Xmx1G -Dfile.encoding=UTF-8 -Dconsole.encoding=UTF-8 +# "Configure on-demand" must be false because it breaks projects that have Android modules. The default is also false. +org.gradle.configureondemand=false +# The logging level determines which messages get shown about how Gradle itself is working, such as if build.gradle +# files are fully future-proof (which they never are, because Gradle constantly deprecates working APIs). +# You can change 'quiet' below to 'lifecycle' to use Gradle's default behavior, which shows some confusing messages. +# You could instead change 'quiet' below to 'info' to see info that's important mainly while debugging build files. +# Note that if you want to use Gradle Build Scans, you should set the below logging level to 'lifecycle', otherwise +# the link to the scan won't get shown at all. +# Documented at: https://docs.gradle.org/current/userguide/command_line_interface.html#sec:command_line_logging +org.gradle.logging.level=quiet +ktxVersion=1.13.1-rc1 +kotlinVersion=2.3.0 +artemisOdbVersion=2.3.0 +aiVersion=1.8.2 +ashleyVersion=1.7.4 +kotlinxCoroutinesVersion=1.10.2 +visUiVersion=1f8b37a24b +android.useAndroidX=true +android.enableR8.fullMode=false +enableGraalNative=false +gdxVersion=1.14.0 +projectVersion=1.0.0 diff --git a/uitest/gradle/gradle-daemon-jvm.properties b/uitest/gradle/gradle-daemon-jvm.properties new file mode 100644 index 0000000..28e187b --- /dev/null +++ b/uitest/gradle/gradle-daemon-jvm.properties @@ -0,0 +1,12 @@ +#This file is generated by updateDaemonJvm +toolchainUrl.FREE_BSD.AARCH64=https\://api.foojay.io/disco/v3.0/ids/df211d3c3eefdc408b462041881bc575/redirect +toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/93aeea858331bd6bb00ba94759830234/redirect +toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/df211d3c3eefdc408b462041881bc575/redirect +toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/b41931cf1e70bc8e08d7dd19c343ef00/redirect +toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/3426ffcaa54c3f62406beb1f1ab8b179/redirect +toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/d6690dfd71c4c91e08577437b5b2beb0/redirect +toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/df211d3c3eefdc408b462041881bc575/redirect +toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/b41931cf1e70bc8e08d7dd19c343ef00/redirect +toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/1e91f45234d88a64dafb961c93ddc75a/redirect +toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/552c7bffe0370c66410a51c55985b511/redirect +toolchainVersion=21 diff --git a/uitest/gradle/wrapper/gradle-wrapper.jar b/uitest/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000000000000000000000000000..cb5e6e0e5bd0e4a4e69a90e59c2dd43a6676b7c5ae85cf63c5c9c5ea0a846fe6 GIT binary patch literal 48966 zcma&NW0WmQwk%w>ZQHhO+qUi6W!pA(xoVef+k2O7+pkXd9rt^$@9p#T8Y9=Q^(R-x zjL3*NQ$ZRS1O)&B0s;U4fbe_$e;)(@NB~(;6+v1_IWc+}NnuerWl>cXPyoQcezKvZ z?Yzc@<~LK@Yhh-7jwvSDadFw~t7KfJ%AUfU*p0wc+3m9#p=Zo4`H`aA_wBL6 z9Q`7!;Ok~8YhZ^Vt#N97bt5aZ#mQc8r~hs3;R?H6V4(!oxSADTK|DR2PL6SQ3v6jM<>eLMh9 zAsd(APyxHNFK|G4hA_zi+YV?J+3K_*DIrdla>calRjaE)4(?YnX+AMqEM!Y|ED{^2 zI5gZ%nG-1qAVtl==8o0&F1N+aPj`Oo99RfDNP#ZHw}}UKV)zw6yy%~8Se#sKr;3?g zJGOkV2luy~HgMlEJB+L<_$@9sUXM7@bI)>-K!}JQUCUwuMdq@68q*dV+{L#Vc?r<( z?Wf1HbqxnI6=(Aw!Vv*Z1H_SoPtQTiy^bDVD8L=rRZ`IoIh@}a`!hY>VN&316I#k} z1Sg~_3ApcIFaoZ+d}>rz0Z8DL*zGq%zU1vF1z1D^YDnQrG3^QourmO6;_SrGg3?qWd9R1GMnKV>0++L*NTt>aF2*kcZ;WaudfBhTaqikS(+iNzDggUqvhh?g ziJCF8kA+V@7zi30n=b(3>X0X^lcCCKT(CI)fz-wfOA1P()V)1OciPu4b_B5ORPq&l zchP6l3u9{2on%uTwo>b-v0sIrRwPOzG;Wcq8mstd&?Pgb9rRqF#Yol1d|Q6 z7O20!+zXL(B%tC}@3QOs&T8B=I*k{!Y74nv#{M<0_g4BCf1)-f)6~`;(P-= zPqqH2%j0LDX2k5|_)zavpD{L1BW?<+s$>F&1VNb3T+gu!Dgd{W+na9(yV`M7UaCBuJZg1Y)y6{U}0=LTvxBDApz@r>dGt(m^v|jy&aLA zdsOeJcquuj3G^NkH)g)z@gTzgpr!zpE$0>$aT^{((&VA>+(nQB!M(NnPvEP}ZRz+6 zE!=UW!r7sbX3>{1{XW1?hSDNsur6cNeYxE{$bFwZzZ597{pDqjr%ag85sIns_Xz%= zqY{h#z8J6GA~vfLQ2-jWWcloE5LA62jta=C*1KxAL}jugoPqj4el4R4g3zC4nE#2-NeS{c3#!2tIS|1h8*|kpw2VSH9OcIQZx0Yh!8~P&p}fI$4Bj9Z zr5Yv?i-PfO#<}clM>mO(D0wHniZZdv8pOuJFW z+-u}BH84PQCgT~VWBM88vtCly1y$uEGJ<7vnW%!2yV>l>dxA0X0q{cN6y3u$8R-*f z-4^OlZ1HmxCv`dFW%quP<7xzAbtiFxvY0M1&2ng&A}QXAVR=prc_5m(D+_?hv#$M^ zG#MQ#fHMc!+S%HgU^Qv7Z9eu6eNqpSr3e8(;No*YfovbJ;60LjCzv9O~^>gFKO>t zGZg9`a5;$hksp*fHp{7&RE@DM&Pa@a>Kwk%*F7UGO|}^Z0ho1U$THOgX9jtCW6N$v zLOm}xcMBtw)CC(;LLX!R9jp|UsBWGfs@HaMiosA3#hFee7(4vLY}IrhD++}>pY zo+=_h+uJ;j^CP*OGQ9$0q+%}UB`4`5c766d#)*Czs<91wxw)jI^IdvyjT%<8OqI=i zNn0OUqW#POg^4ma)e2b?*Xv;dri*N0SJ7_{&0>;S!)!YV1TQuiT1C3ZFDvThe}yTCmErx#6yyQ4X@OAbHhdEV!K2%;7J>tiUZF)>Z|eRVDwtDC~=J z*M8|WEgzsyNH@-5lJE+P6HrurgY!PqtWk z^69SOHZ*}xn|j2FDVg`qRT}ob*1XiGo=x8MDEX)duljcVO}oJjuAbB$Z+f&!{z3k< zO6+{@O#2^s4qT`6k}Nw?DKV1DU~}0jVA)(kNz$c-p`*FNG#Gb&o?ko70F||R^y*hD z6HD|hJzF)G&^K=vuN$@b2fIfHVFw@hC_-0hPnB!1{=Nn~ran4VeTMM(Xx2A3h95U} z&J#Kw4>*V(LHOA<3Dy{sbW-9k5M2<%yDw~ce0+aez8 z04skG8@QEESIL;m-@Mf_hY!)KkEUowHu(>)Inz(pM`@pkxz z1_K#Qs6$E^c$7w=JLy>nSY)>aY;x2z`LW-$$rnY0!suTZSG)^0ZMeT#$0_oER zfZ1Hf>#TP|;J^rzn3V^2)Dy!goj6roAho>c=?28yjzQ>N-yU)XduKq8Lb3+ZA|#-{ z?34)Ml8%)3F1}oF;q9XFxoM}Zn{~2>kr%X_=WMen%b>n))hx6kHWNoKUBAz?($h(m(l;U*Gq7;p5J{B;kfO^C%C9HhtW!=O3-h>$U zI2=uaEymeK^h#QuB8a?1Qr0Gn;ZZ@;otg2l>gf= z$_mO!iis+#(8-GZw`ZiCnt}>qKmghHCb)`6U!8qS*DhBANfGj|U2C->7>*Bqe5h<% zF+9uy>$;#cZB>?Wdz3mqi2Y>+6-#!Dd56@$WF{_^P2?6kNNfaw!r74>MZUNkFAt*H zvS@2hNmT%xnXp}_1gixv9!5#YI3ftgFXG20Vt1IQ(~+HmryrZI+r0(y2Scl+y=G^* zxt$Vvn&S=Vul-rgOlYNio7%ST_3!t`_`N@SCv$ppCqok(Q+i_?OL}2@TU$dr6B$c8 zQ$Z(lS6fp%7f}ymQwJAIdpkN~8$)O3|K7Z;{FD?hBSP-#pJgq0C_SFT;^sBc#da0M z;^UuXXq{!hEwQpp(o9+)jPM6ru1P$u0evVO(NJ;%0FgmMNlJ+BJ zf^`a|U*ab?uN*Ue>tHJ$Pl~chCwRnxi3%X06NxwlIAKa*KReLL^y1B^nuy|^SPj3} z5X|?1divh3@zci;648jb2qEOm!_8Tjh3gi;H%2`d`~Q(IL{Wcl1C18+&P>tU&0!nO z&+7mpvr2SsTj=@sX zxG=;T^f7Rg=c=V*u8X(fo)4;RYax^+=quviOJ{>r6{wgf)g){I&qe`=HL}6J>i6Ne zSZ*h9f&JG>Y`@Bg5Pb&>4&UqFp9I<8o`n4W_V=4AugM`RqUeS-!`OyNLyKMqa_Ct| zON-hyk#-}{lZZx>B1F@dF^8S>x|C*QAjKqn&Ej9H#z@Q#KA*ckBX@^;gIP&?aK15l z*EY@kG57oUcm(d{NyXg6$Kj#xR5XdZ1EBCT+Zy!gyXwN&b_zI&$$>7R#{ zh8U@H8NY-cA*CBfH$OCs^priPwtwrzFjDO}DBn#mgbI~hn}cp2U{yv@S)iy|jR9+E zgd(hF|1cyC#te0P;iFGqpNBqc(k<{p^1>wHE_c8Tr4|&NV4mzpzFe;Cr)C~qpVNjl z^u(^s5=kj{QBae)Y*#^A39jT4`!NuIUQzD#DOyfa!R=PrX6oS@x@kJV)Cn$!xTK9A&VI#F-Slt8I4|=$bcjaC5h=9E{51g8X5q1Qfg~~G>qAgy*7h4-WuqE zlIEx?Hu*%99?$6TheLAD4NIMO=Q@*;gaXDl6yLLXfFX0*1-9KQm42c%WX*AXFo$it z?FwnWn2tBHY&Qj6=PV?ergU$VKzu+`(5pCRqX}IoSFo?P!`sff%u1?N+(KsoL+K={ zi*JGl%_jiuB;&YW+n%1o^%5@!HB9}OlIdQZ*XzQ%vu!8p2gnKW+!X>@oC{gp3lNx^ z82|5Jdg9-B<1j|y(@3J;$D-lqdnf0Q6T~q7;#O}EMPV3k(bi$DpZwj9(UhU%_l&nN zR}8tN_NhDMhs)gtG*76~+W2yQ{!kDTE@X4gft2?W;S$BLp9X z;sh2jpm!mkfPX>Vuqxyt76<@f4fyY%&iuDfS1@#PHgzHqG;=X^`X}t2|Alr^lx^ja z1rhvG(PH(a0THitc?4hk=P*#IS;-`fjOKqJ4kgo@dAD@ob*))H)=)6s3cthp&4Q55 z4dQRdG0EveK*(ZUCFcCjILgS#$@%y=8leYxN-%zQaky@H?kjhyBrLYA!cv>kV5;i1 zZ^w&U7s&K8fNr4Pfy9GyTK2Tiay4Y_PsPWoWW5YA8nfUkoyjU)i@nKj@4rY13sxO6 z_NzYdG=Vr<@08Xi#8rnX&^d{Bl`oHXO6Y3!v2U~ZV>I*30X3X&4@zqqVO~RyF)6?a zD(<+33_9TqeHL)#Y?($m4_zZvaJXWXppZ4?wo?$wF)%M6rEVk2gM=l9k+=*Q+((fI zIUBH6)}M?ahSxD4lgmJ30ygk#4d!O@?%WNEONommx`ZK81ZV)mJpKB`PgQ}F>NGdV zkV|>^}oWQd6@Ay7$&)6!% zOu_p~TZ3A#G_UqiJ85&*$!(+!V*+*{&-JXb53gtc9n3>8)T$jUVXe+M6n$m633Mi? zlh5{_+6iZ<%gMWMrtHyDl(u-hMl^DViUDc50UD;0g_l$F`Hb(F=o+?94B0fjb;|?Q5c~TWX>t8i1RP@>Ccgm z?2=z0coeb?uvn44moKFb^+(#pAdHE7{EW(DxJE=@Z0^Am`dpm98e`*S+-~*zmhdQ7 zCNig0!yUu5U#>KKocrg-xMjQoNzQ`th0f{!0`ammp_KMFh?_zF4#YhF35bPE&Fq~_ z#VnniU6fso{!3Z^1C57q?0i!ok(a zL;-f$YlDk%qi%n637_$=Gw=bBY}8#meS~+#X}Oz~ZKd%q(UE>f%!qca?(u}) z!tLTuQadlAN;a#^A?!@V=T?oeJ1f7yRy)H1zn_+wARewYIYr`zD=^v+D|ObvH4rOB zT@duqF>$Dk6&i|pZh?%Wq-7_kyP4l)-nqBz#G0lqo3J2D%zmbU)>3)5e?sTZy8|~B zPC7!`eD+deR?L6$6 z-e{!ihef=f<4HPZ9rSt&yb=5Q)BFAXWPR^~a&Zru?8146wvlm;<)ugbd|!}O6aE0t z6`#KqcH#S#*yz-K90+!Fhv+ zKH+?!_0yl|gWXSaASLcB9a8g7i%qz*vbO)YW`Q@Nxpp*6TZ*OO8Z|5-UWihd@CUXF zY!aTAZ$c^?4hiaq34=s2il}#Pxu=#c2^=(PbHNAyUqy__kR+n?twKrQe^8l6rk=orf}Mk80viC1NZ^1q zeF~g*iGp0=jKncK%s@#jZcn6=EiR<8S#)yiEOuwbG;SV$4lB^R?7sxOf8)oq$sT)) zA&nBCFJxsnci+)owdCHV#cjP2|1j22xIRsxHrLLBk3GI|OppUv3%r>#;J|26!W>xC z9gq@NQWJ`|gH}F{-QG#R6xlT<;=43amaDT>VaG*;GfPZJ&W*rO8WAQQc^JGw-fz-| zzAe&RAnC(gAP#FoJtt~ynR3Z<)m_<9Oo)XW}CWd50^eI4!1p4}s(zLhBIDi5r zr{UH>YIz2!+&Cy(RI(;ja_>SUC2Q`ohWPlI+sK-6IU}*nIsT)vLnuVPFM%~gdel}S zUlY%>H$?-rQRGTdUM^p^FEkqnwC{^BGl|gM)h9zkXplL90;yOcgt(8&LJwOj!5Qgy zu$@^*k%9JoAzwj@iSB^SNu#YVl@&*g$uYxxsJBvIQ>bfuS97JccQcS7&a z)`1m2^@5c9pD`P$VqH*O*fxkvFRtH-@Pd0@3y2!jW>i=jabBCJ+bW@wwUkWjwx_WR zHH5*XR4hbQ1`D@4@unmyEX)!?^~_}~JQNvP4jO&F)CH9srkFhf8h*=P z;X1&vs_&v03#BGc`|#@!ZONxVj9Ssb#_d63jxA6dX_RBt(s;ig3#s(YU3P3klF;mc z%%@^IJUAlGE=cnsTH+(qb1SxN@HzfAjYcUCb(VU)JV^3ZC;#k!t?XjaC!|68eLE zU_hlvOSNj7Qlr{x)y$S$l^2DPCMA=pzapcSkjfk*r!iWU%T{?<3#Hw6s1ux1^Ao6o zR@5DIfo-|c9AaFw848Y!BVG-+vURe;I29F#hLu$9o}oSa9&2sgG#;lj@@)9|2Z3 zon?%NV&AYSVnd~eW~v0yoF$X^1FR@i2kin0mFLG8-aA>hYK;B%TJ~7%P4?_{Bu<0t zvmI)Uk-MRncVb)A890>OqnYf=wu-J5A~^%4jpK~*xp)=h0BZB4*5uWrP>iRV+|kMX zv+BEskY~(P-K)-!JSHR`$brY)HFI|L@YyrxheT3cgHu}KtF%s%k3B`X)E_lA=E>M4 z2VV3M{c0*)`qZAsJ==)F#D~2Ndzm@hKhSBL_Sf3{ctckh-rB`gkfC?Dp6FdM?p;vv z#UlQMp3H5*)8o#Ys@-aj7O#brUfgQ7BjG`7 ztoE7v-tH2%KVC$xKYf%uvZD!_uf3x>h?8r!zYHkcc7$Gdn(6cDmYL&p3pCfaSfY4$ zG|yuujr6!Wl0}V%* zQ;nY##kEdvo8YY=SVDb)M>^Ub9e#4c$O&urD$uaRtxm-UH=6_s0m^^5y^_+F^Q?;8 z+Fd?+De}er^2EmFNn&e8SyS*`*`e;KFIG&+x5iWCsrEyH*0SFBCMx?`m5~hl1BrT> zr8W3*3}Fwsx@%UOuxNoCSoL%AM{Uj|v@>l{pYYI&D$j`&**;?X`cuOOk~?;U{~xvDUjaiH^d`A+gQL#Z?*lm)x_n6R-S% zf6*=Q1m>mq5|Niefl8s=5F={ncn5S;6~&Ns2)yGZ@wt&u4c+)Sk?hdfI^b77@K-=y zM_k=j5hp&u`2nkJK+2Lw`uLypr4dO?Bm3BTZdtWnQa5unCoTKIiG81t4bG`epBU5| zG{toT`)LE}&j{P+AFj`YZrjF-^>k+`zCM`QcQz^Ba4BEte@S}j=Q_Opx14jq|DB}& zNB44BOJ`?GJM({v`gh9pzbg8-%Un=E@uLfJwGkagLEM^!`ct3s5@-xqq*xd+2C@eu z*1ge`retZK)=bPO<`>@62cLN?^S%v#EsiPQF`cg&I7{}l?)}O$!^wNJp4Zd;1yBbQ zv@_7x7d6aXJvGHkNNcOg?A};m_Nq7H=(+zqf9)e3&yP^EU63Ew!NW4CYj_!=OTVb* z-ijSrv0M)u=MF=@+`3ldT-hzOn$Ng><)WL0vqQ&jH>W7EmLLQY+c?%i9~f_x&{OYX z{?kyyNZ&gT*m$(%-OeDAJeC^c)X!k${D*c;c}9)0_7iWMbfu)!j3+{*!Dj|?C`sGz z2xWha)#`9@p*{-X2MN2a;%FM-WqB2h)GTqQH$ZsGD#Wi`;+$i?fk;23fLpYI^3TT3 z5+Zn3cu-_2Ck*@%3^L3}JpVN`5ZJ;gmKn>gm(Z)b%!v|RYf(qrmGL#0$WHQFw4mJqQ85w=$tn^7(z|eJ$3R0} z2k9^EU<^-$ygq!ZR+7wT0KViK8qkAO7xs*e@1dq{=M3haulHwA0~BYNytr7k2K*(W z755P9a^;Hdl2X;K{c}yWr|QH?PEuh6x)9n{^3m2QUfC_Q*BW&<9#^ZVwOolx@6y9- z-YF=S;mEypj68yxNxfJ56x%ES`z-5$M${V1HX(@#R>%$X`67*Ab8vC6UzvoDOY*P= zFbPXany0%>rqH1gi7d>e`=PWZTG>^=#PQf&iJjJ0&2dO(4b8) zCl%8xJg1mg4__!?t|y_roExn~%u@Eu|p9YFb`8_qP@v#KW#kFs4eVetJ+Q+s|Y0?#D z@?dt_BA7C4tGpjOB~*LFu0!5oU(_xj7xA$meN)Z;q4Z_Rb7jY1rJBzJPr0V=(y99F zh=V-NbK+64rd#ltw~7X-%kP$R896DxRuj)p7Zj@8&>IlP&}ME3s9eV2R>SpUnSxeg zmpm?HQJ^u1T;pvwvlc4F_)>3P~jlTch4+u6;o{@PtpnJcn~p0v_6Po%*KkTXV#2AGc) zv)jvvC?l#s$yvyy=>=7D3pkmV24xhd7<5}f_u5!8gmOU|4555dv`I=rLWW!W!Uxg| zFGXpH3~)9!C2|Y6oB~$gz(;$CTnw&R&psa+E!KNgrE1+WkLM6SOf$>sGW+Y{>u?Fw zTc!xG{pa3c#y@d$d0e7a9~e_xjGcaw5f6Fk>lg$Jm}cFd%BO_YT(9s+_Q;ft%1*k$ z_cXkf&QHkaQr9U?*Gr$r6|bCV>2S)Cedfk3rO?JbyabY zgqxm#BM7Sg6s-`5%(p@SxBJzR6w`O6`+Kuo36wwBzwf6K{0HENVz^^w|E$r zdZM%T0oy8OK|>>2vSzw5rqoqEroCZ%(^OmOSFN84B2-8Z?R1)Pn9|5Xkui(fQRl^zA35EH^(JbuQd@Uh z2FJ6C(5FDD(++_NLOG)1H<+X~pt68d@JiB8iUQSZ+?qc;Jr+aJ8bKF3z`K&zSl&C7 zEgl&!h?sc=}K7 ziEC(3IrY?h7|d= zVjh{@BGW^AaNcdRceoiKmQI+F$ITdcM$YigXtH)6<-7d@5DyyWw}s!`72j`A{QC~e ze-u0a6A;QSPT$vqf3f(kO1j^%GYap*vfWQ@X=n{lR9%HX^R~t+HoeaT5%L7XSTNn` zCzo})tF@DMZ$|t6$KTx+WQqu~PXPa9FL&shBGx3C>FlGz}7gjfv}(NKvjR#r5PL$a1>%asaylWA8^g!KJ=$}_UccHmi zAZd5c{I&Ywpi3a1#27C6TC~zm3y8D>_1an8XHGNgL?uT$p+a<5AdWLR6w9jdhUt9U zz?)93=1p$x;Qiq!CYbX&S}+IITWLkfu%T6X5(pk9-fs8lh9z8h?9+>GlFeFcs*Z>u zJSaL!2?L8LbOu_Ye!=4~ZKL?643lcsNn8>qUT|q&Rv+(z>Z9=tyG&5}zZK&Q?S!nG zR;Ui^<406=jLYA>zl!a-OXH#J-pP4A`=)r%9HV5m1qGZ1m*t^wi>3$JRcH)3Q(LQz z(3}~y3=QsUu!PN$$N~#yBP@=aJ+Bkp_hx8^x1Ou6+(Kk9l1CXr4p~IQvq@AUePuAj zcq5>YDr(JTmrAuLwn6sgohTR-vc^y^#I{grF7 zg}8?&5!^$|{X`C;YrZ7?rKH#`=n0zck(q37+5%U;Hmds2w+dLmm9|@`HqQ<5CUEz{I1eNIL?X~rd{f71y z>_<94#1G+j`d5|fKK@>QDK6|HRR|9UZvO6HdB1afJvuwUf8bw>_Fha)Ii8I}Gqw}p zdS~e^K4j{d%y+A#OBa1C4i0)sM=}tjd8fZ9#uY}{#G7rJp{t6?*5*A^KKhim06i{}OJ%eA@M~zIfA`h_gJ_o%w;FaFQMnVkBT|_ z(`m9r+11~EPh9f7>S=$F7|ibj=4Pt>WVzk6NfGRvI_aG66RHig-(S%WKRLP%_h0He``xT))N^RI@6!ADl=*vsqVb|7 zr~Lwl6qn|u!%is<{YA`Mde2Z${@EAHC^t>4`X;F9za=RC{{$4OcGmw%9+{$i@!cCn z;7w~r8HY->M@3OzYh+L7Z2Lc8AcP*FZbl6VVN*_sp}K zQP|=g@aFthq}*?|+Gm4@wbs_?Fx-HD2%)_UDJ);X88~7ch~d0cJ!<7;mv>iv!RS$a z;(-cYTW=K=|F0gIg3EW0%u2CSr(Kx}yLoki|KSIt$#P(O!=UjBGRzb3L3-?NGr7!! z^VC7_Q(GhT;C*(bLivfhlRDVdz7=h%ABuLA2g$qy)A}U@Kj_L-Jd|--fy#-*ESRo| zgu?*?jGEgs9y>1`t}|^Ucd1I=1N=mOo{8Ph zwZS(F%G?nfI{#%sGayNItK9J5P)Qk+^4$ZoXZJ0G1}hwcckJ0g-QJ<)3%`bF8}(ahYIjKFYMtg3X;e7J18ZvDkV@N=nxvDl zo?}lXoT3pZY;4$QKI`~GFuQKv;G6b<8;o89Hd2yu+|%sU(9C=h8ibwZ zARqZ#lk@kp4*#URe-YmpRc&=-b&QP>5b{9{(tH*)(@ZPKfOslBgwCPx6d*{XMX|Q{y0F!5a^ScCE;h8bQmTJR3*}A>aGcDF0?tU)Tnml z#DgruwAva-fiU3s*POY_ZHiJyW%v+733X`&ocwHz$uqJCOhrM;#u*V2eK$D5HiN(` zII{BEg(PV6#_Nv3rZBUyd+TI!>L72KW_Oml6L=pNv#aOl( zgpYxAH^@2aJQu3urlrCeanwSpHHD_Cxb+=cm49{ZU5Z@;{^{okEJ6&fpDD31w~$`% zcz@_REsC~Vq>3YF7yJ41ZEPBW&%|OwlnfG|QNpiX;fGR0f^3?PEf|-33P&LFGe`8^ zaX3M+*h+?6;s|=$j*d|S-r6PSHnmLqm9oshPNpGzlxV21cFrxcQLidd2%h>n%Mc4{ z|JWBvtbb;(-nhWpPO95hR>(e(H$n%*pCh0k4xE#I%xu=#B)zXSaH+azwCI;0@bY<*-10-Qyaq%5NxSlq_@YJUUwy z*d;qPjW^cuKxdXiOWwP}5FN6SZW~NqB%4?|WifPNZr&XNVkzF0n#Y)pbaEodqNO4F z2Bq#^Gr^Ji3!T9`_!D;a1lW$?!LQ-iYV_A{FQ~^C-Jp`_5uOC)6+mzBr4Nl3fHly% zcXeU3x-?#J`=p$6c~$T~V^!C0Bk_3#WYrtoFCx9_5quCQ*4*?XG0n_9%l_!n`M85^ z7}~Clj~ocls6)V&sWGs?B<`{Ob>vnbXZwdda%ipwbzOJ(V`W>KBF5zdCTE8;mc&xU z^clCzd0(T#8*(})tSYSNP1N{FnNVAU^M1S_pq4VEQ*#5nv`CoYSALMEB zf6egyuRMzK2?r^M0hCD*sU;On6c0^Vh|#tRG*n1p5R)QyVw%Va37nMSV%9&uq^hp| zCHeu}y{m=NsA=naDy;q`fd9t)I$Qd-A1Il$#0KyDc>X)hKJViqNB{HnQyf5D(ZJ*J z{-oGB-%Q|QZ%Pqu34>fCy)Asi}IY7luNR9ebgH4DAjCVvSWfa%PE16 zkC7EIuEK}?IR!jgP%eX%dcxk4%N!zIjW4wYMfIq@s%GetDs^g!^p}DH46EP`Nh_wD z4Rwc4ezh1U$Mc)Fe6ii6eD^*iB2MFp-B-HhGTR0tC2?bq$#^J!v1r+Z0y+& znVub*k=*^0yP(c#mEvX}@Abx%&}!W(1olcWEHAVgskbBrzx(f2v&}4~WkVN?af#yi z4IE-(_^)?4e3(d{F@0<~NV5|e0eaB!?(g%l&Hq$UqzC_Enuest?CL+IrSD`tv8|{C z=79vnL=P6ne+}6X1&cd$kam=jCcv`~^y#R{doTh?6D?H)^M7-P+=D@?H;bt$*V+)K z?+?Ex3Z@8JE3c4eHDYItB^tSot;@2p_fuZ8mW^i^a(L;Xn6K+1GuG0n$v(38;+<78 zC?eMzbQCW2%&;U>j}b>YEH5>RkP44$QlG6k(KwXtq{e#13wnx5Jh=uH?lQIl8%Qxr zq%pDC)mYYKa?N>%aF%YwA}CzV@IOV9&a81d9eiU-6F&lGvz68~%{&4LuwV_5{#km3(tf`fejjs%`{Y`|0p!6|-U z8XQA9Sl=*kM|(2KA!LWOCY3Qq4sZ7r&}__rR*Sj(9W8R1_RxI&4TI+_7RSJF&-363 zJvczH?1(`Jb+RDJL9$Whnj8qJRI+Mz9=Qjvubb=Lz8nWVXG{Te;$%s9-D#$)-!{~w zIM(vkr#OM>2F7W$$Lq%fEYl%e|Tsc>9rB9c8 zQoi4nXomx3&sBI9AwaHkoOp%SMDf2@T#73Bi?|!r!Q?wc(^b_u4ranezYx~=aRV-a zD|_WPK^iJh&=)~h{t<>_$VMXsee;{r-|`#H|1?DZgWvuc*!&C2*(yv(4G5s{8ZRzt zZMC~5gjiU@6fPGMN%X~pL};Q`|IfPfs0m9;RV}xSxjb)*gmvGO1`CQb~W1M1{KwXBLyPz0JQG=JkVX zlPq&zNZS59gf-?*5Z0IFitTX4T$1Oo#_~V%4q2vI?Y@UkSHh}H9xZ1va}^oBrCY{+ z3wwj*FHCsS2}GdSG7W(|k+MWu9h1Qs6cft~RH)n*!;)5HmPX1DqrJ3-Cs%i4q^{$N zC&skM7#8f{&S!9Eq-WqyY$u?uTgrSDt#NU%{3bQZtUSkUof4`Z1P8aLOKJ+^dKh%n zfEfQ zO|P*J>;{=`9@D)qpnt`#NH>}sir*&oFC+W!HR)ecHcPwjF-|)}8+tR#@A+~CLl+Ab zCqp+=Cuc(&VGC1ZYg4CxIXYL>33p^wjIWJSh6R=oq)jD52q3~KVGt=w_z(arS!gx^ zSd|?!rzDu1$>0o0Y0+!iZU=ew^Hr+cq(I(C>9}^sBc++0+S#I;js@_NLD9>MH(tN3 zE5F+J_bYdPfYm5%7-e=lm?!-xlvX~nDkBqu!Zf0ra65JD&@tYDW+c@P3W-YyWe4^6 zhW?FUJ;c{^?b`N)03>!@#JI)r2&!6An27q?*^wyUx3T4uyeIl4*(4CV5OTK#RSnYt zq<+RKCdrYIJtdmNC-NtfH)K&pytbM^Mi6JWjkzJo0TdX>HOjJaIQmQ?Q;l2)8oN@d zVyT=%y@TihQaJX7#B2wY#_ufuaF55-sWO{OwUx$2zRyW$YM(CFBs4Y;YmBk(4u&u- zEf@rIR~4#}IMeq$?T%z3s3RAR7m%M?8No;a=1HXKP?ia#uwy!`4v0GFSjZiMii@ib z#xRmA-v~CSVl8z9cEWVEk;9_BKPS6Y2|bk#PAb|}gPxHs-dt*k`5tU#FZL)FLodY8 zmb!m`DagEJ#q1VKwO~%zmw7;LESf5u!KJNm829pbY_w$P2}16`Bb?0uoL3~V71;_U z`B~wKOB7Bp!Vn!M@o?RHydmah!dHPaT`&idV83kQPxA>E=~YgJC<)rdM1#B$JIgnq z0V{p|Cm3eeMaO58Wrv^9-kAOJ+*HR!;;A9z&>78VsYmF9$U^*ZE=K%d7=MZ~G?~Hz zSHlKWK!Us^%?uE6`E|_XI+nC354jkbUPvedHbh(DkKGkquYf}=-EEB1g>RC{O9ORL371y8V*CR5EW z@lmFq%MWEBdeHR7%(Rpf!Yg52vX%D7#@*^M`fy7Srb z^Ta9wcwf$89uL61@qeg2vc&TAGKSLV>YKI3#5lfs#q5Zm`~Ogef!!CoWWyiA=J;js z%X_n!njeF2MZgaVoMh@S@8%lR)AsYyzmqkj+C8ghxI4G6O7ovK$udULO!2$(|__`2~6JjuoERet}kenJ%I0pU_O@tU*Fsd4gm&hV?p%Y{!;r}{S^Fv z_4EJbVjFv7>+dE9{rBS@8&_vbx9>4!8&g4JV^e2mSwlNR^Z&ujriy)b3jzqfYb35o z!;J+c>%LY+?P!IticwSrP;x2|k>j3Sxg2X%E2%57

`Lem|V$A>eR0uN8Y&sdjtu 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

1bvi{DS7E@q1{$_8->K{_OWv2 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 literal 0 HcmV?d00001 diff --git a/uitest/gradle/wrapper/gradle-wrapper.properties b/uitest/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..9636dc9 --- /dev/null +++ b/uitest/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.0-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/uitest/gradlew b/uitest/gradlew new file mode 100644 index 0000000..67d4964 --- /dev/null +++ b/uitest/gradlew @@ -0,0 +1,248 @@ +#!/bin/sh + +# +# Copyright © 2015 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/b631911858264c0b6e4d6603d677ff5218766cee/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/uitest/gradlew.bat b/uitest/gradlew.bat new file mode 100644 index 0000000..09276e8 --- /dev/null +++ b/uitest/gradlew.bat @@ -0,0 +1,93 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/uitest/settings.gradle b/uitest/settings.gradle new file mode 100644 index 0000000..5e987e7 --- /dev/null +++ b/uitest/settings.gradle @@ -0,0 +1,8 @@ +plugins { + // Applies the foojay-resolver plugin to allow automatic download of JDKs. + id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0" +} +// A list of which subprojects to load as part of the same larger project. +// You can remove Strings from the list and reload the Gradle project +// if you want to temporarily disable a subproject. +include 'android', 'core'