From db4c6a7f63914b4b1811aeddc28fc066cf0b9539 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?m=C3=BCde?= Date: Wed, 22 Apr 2026 20:25:09 +0200 Subject: [PATCH] initial commit - new empty android project --- .gitignore | 15 ++ app/.gitignore | 1 + app/build.gradle.kts | 45 ++++ app/proguard-rules.pro | 21 ++ .../nova/android/ExampleInstrumentedTest.kt | 24 ++ app/src/main/AndroidManifest.xml | 15 ++ .../res/drawable/ic_launcher_background.xml | 170 ++++++++++++ .../res/drawable/ic_launcher_foreground.xml | 30 +++ .../main/res/mipmap-anydpi/ic_launcher.xml | 6 + .../res/mipmap-anydpi/ic_launcher_round.xml | 6 + app/src/main/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes app/src/main/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes .../main/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes .../main/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes app/src/main/res/values-night/themes.xml | 16 ++ app/src/main/res/values/colors.xml | 10 + app/src/main/res/values/strings.xml | 3 + app/src/main/res/values/themes.xml | 16 ++ app/src/main/res/xml/backup_rules.xml | 13 + .../main/res/xml/data_extraction_rules.xml | 19 ++ .../darkest/nova/android/ExampleUnitTest.kt | 17 ++ build.gradle.kts | 4 + gradle.properties | 15 ++ gradle/gradle-daemon-jvm.properties | 12 + gradle/libs.versions.toml | 20 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 45457 bytes gradle/wrapper/gradle-wrapper.properties | 9 + gradlew | 251 ++++++++++++++++++ gradlew.bat | 94 +++++++ settings.gradle.kts | 27 ++ 36 files changed, 859 insertions(+) create mode 100644 .gitignore create mode 100644 app/.gitignore create mode 100644 app/build.gradle.kts create mode 100644 app/proguard-rules.pro create mode 100644 app/src/androidTest/java/space/darkest/nova/android/ExampleInstrumentedTest.kt create mode 100644 app/src/main/AndroidManifest.xml create mode 100644 app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 app/src/main/res/drawable/ic_launcher_foreground.xml create mode 100644 app/src/main/res/mipmap-anydpi/ic_launcher.xml create mode 100644 app/src/main/res/mipmap-anydpi/ic_launcher_round.xml create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 app/src/main/res/values-night/themes.xml create mode 100644 app/src/main/res/values/colors.xml create mode 100644 app/src/main/res/values/strings.xml create mode 100644 app/src/main/res/values/themes.xml create mode 100644 app/src/main/res/xml/backup_rules.xml create mode 100644 app/src/main/res/xml/data_extraction_rules.xml create mode 100644 app/src/test/java/space/darkest/nova/android/ExampleUnitTest.kt create mode 100644 build.gradle.kts create mode 100644 gradle.properties create mode 100644 gradle/gradle-daemon-jvm.properties create mode 100644 gradle/libs.versions.toml create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 settings.gradle.kts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..aa724b7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx +local.properties diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 0000000..1dbc5b7 --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,45 @@ +plugins { + alias(libs.plugins.android.application) +} + +android { + namespace = "space.darkest.nova.android" + compileSdk { + version = release(36) { + minorApiLevel = 1 + } + } + + defaultConfig { + applicationId = "space.darkest.nova.android" + minSdk = 35 + targetSdk = 36 + versionCode = 1 + versionName = "1.0" + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } +} + +dependencies { + implementation(libs.androidx.appcompat) + implementation(libs.androidx.core.ktx) + implementation(libs.material) + testImplementation(libs.junit) + androidTestImplementation(libs.androidx.espresso.core) + androidTestImplementation(libs.androidx.junit) +} \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/app/src/androidTest/java/space/darkest/nova/android/ExampleInstrumentedTest.kt b/app/src/androidTest/java/space/darkest/nova/android/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..56d0aad --- /dev/null +++ b/app/src/androidTest/java/space/darkest/nova/android/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package space.darkest.nova.android + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("space.darkest.nova.android", appContext.packageName) + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..47439d4 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_launcher_foreground.xml b/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi/ic_launcher.xml b/app/src/main/res/mipmap-anydpi/ic_launcher.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi/ic_launcher.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml new file mode 100644 index 0000000..6f3b755 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..c209e78ecd372343283f4157dcfd918ec5165bb3 GIT binary patch literal 1404 zcmWIYbaN|VWnc(*bqWXzu!!JdU|xt`5!v_jjvkEam13D%HG@k-IMc zNLB6Ts|;5bzSwJe>ULbl1cvf&ZkhaCoSq2>@AZ5-D>jj1lIT2H&dag$gn7N+e4L{u z^V=qU9`n4<|KGj+Jg1Vc;+*Ym8}@ms^PajGxhz`fUcGqB^ot%&0-(G6 ztJqa}H}n3HU3Yip`SGVeoN_0jHpk{$^4G>a6%8p%x7&Z)J5^*02Bzg(emT zh6~~ha~ZWf7(5v43`IJe7AY!6)06s|5LTRZ~a|9(#3-?A(9e&YZ4?>X2s?GW>o|33SDelz`B z`+wn|Q;!w?=CKR)$n9qK&JB=|i?B8=Za(_yby{8ahEC_FQc?|fX6jq-S#{;T*P>@x z_ZT?env#-TMm+56J zYxbSv3`wunSg8L0QM8}=O*rp?-VOhM|NEg<)7%*xHvh-siA*kcCjMS>GB?P(>_@}3 z)Ft&xoDRNt&3eFh)jsaGt6V1Y-utsGX3D{BPrGiMe#bFC=cA;8JMEoLi`oHXxI)DE^oHMbkaEEw% z-9tKtyZ;ro&wXg4x@O8`m1O~q z?MexGg12&nX4y|S@pnFV^V}u9giQ-GT$3$KnU6R18RkeC3%K&!v-YvBIofAmw>PFs zIdS)#VNole5AMDC;{Wfgucb?`mgwZOH*=)K)xFxh zvAbsbOYcV^yis0yb^(2L-iLG^EU>@ZcYlA->$iWR*2l$qNu~2Y6n&DlA@j?-eeQ>s z$tnK&Z05FhmCbjTD+dy9O%PYyrL7Vlbht#oNZ2QS;ASZ@?QSi@KIA`)Q{Plar-EBMn zOue{8S#RsoI9{I8-1%wjYL3ra-WXN>myuB|k`TLaRw0(}Q{v*)neU%|Uf=%kE$@XZ zhG9pKE&f~)a@RGze*OGS1~2BsylnCL*)X3i|99J|eC4QK#}-~?>BH&Aafd zWjZOh{NVc@|Mx8WeQ&M$PqIskKh9jN|JQv<&;0)q`yZ~E&-DGzd;15MW#|73p4FDw z7Oym+LiWGhsn`4Zdv7t_;1XiVJF+=y-{rn5k2YR9d}BwU-%Zx7^dl3uQO%=KtB6@_8OJ`?s99PuHc(Wv{Uvn57cQnzH^! z4YT&W4>v_49d0g>;5}1QsqLw*bguIK-eRRko_V#EY72aobT&L-pQO|$YAra)UWXy) z?H0HH>?%h$pNjLSyTHFTTZD1@o5kYirK&#Ospl5Bs^WBcdditu$Df4zc4P@8o+&!k z$5~=Hz27y&v^)8mahg-|JA1KhUV`UTT02EQ$+(1e7MN)IY?yFdc~#TV8Gl98qIT3X z<+w`qp4Rl)QQ*p5k{WN6_9(e-vDU^NGYy%0D%Eo$*=nm_Iu+cp7Fo9EyM*zH8S<-( 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 AkN^Mx literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000000000000000000000000000000000000..948a3070fe34c611c42c0d3ad3013a0dce358be0 GIT binary patch literal 1900 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

( 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..9287f5083623b375139afb391af71cc533a7dd37 GIT binary patch literal 5914 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

0vl^(ubK57i3$j`RXVdItc2Zu zTjP%3T{qqDyHu$1wf>en`}f$lI?l)hfy+`aCTxu8`Mp4Wt8~lzsk7fIKUzdbU&D@u>@#|8JoKt2mbv8|~*&2E%ct_*EIJ>)7o&PKE5_$1H zYTdgu^~m!0A4{%YZ`c&qZ)$yr|AXm!sqXjcKR?_Pn|Ao^jNS9)1$Q|wns@3F%fsvg zwSO(SHf}Wd&gY@5dZETG=E3!B4m$1-}j)^|n6tq;mOd3k8c0DH_GHdj+bC#}?wC!#j7mQS#vf_fXiT$x+$0-Ud(~5MTubmb>WqqsT;k{xpsIQhc5wmzv^leMXZ>rUpkvod!E z%4X!{CT@DfUb}1l9;OF%&cZj$=~`?izExW$`!W#MmrU&bU9x zY4?Y|ihvD`aVe?!Jd*bn>a_Ljw%A+cxQM63#5tgD>7pvIfk zXZB`A(+B?|xK;mhgAxy6j8m5a|tYYQtz-&)`wciH>w!z4Jl6EbdLNgW&t4n&Z^`r` zg&vWF3I>a?I;mM9pQdx?h+g`4^#9q@#m5&cUv`wUW67(N(f8cqnde#^*{|z4`#8&% z$(*MTuC#KwaPVof`>D`&U$yg@H74@YWB+XNzOk9HzHI)?S*96(9jadGnl+RhV?HYU zTPymOU!2^Y9Y;SYsn1QEpStG70rM^O4*D71J+(bX{#n9KLDg&XW+cq#d%E33PUWv_ zkfOTshO5hBt#1C8*W^yL{vnXQVRqiLErQMrj6U1<_5@j|Em*A4E4-te^ZzpYDI0B` zXg;x>w9{g(u&mK%{^Fz8n{xBlOZuI;!E!86S+BwIO2Xl&Fh%#ZoBUQU_O0g4%ANk> z0Jmq=?VG;}VuQcWs7ieBJAdXY(fhi`7ADvReRQ>AUivA=PwM}&`iLJJJJZ{_&k3Y2 zUvhnu->Tx7bEg!!9%6moQp;o7lU20XJ=QDEK<4}Dx`6F-nzAlROmUdnwpX%JBgyHE&EJd_^1F8lZE|Tb`4Z9o=_5<>!KzQ} zGZoDj*B>l-_{cMi-TF`Qmi1X-=QLK8d3<{luV|^Id8CphQgh85osBxngzXY9@84_h z%f`4XHqy%Sk8jJOIRCXp`#HYZ9tjb8r7sFp_47S~Y8LMZ0|ACD*T9*?vNtsq>c#FZ;4AF83!N-}7Zh7R+l= zw!4tMaFcX!P3Els8SK9LLhRyJK z+&t%0aQM50`k&8S%~Uwp?rm21|LFNWlV+G(ACydR-+6qUWz*kv3iZ{C%If{&>euW) z@@W5$w|~FeitEW*v$L+4y5z_58%Bq(G3{FX-GAnci|2Se?q;?>GnLW&F(+=#|9Z#w z-#_o;-&VrrqOwwO%B-^WHLF&}EjZj>w|%nOHqFIdHlY~LM|@kt^cB?v?aRN!JSJaHjLeW zb$GNz$NM?U8z(oNo3`r8e%lS3CEre$zVUyZ&{wym*PqV*QMTjIf~G4kJUQ0C+9_cC zLSfq{(=7&@u0G04(^)DtZ};(To{cq(j|-+htN*jEpuxFk0?Ru8XP3^z-&SNkURt^2 zTSfZcN5x^>ML|ky1rH}oViJ7+@cetDleV!hBksSwEn~4q@Xz`GmCrjHOK)GEd0p-B z(Y6SS8poDMuE(=E|4rGmcvp9MsGHU9V8)Ek>HE*irk%F9rK7RU-2N}yiz$uUO57Qx zXRAv!tdNVQd!7^~xNg;>=ojmFGC8tun)m$oP3PKhc*onS@K5?rr^}yu zUmUrRUESJJ=>F0}m;TMP>i;SjwwR~)_nQ*mc_z*-WwSXs6&fs_bqPz9s|2|0xg0$2 t@u$Pda=rYAtrOikX7%&GRsG&;Z1Lh{&yL;Ao6ROYUN$pxVgmyL003>zdZqvX literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp new file mode 100644 index 0000000000000000000000000000000000000000..9126ae37cbc3587421d6889eadd1d91fbf1994d4 GIT binary patch literal 7778 zcmWIYbaRW6V_*n(bqWXzu!!JdU|~fj$$Xu^|Mi2edtS{o z3zt<=OJK4|yuEEt?zY_9b#taO@tJ$hoLOybY}_OF?BQpgnQeb;7N=LHojG&Hf9A}c zrI*?+D!T7Fmn?syG$+#PxS%1U)_-9yCvT%|w>`KopDb!S#C_XU$WKf@=gx+_zrRXT z53D#h-_p4L)sv2+&NuS+7paLN;IC()Hr()%!obv0rzJ5_+5y&6qC#>-XwH zdBff=tzT#K|D5?5AbT+DOi1JWpRMORRvG0wO`ZAv=TCVX`Rg2E`DqXT$p88Ie&#~0 zWu7b2KlA_jv3y}#$JMuMKD?Cwe^B>JSLVVMIX~vf?`HlUcw|+0=e;{07vJC8C^d^K z@S=JBleC!b856Xw-ua_^U%*steu~{c=J!VGQhnwz6hFa(Vi!pCRcH_m2y@S7sPA-Cnm$-{T?E9+&5Z&FTHg zQWwwIp51XF8R^9|31&J6&&B6`rPp0x#=rS(w}bqpJJS|38JC z6gye;OJ6oQpz=w*=PZ+*-{pRZ7JqOr$rCRB6WJDi=KnW_scvg+zLm$Vd~@y}-`wb< zvh_7t6SRZ>hWk%2$^LXle&;%mvgP&NkID)kmiLvHs;>I~#!-tmy7E!^TbY*>=rW?H)aeL2fYUep<9n1K@xyd9@ZTqdd znOyr)*w60C<(*{oF)u*caak-=*OaHWDc9Z9CI_oIdtUh@x5i9Jz1?cZ5|5AH47c3PD(t7x#Dy?TvP=>3%#T_G{Y?Ac-p zPcFrHDhV>?=`vTT>s-IKYFgx?6*r^aT?|Sv$yu9te$v?&IoZ8!6`BV2_oLF!Z%8q& z-?jDJoMYaee)DtISr%#DC|+Bdl%ao+k8jI0!S=s?3h#5*Hj8<0-NV0i%8l0_f;`^4 z=Bb~qo~v`SF1v5qqbGUQo__DGeS*)Qwc5)vdEV@!Z&SX>6+S9w(vDxeGX1<(Jz|_VI&%omZXRX_dYAe?ydq`@1zW zpT*>U|NF+-AH2ExpZUbKlMnvyO`7s-jw);Wx?@?=GgtFjsLYk_Sa*NZ z;@WL-72BM3)^oY%O}Kq*S5}{&&T5ufxA(1El^SwAu7YF2H0FSdCto)$>(zFDb)?99 zL%#cxTdpg)%ak)`vXoerre4@k=z0FYf~Slv<@xGYwYT4cZT)zC* zmWvjRZ{JAXtDUs6{?)t6ubHz8%hSGDm0qv1IeTW;?q@HIFZayfd~ISMA6KyLHMzdP zwVB7_Q?6Mx@tLe`VQPyk4sD3dmURsKU}ALT$l`rrv#(}0q_XL2b^_m+9XvSLe>)@eowqbxE`4^3PS5Sc=&;_ew=|XcS{tA3TfL}} zMPY*IqaUB;|9+7bXXLyjaZ}*Hz2)!zG)ErJxY6%c8-Lm0r5Kk(gL2TWAI|doUMe+g zSz@?hEyIo9hn)HMJq_V&Uwkp+%JnU|%N9gjNigbC)vG=Kd;R_jHU-@Y(@wH!Gx)u) z{JHV?y-jQD>P%#K-D~5G&u+QGbf9gWbc?Fl{fgJU;V~OJUEiiojQDco-_7asYCl?R z+a%xHcKG3n_u0#4$}K22h`l~_o%XgRzTt7TZ&k(f=0~0{nr~TKasT%EeIJjV+_Kba z)zt1_>Ck0G#I`S)bdhCwBf7Z@6TN4|+ODX2J)f{`<@;47A z?#-9Aoh#A)S|dCD_dfaFUv`&gywpCRw{*(7DeGKbDzPXybZs@xzUDH)Qf8jrY_kN0 z^lzrw@!9d&Z-4tFFWcrUnEFv;G7uFl_U)ldH{%ZZU-4|#=6+Q zm-jCYxzF))N&U93kN0m&m%n0v@$cc9b$^{-B)`1>$L^v1nf+`3@BGjB`{FnM@>%8T!K87bYr%qW{Eb;kt|L?J%8caWD^Gws>7o5ns zJy!M35sw~)7gCQ6xfJ9*X3R)#n;opp!@nTO(01y_o7bvbi@Q$f?fSTFmc2!A{@m0R zp}AW6hc_47|G&KcE(g2AhwCf9UEjt$$vQE~RP{HUsZP~pD*vP&t0AUt7Kw-c7|MLV}E`$-TXk|vWfS2gw7eR-BcHJhTUyS^|R0W z*e@Hdp1ImPYkrG`()84b&vJ8<!-md1-1~>C(AfXExT|GN>xsuXB34_^wwgGWZ0=J(IQeX>cUQC5iKu z{YYvQT>tK*$*#67&#u z5!!WYN0d~T_ZuVbj_gVSDW%6V7bNh>|9`giqi)f=#cnP;wmjLD)um{TVSb zW*Ein90X!KZ2wwLQxMQ!~1JdLv?=-7)K{_|6iAZVPp;Y|P7yu$lHhDHAa4aAirVHQIAMw=65ffmkG>@m=uo-9ruW1qo~uon;&N}nuEOPqW=I^|&^f%{!$IR{5PsE`ltN>8neY&0hQw7$W&eZuciktXEd8_bZ3JiezNxAFc5UB< zIP6+KH#zRk+#}I7*~ew>=QpfLZtfMmS1wL_>fN-zR#KknztNoA+?r0)_RG$h{UUIc z4~Nq7!=VQ8&vtG4=N`YJvv+adCjP@-S%r)q+HanGW;uF$*Qp%_%kRY0u2o(7-P($M zn~vnt)`mz~-AYA^k1wK+mVfqsCN$gps`EcpArI$S>v`nYWQhPF4p^5uQ_iZ>!3d2L)euumAUd+3jTCNN#I^ z%`-QfZhgErtw;Osudi2IZ!v<7C~UGn zdg|kYniTIR(yQuJw$zjf*G@VT@MDKX2cO)#7YFnLPK#YDI-k02v-$bgyK+^n&YYOw z-Pk^B#rfoy+_U1RRkB~cIoagsh6zu?BywN-B>UQ%Zrt|&zt_z-ua$)!EA3To;NLCR z@>Od7%k!!4XZ-ct;{I*>nP1+L=Gn7PmIlrJ^y(S+nrELCH7cAKv)q<7rg$6(GOqd8 zdsxN=#v`xO?ai&N38usn>#v=Q(1qJ;aQvV-`H`q1L;OhC= zr&pUvP0ClPbiAp;wP63O9)`V#k9SY_x@Gf({i*%ov%ZE%SING7>(&r&z?rAcX;Zyz zd-gjY?!IL8ld@^ce|4~3+N;-fZ*$^muSfdYTwB;4vS=w(Uw*Uw{n|f&)iyB&B>jIo z_2<8P6+4?=Zhy1V@6?SA3p?KQrO!}*;If!)OGCwiULxPi>;nqB)*-B5XAh+V-q^TAjFc z{d(a~??Nm7FR;%F_;E!;*ni%4vB(1tMDDhDg*^SqV0`u5@43Y+2TprU@X762CgC6O z^*HOEC(rN9JN`O^?e}?$+T;_?!Uw)wz9h@ltSaP}cAC>{uD182&D(q?FTQELW?tcp z;NN?{zADODo!4ja&}YfY|Ar=PpN{_5kxLaYtPD)qWB>pEGtC$-qZd1OxLvOJy5VP; zm+B7DsFlULv^V62DXbKbkL#YWJ)(B`n*wR!f-B4S@BcXIX~^#S3kN64eOT(cTKDkg zmpfxmFIoF>{?@0bB^=kTnf7_UK~#3xjg9Y?@}AtX+s0*P^{0C?ttK{n^>{OL4paT{ zy_=8a3;W;D_7J~axGha7{Bh8s`;3zd-(0`FsqkXMM+k6=N85=GsfkYIg=I? z)@3I6&P>@G%D!WgtK#NB{RaWX%MbLJu8RM+;p<(y(mO`x0lcNlPkejK!0!0|_#`cX z*Gq1fiWEn+|C5zmW?l?!(5oK%;$rP@1oXV{%M#t;{YHG(;%>!hC^D?R-3Y*gQG zJM($(PPpt~Uth6h)d8F3t=^$b+>;a-76&Z*ANXyu|0lbK6}sO=*0Bg(=iBmhWzLkW zmACjC{&|Hbc3wN2dAnP>-rwt~`5e2y*Ju4bu>GRy|GBr;9Q;|eD$nz3{PEskkNcjB z_Q^fTXe!oKyeP3Z(S6tBJ>Sifd@uSqC|4bfEaL zb#MD)&d-pc%eG;D&Eo4HrmI|?xF-IB!|4YT9ta8ZWmh>BmZg5#cW~CrgIWzT6K%~! zj=lT!KYRWMD%YUuVefwa;3%Z78kle|MS{R#{&8{2FpXKOE(p zlu|ypPEgy%^X}aLC2KETso7t0pnA^N^`g(>1b^N0-?nzmlCljwM&>s*%j^~Q&72pm z&9SL=z3Nxh-G%#kFI@G1+M_;2<)!H{KE`~ONe+uSwluuGSF`DJ^x390-Qj7Mq91Lj z{rmFJ$^A0lE5eW6eOLPEzD`%zS?!U-`2o{n$-J#jYN#>Tzd(riU$lYj~z89e8|xtH_7P zTwmUv){`;+-1JAi_=I%so~NppmaJ2Fb|K)SjsA|l3$;$iKfStpFgdHUza@tKZSz)f zqbJg3i|$TIapN!B%c`%y(0jY0eahG0eI?&4Up;x#6|*b0LrJ~E&23S!kFuL>yPKNU z!i?=_xaTXL7HQqQY3fd;?pL_)HiD#@nbXzFy!q)tcYknU3DKXJ+sln>~d$u}n z@tU(c$ZT?Om`vhs*K;dp@T`0NC*YGFi~0EpiIV&pXHID98aVx|pR~y8(!-|UQor`g zZr9E#_s8gSR-C&&Dcm-;vo7%51+D*kOxS(Z!k@6b3HWL;D|b=xu}7c(6wZCZ zBKqvO{>J3yNTV~p^QAfz?3zOlJ%8-O-Z)> zD>`dc)1GU;$*YUb3)Y!Y%FM+1zj6Q053ZJbr~Lc%Jb%BuUTu@$I;Z%miX%%(+)R;DJkz{4{m6{`4u8Az+j$f?&MO;ecYWt0!nMbbpPuuV# z?cCH9g~`V5PPG%xN*N1e{#o*Z_*{KefBxBq9wyhv4;fE!@tLi!^1Qfy52HlAnxV>V=4_q^ zT7G^V8(zF%V7M^VLbtWPt?C*7`nZtooA!5Zp5JyM@obgMOS_$#()HVSOn2C4weZlH z^!zjX7Z;~oJ7S@IdF%JPvE`R7y(BH&*qQshvO|P&1$&Xr5&(*^x z?&2$R@w(^CS#Lb2D_o7S>XB_aUn5f+In#$-Mep#MtQARlI|ZkQ8Hl%SHQYD%Wv|J5 z9)`PH*tZ%=t$OMkyF+-zm-LOE(mN{6A~q!NzfkdDmUvm7+tCNVx8^?EB=6(N>UN{^ zql{v2cTu#ey1?1KZyOvZT#LMVHv0X4(WFAf@1lM6fl>By+#fcEw(4moW;GmJ8K-W( zZqjD%6-skge|5%77e2)&D{F4{qA_b88B-_1;gPPB+@C xnhRWv`IUK*^+E0R8{Q5smc^CM&d>M1G5EHH$7b>Dkbv658Y;W>pIu-80{{_~QQ!ao literal 0 HcmV?d00001 diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..c162273 --- /dev/null +++ b/app/src/main/res/values-night/themes.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..7aeadb5 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + Nova Shell for Android + \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..967ee9d --- /dev/null +++ b/app/src/main/res/values/themes.xml @@ -0,0 +1,16 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/backup_rules.xml b/app/src/main/res/xml/backup_rules.xml new file mode 100644 index 0000000..4df9255 --- /dev/null +++ b/app/src/main/res/xml/backup_rules.xml @@ -0,0 +1,13 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/xml/data_extraction_rules.xml b/app/src/main/res/xml/data_extraction_rules.xml new file mode 100644 index 0000000..9ee9997 --- /dev/null +++ b/app/src/main/res/xml/data_extraction_rules.xml @@ -0,0 +1,19 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/test/java/space/darkest/nova/android/ExampleUnitTest.kt b/app/src/test/java/space/darkest/nova/android/ExampleUnitTest.kt new file mode 100644 index 0000000..c92b84f --- /dev/null +++ b/app/src/test/java/space/darkest/nova/android/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package space.darkest.nova.android + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 0000000..3756278 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,4 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +plugins { + alias(libs.plugins.android.application) apply false +} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..34c5e9e --- /dev/null +++ b/gradle.properties @@ -0,0 +1,15 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. For more details, visit +# https://developer.android.com/r/tools/gradle-multi-project-decoupled-projects +# org.gradle.parallel=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official \ No newline at end of file diff --git a/gradle/gradle-daemon-jvm.properties b/gradle/gradle-daemon-jvm.properties new file mode 100644 index 0000000..6c1139e --- /dev/null +++ b/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/ec7520a1e057cd116f9544c42142a16b/redirect +toolchainUrl.FREE_BSD.X86_64=https\://api.foojay.io/disco/v3.0/ids/4c4f879899012ff0a8b2e2117df03b0e/redirect +toolchainUrl.LINUX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/ec7520a1e057cd116f9544c42142a16b/redirect +toolchainUrl.LINUX.X86_64=https\://api.foojay.io/disco/v3.0/ids/4c4f879899012ff0a8b2e2117df03b0e/redirect +toolchainUrl.MAC_OS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/73bcfb608d1fde9fb62e462f834a3299/redirect +toolchainUrl.MAC_OS.X86_64=https\://api.foojay.io/disco/v3.0/ids/846ee0d876d26a26f37aa1ce8de73224/redirect +toolchainUrl.UNIX.AARCH64=https\://api.foojay.io/disco/v3.0/ids/ec7520a1e057cd116f9544c42142a16b/redirect +toolchainUrl.UNIX.X86_64=https\://api.foojay.io/disco/v3.0/ids/4c4f879899012ff0a8b2e2117df03b0e/redirect +toolchainUrl.WINDOWS.AARCH64=https\://api.foojay.io/disco/v3.0/ids/9482ddec596298c84656d31d16652665/redirect +toolchainUrl.WINDOWS.X86_64=https\://api.foojay.io/disco/v3.0/ids/39701d92e1756bb2f141eb67cd4c660e/redirect +toolchainVersion=21 diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..13d6f4e --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,20 @@ +[versions] +agp = "9.2.0" +coreKtx = "1.18.0" +junit = "4.13.2" +junitVersion = "1.1.5" +espressoCore = "3.5.1" +appcompat = "1.6.1" +material = "1.13.0" + +[libraries] +androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } +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" } +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" } +material = { group = "com.google.android.material", name = "material", version.ref = "material" } + +[plugins] +android-application = { id = "com.android.application", version.ref = "agp" } + diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..8bdaf60c75ab801e22807dde59e12a8735a34077 GIT binary patch literal 45457 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

E3O!uy!x-n^Xipuqmga7Z(85N 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®G46aK?r|^ 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 M0bT}%>?I%`0L*Dn)Bpeg literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..5a26a59 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,9 @@ +#Wed Apr 22 18:23:01 GMT 2026 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionSha256Sum=2ab2958f2a1e51120c326cad6f385153bb11ee93b3c216c5fccebfdfbb7ec6cb +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100755 index 0000000..ef07e01 --- /dev/null +++ b/gradlew @@ -0,0 +1,251 @@ +#!/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/HEAD/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 + +CLASSPATH="\\\"\\\"" + + +# 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" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + 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" \ + -classpath "$CLASSPATH" \ + -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/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..5eed7ee --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,94 @@ +@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 + +set CLASSPATH= + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -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/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..5f9e499 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,27 @@ +pluginManagement { + repositories { + google { + content { + includeGroupByRegex("com\\.android.*") + includeGroupByRegex("com\\.google.*") + includeGroupByRegex("androidx.*") + } + } + mavenCentral() + gradlePluginPortal() + } +} +plugins { + id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0" +} +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + } +} + +rootProject.name = "Nova Shell for Android" +include(":app") + \ No newline at end of file