From 968b3dccd1a7a3e490c0cd1acf7d52c9a38824b8 Mon Sep 17 00:00:00 2001 From: Infi Date: Sat, 29 Nov 2025 15:45:20 +0100 Subject: [PATCH] chore: use libraries toml Signed-off-by: Infi --- app/build.gradle.kts | 217 +++++++----------- .../main/java/chat/stoat/api/schemas/Auth.kt | 7 +- .../screens/settings/SessionSettngsScreen.kt | 4 +- build.gradle.kts | 19 +- core/model/.gitignore | 1 + core/model/build.gradle.kts | 13 ++ .../java/chat/stoat/core/model/CoreModel.kt | 4 + gradle/libs.versions.toml | 114 +++++++++ settings.gradle.kts | 1 + 9 files changed, 233 insertions(+), 147 deletions(-) create mode 100644 core/model/.gitignore create mode 100644 core/model/build.gradle.kts create mode 100644 core/model/src/main/java/chat/stoat/core/model/CoreModel.kt create mode 100644 gradle/libs.versions.toml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e71bbe52..407154d0 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -4,34 +4,18 @@ import java.io.FileInputStream import java.util.Properties plugins { - id("com.android.application") - id("org.jetbrains.kotlin.android") - id("org.jetbrains.kotlin.plugin.serialization") - id("org.jetbrains.kotlin.plugin.compose") - id("com.mikepenz.aboutlibraries.plugin") - id("com.google.dagger.hilt.android") - id("com.google.devtools.ksp") - id("io.sentry.android.gradle") version "4.12.0" - id("app.cash.sqldelight") version "2.0.1" + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.serialization) + alias(libs.plugins.kotlin.compose) + alias(libs.plugins.aboutlibraries) + alias(libs.plugins.hilt) + alias(libs.plugins.ksp) + alias(libs.plugins.sentry.android) + alias(libs.plugins.sqldelight) + alias(libs.plugins.google.services) id("kotlin-kapt") id("kotlin-parcelize") - id("com.google.gms.google-services") -} - -val composeBomVersion = "2025.03.00" -val accompanistVersion = "0.34.0" -val okhttpVersion = "4.12.0" -val navVersion = "2.9.0" -val hiltVersion = "2.57" -val glideVersion = "5.0.5" -val ktorVersion = "3.3.2" -val media3Version = "1.7.1" -val material3Version = "1.4.0-alpha15" -val androidXTestVersion = "1.6.1" - -object LivekitVersion { - val core = "2.21.0" - val componentsCompose = "1.4.0" } fun property(fileName: String, propertyName: String, fallbackEnv: String? = null): String? { @@ -187,138 +171,111 @@ sentry { } dependencies { - // Android/Kotlin Core - implementation("androidx.core:core-ktx:1.16.0") - implementation("org.jetbrains.kotlin:kotlin-reflect:2.0.20") + implementation(project(":core:model")) - // Kotlinx - various first-party extensions for Kotlin - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-cbor:1.6.1") - implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0") - implementation("androidx.profileinstaller:profileinstaller:1.4.1") + implementation(libs.android.core.ktx) + implementation(libs.kotlin.reflect) - // Compose BOM - val composeBom = platform("androidx.compose:compose-bom:$composeBomVersion") + implementation(libs.kotlin.serialization.json) + implementation(libs.kotlin.serialization.cbor) + implementation(libs.kotlin.datetime) + + val composeBom = platform(libs.compose.bom) implementation(composeBom) testImplementation(composeBom) androidTestImplementation(composeBom) - // Jetpack Compose - implementation("androidx.compose.ui:ui:1.8.2") - implementation("androidx.compose.ui:ui-util") - implementation("androidx.compose.material3:material3:$material3Version") - implementation("androidx.compose.material3:material3-window-size-class:$material3Version") - implementation("androidx.compose.material:material-icons-core:1.7.8") - implementation("androidx.compose.ui:ui-tooling-preview") - implementation("androidx.compose.runtime:runtime-livedata") - implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.9.1") - implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.9.1") - implementation("androidx.activity:activity-compose:1.10.1") + implementation(libs.compose.ui) + implementation(libs.compose.ui.util) + implementation(libs.compose.ui.tooling.preview) + implementation(libs.compose.material3) + implementation(libs.compose.material3.windowsizeclass) + implementation(libs.compose.material.icons.core) + implementation(libs.compose.runtime.livedata) + implementation(libs.lifecycle.runtime.ktx) + implementation(libs.lifecycle.viewmodel.compose) + implementation(libs.activity.compose) - // Accompanist - Jetpack Compose Extensions - implementation("com.google.accompanist:accompanist-systemuicontroller:$accompanistVersion") - implementation("com.google.accompanist:accompanist-permissions:$accompanistVersion") + implementation(libs.accompanist.systemuicontroller) + implementation(libs.accompanist.permissions) - // KTOR - HTTP+WebSocket Library - implementation("io.ktor:ktor-client-core:$ktorVersion") - implementation("io.ktor:ktor-client-logging:$ktorVersion") - implementation("io.ktor:ktor-client-content-negotiation:$ktorVersion") - implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion") - implementation("io.ktor:ktor-client-okhttp:$ktorVersion") + implementation(libs.ktor.client.core) + implementation(libs.ktor.client.logging) + implementation(libs.ktor.client.contentnegotiation) + implementation(libs.ktor.client.okhttp) + implementation(libs.ktor.serialization.kotlinx.json) - // Screen Navigation - implementation("androidx.navigation:navigation-compose:$navVersion") + implementation(libs.navigation.compose) - // Jetpack Compose Tooling - debugImplementation("androidx.compose.ui:ui-tooling") - debugImplementation("androidx.compose.ui:ui-test-manifest") + debugImplementation(libs.compose.ui.tooling) + debugImplementation(libs.compose.ui.test.manifest) - // Hilt - Dependency Injection - implementation("com.google.dagger:hilt-android:$hiltVersion") - implementation("androidx.hilt:hilt-navigation-compose:1.2.0") - kapt("com.google.dagger:hilt-compiler:$hiltVersion") + implementation(libs.hilt.android) + implementation(libs.hilt.navigation.compose) + kapt(libs.hilt.compiler) - // Glide - Image Loading - implementation("com.github.bumptech.glide:glide:$glideVersion") - implementation("com.github.bumptech.glide:compose:1.0.0-beta01") - implementation("com.github.bumptech.glide:okhttp3-integration:5.0.5") - ksp("com.github.bumptech.glide:ksp:$glideVersion") + implementation(libs.glide) + implementation(libs.glide.compose) + ksp(libs.glide.ksp) - // AboutLibraries - automated OSS library attribution - implementation("com.mikepenz:aboutlibraries-core:11.3.0-rc02") + implementation(libs.aboutlibraries.core) - // Sentry - crash reporting - implementation("io.sentry:sentry-android:8.13.2") - implementation("io.sentry:sentry-compose-android:8.13.2") + implementation(libs.sentry.android) + implementation(libs.sentry.compose.android) - // Other AndroidX libraries - implementation("androidx.documentfile:documentfile:1.1.0") - implementation("androidx.browser:browser:1.8.0") - implementation("androidx.webkit:webkit:1.14.0") - implementation("androidx.core:core-splashscreen:1.2.0-beta02") - implementation("androidx.palette:palette-ktx:1.0.0") - implementation("androidx.core:core-telecom:1.0.0") + implementation(libs.android.profileinstaller) + implementation(libs.android.documentfile) + implementation(libs.android.browser) + implementation(libs.android.webkit) + implementation(libs.android.palette) + implementation(libs.android.core.telecom) + implementation(libs.android.core.splashscreen) + implementation(libs.android.constraintlayout) + implementation(libs.android.constraintlayout.compose) + implementation(libs.android.appcompat) + implementation(libs.android.material) + implementation(libs.android.datastore) + implementation(libs.android.datastore.preferences) - // Libraries used for legacy View-based UI - implementation("androidx.constraintlayout:constraintlayout:2.2.1") - implementation("androidx.appcompat:appcompat:1.7.1") - implementation("com.google.android.material:material:1.12.0") + implementation(libs.hcaptcha) - // hCaptcha - captcha provider - implementation("com.github.hcaptcha:hcaptcha-android-sdk:3.8.1") + coreLibraryDesugaring(libs.desugar.jdk.libs) - // JDK Desugaring - polyfill for new Java APIs - coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.5") + implementation(libs.media3.exoplayer) + implementation(libs.media3.exoplayer.hls) + implementation(libs.media3.okhttp) + implementation(libs.media3.ui) - // AndroidX Media3 w/ ExoPlayer - implementation("androidx.media3:media3-exoplayer:$media3Version") - implementation("androidx.media3:media3-exoplayer-hls:$media3Version") - implementation("androidx.media3:media3-datasource-okhttp:$media3Version") - implementation("androidx.media3:media3-ui:$media3Version") + implementation(libs.zoomable.image) + implementation(libs.zoomable.image.glide) + implementation(libs.haze) + implementation(libs.haze.materials) - // Compose libraries - implementation("me.saket.telephoto:zoomable-image:1.0.0-alpha02") - implementation("me.saket.telephoto:zoomable-image-glide:1.0.0-alpha02") - implementation("androidx.constraintlayout:constraintlayout-compose:1.1.1") - implementation("dev.chrisbanes.haze:haze:1.6.4") - implementation("dev.chrisbanes.haze:haze-materials:1.6.4") + implementation(libs.zxing.core) + implementation(libs.quickie.bundled) - // QR code related - implementation("com.google.zxing:core:3.5.3") - implementation("io.github.g00fy2.quickie:quickie-bundled:1.11.0") + implementation(libs.sqldelight.android.driver) - // Persistence - implementation("app.cash.sqldelight:android-driver:2.0.1") - implementation("androidx.datastore:datastore:1.1.7") - implementation("androidx.datastore:datastore-preferences:1.1.7") + implementation(libs.jetbrains.markdown) + implementation(libs.highlights) - // Markup - implementation("org.jetbrains:markdown:0.7.3") - implementation("dev.snipme:highlights:1.0.0") + // implementation(libs.livekit.android) + // implementation(libs.livekit.android.camerax) + // implementation(libs.livekit.android.compose) - // Livekit - // implementation("io.livekit:livekit-android:${LivekitVersion.core}") - // implementation("io.livekit:livekit-android-camerax:${LivekitVersion.core}") - // implementation("io.livekit:livekit-android-compose-components:${LivekitVersion.componentsCompose}") + implementation(platform(libs.firebase.bom)) + implementation(libs.firebase.messaging) - // Firebase - Cloud Messaging - implementation(platform("com.google.firebase:firebase-bom:33.15.0")) - implementation("com.google.firebase:firebase-messaging") + implementation(libs.shimmer) - // Shimmer - loading animations - implementation("com.valentinilk.shimmer:compose-shimmer:1.3.1") + debugImplementation(libs.chucker) + releaseImplementation(libs.chucker.noop) - // Chucker - HTTP inspector - debugImplementation("com.github.chuckerteam.chucker:library:4.0.0") - releaseImplementation("com.github.chuckerteam.chucker:library-no-op:4.0.0") + implementation(libs.square.logcat) - // Square Logcat - implementation("com.squareup.logcat:logcat:0.1") - - // Testing - androidTestImplementation("androidx.test:runner:$androidXTestVersion") - androidTestImplementation("androidx.test:rules:$androidXTestVersion") - androidTestImplementation("androidx.compose.ui:ui-test-junit4") + androidTestImplementation(libs.android.test.core) + androidTestImplementation(libs.android.test.rules) + androidTestImplementation(libs.compose.ui.test.junit4) } aboutLibraries { diff --git a/app/src/main/java/chat/stoat/api/schemas/Auth.kt b/app/src/main/java/chat/stoat/api/schemas/Auth.kt index c250d375..017ec226 100644 --- a/app/src/main/java/chat/stoat/api/schemas/Auth.kt +++ b/app/src/main/java/chat/stoat/api/schemas/Auth.kt @@ -1,6 +1,5 @@ package chat.stoat.api.schemas -import chat.stoat.api.StoatAPI import kotlinx.serialization.SerialName import kotlinx.serialization.Serializable @@ -8,8 +7,4 @@ import kotlinx.serialization.Serializable data class Session( @SerialName("_id") val id: String, val name: String -) { - fun isCurrent(): Boolean { - return id == StoatAPI.sessionId - } -} +) diff --git a/app/src/main/java/chat/stoat/screens/settings/SessionSettngsScreen.kt b/app/src/main/java/chat/stoat/screens/settings/SessionSettngsScreen.kt index 15c70e66..aea8e731 100644 --- a/app/src/main/java/chat/stoat/screens/settings/SessionSettngsScreen.kt +++ b/app/src/main/java/chat/stoat/screens/settings/SessionSettngsScreen.kt @@ -66,7 +66,7 @@ class SessionSettingsScreenViewModel : ViewModel() { fun fetchSessions() { viewModelScope.launch { sessions.addAll(fetchAllSessions()) - currentSession = sessions.firstOrNull { it.isCurrent() } + currentSession = sessions.firstOrNull { it.id === StoatAPI.sessionId } Log.d( "SessionSettingsScreen", "Current session: $currentSession. Current session ID: ${StoatAPI.sessionId}" @@ -260,7 +260,7 @@ fun SessionSettingsScreen( items(viewModel.sessions.size) { val item = viewModel.sessions[it] - if (item.isCurrent()) { + if (item.id == StoatAPI.sessionId) { return@items } diff --git a/build.gradle.kts b/build.gradle.kts index e7b80897..a9e8f484 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,13 +1,14 @@ plugins { - id("com.android.application") version "8.11.1" apply false - id("com.android.library") version "8.11.1" apply false - id("org.jetbrains.kotlin.android") version "2.2.0" apply false - id("org.jetbrains.kotlin.plugin.serialization") version "2.2.0" apply false - id("org.jetbrains.kotlin.plugin.compose") version "2.2.0" apply false - id("com.google.dagger.hilt.android") version "2.57" apply false - id("com.mikepenz.aboutlibraries.plugin") version "11.3.0-rc02" apply false - id("com.google.devtools.ksp") version "2.2.0-2.0.2" apply false - id("com.google.gms.google-services") version "4.4.2" apply false + alias(libs.plugins.android.application) apply false + alias(libs.plugins.android.library) apply false + alias(libs.plugins.kotlin.android) apply false + alias(libs.plugins.kotlin.serialization) apply false + alias(libs.plugins.kotlin.compose) apply false + alias(libs.plugins.kotlin.jvm) apply false + alias(libs.plugins.hilt) apply false + alias(libs.plugins.aboutlibraries) apply false + alias(libs.plugins.ksp) apply false + alias(libs.plugins.google.services) apply false } tasks.register("clean") { diff --git a/core/model/.gitignore b/core/model/.gitignore new file mode 100644 index 00000000..42afabfd --- /dev/null +++ b/core/model/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/core/model/build.gradle.kts b/core/model/build.gradle.kts new file mode 100644 index 00000000..6371a5c0 --- /dev/null +++ b/core/model/build.gradle.kts @@ -0,0 +1,13 @@ +plugins { + id("java-library") + id("org.jetbrains.kotlin.jvm") +} +java { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 +} +kotlin { + compilerOptions { + jvmTarget = org.jetbrains.kotlin.gradle.dsl.JvmTarget.JVM_11 + } +} diff --git a/core/model/src/main/java/chat/stoat/core/model/CoreModel.kt b/core/model/src/main/java/chat/stoat/core/model/CoreModel.kt new file mode 100644 index 00000000..2df09485 --- /dev/null +++ b/core/model/src/main/java/chat/stoat/core/model/CoreModel.kt @@ -0,0 +1,4 @@ +package chat.stoat.core.model + +class CoreModel { +} \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 00000000..54db94f4 --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,114 @@ +[versions] +kotlin = "2.2.0" +kotlin-serialization = "1.6.3" +ksp = "2.2.0-2.0.2" +agp = "8.11.1" +hilt = "2.57" +google-services = "4.4.2" +sentry = "8.13.2" # This is separate from the gradle plugin version which is defined ad hoc below +sqldelight = "2.0.1" +compose-bom = "2025.03.00" +material3 = "1.4.0-alpha15" +lifecycle = "2.9.1" +accompanist = "0.34.0" +ktor = "3.3.2" +glide = "5.0.5" +aboutlibraries = "11.3.0-rc02" +media3 = "1.7.1" +telephoto = "1.0.0-alpha02" +haze = "1.6.4" +chucker = "4.0.0" +androidx-test = "1.6.1" +livekit = "2.21.0" +livekit-compose = "1.4.0" + +[libraries] +android-core-ktx = { module = "androidx.core:core-ktx", version = "1.16.0" } +android-profileinstaller = { module = "androidx.profileinstaller:profileinstaller", version = "1.4.1" } +android-documentfile = { module = "androidx.documentfile:documentfile", version = "1.1.0" } +android-browser = { module = "androidx.browser:browser", version = "1.8.0" } +android-webkit = { module = "androidx.webkit:webkit", version = "1.14.0" } +android-palette = { module = "androidx.palette:palette-ktx", version = "1.0.0" } +android-core-splashscreen = { module = "androidx.core:core-splashscreen", version = "1.2.0-beta02" } +android-core-telecom = { module = "androidx.core:core-telecom", version = "1.0.0" } +android-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version = "2.2.1" } +android-constraintlayout-compose = { module = "androidx.constraintlayout:constraintlayout-compose", version = "1.1.1" } +android-appcompat = { module = "androidx.appcompat:appcompat", version = "1.7.1" } +android-material = { module = "com.google.android.material:material", version = "1.12.0" } +android-test-core = { module = "androidx.test:runner", version.ref = "androidx-test" } +android-test-rules = { module = "androidx.test:rules", version.ref = "androidx-test" } +android-datastore = { module = "androidx.datastore:datastore", version = "1.1.7" } +android-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version = "1.1.7" } +kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" } +kotlin-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlin-serialization" } +kotlin-serialization-cbor = { module = "org.jetbrains.kotlinx:kotlinx-serialization-cbor", version.ref = "kotlin-serialization" } +kotlin-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version = "0.4.0" } +compose-bom = { module = "androidx.compose:compose-bom", version.ref = "compose-bom" } +compose-ui = { module = "androidx.compose.ui:ui", version = "1.8.2" } +compose-ui-util = { module = "androidx.compose.ui:ui-util" } +compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" } +compose-runtime-livedata = { module = "androidx.compose.runtime:runtime-livedata" } +compose-material3 = { module = "androidx.compose.material3:material3", version.ref = "material3" } +compose-material3-windowsizeclass = { module = "androidx.compose.material3:material3-window-size-class", version.ref = "material3" } +compose-material-icons-core = { module = "androidx.compose.material:material-icons-core", version = "1.7.8" } +compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" } +compose-ui-test-manifest = { module = "androidx.compose.ui:ui-test-manifest" } +compose-ui-test-junit4 = { module = "androidx.compose.ui:ui-test-junit4" } +lifecycle-runtime-ktx = { module = "androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "lifecycle" } +lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycle" } +activity-compose = { module = "androidx.activity:activity-compose", version = "1.10.1" } +accompanist-systemuicontroller = { module = "com.google.accompanist:accompanist-systemuicontroller", version.ref = "accompanist" } +accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" } +ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } +ktor-client-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" } +ktor-client-contentnegotiation = { module = "io.ktor:ktor-client-content-negotiation", version.ref = "ktor" } +ktor-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" } +ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" } +navigation-compose = { module = "androidx.navigation:navigation-compose", version = "2.9.0" } +hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" } +hilt-navigation-compose = { module = "androidx.hilt:hilt-navigation-compose", version = "1.2.0" } +hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hilt" } +glide = { module = "com.github.bumptech.glide:glide", version.ref = "glide" } +glide-compose = { module = "com.github.bumptech.glide:compose", version = "1.0.0-beta01" } +glide-ksp = { module = "com.github.bumptech.glide:ksp", version.ref = "glide" } +aboutlibraries-core = { module = "com.mikepenz:aboutlibraries-core", version.ref = "aboutlibraries" } +sentry-android = { module = "io.sentry:sentry-android", version.ref = "sentry" } +sentry-compose-android = { module = "io.sentry:sentry-compose-android", version.ref = "sentry" } +hcaptcha = { module = "com.github.hcaptcha:hcaptcha-android-sdk", version = "3.8.1" } +desugar-jdk-libs = { module = "com.android.tools:desugar_jdk_libs", version = "2.1.5" } +media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "media3" } +media3-exoplayer-hls = { module = "androidx.media3:media3-exoplayer-hls", version.ref = "media3" } +media3-okhttp = { module = "androidx.media3:media3-datasource-okhttp", version.ref = "media3" } +media3-ui = { module = "androidx.media3:media3-ui", version.ref = "media3" } +zoomable-image = { module = "me.saket.telephoto:zoomable-image", version.ref = "telephoto" } +zoomable-image-glide = { module = "me.saket.telephoto:zoomable-image-glide", version.ref = "telephoto" } +haze = { module = "dev.chrisbanes.haze:haze", version.ref = "haze" } +haze-materials = { module = "dev.chrisbanes.haze:haze-materials", version.ref = "haze" } +zxing-core = { module = "com.google.zxing:core", version = "3.5.3" } +quickie-bundled = { module = "io.github.g00fy2.quickie:quickie-bundled", version = "1.11.0" } +sqldelight-android-driver = { module = "app.cash.sqldelight:android-driver", version.ref = "sqldelight" } +jetbrains-markdown = { module = "org.jetbrains:markdown", version = "0.7.3" } +highlights = { module = "dev.snipme:highlights", version = "1.0.0" } +firebase-bom = { module = "com.google.firebase:firebase-bom", version = "33.15.0" } +firebase-messaging = { module = "com.google.firebase:firebase-messaging" } +shimmer = { module = "com.valentinilk.shimmer:compose-shimmer", version = "1.3.1" } +chucker = { module = "com.github.chuckerteam.chucker:library", version.ref = "chucker" } +chucker-noop = { module = "com.github.chuckerteam.chucker:library-noop", version.ref = "chucker" } +square-logcat = { module = "com.squareup.logcat:logcat", version = "0.1" } +livekit-android = { module = "io.livekit:livekit-android", version.ref = "livekit" } +livekit-android-camerax = { module = "io.livekit:android-camerax", version.ref = "livekit" } +livekit-android-compose = { module = "io.livekit:livekit-android-compose-components", version.ref = "livekit-compose" } + +[plugins] +android-application = { id = "com.android.application", version.ref = "agp" } +android-library = { id = "com.android.library", version.ref = "agp" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } +kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } +aboutlibraries = { id = "com.mikepenz.aboutlibraries.plugin", version.ref = "aboutlibraries" } +ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } +google-services = { id = "com.google.gms.google-services", version.ref = "google-services" } +sentry-android = { id = "io.sentry.android.gradle", version = "4.12.0" } +sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" } \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 20057beb..72869d74 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -25,3 +25,4 @@ dependencyResolutionManagement { } rootProject.name = "Stoat" include(":app") +include(":core:model")