Adds the phone side of the pairing contract v1: payload parsing, gateway resolve, parallel hello and a single claim, per host:port certificate pinning hooked into OkHttpProvider.base, and no dashboard token refresh for a paired IDE. Adds zxing-android-embedded and okhttp-tls (tests). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01B8ppceaR5s6cvMnm7uGRnf
111 lines
6.5 KiB
TOML
111 lines
6.5 KiB
TOML
[versions]
|
|
androidGradlePlugin = "9.1.1"
|
|
androidxBrowser = "1.10.0"
|
|
androidxCore = "1.19.0"
|
|
androidxLifecycle = "2.11.0"
|
|
androidxMedia3 = "1.11.1"
|
|
androidxActivity = "1.13.0"
|
|
androidxComposeBom = "2026.08.00"
|
|
androidxTest = "1.7.0"
|
|
androidxTestExt = "1.3.0"
|
|
androidxTestRunner = "1.7.0"
|
|
androidxTestEspresso = "3.7.0"
|
|
coroutines = "1.11.0"
|
|
junit = "4.13.2"
|
|
junit5 = "6.1.3"
|
|
junitPlatform = "6.1.3"
|
|
kotlin = "2.4.20"
|
|
# standalone per KSP 2.0+ guidance — NOT kotlinVersion-kspVersion; easy
|
|
# to miss during Kotlin upgrades since it no longer tracks the Kotlin version.
|
|
ksp = "2.3.12"
|
|
nav3Core = "1.1.7"
|
|
lifecycleViewmodelNav3 = "2.11.0"
|
|
leakcanary = "2.14"
|
|
okhttp = "5.5.0"
|
|
retrofit = "3.0.0"
|
|
securityCrypto = "1.0.0"
|
|
mockk = "1.14.11"
|
|
turbine = "1.2.1"
|
|
coil = "3.6.3"
|
|
room = "3.0.2"
|
|
sqlcipher = "4.19.0"
|
|
datastore = "1.1.2"
|
|
latex = "1.5.6"
|
|
zxingAndroidEmbedded = "4.3.0"
|
|
|
|
[libraries]
|
|
androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidxCore" }
|
|
androidx-browser = { module = "androidx.browser:browser", version.ref = "androidxBrowser" }
|
|
androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidxActivity" }
|
|
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" }
|
|
androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3"}
|
|
androidx-compose-material-icons-extended = { group = "androidx.compose.material", name = "material-icons-extended" }
|
|
androidx-compose-ui = { group = "androidx.compose.ui", name = "ui"}
|
|
androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview"}
|
|
androidx-compose-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4"}
|
|
androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling"}
|
|
androidx-compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest"}
|
|
androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "androidxLifecycle" }
|
|
androidx-lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "androidxLifecycle" }
|
|
androidx-lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidxLifecycle" }
|
|
androidx-test-core = { module = "androidx.test:core", version.ref = "androidxTest" }
|
|
androidx-test-ext-junit = { module = "androidx.test.ext:junit", version.ref = "androidxTestExt" }
|
|
androidx-test-espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "androidxTestEspresso" }
|
|
androidx-test-runner = { module = "androidx.test:runner", version.ref = "androidxTestRunner" }
|
|
junit = { module = "junit:junit", version.ref = "junit" }
|
|
junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "junit5" }
|
|
junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit5" }
|
|
junit-vintage-engine = { module = "org.junit.vintage:junit-vintage-engine", version.ref = "junit5" }
|
|
junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher", version.ref = "junitPlatform" }
|
|
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" }
|
|
leakcanary-android = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakcanary" }
|
|
mockk = { module = "io.mockk:mockk", version.ref = "mockk" }
|
|
mockk-android = { module = "io.mockk:mockk-android", version.ref = "mockk" }
|
|
turbine = { module = "app.cash.turbine:turbine", version.ref = "turbine" }
|
|
androidx-navigation3-runtime = { module = "androidx.navigation3:navigation3-runtime", version.ref = "nav3Core" }
|
|
androidx-navigation3-ui = { module = "androidx.navigation3:navigation3-ui", version.ref = "nav3Core" }
|
|
androidx-lifecycle-viewmodel-navigation3 = { module = "androidx.lifecycle:lifecycle-viewmodel-navigation3", version.ref = "lifecycleViewmodelNav3" }
|
|
|
|
# Networking
|
|
okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }
|
|
okhttp-mockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "okhttp" }
|
|
okhttp-logging = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp" }
|
|
okhttp-tls = { module = "com.squareup.okhttp3:okhttp-tls", version.ref = "okhttp" }
|
|
retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" }
|
|
retrofit-converter-kotlinx-serialization = { module = "com.squareup.retrofit2:converter-kotlinx-serialization", version.ref = "retrofit" }
|
|
kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version = "1.11.0" }
|
|
|
|
# Security
|
|
androidx-security-crypto = { module = "androidx.security:security-crypto", version.ref = "securityCrypto" }
|
|
androidx-datastore = { module = "androidx.datastore:datastore", version.ref = "datastore" }
|
|
|
|
# Database (Room 3)
|
|
androidx-room-runtime = { module = "androidx.room3:room3-runtime", version.ref = "room" }
|
|
androidx-room-compiler = { module = "androidx.room3:room3-compiler", version.ref = "room" }
|
|
sqlcipher = { module = "net.zetetic:sqlcipher-android", version.ref = "sqlcipher" }
|
|
|
|
# Native Compose LaTeX rendering
|
|
latex-base = { module = "io.github.huarangmeng:latex-base", version.ref = "latex" }
|
|
latex-parser = { module = "io.github.huarangmeng:latex-parser", version.ref = "latex" }
|
|
latex-renderer = { module = "io.github.huarangmeng:latex-renderer", version.ref = "latex" }
|
|
|
|
# QR scanning for AITURK IDE pairing (no Play Services)
|
|
zxing-android-embedded = { module = "com.journeyapps:zxing-android-embedded", version.ref = "zxingAndroidEmbedded" }
|
|
|
|
# Image loading (Coil 3)
|
|
coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil" }
|
|
coil-gif = { module = "io.coil-kt.coil3:coil-gif", version.ref = "coil" }
|
|
coil-network-okhttp = { module = "io.coil-kt.coil3:coil-network-okhttp", version.ref = "coil" }
|
|
|
|
# Media (ExoPlayer Media3)
|
|
media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "androidxMedia3" }
|
|
media3-ui = { module = "androidx.media3:media3-ui", version.ref = "androidxMedia3" }
|
|
media3-datasource-okhttp = { module = "androidx.media3:media3-datasource-okhttp", version.ref = "androidxMedia3" }
|
|
|
|
[plugins]
|
|
android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" }
|
|
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|
|
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
|
|
room = { id = "androidx.room3", version.ref = "room" }
|
|
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
|