[versions]
java = "17"
minSdk = "26"
compileSdk = "36"

accompanist = "0.37.3"
agp = "8.10.1"
amplituda = "v2.3.1"
arrow = "2.1.0"
braze = "32.1.0"
installreferrer = "2.2"
kotlinxCollectionsImmutable = "0.4.0"
mediarouter = "1.8.1"
paging = "3.3.6"

# Note: RevenueCat depends on GooglePlayBilling.
# Double check that the version of RevenueCat supports the version of GooglePlayBilling, especially for major version bumps
revenueCatPurchases = "8.19.2"
googlePlayBillingKtx = "7.1.1"

review = "2.0.2"
sdk = "2.1.1-lite"
segment-android = "1.19.2"
animation = "1.9.0"
browser = "1.9.0"
datastorePreferencesCore = "1.1.7"
firebaseBom = "34.1.0"
flowCallAdapterFactory = "1.0.1"
haze = "1.6.9"
kotlin = "2.1.10"
coreKtx = "1.17.0"
junit = "4.13.2"
junitVersion = "1.3.0"
espressoCore = "3.7.0"
androidxLifecycle = "2.9.2"
activityCompose = "1.10.1"
composeBom = "2025.08.00"
composeCompiler = "1.5.1"
constraintLayout = "1.1.1"
appcompat = "1.7.1"
loggingInterceptor = "4.12.0"
dagger-hilt = "2.55"
retrofit = "2.11.0"
kotlinxSerializationJson = "1.6.3"
kotlinxCorountinesTest = "1.8.1"
mockk = "1.14.2"
androidxCoreTesting = "2.2.0"
exoplayer = "1.8.0"
media3Common = "1.8.0"
coil = "3.1.0"
navigationCompose = "2.9.3"
androidxHilt = "1.2.0"
cast = "22.1.0"
roomVersion = "2.7.2"
singular_sdk = "12.9.0"
cameraLifecycle = "1.4.2"
cameraView = "1.4.2"
cameraCamera2 = "1.4.2"
cameraViewfinder = "1.5.0-rc01"
paletteKtx = "1.0.0"
lifecycleProcess = "2.9.2"
appcompatResources = "1.7.1"
materialVersion = "1.12.0"
hcaptcha = "4.0.3"
statsig = "4.44.1"
firebaseMessagingKtx = "24.1.2"
libphonenumber = "8.12.57"
ktlintPlugin = "12.3.0"
ktlint = "1.6.0"
detekt = "1.23.8"
firebaseCommonKtx = "21.0.0"
firebaseAppDistribution = "16.0.0-beta16"
adsIdentifier = "18.2.0"
work = "2.10.3"
window = "1.4.0"
turbine = "1.2.1"
graphicsShapes = "1.0.1"
shakebugs = "17.1.4"
processPhoenix = "3.0.0"
exifinterface = "1.3.6"
kotlinxCorountinesPlayServices = "1.10.2"

