Initial commit

This commit is contained in:
defiQUG
2025-12-26 10:48:33 -08:00
commit 97f75e144f
270 changed files with 35886 additions and 0 deletions

20
buildSrc/build.gradle.kts Normal file
View File

@@ -0,0 +1,20 @@
plugins {
`kotlin-dsl`
}
repositories {
google()
mavenCentral()
gradlePluginPortal()
}
kotlin {
jvmToolchain(17)
}
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
kotlinOptions {
jvmTarget = "17"
}
}

View File

@@ -0,0 +1,10 @@
object AppConfig {
const val compileSdk = 34
const val minSdk = 24
const val targetSdk = 34
const val versionCode = 1
const val versionName = "1.0.0"
const val applicationId = "com.smoa"
}

View File

@@ -0,0 +1,127 @@
object Versions {
const val kotlin = "1.9.20"
const val androidxCore = "1.12.0"
const val androidxLifecycle = "2.6.2"
const val androidxActivity = "1.8.1"
const val compose = "2023.10.01"
const val composeMaterial3 = "1.1.2"
const val hilt = "2.48"
const val hiltNavigationCompose = "1.1.0"
const val navigationCompose = "2.7.5"
const val room = "2.6.1"
const val retrofit = "2.9.0"
const val okHttp = "4.12.0"
const val securityCrypto = "1.1.0-alpha06"
const val biometric = "1.1.0"
const val coroutines = "1.7.3"
const val zxing = "3.5.2"
const val pdfbox = "2.0.27.0" // Using available version
const val poi = "5.2.4"
const val jackson = "2.15.2"
const val jaxb = "4.0.0"
const val cxf = "4.0.3"
const val santuario = "3.0.1"
const val bouncycastle = "1.77"
const val junit = "4.13.2"
const val junit5 = "5.10.0"
const val androidxJunit = "1.1.5"
const val espresso = "3.5.1"
const val mockk = "1.13.8"
const val robolectric = "4.11.1"
const val turbine = "1.0.0"
const val truth = "1.1.4"
const val sqlcipher = "4.5.4"
const val webrtc = "1.0.+"
}
object Dependencies {
// AndroidX Core
const val androidxCoreKtx = "androidx.core:core-ktx:${Versions.androidxCore}"
const val androidxLifecycleRuntimeKtx = "androidx.lifecycle:lifecycle-runtime-ktx:${Versions.androidxLifecycle}"
const val androidxActivityCompose = "androidx.activity:activity-compose:${Versions.androidxActivity}"
// Compose
const val composeBom = "androidx.compose:compose-bom:${Versions.compose}"
const val composeUi = "androidx.compose.ui:ui"
const val composeUiGraphics = "androidx.compose.ui:ui-graphics"
const val composeUiToolingPreview = "androidx.compose.ui:ui-tooling-preview"
const val composeMaterial3 = "androidx.compose.material3:material3:${Versions.composeMaterial3}"
const val composeUiTooling = "androidx.compose.ui:ui-tooling"
const val composeUiTestManifest = "androidx.compose.ui:ui-test-manifest"
const val composeUiTestJunit4 = "androidx.compose.ui:ui-test-junit4"
// Navigation
const val navigationCompose = "androidx.navigation:navigation-compose:${Versions.navigationCompose}"
// Hilt
const val hiltAndroid = "com.google.dagger:hilt-android:${Versions.hilt}"
const val hiltAndroidCompiler = "com.google.dagger:hilt-android-compiler:${Versions.hilt}"
const val hiltNavigationCompose = "androidx.hilt:hilt-navigation-compose:${Versions.hiltNavigationCompose}"
// Room
const val roomRuntime = "androidx.room:room-runtime:${Versions.room}"
const val roomKtx = "androidx.room:room-ktx:${Versions.room}"
const val roomCompiler = "androidx.room:room-compiler:${Versions.room}"
// Networking
const val retrofit = "com.squareup.retrofit2:retrofit:${Versions.retrofit}"
const val retrofitGson = "com.squareup.retrofit2:converter-gson:${Versions.retrofit}"
const val okHttp = "com.squareup.okhttp3:okhttp:${Versions.okHttp}"
const val okHttpLogging = "com.squareup.okhttp3:logging-interceptor:${Versions.okHttp}"
// Security
const val securityCrypto = "androidx.security:security-crypto:${Versions.securityCrypto}"
const val biometric = "androidx.biometric:biometric:${Versions.biometric}"
// Coroutines
const val coroutinesCore = "org.jetbrains.kotlinx:kotlinx-coroutines-core:${Versions.coroutines}"
const val coroutinesAndroid = "org.jetbrains.kotlinx:kotlinx-coroutines-android:${Versions.coroutines}"
// Barcode
const val zxingCore = "com.google.zxing:core:${Versions.zxing}"
const val zxingAndroid = "com.journeyapps:zxing-android-embedded:4.3.0"
// PDF Generation
const val pdfbox = "org.apache.pdfbox:pdfbox-android:${Versions.pdfbox}"
// Office Documents
const val poi = "org.apache.poi:poi:${Versions.poi}"
const val poiOoxml = "org.apache.poi:poi-ooxml:${Versions.poi}"
// JSON/XML
const val jacksonCore = "com.fasterxml.jackson.core:jackson-core:${Versions.jackson}"
const val jacksonDatabind = "com.fasterxml.jackson.core:jackson-databind:${Versions.jackson}"
const val jacksonKotlin = "com.fasterxml.jackson.module:jackson-module-kotlin:${Versions.jackson}"
const val jaxbApi = "jakarta.xml.bind:jakarta.xml.bind-api:${Versions.jaxb}"
const val jaxbRuntime = "org.glassfish.jaxb:jaxb-runtime:${Versions.jaxb}"
// AS4/XML Security
const val cxfCore = "org.apache.cxf:cxf-core:${Versions.cxf}"
const val cxfRtFrontendJaxws = "org.apache.cxf:cxf-rt-frontend-jaxws:${Versions.cxf}"
const val cxfRtBindingsSoap = "org.apache.cxf:cxf-rt-bindings-soap:${Versions.cxf}"
const val santuario = "org.apache.santuario:xmlsec:${Versions.santuario}"
// Cryptography
const val bouncycastle = "org.bouncycastle:bcprov-jdk18on:${Versions.bouncycastle}"
const val bouncycastlePkix = "org.bouncycastle:bcpkix-jdk18on:${Versions.bouncycastle}"
// Testing
const val junit = "junit:junit:${Versions.junit}"
const val junit5Api = "org.junit.jupiter:junit-jupiter-api:${Versions.junit5}"
const val junit5Engine = "org.junit.jupiter:junit-jupiter-engine:${Versions.junit5}"
const val androidxJunit = "androidx.test.ext:junit:${Versions.androidxJunit}"
const val espressoCore = "androidx.test.espresso:espresso-core:${Versions.espresso}"
const val mockk = "io.mockk:mockk:${Versions.mockk}"
const val mockkAndroid = "io.mockk:mockk-android:${Versions.mockk}"
const val robolectric = "org.robolectric:robolectric:${Versions.robolectric}"
const val turbine = "app.cash.turbine:turbine:${Versions.turbine}"
const val truth = "com.google.truth:truth:${Versions.truth}"
const val coroutinesTest = "org.jetbrains.kotlinx:kotlinx-coroutines-test:${Versions.coroutines}"
// Database Encryption
const val sqlcipher = "net.zetetic:sqlcipher-android:${Versions.sqlcipher}"
// WebRTC - Note: This may need to be built from source or use alternative
// For now using a placeholder - actual WebRTC needs to be configured separately
const val webrtc = "org.webrtc:google-webrtc:${Versions.webrtc}"
}