# This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. */ [versions] kotlin = "2.1.21" coroutines = "1.10.2" # This has to be synced to the gradlew plugin version. See # http://googlesamples.github.io/android-custom-lint-rules/api-guide/example.md.html#example:samplelintcheckgithubproject/lintversion? android_gradle_plugin = "8.10.1" android_lint_api = "31.10.1" sentry = "8.13.2" leakcanary = "2.14" osslicenses_plugin = "0.10.6" detekt = "1.23.6" gradle_play_publisher = "3.12.1" androidx_compose = "1.8.2" androidx_compose_paging = "3.3.6" androidx_compose_compiler = "1.5.14" androidx_appcompat = "1.7.1" androidx_activity_compose = "1.10.1" androidx_benchmark = "1.3.4" androidx_biometric = "1.1.0" androidx_coordinator_layout = "1.3.0" androidx_constraint_layout = "2.2.1" androidx_preference = "1.2.1" androidx_legacy = "1.0.0" androidx_annotation = "1.9.1" androidx_lifecycle = "2.9.1" androidx_fragment = "1.8.8" androidx_navigation = "2.9.0" androidx_recyclerview = "1.4.0" androidx_core = "1.16.0" androidx_paging = "3.3.6" androidx_transition = "1.6.0" androidx_work = "2.10.1" androidx_datastore = "1.1.7" google_material = "1.12.0" google_accompanist = "0.30.1" google_accompanist_drawablepainter = "0.37.3" coil = "3.2.0" mozilla_android_components = "139.0.3" junit = "4.13.2" mockk = "1.13.9" desuugar = "2.1.5" mockwebserver = "4.12.0" uiautomator = "2.3.0" robolectric = "4.14.1" androidx_test_ext = "1.2.1" androidx_test_runner = "1.6.2" androidx_test_shared_version = "1.6.1" androidx_test_orchestrator_version = "1.5.1" androidx_espresso_version = "3.6.1" [libraries] kotlin_stdlib = { module ="org.jetbrains.kotlin:kotlin-stdlib-jdk7", version.ref = "kotlin" } kotlin_stdlib_jdk8 = { module ="org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" } kotlin_reflect = { module ="org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" } kotlin_coroutines = { module ="org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" } kotlin_coroutines_test = { module ="org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" } kotlin_coroutines_android = { module ="org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" } mozilla_compose_awesomebar = { module ="org.mozilla.components:compose-awesomebar", version.ref = "mozilla_android_components" } mozilla_concept_awesomebar = { module ="org.mozilla.components:concept-awesomebar", version.ref = "mozilla_android_components" } mozilla_concept_base = { module ="org.mozilla.components:concept-base", version.ref = "mozilla_android_components" } mozilla_concept_engine = { module ="org.mozilla.components:concept-engine", version.ref = "mozilla_android_components" } mozilla_concept_menu = { module ="org.mozilla.components:concept-menu", version.ref = "mozilla_android_components" } mozilla_concept_push = { module ="org.mozilla.components:concept-push", version.ref = "mozilla_android_components" } mozilla_concept_tabstray = { module ="org.mozilla.components:concept-tabstray", version.ref = "mozilla_android_components" } mozilla_concept_toolbar = { module ="org.mozilla.components:concept-toolbar", version.ref = "mozilla_android_components" } mozilla_concept_storage = { module ="org.mozilla.components:concept-storage", version.ref = "mozilla_android_components" } mozilla_concept_sync = { module ="org.mozilla.components:concept-sync", version.ref = "mozilla_android_components" } mozilla_browser_engine_gecko = { module ="org.mozilla.components:browser-engine-gecko", version.ref = "mozilla_android_components" } mozilla_browser_domains = { module ="org.mozilla.components:browser-domains", version.ref = "mozilla_android_components" } mozilla_browser_icons = { module ="org.mozilla.components:browser-icons", version.ref = "mozilla_android_components" } mozilla_browser_session_storage = { module ="org.mozilla.components:browser-session-storage", version.ref = "mozilla_android_components" } mozilla_browser_state = { module ="org.mozilla.components:browser-state", version.ref = "mozilla_android_components" } mozilla_browser_tabstray = { module ="org.mozilla.components:browser-tabstray", version.ref = "mozilla_android_components" } mozilla_browser_thumbnails = { module ="org.mozilla.components:browser-thumbnails", version.ref = "mozilla_android_components" } mozilla_browser_toolbar = { module ="org.mozilla.components:browser-toolbar", version.ref = "mozilla_android_components" } mozilla_browser_menu = { module ="org.mozilla.components:browser-menu", version.ref = "mozilla_android_components" } mozilla_browser_menu2 = { module ="org.mozilla.components:browser-menu2", version.ref = "mozilla_android_components" } mozilla_browser_errorpages = { module ="org.mozilla.components:browser-errorpages", version.ref = "mozilla_android_components" } mozilla_browser_storage_sync = { module ="org.mozilla.components:browser-storage-sync", version.ref = "mozilla_android_components" } mozilla_feature_addons = { module ="org.mozilla.components:feature-addons", version.ref = "mozilla_android_components" } mozilla_support_extensions = { module ="org.mozilla.components:support-webextensions", version.ref = "mozilla_android_components" } mozilla_feature_accounts = { module ="org.mozilla.components:feature-accounts", version.ref = "mozilla_android_components" } mozilla_feature_app_links = { module ="org.mozilla.components:feature-app-links", version.ref = "mozilla_android_components" } mozilla_feature_autofill = { module ="org.mozilla.components:feature-autofill", version.ref = "mozilla_android_components" } mozilla_feature_awesomebar = { module ="org.mozilla.components:feature-awesomebar", version.ref = "mozilla_android_components" } mozilla_feature_contextmenu = { module ="org.mozilla.components:feature-contextmenu", version.ref = "mozilla_android_components" } mozilla_feature_customtabs = { module ="org.mozilla.components:feature-customtabs", version.ref = "mozilla_android_components" } mozilla_feature_intent = { module ="org.mozilla.components:feature-intent", version.ref = "mozilla_android_components" } mozilla_feature_media = { module ="org.mozilla.components:feature-media", version.ref = "mozilla_android_components" } mozilla_feature_qr = { module ="org.mozilla.components:feature-qr", version.ref = "mozilla_android_components" } mozilla_feature_search = { module ="org.mozilla.components:feature-search", version.ref = "mozilla_android_components" } mozilla_feature_session = { module ="org.mozilla.components:feature-session", version.ref = "mozilla_android_components" } mozilla_feature_syncedtabs = { module ="org.mozilla.components:feature-syncedtabs", version.ref = "mozilla_android_components" } mozilla_feature_tabs = { module ="org.mozilla.components:feature-tabs", version.ref = "mozilla_android_components" } mozilla_feature_downloads = { module ="org.mozilla.components:feature-downloads", version.ref = "mozilla_android_components" } mozilla_feature_storage = { module ="org.mozilla.components:feature-storage", version.ref = "mozilla_android_components" } mozilla_feature_prompts = { module ="org.mozilla.components:feature-prompts", version.ref = "mozilla_android_components" } mozilla_feature_push = { module ="org.mozilla.components:feature-push", version.ref = "mozilla_android_components" } mozilla_feature_privatemode = { module ="org.mozilla.components:feature-privatemode", version.ref = "mozilla_android_components" } mozilla_feature_pwa = { module ="org.mozilla.components:feature-pwa", version.ref = "mozilla_android_components" } mozilla_feature_toolbar = { module ="org.mozilla.components:feature-toolbar", version.ref = "mozilla_android_components" } mozilla_feature_findinpage = { module ="org.mozilla.components:feature-findinpage", version.ref = "mozilla_android_components" } mozilla_feature_logins = { module ="org.mozilla.components:feature-logins", version.ref = "mozilla_android_components" } mozilla_feature_site_permissions = { module ="org.mozilla.components:feature-sitepermissions", version.ref = "mozilla_android_components" } mozilla_feature_readerview = { module ="org.mozilla.components:feature-readerview", version.ref = "mozilla_android_components" } mozilla_feature_tab_collections = { module ="org.mozilla.components:feature-tab-collections", version.ref = "mozilla_android_components" } mozilla_feature_recentlyclosed = { module ="org.mozilla.components:feature-recentlyclosed", version.ref = "mozilla_android_components" } mozilla_feature_accounts_push = { module ="org.mozilla.components:feature-accounts-push", version.ref = "mozilla_android_components" } mozilla_feature_top_sites = { module ="org.mozilla.components:feature-top-sites", version.ref = "mozilla_android_components" } mozilla_feature_share = { module ="org.mozilla.components:feature-share", version.ref = "mozilla_android_components" } mozilla_feature_webauthn = { module ="org.mozilla.components:feature-webauthn", version.ref = "mozilla_android_components" } mozilla_feature_webcompat = { module ="org.mozilla.components:feature-webcompat", version.ref = "mozilla_android_components" } mozilla_feature_webnotifications = { module ="org.mozilla.components:feature-webnotifications", version.ref = "mozilla_android_components" } mozilla_feature_webcompat_reporter = { module ="org.mozilla.components:feature-webcompat-reporter", version.ref = "mozilla_android_components" } mozilla_service_mars = { module = "org.mozilla.components:service-mars", version.ref = "mozilla_android_components" } mozilla_service_digitalassetlinks = { module = "org.mozilla.components:service-digitalassetlinks", version.ref = "mozilla_android_components" } mozilla_service_sync_autofill = { module = "org.mozilla.components:service-sync-autofill", version.ref = "mozilla_android_components" } mozilla_service_sync_logins = { module = "org.mozilla.components:service-sync-logins", version.ref = "mozilla_android_components" } mozilla_service_firefox_accounts = { module ="org.mozilla.components:service-firefox-accounts", version.ref = "mozilla_android_components" } mozilla_service_location = { module ="org.mozilla.components:service-location", version.ref = "mozilla_android_components" } mozilla_ui_colors = { module ="org.mozilla.components:ui-colors", version.ref = "mozilla_android_components" } mozilla_ui_icons = { module ="org.mozilla.components:ui-icons", version.ref = "mozilla_android_components" } mozilla_ui_widgets = { module ="org.mozilla.components:ui-widgets", version.ref = "mozilla_android_components" } mozilla_ui_tabcounter = { module ="org.mozilla.components:ui-tabcounter", version.ref = "mozilla_android_components" } mozilla_lib_crash = { module ="org.mozilla.components:lib-crash", version.ref = "mozilla_android_components" } lib_crash_sentry = { module = "org.mozilla.components:lib-crash-sentry", version.ref = "mozilla_android_components" } mozilla_lib_push_firebase = { module ="org.mozilla.components:lib-push-firebase", version.ref = "mozilla_android_components" } mozilla_lib_dataprotect = { module ="org.mozilla.components:lib-dataprotect", version.ref = "mozilla_android_components" } mozilla_lib_state = { module ="org.mozilla.components:lib-state", version.ref = "mozilla_android_components" } mozilla_lib_publicsuffixlist = { module ="org.mozilla.components:lib-publicsuffixlist", version.ref = "mozilla_android_components" } mozilla_support_base = { module ="org.mozilla.components:support-base", version.ref = "mozilla_android_components" } mozilla_support_rusterrors = { module ="org.mozilla.components:support-rusterrors", version.ref = "mozilla_android_components" } mozilla_support_images = { module ="org.mozilla.components:support-images", version.ref = "mozilla_android_components" } mozilla_support_ktx = { module ="org.mozilla.components:support-ktx", version.ref = "mozilla_android_components" } mozilla_support_rusthttp = { module ="org.mozilla.components:support-rusthttp", version.ref = "mozilla_android_components" } mozilla_support_rustlog = { module ="org.mozilla.components:support-rustlog", version.ref = "mozilla_android_components" } mozilla_support_utils = { module ="org.mozilla.components:support-utils", version.ref = "mozilla_android_components" } mozilla_support_test = { module ="org.mozilla.components:support-test", version.ref = "mozilla_android_components" } mozilla_support_test_libstate = { module ="org.mozilla.components:support-test-libstate", version.ref = "mozilla_android_components" } mozilla_support_locale = { module ="org.mozilla.components:support-locale", version.ref = "mozilla_android_components" } sentry = { module ="io.sentry:sentry-android", version.ref = "sentry" } leakcanary = { module ="com.squareup.leakcanary:leakcanary-android-core", version.ref = "leakcanary" } androidx_compose_ui = { module ="androidx.compose.ui:ui", version.ref = "androidx_compose" } androidx_compose_ui_test = { module ="androidx.compose.ui:ui-test-junit4", version.ref = "androidx_compose" } androidx_compose_ui_test_manifest = { module ="androidx.compose.ui:ui-test-manifest", version.ref = "androidx_compose" } androidx_compose_ui_tooling = { module ="androidx.compose.ui:ui-tooling", version.ref = "androidx_compose" } androidx_compose_foundation = { module ="androidx.compose.foundation:foundation", version.ref = "androidx_compose" } androidx_compose_material = { module ="androidx.compose.material:material", version.ref = "androidx_compose" } androidx_compose_paging = { module ="androidx.paging:paging-compose", version.ref = "androidx_compose_paging" } androidx_annotation = { module ="androidx.annotation:annotation", version.ref = "androidx_annotation" } androidx_benchmark_junit4 = { module ="androidx.benchmark:benchmark-junit4", version.ref = "androidx_benchmark" } androidx_biometric = { module ="androidx.biometric:biometric", version.ref = "androidx_biometric" } androidx_fragment = { module ="androidx.fragment:fragment-ktx", version.ref = "androidx_fragment" } androidx_appcompat = { module ="androidx.appcompat:appcompat", version.ref = "androidx_appcompat" } androidx_activity_compose = { module ="androidx.activity:activity-compose", version.ref = "androidx_activity_compose" } androidx_coordinatorlayout = { module ="androidx.coordinatorlayout:coordinatorlayout", version.ref = "androidx_coordinator_layout" } androidx_constraintlayout = { module ="androidx.constraintlayout:constraintlayout", version.ref = "androidx_constraint_layout" } androidx_legacy = { module ="androidx.legacy:legacy-support-v4", version.ref = "androidx_legacy" } androidx_lifecycle_common = { module ="androidx.lifecycle:lifecycle-common", version.ref = "androidx_lifecycle" } androidx_lifecycle_livedata = { module ="androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "androidx_lifecycle" } androidx_lifecycle_process = { module ="androidx.lifecycle:lifecycle-process", version.ref = "androidx_lifecycle" } androidx_lifecycle_viewmodel = { module ="androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidx_lifecycle" } androidx_lifecycle_runtime = { module ="androidx.lifecycle:lifecycle-runtime-ktx", version.ref = "androidx_lifecycle" } androidx_paging = { module ="androidx.paging:paging-runtime-ktx", version.ref = "androidx_paging" } androidx_preference = { module ="androidx.preference:preference-ktx", version.ref = "androidx_preference" } androidx_navigation_fragment = { module ="androidx.navigation:navigation-fragment-ktx", version.ref = "androidx_navigation" } androidx_navigation_ui = { module ="androidx.navigation:navigation-ui", version.ref = "androidx_navigation" } androidx_recyclerview = { module ="androidx.recyclerview:recyclerview", version.ref = "androidx_recyclerview" } androidx_core = { module ="androidx.core:core", version.ref = "androidx_core" } androidx_core_ktx = { module ="androidx.core:core-ktx", version.ref = "androidx_core" } androidx_transition = { module ="androidx.transition:transition", version.ref = "androidx_transition" } androidx_work_ktx = { module ="androidx.work:work-runtime-ktx", version.ref = "androidx_work" } androidx_work_testing = { module ="androidx.work:work-testing", version.ref = "androidx_work" } androidx_datastore = { module ="androidx.datastore:datastore", version.ref = "androidx_datastore" } google_material = { module ="com.google.android.material:material", version.ref = "google_material" } google_accompanist_drawablepainter = { module = "com.google.accompanist:accompanist-drawablepainter", version.ref = "google_accompanist_drawablepainter" } google_accompanist_insets = { module = "com.google.accompanist:accompanist-insets", version.ref = "google_accompanist" } google_accompanist_swiperefresh = { module = "com.google.accompanist:accompanist-swiperefresh", version.ref = "google_accompanist" } coil = { module ="io.coil-kt.coil3:coil-compose", version.ref = "coil" } junit = { module ="junit:junit", version.ref = "junit" } mockk = { module ="io.mockk:mockk", version.ref = "mockk" } desugar = { module ="com.android.tools:desugar_jdk_libs", version.ref = "desuugar" } # --- START AndroidX test dependencies --- // # N.B.: the versions of these dependencies appear to be pinned together. To avoid bugs, they # should always be updated together based on the latest version from the Android test releases page: # https://developer.android.com/jetpack/androidx/releases/test # For the full IDs of these test dependencies, see: # https://developer.android.com/training/testing/set-up-project#android-test-dependencies androidx_test_core = { module ="androidx.test:core", version = "androidx_test_shared_version" } # However orchestrator seems to be an exception, it needs to be at its latest version, currently 1.4.1 espresso_core = { module ="androidx.test.espresso:espresso-core", version.ref = "androidx_espresso_version" } espresso_contrib = { module ="androidx.test.espresso:espresso-contrib", version.ref = "androidx_espresso_version" } espresso_idling_resources = { module ="androidx.test.espresso:espresso-idling-resource", version.ref = "androidx_espresso_version" } espresso_intents = { module ="androidx.test.espresso:espresso-intents", version.ref = "androidx_espresso_version" } androidx_junit = { module ="androidx.test.ext:junit", version.ref = "androidx_test_ext" } androidx_test_extensions = { module = "androidx.test.ext:junit-ktx", version.ref = "androidx_test_ext" } # Monitor is unused orchestrator = { module ="androidx.test:orchestrator", version.ref = "androidx_test_orchestrator_version" } tools_test_runner = { module ="androidx.test:runner", version.ref = "androidx_test_runner" } tools_test_rules = { module ="androidx.test:rules", version.ref = "androidx_test_shared_version" } # Truth is unused # Test services is unused # --- END AndroidX test dependencies --- // mockwebserver = { module ="com.squareup.okhttp3:mockwebserver", version.ref = "mockwebserver" } uiautomator = { module ="androidx.test.uiautomator:uiautomator", version.ref = "uiautomator" } robolectric = { module ="org.robolectric:robolectric", version.ref = "robolectric" } detektApi = { module ="io.gitlab.arturbosch.detekt:detekt-api", version.ref = "detekt" } detektTest = { module ="io.gitlab.arturbosch.detekt:detekt-test", version.ref = "detekt" } junitApi = { module ="org.junit.jupiter:junit-jupiter-api", version.ref = "junit" } junitParams = { module ="org.junit.jupiter:junit-jupiter-params", version.ref = "junit" } junitEngine = { module ="org.junit.jupiter:junit-jupiter-engine", version.ref = "junit" } lint_api = { module = "com.android.tools.lint:lint-api", version.ref = "android_lint_api" } lint_checks = { module = "com.android.tools.lint:lint-checks", version.ref = "android_lint_api" } lint_tests = { module = "com.android.tools.lint:lint-tests", version.ref = "android_lint_api" } [plugins] android-application = { id = "com.android.application", version.ref = "android_gradle_plugin" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } androidx_benchmark = { id ="androidx.benchmark", version.ref = "androidx_benchmark" } androidx_safeargs = { id ="androidx.navigation.safeargs.kotlin", version.ref = "androidx_navigation" } osslicenses = { id ="com.google.android.gms.oss-licenses-plugin", version.ref = "osslicenses_plugin" } kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } play-publisher = { id = "com.github.triplet.play", version.ref = "gradle_play_publisher" }