[libraries]
accompanist-adaptive = { module = "com.google.accompanist:accompanist-adaptive", version.ref = "accompanist" }
accompanist-drawablepainter = { module = "com.google.accompanist:accompanist-drawablepainter", version.ref = "accompanist" }
accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist" }
amplituda = { module = "com.github.lincollincol:Amplituda", version.ref = "amplituda" }
androidx-mediarouter = { module = "androidx.mediarouter:mediarouter", version.ref = "mediarouter" }
installreferrer = { module = "com.android.installreferrer:installreferrer", version.ref = "installreferrer" }
kotlinx-collections-immutable = { module = "org.jetbrains.kotlinx:kotlinx-collections-immutable", version.ref = "kotlinxCollectionsImmutable" }
revenuecat-purchases = { module = "com.revenuecat.purchases:purchases", version.ref = "revenueCatPurchases" }
braze-sdk = { group = "com.braze", name = "android-sdk-ui", version.ref = "braze" }
#revenuecat-debugview = { module = "com.revenuecat.purchases:purchases-debug-view", version.ref = "revenueCatPurchases" }
#revenuecat-debugview-noop = { module = "com.revenuecat.purchases:purchases-debug-view-noop", version.ref = "revenueCatPurchases" }
revenuecat-purchases-ui = { module = "com.revenuecat.purchases:purchases-ui", version.ref = "revenueCatPurchases" }
review = { module = "com.google.android.play:review", version.ref = "review" }
review-ktx = { module = "com.google.android.play:review-ktx", version.ref = "review" }
lokalize = { module = "com.lokalise.android:sdk", version.ref = "sdk" }
segment-android = { module = "com.segment.analytics.kotlin:android", version.ref = "segment-android" }
androidx-animation = { module = "androidx.compose.animation:animation", version.ref = "animation" }
androidx-browser = { module = "androidx.browser:browser", version.ref = "browser" }
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
androidx-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "datastorePreferencesCore" }
androidx-datastore-preferences-core = { module = "androidx.datastore:datastore-preferences-core", version.ref = "datastorePreferencesCore" }
androidx-foundation = { module = "androidx.compose.foundation:foundation" }
androidx-material-icons-extended = { module = "androidx.compose.material:material-icons-extended" }
androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "roomVersion" }
androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "roomVersion" }
androidx-room-runtime = { module = "androidx.room:room-runtime", version.ref = "roomVersion" }
androidx-room-paging = { module = "androidx.room:room-paging", version.ref = "roomVersion" }
androidx-room-testing = { module = "androidx.room:room-testing", version.ref = "roomVersion" }
billing-ktx = { module = "com.android.billingclient:billing-ktx", version.ref = "googlePlayBillingKtx" }
converter-scalars = { module = "com.squareup.retrofit2:converter-scalars", version.ref = "retrofit" }
firebase-analytics = { module = "com.google.firebase:firebase-analytics" }
firebase-bom = { module = "com.google.firebase:firebase-bom", version.ref = "firebaseBom" }
firebase-crashlytics = { module = "com.google.firebase:firebase-crashlytics" }
firebase-crashlytics-gradle = { module = "com.google.firebase:firebase-crashlytics-gradle" }
firebase-crashlytics-ndk = { module = "com.google.firebase:firebase-crashlytics-ndk" }
firebase-perf = { module = "com.google.firebase:firebase-perf" }
flow-call-adapter-factory = { module = "tech.thdev:flow-call-adapter-factory", version.ref = "flowCallAdapterFactory" }
haze = { module = "dev.chrisbanes.haze:haze", version.ref = "haze" }
haze-materials = { module = "dev.chrisbanes.haze:haze-materials", version.ref = "haze" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
hcaptcha = { module = "com.github.hcaptcha.hcaptcha-android-sdk:sdk", version.ref = "hcaptcha" }
singular_sdk = { module = "com.singular.sdk:singular_sdk", version.ref = "singular_sdk" }
statsig = { module = "com.statsig:android-sdk", version.ref = "statsig" }
libphonenumber = { group = "com.googlecode.libphonenumber", name = "libphonenumber", version.ref = "libphonenumber" }
play-services-ads-identifier = { group = "com.google.android.gms", name = "play-services-ads-identifier", version.ref = "adsIdentifier" }

androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
androidx-testing-core = { group = "androidx.arch.core", name = "core-testing", version.ref = "androidxCoreTesting" }
androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "androidxLifecycle" }
androidx-lifecycle-service = { group = "androidx.lifecycle", name = "lifecycle-service", version.ref = "androidxLifecycle" }
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
androidx-compose-constraint_layout = { group = "androidx.constraintlayout", name = "constraintlayout-compose", version.ref = "constraintLayout" }
androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "navigationCompose" }

androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
androidx-compose-ui = { group = "androidx.compose.ui", name = "ui" }
androidx-compose-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
androidx-compose-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
androidx-compose-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" }
androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" }
androidx-compose-material3-adaptive = { group = "androidx.compose.material3.adaptive", name = "adaptive" }
androidx-window = { group = "androidx.window", name = "window", version.ref = "window" }
# todo when updating to 1.9, change the name of this to "runtime-annotation"
androidx-compose-runtime-annotations = { group = "androidx.compose.runtime", name = "runtime" }
androidx-graphics-shapes = { group = "androidx.graphics", name = "graphics-shapes", version.ref = "graphicsShapes" }
androidx-exifinterface = { group = "androidx.exifinterface", name = "exifinterface", version.ref = "exifinterface" }

androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
logging-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "loggingInterceptor" }
dagger-hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "dagger-hilt" }
dagger-hilt-compiler = { group = "com.google.dagger", name = "hilt-compiler", version.ref = "dagger-hilt" }
retrofit = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" }
retrofit-converters-kotlinx-serialization = { group = "com.squareup.retrofit2", name = "converter-kotlinx-serialization", version.ref = "retrofit" }
kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version = "1.7.2" }
kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version = "1.9.0" }
kotlinx-coroutines-play-services = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-play-services", version.ref = "kotlinxCorountinesPlayServices" }
mockk = { group = "io.mockk", name = "mockk", version.ref = "mockk" }
mockk-android = { group = "io.mockk", name = "mockk-android", version.ref = "mockk" }
androidx-media3-exoplayer = { group = "androidx.media3", name = "media3-exoplayer", version.ref = "exoplayer" }
androidx-media3-exoplayer-dash = { group = "androidx.media3", name = "media3-exoplayer-dash", version.ref = "exoplayer" }
androidx-media3-exoplayer-hls = { group = "androidx.media3", name = "media3-exoplayer-hls", version.ref = "exoplayer" }
androidx-media3-ui = { group = "androidx.media3", name = "media3-ui", version.ref = "exoplayer" }
androidx-media3-ui-compose = { group = "androidx.media3", name = "media3-ui-compose", version.ref = "exoplayer" }
androidx-media3-common = { group = "androidx.media3", name = "media3-common", version.ref = "media3Common" }
androidx-media3-session = { group = "androidx.media3", name = "media3-session", version.ref = "media3Common" }
androidx-hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "androidxHilt" }
androidx-media3-cast = { group = "androidx.media3", name = "media3-cast", version.ref = "media3Common" }
androidx-media3-okhttp = { group = "androidx.media3", name = "media3-datasource-okhttp", version.ref = "media3Common" }
coil-network = { group = "io.coil-kt.coil3", name = "coil-network-okhttp", version.ref = "coil" }
coil-compose = { group = "io.coil-kt.coil3", name = "coil-compose", version.ref = "coil" }
coil-svg = { group = "io.coil-kt.coil3", name = "coil-svg", version.ref = "coil" }

play-services-cast-framework = { group = "com.google.android.gms", name = "play-services-cast-framework", version.ref = "cast" }
androidx-camera-lifecycle = { group = "androidx.camera", name = "camera-lifecycle", version.ref = "cameraLifecycle" }
androidx-camera-view = { group = "androidx.camera", name = "camera-view", version.ref = "cameraView" }
androidx-camera-camera2 = { group = "androidx.camera", name = "camera-camera2", version.ref = "cameraCamera2" }
androidx-camera-viewfinder-view = { module = "androidx.camera.viewfinder:viewfinder-view", version.ref = "cameraViewfinder" }
androidx-camera-viewfinder-core = { module = "androidx.camera.viewfinder:viewfinder-core", version.ref = "cameraViewfinder" }
androidx-camera-viewfinder-compose = { module = "androidx.camera.viewfinder:viewfinder-compose", version.ref = "cameraViewfinder" }

androidx-palette-ktx = { group = "androidx.palette", name = "palette-ktx", version.ref = "paletteKtx" }
androidx-lifecycle-process = { group = "androidx.lifecycle", name = "lifecycle-process", version.ref = "lifecycleProcess" }
androidx-appcompat-resources = { group = "androidx.appcompat", name = "appcompat-resources", version.ref = "appcompatResources" }
material = { group = "com.google.android.material", name = "material", version.ref = "materialVersion" }
firebase-messaging-ktx = { group = "com.google.firebase", name = "firebase-messaging-ktx", version.ref = "firebaseMessagingKtx" }
firebase-common-ktx = { group = "com.google.firebase", name = "firebase-common-ktx", version.ref = "firebaseCommonKtx" }
firebase-appdistribution-api = { group = "com.google.firebase", name = "firebase-appdistribution-api", version.ref = "firebaseAppDistribution" }
firebase-appdistribution = { group = "com.google.firebase", name = "firebase-appdistribution", version.ref = "firebaseAppDistribution" }

androidx-paging-runtime = { group = "androidx.paging", name = "paging-runtime", version.ref = "paging" }
androidx-paging-compose = { group = "androidx.paging", name = "paging-compose", version.ref = "paging" }

arrow-core = { group = "io.arrow-kt", name = "arrow-core", version.ref = "arrow" }
arrow-core-retrofit = { group = "io.arrow-kt", name = "arrow-core-retrofit", version.ref = "arrow" }

# Androidx Work
androidx-work-ktx = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "work" }
androidx-hilt-work = { group = "androidx.hilt", name = "hilt-work", version.ref = "androidxHilt" }
androidx-hilt-compiler = { group = "androidx.hilt", name = "hilt-compiler", version.ref = "androidxHilt" }

shakebugs = { group = "com.shakebugs", name = "shake", version.ref = "shakebugs"}
process-phoenix = { group = "com.jakewharton", name = "process-phoenix", version.ref = "processPhoenix" }

turbine = { group = "app.cash.turbine", name = "turbine", version.ref = "turbine" }

[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
jetbrains-kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
android-library = { id = "com.android.library", version.ref = "agp" }
dagger-hilt-android = { id = "com.google.dagger.hilt.android", version.ref = "dagger-hilt" }
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
ksp = { id = "com.google.devtools.ksp" }
ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlintPlugin" }
detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" }
firebase-perf = { id = "com.google.firebase.firebase-perf" }
