chore(build-logic): add missing dependencies to version catalog and complete build logic setup (#1894)

This commit is contained in:
Hekmatullah 2025-07-29 16:50:16 +01:00 committed by GitHub
parent fd3fc4c302
commit a97853fd62
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
52 changed files with 1057 additions and 339 deletions

View File

@ -29,6 +29,8 @@ dependencies {
compileOnly(libs.ktlint.gradlePlugin)
compileOnly(libs.spotless.gradle)
implementation(libs.truth)
compileOnly(libs.firebase.crashlytics.gradlePlugin)
compileOnly(libs.firebase.performance.gradlePlugin)
}
tasks {
@ -55,18 +57,29 @@ gradlePlugin {
implementationClass = "AndroidApplicationFlavorsConventionPlugin"
}
register("androidFirebase") {
id = "org.convention.android.application.firebase"
implementationClass = "AndroidApplicationFirebaseConventionPlugin"
}
register("androidLint") {
id = "org.convention.android.application.lint"
implementationClass = "AndroidLintConventionPlugin"
}
// KMP & CMP Plugins
register("cmpFeature") {
id = "mifospay.cmp.feature"
id = "org.convention.cmp.feature"
implementationClass = "CMPFeatureConventionPlugin"
}
register("kmpKoin") {
id = "mifospay.kmp.koin"
id = "org.convention.kmp.koin"
implementationClass = "KMPKoinConventionPlugin"
}
register("kmpLibrary") {
id = "mifospay.kmp.library"
id = "org.convention.kmp.library"
implementationClass = "KMPLibraryConventionPlugin"
}

View File

@ -6,6 +6,7 @@ import org.gradle.api.Project
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.getByType
import org.mifospay.configureBadgingTasks
import org.mifospay.configureGradleManagedDevices
import org.mifospay.configureKotlinAndroid
import org.mifospay.configurePrintApksTask
@ -19,6 +20,8 @@ class AndroidApplicationConventionPlugin : Plugin<Project> {
apply("mifos.detekt.plugin")
apply("mifos.spotless.plugin")
apply("mifos.git.hooks")
apply("org.convention.android.application.lint")
apply("org.convention.android.application.firebase")
}
extensions.configure<ApplicationExtension> {
@ -26,6 +29,7 @@ class AndroidApplicationConventionPlugin : Plugin<Project> {
defaultConfig.targetSdk = 34
@Suppress("UnstableApiUsage")
testOptions.animationsDisabled = true
configureGradleManagedDevices(this)
}
extensions.configure<ApplicationAndroidComponentsExtension> {
configurePrintApksTask(this)

View File

@ -0,0 +1,51 @@
/*
* Copyright 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import com.android.build.api.dsl.ApplicationExtension
import com.google.firebase.crashlytics.buildtools.gradle.CrashlyticsExtension
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.apply
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.dependencies
import org.mifospay.libs
class AndroidApplicationFirebaseConventionPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
apply(plugin = "com.google.gms.google-services")
apply(plugin = "com.google.firebase.crashlytics")
dependencies {
val bom = libs.findLibrary("firebase-bom").get()
"implementation"(platform(bom))
"implementation"(libs.findLibrary("firebase.analytics").get())
"implementation"(libs.findLibrary("firebase.crashlytics").get())
}
extensions.configure<ApplicationExtension> {
buildTypes.configureEach {
// Disable the Crashlytics mapping file upload. This feature should only be
// enabled if a Firebase backend is available and configured in
// google-services.json.
configure<CrashlyticsExtension> {
mappingFileUploadEnabled = true
}
}
}
}
}
}

View File

@ -0,0 +1,49 @@
/*
* Copyright 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import com.android.build.api.dsl.ApplicationExtension
import com.android.build.api.dsl.LibraryExtension
import com.android.build.api.dsl.Lint
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.kotlin.dsl.apply
import org.gradle.kotlin.dsl.configure
class AndroidLintConventionPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
when {
pluginManager.hasPlugin("com.android.application") ->
configure<ApplicationExtension> { lint(Lint::configure) }
pluginManager.hasPlugin("com.android.library") ->
configure<LibraryExtension> { lint(Lint::configure) }
else -> {
apply(plugin = "com.android.lint")
configure<Lint>(Lint::configure)
}
}
}
}
}
private fun Lint.configure() {
xmlReport = true
sarifReport = true
checkDependencies = true
disable += "GradleDependency"
}

View File

@ -8,8 +8,8 @@ class CMPFeatureConventionPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
pluginManager.apply {
apply("mifospay.kmp.library")
apply("mifospay.kmp.koin")
apply("org.convention.kmp.library")
apply("org.convention.kmp.koin")
apply("org.jetbrains.kotlin.plugin.compose")
apply("org.jetbrains.compose")
apply("org.jetbrains.kotlin.plugin.serialization")

View File

@ -0,0 +1,47 @@
import com.android.build.api.instrumentation.AsmClassVisitorFactory
import com.android.build.api.instrumentation.ClassContext
import com.android.build.api.instrumentation.ClassData
import com.android.build.api.instrumentation.InstrumentationParameters
import org.gradle.api.provider.SetProperty
import org.gradle.api.tasks.Input
import org.objectweb.asm.ClassVisitor
import org.objectweb.asm.FieldVisitor
class FieldSkippingClassVisitor(
apiVersion: Int,
nextClassVisitor: ClassVisitor,
) : ClassVisitor(apiVersion, nextClassVisitor) {
// Returning null from this method will cause the ClassVisitor to strip all fields from the class.
override fun visitField(
access: Int,
name: String?,
descriptor: String?,
signature: String?,
value: Any?
): FieldVisitor? = null
abstract class Factory : AsmClassVisitorFactory<Parameters> {
private val excludedClasses
get() = parameters.get().classes.get()
override fun isInstrumentable(classData: ClassData): Boolean =
classData.className in excludedClasses
override fun createClassVisitor(
classContext: ClassContext,
nextClassVisitor: ClassVisitor,
): ClassVisitor {
return FieldSkippingClassVisitor(
apiVersion = instrumentationContext.apiVersion.get(),
nextClassVisitor = nextClassVisitor,
)
}
}
abstract class Parameters : InstrumentationParameters {
@get:Input
abstract val classes: SetProperty<String>
}
}

View File

@ -15,7 +15,7 @@ class KMPLibraryConventionPlugin: Plugin<Project> {
with(pluginManager) {
apply("com.android.library")
apply("org.jetbrains.kotlin.multiplatform")
apply("mifospay.kmp.koin")
apply("org.convention.kmp.koin")
apply("mifos.detekt.plugin")
apply("mifos.spotless.plugin")
}

View File

@ -3,7 +3,7 @@ package org.mifospay
/**
* This is shared between :app and :benchmarks module to provide configurations type safety.
*/
enum class MifosBuildType(val applicationIdSuffix: String? = null) {
enum class AppBuildType(val applicationIdSuffix: String? = null) {
DEBUG(".debug"),
RELEASE,
}

View File

@ -14,19 +14,19 @@ enum class FlavorDimension {
// purposes, or from a production backend server which supplies up-to-date, real content.
// These two product flavors reflect this behaviour.
@Suppress("EnumEntryName")
enum class MifosFlavor(val dimension: FlavorDimension, val applicationIdSuffix: String? = null) {
enum class AppFlavor(val dimension: FlavorDimension, val applicationIdSuffix: String? = null) {
demo(FlavorDimension.contentType, applicationIdSuffix = ".demo"),
prod(FlavorDimension.contentType)
}
fun configureFlavors(
commonExtension: CommonExtension<*, *, *, *, *, *>,
flavorConfigurationBlock: ProductFlavor.(flavor: MifosFlavor) -> Unit = {}
flavorConfigurationBlock: ProductFlavor.(flavor: AppFlavor) -> Unit = {}
) {
commonExtension.apply {
flavorDimensions += FlavorDimension.contentType.name
productFlavors {
MifosFlavor.values().forEach {
AppFlavor.values().forEach {
create(it.name) {
dimension = it.dimension.name
flavorConfigurationBlock(this, it)

View File

@ -0,0 +1,70 @@
/*
* Copyright 2023 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.mifospay
import com.android.build.api.dsl.CommonExtension
import com.android.build.api.dsl.ManagedVirtualDevice
import org.gradle.kotlin.dsl.get
import org.gradle.kotlin.dsl.invoke
/**
* Configure project for Gradle managed devices
*/
internal fun configureGradleManagedDevices(
commonExtension: CommonExtension<*, *, *, *, *, *>,
) {
val pixel4 = DeviceConfig("Pixel 4", 30, "aosp-atd")
val pixel6 = DeviceConfig("Pixel 6", 31, "aosp")
val pixelC = DeviceConfig("Pixel C", 30, "aosp-atd")
val localDevices = listOf(pixel4, pixel6, pixelC)
val ciDevices = listOf(pixel4, pixelC)
commonExtension.testOptions {
managedDevices {
allDevices {
localDevices.forEach { deviceConfig ->
maybeCreate(deviceConfig.taskName, ManagedVirtualDevice::class.java).apply {
device = deviceConfig.device
apiLevel = deviceConfig.apiLevel
systemImageSource = deviceConfig.systemImageSource
}
}
}
groups {
maybeCreate("ci").apply {
ciDevices.forEach { deviceConfig ->
targetDevices.add(allDevices[deviceConfig.taskName])
}
}
}
}
}
}
private data class DeviceConfig(
val device: String,
val apiLevel: Int,
val systemImageSource: String,
) {
val taskName = buildString {
append(device.lowercase().replace(" ", ""))
append("api")
append(apiLevel.toString())
append(systemImageSource.replace("-", ""))
}
}

View File

@ -0,0 +1,179 @@
/**
* Kotlin Multiplatform project hierarchy template configuration.
*
* This file defines a structured hierarchy for organizing source sets in Kotlin Multiplatform
* projects. It establishes a logical grouping of platform targets that enables efficient code
* sharing across platforms with similar characteristics.
*
* The hierarchy template creates the following logical groupings:
* - `common`: Base shared code for all platforms
* - `nonAndroid`: Code shared between JVM, JS, and native platforms, excluding Android
* - `jsCommon`: Code shared between JavaScript and WebAssembly JavaScript targets
* - `nonJsCommon`: Code shared between JVM and native platforms, excluding JS platforms
* - `jvmCommon`: Code shared between Android and JVM targets
* - `nonJvmCommon`: Code shared between JS and native platforms, excluding JVM platforms
* - `native`: Code shared across all native platforms
* - `apple`: Code shared across Apple platforms (iOS, macOS)
* - `ios`: iOS-specific code
* - `macos`: macOS-specific code
* - `nonNative`: Code shared between JS and JVM platforms
*
* This template applies to both main and test source sets, establishing a consistent
* structure throughout the project.
*
* Note: This implementation uses experimental Kotlin Gradle plugin APIs and may be subject
* to change in future Kotlin releases.
*/
@file:OptIn(ExperimentalKotlinGradlePluginApi::class)
package org.mifospay
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
import org.jetbrains.kotlin.gradle.plugin.KotlinHierarchyBuilder
import org.jetbrains.kotlin.gradle.plugin.KotlinHierarchyTemplate
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetTree
/**
* Defines the hierarchical structure for source set organization.
*
* This template establishes the relationships between different platform targets,
* creating logical groupings based on platform similarities to facilitate code sharing.
*/
private val hierarchyTemplate = KotlinHierarchyTemplate {
withSourceSetTree(
KotlinSourceSetTree.main,
KotlinSourceSetTree.test,
)
common {
withCompilations { true }
groupNonAndroid()
groupJsCommon()
groupNonJsCommon()
groupJvmCommon()
groupNonJvmCommon()
groupNative()
groupNonNative()
groupJvmJsCommon()
groupMobile()
}
}
/**
* Creates a group of non-Android platforms (JVM, JS, and native).
*/
private fun KotlinHierarchyBuilder.groupNonAndroid() {
group("nonAndroid") {
withJvm()
groupJsCommon()
groupNative()
}
}
/**
* Creates a group of JavaScript-related platforms (JS and WebAssembly JS).
*/
private fun KotlinHierarchyBuilder.groupJsCommon() {
group("jsCommon") {
withJs()
withWasmJs()
}
}
/**
* Creates a group of non-JavaScript platforms (JVM-based and native).
*/
private fun KotlinHierarchyBuilder.groupNonJsCommon() {
group("nonJsCommon") {
groupJvmCommon()
groupNative()
}
}
/**
* Creates a group of JVM-based platforms (Android and JVM).
*/
private fun KotlinHierarchyBuilder.groupJvmCommon() {
group("jvmCommon") {
withAndroidTarget()
withJvm()
}
}
/**
* Creates a group of non-JVM platforms (JavaScript and native).
*/
private fun KotlinHierarchyBuilder.groupNonJvmCommon() {
group("nonJvmCommon") {
groupJsCommon()
groupNative()
}
}
/**
* Creates a group of JVM, JS platforms (JavaScript and JVM).
*/
private fun KotlinHierarchyBuilder.groupJvmJsCommon() {
group("jvmJsCommon") {
groupJsCommon()
withJvm()
}
}
/**
* Creates a hierarchical group of native platforms with subgroups for Apple platforms.
*/
private fun KotlinHierarchyBuilder.groupNative() {
group("native") {
withNative()
group("apple") {
withApple()
group("ios") {
withIos()
}
group("macos") {
withMacos()
}
}
}
}
/**
* Creates a group of non-native platforms (JavaScript and JVM-based).
*/
private fun KotlinHierarchyBuilder.groupNonNative() {
group("nonNative") {
groupJsCommon()
groupJvmCommon()
}
}
private fun KotlinHierarchyBuilder.groupMobile() {
group("mobile") {
withAndroidTarget()
withApple()
}
}
/**
* Applies the predefined hierarchy template to a Kotlin Multiplatform project.
*
* This extension function should be called within the `kotlin` block of a Multiplatform
* project's build script to establish the source set hierarchy defined in this file.
*
* Example usage:
* ```
* kotlin {
* applyProjectHierarchyTemplate()
* // Configure targets...
* }
* ```
*/
fun KotlinMultiplatformExtension.applyProjectHierarchyTemplate() {
applyHierarchyTemplate(hierarchyTemplate)
}

View File

@ -0,0 +1,134 @@
/*
* Copyright 2024 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.mifospay
import com.android.build.api.artifact.ScopedArtifact
import com.android.build.api.variant.AndroidComponentsExtension
import com.android.build.api.variant.ScopedArtifacts
import com.android.build.api.variant.SourceDirectories
import org.gradle.api.Project
import org.gradle.api.file.Directory
import org.gradle.api.file.RegularFile
import org.gradle.api.provider.ListProperty
import org.gradle.api.provider.Provider
import org.gradle.api.tasks.testing.Test
import org.gradle.kotlin.dsl.assign
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.register
import org.gradle.kotlin.dsl.withType
import org.gradle.testing.jacoco.plugins.JacocoPluginExtension
import org.gradle.testing.jacoco.plugins.JacocoTaskExtension
import org.gradle.testing.jacoco.tasks.JacocoReport
import java.util.Locale
private val coverageExclusions = listOf(
// Android
"**/R.class",
"**/R\$*.class",
"**/BuildConfig.*",
"**/Manifest*.*",
"**/*_Hilt*.class",
"**/Hilt_*.class",
)
private fun String.capitalize() = replaceFirstChar {
if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString()
}
/**
* Creates a new task that generates a combined coverage report with data from local and
* instrumented tests.
*
* `create{variant}CombinedCoverageReport`
*
* Note that coverage data must exist before running the task. This allows us to run device
* tests on CI using a different Github Action or an external device farm.
*/
internal fun Project.configureJacoco(
androidComponentsExtension: AndroidComponentsExtension<*, *, *>,
) {
configure<JacocoPluginExtension> {
toolVersion = libs.findVersion("jacoco").get().toString()
}
androidComponentsExtension.onVariants { variant ->
val myObjFactory = project.objects
val buildDir = layout.buildDirectory.get().asFile
val allJars: ListProperty<RegularFile> = myObjFactory.listProperty(RegularFile::class.java)
val allDirectories: ListProperty<Directory> =
myObjFactory.listProperty(Directory::class.java)
val reportTask =
tasks.register(
"create${variant.name.capitalize()}CombinedCoverageReport",
JacocoReport::class,
) {
classDirectories.setFrom(
allJars,
allDirectories.map { dirs ->
dirs.map { dir ->
myObjFactory.fileTree().setDir(dir).exclude(coverageExclusions)
}
},
)
reports {
xml.required = true
html.required = true
}
fun SourceDirectories.Flat?.toFilePaths(): Provider<List<String>> = this
?.all
?.map { directories -> directories.map { it.asFile.path } }
?: provider { emptyList() }
sourceDirectories.setFrom(
files(
variant.sources.java.toFilePaths(),
variant.sources.kotlin.toFilePaths()
),
)
executionData.setFrom(
project.fileTree("$buildDir/outputs/unit_test_code_coverage/${variant.name}UnitTest")
.matching { include("**/*.exec") },
project.fileTree("$buildDir/outputs/code_coverage/${variant.name}AndroidTest")
.matching { include("**/*.ec") },
)
}
variant.artifacts.forScope(ScopedArtifacts.Scope.PROJECT)
.use(reportTask)
.toGet(
ScopedArtifact.CLASSES,
{ _ -> allJars },
{ _ -> allDirectories },
)
}
tasks.withType<Test>().configureEach {
configure<JacocoTaskExtension> {
// Required for JaCoCo + Robolectric
// https://github.com/robolectric/robolectric/issues/2230
isIncludeNoLocationClasses = true
// Required for JDK 11 with the above
// https://github.com/gradle/gradle/issues/5184#issuecomment-391982009
excludes = listOf("jdk.internal.*")
}
}
}

View File

@ -9,7 +9,7 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
@OptIn(ExperimentalWasmDsl::class, ExperimentalKotlinGradlePluginApi::class)
internal fun Project.configureKotlinMultiplatform() {
extensions.configure<KotlinMultiplatformExtension> {
applyDefaultHierarchyTemplate()
applyProjectHierarchyTemplate()
jvm("desktop")
androidTarget()

View File

@ -13,8 +13,8 @@ call :run_gradle_task "check -p build-logic"
call :run_gradle_task "spotlessApply --no-configuration-cache"
call :run_gradle_task "dependencyGuardBaseline"
call :run_gradle_task "detekt"
call :run_gradle_task ":mifospay-android:build"
call :run_gradle_task ":mifospay-android:updateProdReleaseBadging"
call :run_gradle_task ":cmp-android:build"
call :run_gradle_task ":cmp-android:updateProdReleaseBadging"
echo All checks and tests completed successfully.
exit /b 0

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
import com.google.gms.googleservices.GoogleServicesPlugin.GoogleServicesPluginConfig
import org.mifospay.MifosBuildType
import org.mifospay.AppBuildType
import org.mifospay.dynamicVersion
plugins {
@ -45,14 +45,14 @@ android {
buildTypes {
debug {
applicationIdSuffix = MifosBuildType.DEBUG.applicationIdSuffix
applicationIdSuffix = AppBuildType.DEBUG.applicationIdSuffix
}
// Disabling proguard for now until
// https://github.com/openMF/mobile-wallet/issues/1815 this issue is resolved
release {
isMinifyEnabled = false
applicationIdSuffix = MifosBuildType.RELEASE.applicationIdSuffix
applicationIdSuffix = AppBuildType.RELEASE.applicationIdSuffix
isShrinkResources = false
isDebuggable = false
isJniDebuggable = false

View File

@ -230,6 +230,384 @@
| +--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 -> 2.1.21 (c)
| \--- androidx.lifecycle:lifecycle-common-java8:2.9.2 (c)
+--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
+--- com.google.firebase:firebase-bom:33.16.0
| +--- com.google.firebase:firebase-analytics-ktx:22.5.0 (c)
| +--- com.google.firebase:firebase-crashlytics-ktx:19.4.4 (c)
| +--- com.google.firebase:firebase-analytics:22.5.0 (c)
| +--- com.google.firebase:firebase-common:21.0.0 (c)
| +--- com.google.firebase:firebase-common-ktx:21.0.0 (c)
| +--- com.google.firebase:firebase-crashlytics:19.4.4 (c)
| +--- com.google.firebase:firebase-encoders:17.0.0 (c)
| \--- com.google.firebase:firebase-installations:18.0.0 (c)
+--- com.google.firebase:firebase-analytics-ktx -> 22.5.0
| +--- com.google.firebase:firebase-analytics:22.5.0
| | +--- com.google.android.gms:play-services-measurement:22.5.0
| | | +--- androidx.collection:collection:1.0.0 -> 1.5.0 (*)
| | | +--- androidx.legacy:legacy-support-core-utils:1.0.0
| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.9.1 (*)
| | | | +--- androidx.core:core:1.0.0 -> 1.16.0
| | | | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
| | | | | +--- androidx.annotation:annotation-experimental:1.4.1
| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.1.21 (*)
| | | | | +--- androidx.collection:collection:1.4.2 -> 1.5.0 (*)
| | | | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*)
| | | | | +--- androidx.core:core-viewtree:1.0.0 (*)
| | | | | +--- androidx.interpolator:interpolator:1.0.0
| | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.9.1 (*)
| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 -> 2.9.2 (*)
| | | | | +--- androidx.tracing:tracing:1.2.0 -> 1.3.0 (*)
| | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1
| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
| | | | | | \--- androidx.collection:collection:1.0.0 -> 1.5.0 (*)
| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
| | | | | +--- org.jspecify:jspecify:1.0.0
| | | | | +--- androidx.core:core-ktx:1.16.0 (c)
| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (c)
| | | | +--- androidx.documentfile:documentfile:1.0.0 -> 1.1.0
| | | | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
| | | | | +--- androidx.core:core:1.7.0 -> 1.16.0 (*)
| | | | | \--- org.jspecify:jspecify:1.0.0
| | | | +--- androidx.loader:loader:1.0.0 -> 1.1.0
| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.9.1 (*)
| | | | | +--- androidx.core:core:1.0.0 -> 1.16.0 (*)
| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.0.0 -> 2.9.2 (*)
| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.9.2 (*)
| | | | | \--- androidx.collection:collection:1.0.0 -> 1.5.0 (*)
| | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0
| | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.9.1 (*)
| | | | \--- androidx.print:print:1.0.0
| | | | \--- androidx.annotation:annotation:1.0.0 -> 1.9.1 (*)
| | | +--- com.google.android.gms:play-services-ads-identifier:18.0.0
| | | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.5.0
| | | | +--- androidx.collection:collection:1.0.0 -> 1.5.0 (*)
| | | | +--- androidx.core:core:1.2.0 -> 1.16.0 (*)
| | | | \--- androidx.fragment:fragment:1.1.0 -> 1.8.8
| | | | +--- androidx.activity:activity:1.8.1 -> 1.10.1
| | | | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
| | | | | +--- androidx.core:core-ktx:1.13.0 -> 1.16.0
| | | | | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
| | | | | | +--- androidx.core:core:1.16.0 (*)
| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
| | | | | | +--- androidx.core:core:1.16.0 (c)
| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (c)
| | | | | +--- androidx.core:core-viewtree:1.0.0 (*)
| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.1 -> 2.9.2 (*)
| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.9.2 (*)
| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.9.2 (*)
| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.9.2
| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.9.2
| | | | | | +--- androidx.annotation:annotation:1.9.1 (*)
| | | | | | +--- androidx.core:core-ktx:1.2.0 -> 1.16.0 (*)
| | | | | | +--- androidx.lifecycle:lifecycle-common:2.9.2 (*)
| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.9.2 (*)
| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.9.2 (*)
| | | | | | +--- androidx.savedstate:savedstate:1.3.1
| | | | | | | \--- androidx.savedstate:savedstate-android:1.3.1
| | | | | | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
| | | | | | | +--- androidx.annotation:annotation:1.9.1 (*)
| | | | | | | +--- androidx.core:core-ktx:1.13.1 -> 1.16.0 (*)
| | | | | | | +--- androidx.core:core-viewtree:1.0.0 (*)
| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.9.2 (*)
| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 -> 1.10.2 (*)
| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0
| | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.0
| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.0
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.0 (c)
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0 (c)
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.0 (c)
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0 (c)
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.0 (c)
| | | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.0 (c)
| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.1.21 (*)
| | | | | | | +--- androidx.savedstate:savedstate-compose:1.3.1 (c)
| | | | | | | +--- androidx.savedstate:savedstate-ktx:1.3.1 (c)
| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 -> 2.1.21 (c)
| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 -> 1.10.2 (*)
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 -> 1.10.2 (*)
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0 (*)
| | | | | | +--- androidx.lifecycle:lifecycle-common:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-process:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-service:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.2 (c)
| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 -> 2.1.21 (c)
| | | | | +--- androidx.profileinstaller:profileinstaller:1.4.0 -> 1.4.1 (*)
| | | | | +--- androidx.savedstate:savedstate:1.2.1 -> 1.3.1 (*)
| | | | | +--- androidx.tracing:tracing:1.0.0 -> 1.3.0 (*)
| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
| | | | | +--- androidx.activity:activity-compose:1.10.1 (c)
| | | | | +--- androidx.activity:activity-ktx:1.10.1 (c)
| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (c)
| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
| | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*)
| | | | +--- androidx.collection:collection:1.1.0 -> 1.5.0 (*)
| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.16.0 (*)
| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.1 -> 2.9.2 (*)
| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.9.2 (*)
| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.9.2 (*)
| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.9.2 (*)
| | | | +--- androidx.loader:loader:1.0.0 -> 1.1.0 (*)
| | | | +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.1 (*)
| | | | +--- androidx.savedstate:savedstate:1.2.1 -> 1.3.1 (*)
| | | | +--- androidx.viewpager:viewpager:1.0.0
| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.9.1 (*)
| | | | | +--- androidx.core:core:1.0.0 -> 1.16.0 (*)
| | | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0
| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
| | | | | +--- androidx.core:core:1.3.0 -> 1.16.0 (*)
| | | | | \--- androidx.collection:collection:1.1.0 -> 1.5.0 (*)
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (*)
| | | | \--- androidx.fragment:fragment-ktx:1.8.8 (c)
| | | +--- com.google.android.gms:play-services-basement:18.5.0 (*)
| | | +--- com.google.android.gms:play-services-measurement-base:22.5.0
| | | | \--- com.google.android.gms:play-services-basement:18.5.0 (*)
| | | +--- com.google.android.gms:play-services-measurement-impl:22.5.0
| | | | +--- androidx.collection:collection:1.0.0 -> 1.5.0 (*)
| | | | +--- androidx.core:core:1.9.0 -> 1.16.0 (*)
| | | | +--- androidx.privacysandbox.ads:ads-adservices:1.1.0-beta11
| | | | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
| | | | | +--- androidx.core:core-ktx:1.8.0 -> 1.16.0 (*)
| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (*)
| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
| | | | | \--- androidx.privacysandbox.ads:ads-adservices-java:1.1.0-beta11 (c)
| | | | +--- androidx.privacysandbox.ads:ads-adservices-java:1.1.0-beta11
| | | | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
| | | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*)
| | | | | +--- androidx.core:core-ktx:1.8.0 -> 1.16.0 (*)
| | | | | +--- androidx.privacysandbox.ads:ads-adservices:1.1.0-beta11 (*)
| | | | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava
| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (*)
| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
| | | | | \--- androidx.privacysandbox.ads:ads-adservices:1.1.0-beta11 (c)
| | | | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 (*)
| | | | +--- com.google.android.gms:play-services-base:18.5.0
| | | | | +--- androidx.collection:collection:1.0.0 -> 1.5.0 (*)
| | | | | +--- androidx.core:core:1.2.0 -> 1.16.0 (*)
| | | | | +--- androidx.fragment:fragment:1.0.0 -> 1.8.8 (*)
| | | | | +--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
| | | | | \--- com.google.android.gms:play-services-tasks:18.2.0
| | | | | \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
| | | | +--- com.google.android.gms:play-services-basement:18.5.0 (*)
| | | | +--- com.google.android.gms:play-services-measurement-base:22.5.0 (*)
| | | | +--- com.google.android.gms:play-services-stats:17.0.2
| | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*)
| | | | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.5.0 (*)
| | | | +--- com.google.android.gms:play-services-tasks:18.2.0 (*)
| | | | \--- com.google.guava:guava:31.1-android -> 33.4.8-android
| | | | +--- com.google.guava:failureaccess:1.0.3
| | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
| | | | +--- org.jspecify:jspecify:1.0.0
| | | | +--- com.google.errorprone:error_prone_annotations:2.36.0
| | | | \--- com.google.j2objc:j2objc-annotations:3.0.0
| | | +--- com.google.android.gms:play-services-measurement-sdk-api:22.5.0
| | | | +--- com.google.android.gms:play-services-basement:18.5.0 (*)
| | | | \--- com.google.android.gms:play-services-measurement-base:22.5.0 (*)
| | | \--- com.google.android.gms:play-services-stats:17.0.2 (*)
| | +--- com.google.android.gms:play-services-measurement-api:22.5.0
| | | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 (*)
| | | +--- com.google.android.gms:play-services-basement:18.5.0 (*)
| | | +--- com.google.android.gms:play-services-measurement-base:22.5.0 (*)
| | | +--- com.google.android.gms:play-services-measurement-sdk-api:22.5.0 (*)
| | | +--- com.google.android.gms:play-services-tasks:18.2.0 (*)
| | | +--- com.google.firebase:firebase-common:21.0.0
| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4 -> 1.10.2
| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2 (*)
| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2 (*)
| | | | | +--- com.google.android.gms:play-services-tasks:16.0.1 -> 18.2.0 (*)
| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.1.21 (*)
| | | | +--- com.google.firebase:firebase-components:18.0.0
| | | | | +--- com.google.firebase:firebase-annotations:16.2.0
| | | | | | \--- javax.inject:javax.inject:1
| | | | | +--- androidx.annotation:annotation:1.5.0 -> 1.9.1 (*)
| | | | | \--- com.google.errorprone:error_prone_annotations:2.26.0 -> 2.36.0
| | | | +--- com.google.firebase:firebase-annotations:16.2.0 (*)
| | | | +--- androidx.annotation:annotation:1.5.0 -> 1.9.1 (*)
| | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*)
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (*)
| | | | +--- com.google.android.gms:play-services-basement:18.3.0 -> 18.5.0 (*)
| | | | \--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*)
| | | +--- com.google.firebase:firebase-common-ktx:21.0.0
| | | | +--- com.google.firebase:firebase-common:21.0.0 (*)
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22
| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (*)
| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.0
| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.0 -> 2.1.21 (*)
| | | | +--- com.google.firebase:firebase-components:18.0.0 (*)
| | | | \--- com.google.firebase:firebase-annotations:16.2.0 (*)
| | | +--- com.google.firebase:firebase-components:18.0.0 (*)
| | | +--- com.google.firebase:firebase-installations:17.0.1 -> 18.0.0
| | | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*)
| | | | +--- com.google.firebase:firebase-annotations:16.2.0 (*)
| | | | +--- com.google.firebase:firebase-common:21.0.0 (*)
| | | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*)
| | | | +--- com.google.firebase:firebase-components:18.0.0 (*)
| | | | +--- com.google.firebase:firebase-installations-interop:17.1.1 -> 17.2.0
| | | | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*)
| | | | | \--- com.google.firebase:firebase-annotations:16.2.0 (*)
| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (*)
| | | +--- com.google.firebase:firebase-installations-interop:17.0.0 -> 17.2.0 (*)
| | | +--- com.google.firebase:firebase-measurement-connector:19.0.0 -> 20.0.1
| | | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.5.0 (*)
| | | | \--- com.google.firebase:firebase-annotations:16.0.0 -> 16.2.0 (*)
| | | +--- com.google.guava:guava:31.1-android -> 33.4.8-android (*)
| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.0 -> 2.1.21 (*)
| | \--- com.google.android.gms:play-services-measurement-sdk:22.5.0
| | +--- androidx.collection:collection:1.0.0 -> 1.5.0 (*)
| | +--- com.google.android.gms:play-services-basement:18.5.0 (*)
| | +--- com.google.android.gms:play-services-measurement-base:22.5.0 (*)
| | \--- com.google.android.gms:play-services-measurement-impl:22.5.0 (*)
| +--- com.google.firebase:firebase-common:21.0.0 (*)
| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*)
| +--- com.google.firebase:firebase-components:18.0.0 (*)
| \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.1.21 (*)
+--- com.google.firebase:firebase-crashlytics-ktx -> 19.4.4
| +--- com.google.firebase:firebase-crashlytics:19.4.4
| | +--- com.google.firebase:firebase-sessions:2.1.2
| | | +--- com.google.firebase:firebase-common:21.0.0 (*)
| | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*)
| | | +--- com.google.firebase:firebase-components:18.0.0 (*)
| | | +--- com.google.firebase:firebase-installations-interop:17.2.0 (*)
| | | +--- com.google.firebase:firebase-annotations:16.2.0 (*)
| | | +--- com.google.firebase:firebase-encoders:17.0.0
| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
| | | +--- com.google.firebase:firebase-encoders-json:18.0.1
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.22 (*)
| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
| | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*)
| | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*)
| | | +--- com.google.firebase:firebase-installations:18.0.0 (*)
| | | +--- com.google.firebase:firebase-datatransport:19.0.0
| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
| | | | +--- com.google.android.datatransport:transport-api:3.1.0 -> 3.2.0
| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
| | | | +--- com.google.android.datatransport:transport-backend-cct:3.2.0 -> 3.3.0
| | | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*)
| | | | | +--- com.google.android.datatransport:transport-runtime:3.3.0
| | | | | | +--- com.google.android.datatransport:transport-api:3.2.0 (*)
| | | | | | +--- androidx.annotation:annotation:1.3.0 -> 1.9.1 (*)
| | | | | | +--- javax.inject:javax.inject:1
| | | | | | +--- com.google.firebase:firebase-encoders:17.0.0 (*)
| | | | | | \--- com.google.firebase:firebase-encoders-proto:16.0.0
| | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
| | | | | | \--- com.google.firebase:firebase-encoders:17.0.0 (*)
| | | | | +--- com.google.firebase:firebase-encoders:17.0.0 (*)
| | | | | +--- com.google.firebase:firebase-encoders-json:18.0.0 -> 18.0.1 (*)
| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
| | | | +--- com.google.android.datatransport:transport-runtime:3.2.0 -> 3.3.0 (*)
| | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*)
| | | +--- com.google.android.datatransport:transport-api:3.2.0 (*)
| | | +--- javax.inject:javax.inject:1
| | | +--- androidx.annotation:annotation:1.5.0 -> 1.9.1 (*)
| | | \--- androidx.datastore:datastore-preferences:1.1.3
| | | \--- androidx.datastore:datastore-preferences-android:1.1.3
| | | +--- androidx.datastore:datastore:1.1.3
| | | | \--- androidx.datastore:datastore-android:1.1.3
| | | | +--- androidx.annotation:annotation:1.2.0 -> 1.9.1 (*)
| | | | +--- androidx.datastore:datastore-core:1.1.3
| | | | | \--- androidx.datastore:datastore-core-android:1.1.3
| | | | | +--- androidx.annotation:annotation:1.7.0 -> 1.9.1 (*)
| | | | | +--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.9.22 -> 2.1.20
| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
| | | | | | \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.20
| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (*)
| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
| | | | | +--- androidx.datastore:datastore:1.1.3 (c)
| | | | | +--- androidx.datastore:datastore-core-okio:1.1.3 (c)
| | | | | +--- androidx.datastore:datastore-preferences:1.1.3 (c)
| | | | | +--- androidx.datastore:datastore-preferences-core:1.1.3 (c)
| | | | | +--- androidx.datastore:datastore-preferences-external-protobuf:1.1.3 (c)
| | | | | \--- androidx.datastore:datastore-preferences-proto:1.1.3 (c)
| | | | +--- androidx.datastore:datastore-core-okio:1.1.3
| | | | | \--- androidx.datastore:datastore-core-okio-jvm:1.1.3
| | | | | +--- androidx.datastore:datastore-core:1.1.3 (*)
| | | | | +--- com.squareup.okio:okio:3.4.0 -> 3.15.0
| | | | | | \--- com.squareup.okio:okio-jvm:3.15.0
| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.21 (*)
| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (*)
| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
| | | | | +--- androidx.datastore:datastore:1.1.3 (c)
| | | | | +--- androidx.datastore:datastore-core:1.1.3 (c)
| | | | | +--- androidx.datastore:datastore-preferences:1.1.3 (c)
| | | | | +--- androidx.datastore:datastore-preferences-core:1.1.3 (c)
| | | | | +--- androidx.datastore:datastore-preferences-external-protobuf:1.1.3 (c)
| | | | | \--- androidx.datastore:datastore-preferences-proto:1.1.3 (c)
| | | | +--- com.squareup.okio:okio:3.4.0 -> 3.15.0 (*)
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (*)
| | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
| | | | +--- androidx.datastore:datastore-core:1.1.3 (c)
| | | | +--- androidx.datastore:datastore-core-okio:1.1.3 (c)
| | | | +--- androidx.datastore:datastore-preferences:1.1.3 (c)
| | | | +--- androidx.datastore:datastore-preferences-core:1.1.3 (c)
| | | | +--- androidx.datastore:datastore-preferences-proto:1.1.3 (c)
| | | | \--- androidx.datastore:datastore-preferences-external-protobuf:1.1.3 (c)
| | | +--- androidx.datastore:datastore-preferences-core:1.1.3
| | | | \--- androidx.datastore:datastore-preferences-core-jvm:1.1.3
| | | | +--- androidx.datastore:datastore-core:1.1.3 (*)
| | | | +--- androidx.datastore:datastore-core-okio:1.1.3 (*)
| | | | +--- androidx.datastore:datastore-preferences-proto:1.1.3
| | | | | +--- androidx.datastore:datastore-preferences-external-protobuf:1.1.3
| | | | | | +--- androidx.datastore:datastore:1.1.3 (c)
| | | | | | +--- androidx.datastore:datastore-core:1.1.3 (c)
| | | | | | +--- androidx.datastore:datastore-core-okio:1.1.3 (c)
| | | | | | +--- androidx.datastore:datastore-preferences:1.1.3 (c)
| | | | | | +--- androidx.datastore:datastore-preferences-core:1.1.3 (c)
| | | | | | \--- androidx.datastore:datastore-preferences-proto:1.1.3 (c)
| | | | | +--- androidx.datastore:datastore:1.1.3 (c)
| | | | | +--- androidx.datastore:datastore-core:1.1.3 (c)
| | | | | +--- androidx.datastore:datastore-core-okio:1.1.3 (c)
| | | | | +--- androidx.datastore:datastore-preferences:1.1.3 (c)
| | | | | +--- androidx.datastore:datastore-preferences-core:1.1.3 (c)
| | | | | \--- androidx.datastore:datastore-preferences-external-protobuf:1.1.3 (c)
| | | | +--- com.squareup.okio:okio:3.4.0 -> 3.15.0 (*)
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (*)
| | | | +--- androidx.datastore:datastore:1.1.3 (c)
| | | | +--- androidx.datastore:datastore-core:1.1.3 (c)
| | | | +--- androidx.datastore:datastore-core-okio:1.1.3 (c)
| | | | +--- androidx.datastore:datastore-preferences:1.1.3 (c)
| | | | +--- androidx.datastore:datastore-preferences-proto:1.1.3 (c)
| | | | \--- androidx.datastore:datastore-preferences-external-protobuf:1.1.3 (c)
| | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (*)
| | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
| | | +--- androidx.datastore:datastore:1.1.3 (c)
| | | +--- androidx.datastore:datastore-preferences-core:1.1.3 (c)
| | | +--- androidx.datastore:datastore-core:1.1.3 (c)
| | | +--- androidx.datastore:datastore-core-okio:1.1.3 (c)
| | | +--- androidx.datastore:datastore-preferences-proto:1.1.3 (c)
| | | \--- androidx.datastore:datastore-preferences-external-protobuf:1.1.3 (c)
| | +--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*)
| | +--- com.google.firebase:firebase-annotations:16.2.0 (*)
| | +--- com.google.firebase:firebase-common:21.0.0 (*)
| | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*)
| | +--- com.google.firebase:firebase-components:18.0.0 (*)
| | +--- com.google.firebase:firebase-config-interop:16.0.1
| | | +--- com.google.firebase:firebase-encoders-json:18.0.1 (*)
| | | \--- com.google.firebase:firebase-encoders:17.0.0 (*)
| | +--- com.google.firebase:firebase-encoders:17.0.0 (*)
| | +--- com.google.firebase:firebase-encoders-json:18.0.1 (*)
| | +--- com.google.firebase:firebase-installations:18.0.0 (*)
| | +--- com.google.firebase:firebase-installations-interop:17.2.0 (*)
| | +--- com.google.firebase:firebase-measurement-connector:20.0.1 (*)
| | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*)
| | +--- com.google.android.datatransport:transport-api:3.2.0 (*)
| | +--- com.google.android.datatransport:transport-backend-cct:3.3.0 (*)
| | +--- com.google.android.datatransport:transport-runtime:3.3.0 (*)
| | \--- androidx.annotation:annotation:1.5.0 -> 1.9.1 (*)
| +--- com.google.firebase:firebase-common:21.0.0 (*)
| +--- com.google.firebase:firebase-common-ktx:21.0.0 (*)
| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*)
| \--- com.google.firebase:firebase-components:18.0.0 (*)
+--- androidx.compose:compose-bom:2025.07.00
| +--- androidx.compose.material3:material3:1.3.2 (c)
| +--- androidx.compose.material3.adaptive:adaptive:1.1.0 (c)
@ -277,8 +655,7 @@
| +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
| +--- androidx.compose.runtime:runtime:1.8.3
| | \--- androidx.compose.runtime:runtime-android:1.8.3
| | +--- androidx.annotation:annotation-experimental:1.4.1
| | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.1.21 (*)
| | +--- androidx.annotation:annotation-experimental:1.4.1 (*)
| | +--- androidx.collection:collection:1.5.0 (*)
| | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
| | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.3 -> 1.10.2 (*)
@ -319,89 +696,7 @@
| | +--- androidx.compose.ui:ui:1.7.8 -> 1.8.3
| | | \--- androidx.compose.ui:ui-android:1.8.3
| | | +--- androidx.activity:activity-ktx:1.7.0 -> 1.10.1
| | | | +--- androidx.activity:activity:1.10.1
| | | | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
| | | | | +--- androidx.core:core-ktx:1.13.0 -> 1.16.0
| | | | | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
| | | | | | +--- androidx.core:core:1.16.0
| | | | | | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
| | | | | | | +--- androidx.annotation:annotation-experimental:1.4.1 (*)
| | | | | | | +--- androidx.collection:collection:1.4.2 -> 1.5.0 (*)
| | | | | | | +--- androidx.concurrent:concurrent-futures:1.0.0 -> 1.1.0 (*)
| | | | | | | +--- androidx.core:core-viewtree:1.0.0 (*)
| | | | | | | +--- androidx.interpolator:interpolator:1.0.0
| | | | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.9.1 (*)
| | | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.2 -> 2.9.2 (*)
| | | | | | | +--- androidx.tracing:tracing:1.2.0 -> 1.3.0 (*)
| | | | | | | +--- androidx.versionedparcelable:versionedparcelable:1.1.1
| | | | | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
| | | | | | | | \--- androidx.collection:collection:1.0.0 -> 1.5.0 (*)
| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
| | | | | | | +--- org.jspecify:jspecify:1.0.0
| | | | | | | +--- androidx.core:core-ktx:1.16.0 (c)
| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (c)
| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
| | | | | | +--- androidx.core:core:1.16.0 (c)
| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (c)
| | | | | +--- androidx.core:core-viewtree:1.0.0 (*)
| | | | | +--- androidx.lifecycle:lifecycle-common:2.6.1 -> 2.9.2 (*)
| | | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.9.2 (*)
| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.9.2 (*)
| | | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.9.2
| | | | | | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.9.2
| | | | | | +--- androidx.annotation:annotation:1.9.1 (*)
| | | | | | +--- androidx.core:core-ktx:1.2.0 -> 1.16.0 (*)
| | | | | | +--- androidx.lifecycle:lifecycle-common:2.9.2 (*)
| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.9.2 (*)
| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.9.2 (*)
| | | | | | +--- androidx.savedstate:savedstate:1.3.1
| | | | | | | \--- androidx.savedstate:savedstate-android:1.3.1
| | | | | | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
| | | | | | | +--- androidx.annotation:annotation:1.9.1 (*)
| | | | | | | +--- androidx.core:core-ktx:1.13.1 -> 1.16.0 (*)
| | | | | | | +--- androidx.core:core-viewtree:1.0.0 (*)
| | | | | | | +--- androidx.lifecycle:lifecycle-common:2.9.2 (*)
| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 -> 1.10.2 (*)
| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0
| | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.0
| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-bom:1.8.0
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.8.0 (c)
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.8.0 (c)
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.8.0 (c)
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0 (c)
| | | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-json-io-jvm:1.8.0 (c)
| | | | | | | | | \--- org.jetbrains.kotlinx:kotlinx-serialization-json-io:1.8.0 (c)
| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.1.21 (*)
| | | | | | | +--- androidx.savedstate:savedstate-compose:1.3.1 (c)
| | | | | | | +--- androidx.savedstate:savedstate-ktx:1.3.1 (c)
| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 -> 2.1.21 (c)
| | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1 -> 1.10.2 (*)
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1 -> 1.10.2 (*)
| | | | | | +--- org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3 -> 1.8.0 (*)
| | | | | | +--- androidx.lifecycle:lifecycle-common:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-common-java8:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-livedata:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-livedata-core-ktx:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-process:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-runtime:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-runtime-compose:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-service:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-compose:2.9.2 (c)
| | | | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.2 (c)
| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.0.21 -> 2.1.21 (c)
| | | | | +--- androidx.profileinstaller:profileinstaller:1.4.0 -> 1.4.1 (*)
| | | | | +--- androidx.savedstate:savedstate:1.2.1 -> 1.3.1 (*)
| | | | | +--- androidx.tracing:tracing:1.0.0 -> 1.3.0 (*)
| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
| | | | | +--- androidx.activity:activity-compose:1.10.1 (c)
| | | | | +--- androidx.activity:activity-ktx:1.10.1 (c)
| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (c)
| | | | +--- androidx.activity:activity:1.10.1 (*)
| | | | +--- androidx.lifecycle:lifecycle-runtime-ktx:2.6.1 -> 2.9.2 (*)
| | | | +--- androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1 -> 2.9.2
| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.9.2 (*)
@ -656,40 +951,14 @@
| | | +--- androidx.drawerlayout:drawerlayout:1.0.0
| | | | +--- androidx.annotation:annotation:1.0.0 -> 1.9.1 (*)
| | | | +--- androidx.core:core:1.0.0 -> 1.16.0 (*)
| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0
| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
| | | | +--- androidx.core:core:1.3.0 -> 1.16.0 (*)
| | | | \--- androidx.collection:collection:1.1.0 -> 1.5.0 (*)
| | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
| | | +--- androidx.emoji2:emoji2:1.3.0 -> 1.4.0 (*)
| | | +--- androidx.emoji2:emoji2-views-helper:1.2.0 -> 1.4.0
| | | | +--- androidx.collection:collection:1.1.0 -> 1.5.0 (*)
| | | | +--- androidx.core:core:1.3.0 -> 1.16.0 (*)
| | | | +--- androidx.emoji2:emoji2:1.4.0 (*)
| | | | \--- androidx.emoji2:emoji2:1.4.0 (c)
| | | +--- androidx.fragment:fragment:1.5.4 -> 1.8.8
| | | | +--- androidx.activity:activity:1.8.1 -> 1.10.1 (*)
| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
| | | | +--- androidx.annotation:annotation-experimental:1.4.0 -> 1.4.1 (*)
| | | | +--- androidx.collection:collection:1.1.0 -> 1.5.0 (*)
| | | | +--- androidx.core:core-ktx:1.2.0 -> 1.16.0 (*)
| | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.6.1 -> 2.9.2 (*)
| | | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.9.2 (*)
| | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.9.2 (*)
| | | | +--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 -> 2.9.2 (*)
| | | | +--- androidx.loader:loader:1.0.0 -> 1.1.0
| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.9.1 (*)
| | | | | +--- androidx.core:core:1.0.0 -> 1.16.0 (*)
| | | | | +--- androidx.lifecycle:lifecycle-livedata-core:2.0.0 -> 2.9.2 (*)
| | | | | +--- androidx.lifecycle:lifecycle-viewmodel:2.0.0 -> 2.9.2 (*)
| | | | | \--- androidx.collection:collection:1.0.0 -> 1.5.0 (*)
| | | | +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.1 (*)
| | | | +--- androidx.savedstate:savedstate:1.2.1 -> 1.3.1 (*)
| | | | +--- androidx.viewpager:viewpager:1.0.0
| | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.9.1 (*)
| | | | | +--- androidx.core:core:1.0.0 -> 1.16.0 (*)
| | | | | \--- androidx.customview:customview:1.0.0 -> 1.1.0 (*)
| | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (*)
| | | | \--- androidx.fragment:fragment-ktx:1.8.8 (c)
| | | +--- androidx.fragment:fragment:1.5.4 -> 1.8.8 (*)
| | | +--- androidx.lifecycle:lifecycle-runtime:2.6.1 -> 2.9.2 (*)
| | | +--- androidx.lifecycle:lifecycle-viewmodel:2.6.1 -> 2.9.2 (*)
| | | +--- androidx.profileinstaller:profileinstaller:1.3.1 -> 1.4.1 (*)
@ -1011,9 +1280,7 @@
| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2 (*)
| | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2 (*)
| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib -> 2.1.21 (*)
| | | | | +--- com.squareup.okio:okio:3.11.0 -> 3.15.0
| | | | | | \--- com.squareup.okio:okio-jvm:3.15.0
| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.21 (*)
| | | | | +--- com.squareup.okio:okio:3.11.0 -> 3.15.0 (*)
| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (c)
| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
| | | +--- io.coil-kt.coil3:coil-core:3.2.0 (*)
@ -1143,10 +1410,7 @@
| | | +--- org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8
| | | | \--- org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.3.8
| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.21 -> 2.1.21 (*)
| | | \--- org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.20
| | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
| | | \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.1.20
| | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
| | | \--- org.jetbrains.kotlin:kotlin-parcelize-runtime:2.1.20 (*)
| | +--- project :core:datastore
| | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
| | | +--- io.insert-koin:koin-bom:4.1.0 (*)
@ -1188,10 +1452,7 @@
| | | | +--- io.ktor:ktor-client-core:3.1.2 (*)
| | | | +--- com.squareup.okhttp3:okhttp:4.12.0
| | | | | +--- com.squareup.okio:okio:3.6.0 -> 3.15.0 (*)
| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22
| | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (*)
| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.8.22 -> 1.9.0
| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.9.0 -> 2.1.21 (*)
| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*)
| | | | +--- com.squareup.okhttp3:okhttp-sse:4.12.0
| | | | | +--- com.squareup.okhttp3:okhttp:4.12.0 (*)
| | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.21 -> 1.8.22 (*)
@ -1279,133 +1540,8 @@
| | +--- io.insert-koin:koin-core:4.1.0 (*)
| | +--- io.insert-koin:koin-annotations:2.1.0 (*)
| | +--- project :core:analytics
| | | +--- com.google.firebase:firebase-bom:33.16.0
| | | | +--- com.google.firebase:firebase-analytics-ktx:22.5.0 (c)
| | | | +--- com.google.firebase:firebase-encoders:17.0.0 (c)
| | | | +--- com.google.firebase:firebase-analytics:22.5.0 (c)
| | | | +--- com.google.firebase:firebase-common:21.0.0 (c)
| | | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (c)
| | | | \--- com.google.firebase:firebase-installations:18.0.0 (c)
| | | +--- com.google.firebase:firebase-analytics-ktx -> 22.5.0
| | | | +--- com.google.firebase:firebase-analytics:22.5.0
| | | | | +--- com.google.android.gms:play-services-measurement:22.5.0
| | | | | | +--- androidx.collection:collection:1.0.0 -> 1.5.0 (*)
| | | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0
| | | | | | | +--- androidx.annotation:annotation:1.0.0 -> 1.9.1 (*)
| | | | | | | +--- androidx.core:core:1.0.0 -> 1.16.0 (*)
| | | | | | | +--- androidx.documentfile:documentfile:1.0.0 -> 1.1.0
| | | | | | | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
| | | | | | | | +--- androidx.core:core:1.7.0 -> 1.16.0 (*)
| | | | | | | | \--- org.jspecify:jspecify:1.0.0
| | | | | | | +--- androidx.loader:loader:1.0.0 -> 1.1.0 (*)
| | | | | | | +--- androidx.localbroadcastmanager:localbroadcastmanager:1.0.0
| | | | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.9.1 (*)
| | | | | | | \--- androidx.print:print:1.0.0
| | | | | | | \--- androidx.annotation:annotation:1.0.0 -> 1.9.1 (*)
| | | | | | +--- com.google.android.gms:play-services-ads-identifier:18.0.0
| | | | | | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.5.0
| | | | | | | +--- androidx.collection:collection:1.0.0 -> 1.5.0 (*)
| | | | | | | +--- androidx.core:core:1.2.0 -> 1.16.0 (*)
| | | | | | | \--- androidx.fragment:fragment:1.1.0 -> 1.8.8 (*)
| | | | | | +--- com.google.android.gms:play-services-basement:18.5.0 (*)
| | | | | | +--- com.google.android.gms:play-services-measurement-base:22.5.0
| | | | | | | \--- com.google.android.gms:play-services-basement:18.5.0 (*)
| | | | | | +--- com.google.android.gms:play-services-measurement-impl:22.5.0
| | | | | | | +--- androidx.collection:collection:1.0.0 -> 1.5.0 (*)
| | | | | | | +--- androidx.core:core:1.9.0 -> 1.16.0 (*)
| | | | | | | +--- androidx.privacysandbox.ads:ads-adservices:1.1.0-beta11
| | | | | | | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
| | | | | | | | +--- androidx.core:core-ktx:1.8.0 -> 1.16.0 (*)
| | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (*)
| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
| | | | | | | | \--- androidx.privacysandbox.ads:ads-adservices-java:1.1.0-beta11 (c)
| | | | | | | +--- androidx.privacysandbox.ads:ads-adservices-java:1.1.0-beta11
| | | | | | | | +--- androidx.annotation:annotation:1.8.1 -> 1.9.1 (*)
| | | | | | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*)
| | | | | | | | +--- androidx.core:core-ktx:1.8.0 -> 1.16.0 (*)
| | | | | | | | +--- androidx.privacysandbox.ads:ads-adservices:1.1.0-beta11 (*)
| | | | | | | | +--- com.google.guava:listenablefuture:1.0 -> 9999.0-empty-to-avoid-conflict-with-guava
| | | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (*)
| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3 -> 1.10.2 (*)
| | | | | | | | \--- androidx.privacysandbox.ads:ads-adservices:1.1.0-beta11 (c)
| | | | | | | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 (*)
| | | | | | | +--- com.google.android.gms:play-services-base:18.5.0
| | | | | | | | +--- androidx.collection:collection:1.0.0 -> 1.5.0 (*)
| | | | | | | | +--- androidx.core:core:1.2.0 -> 1.16.0 (*)
| | | | | | | | +--- androidx.fragment:fragment:1.0.0 -> 1.8.8 (*)
| | | | | | | | +--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
| | | | | | | | \--- com.google.android.gms:play-services-tasks:18.2.0
| | | | | | | | \--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
| | | | | | | +--- com.google.android.gms:play-services-basement:18.5.0 (*)
| | | | | | | +--- com.google.android.gms:play-services-measurement-base:22.5.0 (*)
| | | | | | | +--- com.google.android.gms:play-services-stats:17.0.2
| | | | | | | | +--- androidx.legacy:legacy-support-core-utils:1.0.0 (*)
| | | | | | | | \--- com.google.android.gms:play-services-basement:18.0.0 -> 18.5.0 (*)
| | | | | | | +--- com.google.android.gms:play-services-tasks:18.2.0 (*)
| | | | | | | \--- com.google.guava:guava:31.1-android -> 33.4.8-android
| | | | | | | +--- com.google.guava:failureaccess:1.0.3
| | | | | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
| | | | | | | +--- org.jspecify:jspecify:1.0.0
| | | | | | | +--- com.google.errorprone:error_prone_annotations:2.36.0
| | | | | | | \--- com.google.j2objc:j2objc-annotations:3.0.0
| | | | | | +--- com.google.android.gms:play-services-measurement-sdk-api:22.5.0
| | | | | | | +--- com.google.android.gms:play-services-basement:18.5.0 (*)
| | | | | | | \--- com.google.android.gms:play-services-measurement-base:22.5.0 (*)
| | | | | | \--- com.google.android.gms:play-services-stats:17.0.2 (*)
| | | | | +--- com.google.android.gms:play-services-measurement-api:22.5.0
| | | | | | +--- com.google.android.gms:play-services-ads-identifier:18.0.0 (*)
| | | | | | +--- com.google.android.gms:play-services-basement:18.5.0 (*)
| | | | | | +--- com.google.android.gms:play-services-measurement-base:22.5.0 (*)
| | | | | | +--- com.google.android.gms:play-services-measurement-sdk-api:22.5.0 (*)
| | | | | | +--- com.google.android.gms:play-services-tasks:18.2.0 (*)
| | | | | | +--- com.google.firebase:firebase-common:21.0.0
| | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4 -> 1.10.2
| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2 (*)
| | | | | | | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2 (*)
| | | | | | | | +--- com.google.android.gms:play-services-tasks:16.0.1 -> 18.2.0 (*)
| | | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:2.1.0 -> 2.1.21 (*)
| | | | | | | +--- com.google.firebase:firebase-components:18.0.0
| | | | | | | | +--- com.google.firebase:firebase-annotations:16.2.0
| | | | | | | | | \--- javax.inject:javax.inject:1
| | | | | | | | +--- androidx.annotation:annotation:1.5.0 -> 1.9.1 (*)
| | | | | | | | \--- com.google.errorprone:error_prone_annotations:2.26.0 -> 2.36.0
| | | | | | | +--- com.google.firebase:firebase-annotations:16.2.0 (*)
| | | | | | | +--- androidx.annotation:annotation:1.5.0 -> 1.9.1 (*)
| | | | | | | +--- androidx.concurrent:concurrent-futures:1.1.0 (*)
| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (*)
| | | | | | | +--- com.google.android.gms:play-services-basement:18.3.0 -> 18.5.0 (*)
| | | | | | | \--- com.google.android.gms:play-services-tasks:18.1.0 -> 18.2.0 (*)
| | | | | | +--- com.google.firebase:firebase-common-ktx:21.0.0
| | | | | | | +--- com.google.firebase:firebase-common:21.0.0 (*)
| | | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.8.22 (*)
| | | | | | | +--- com.google.firebase:firebase-components:18.0.0 (*)
| | | | | | | \--- com.google.firebase:firebase-annotations:16.2.0 (*)
| | | | | | +--- com.google.firebase:firebase-components:18.0.0 (*)
| | | | | | +--- com.google.firebase:firebase-installations:17.0.1 -> 18.0.0
| | | | | | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*)
| | | | | | | +--- com.google.firebase:firebase-annotations:16.2.0 (*)
| | | | | | | +--- com.google.firebase:firebase-common:21.0.0 (*)
| | | | | | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*)
| | | | | | | +--- com.google.firebase:firebase-components:18.0.0 (*)
| | | | | | | +--- com.google.firebase:firebase-installations-interop:17.1.1
| | | | | | | | +--- com.google.android.gms:play-services-tasks:18.0.1 -> 18.2.0 (*)
| | | | | | | | \--- com.google.firebase:firebase-annotations:16.2.0 (*)
| | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.22 -> 2.1.21 (*)
| | | | | | +--- com.google.firebase:firebase-installations-interop:17.0.0 -> 17.1.1 (*)
| | | | | | +--- com.google.firebase:firebase-measurement-connector:19.0.0
| | | | | | | +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.5.0 (*)
| | | | | | | \--- com.google.firebase:firebase-annotations:16.0.0 -> 16.2.0 (*)
| | | | | | +--- com.google.guava:guava:31.1-android -> 33.4.8-android (*)
| | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.0 -> 2.1.21 (*)
| | | | | \--- com.google.android.gms:play-services-measurement-sdk:22.5.0
| | | | | +--- androidx.collection:collection:1.0.0 -> 1.5.0 (*)
| | | | | +--- com.google.android.gms:play-services-basement:18.5.0 (*)
| | | | | +--- com.google.android.gms:play-services-measurement-base:22.5.0 (*)
| | | | | \--- com.google.android.gms:play-services-measurement-impl:22.5.0 (*)
| | | | +--- com.google.firebase:firebase-common:21.0.0 (*)
| | | | +--- com.google.firebase:firebase-common-ktx:21.0.0 (*)
| | | | +--- com.google.firebase:firebase-components:18.0.0 (*)
| | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.7.10 -> 2.1.21 (*)
| | | +--- com.google.firebase:firebase-bom:33.16.0 (*)
| | | +--- com.google.firebase:firebase-analytics-ktx -> 22.5.0 (*)
| | | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
| | | +--- io.insert-koin:koin-bom:4.1.0 (*)
| | | +--- io.insert-koin:koin-core:4.1.0 (*)
@ -2386,53 +2522,41 @@
| | +--- io.insert-koin:koin-core-viewmodel:4.1.0 (*)
| | +--- com.google.android.gms:play-services-code-scanner:16.1.0
| | | +--- androidx.activity:activity:1.3.1 -> 1.10.1 (*)
| | | +--- com.google.android.datatransport:transport-api:2.2.1
| | | | \--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
| | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3
| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
| | | | +--- com.google.android.datatransport:transport-api:2.2.1 (*)
| | | | +--- com.google.android.datatransport:transport-runtime:2.2.5 -> 2.2.6
| | | | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
| | | | | +--- com.google.android.datatransport:transport-api:2.2.1 (*)
| | | | | \--- javax.inject:javax.inject:1
| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0
| | | | | \--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
| | | | \--- com.google.firebase:firebase-encoders-json:17.1.0
| | | | +--- androidx.annotation:annotation:1.1.0 -> 1.9.1 (*)
| | | | \--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*)
| | | +--- com.google.android.datatransport:transport-runtime:2.2.6 (*)
| | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*)
| | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*)
| | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*)
| | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*)
| | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.5.0 (*)
| | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*)
| | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*)
| | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*)
| | | +--- com.google.firebase:firebase-encoders-json:17.1.0 (*)
| | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*)
| | | +--- com.google.mlkit:barcode-scanning-common:17.0.0
| | | | +--- com.google.android.gms:play-services-basement:18.0.0 -> 18.5.0 (*)
| | | | \--- com.google.mlkit:vision-common:17.0.0 -> 17.3.0
| | | | +--- androidx.exifinterface:exifinterface:1.0.0 -> 1.4.1 (*)
| | | | +--- com.google.android.datatransport:transport-api:2.2.1 (*)
| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 (*)
| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 (*)
| | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*)
| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*)
| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*)
| | | | +--- com.google.android.gms:play-services-base:18.1.0 -> 18.5.0 (*)
| | | | +--- com.google.android.gms:play-services-basement:18.1.0 -> 18.5.0 (*)
| | | | +--- com.google.android.gms:play-services-tasks:18.0.2 -> 18.2.0 (*)
| | | | +--- com.google.android.odml:image:1.0.0-beta1
| | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*)
| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*)
| | | | +--- com.google.firebase:firebase-encoders-json:17.1.0 (*)
| | | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*)
| | | | \--- com.google.mlkit:common:18.6.0 -> 18.11.0
| | | | +--- androidx.appcompat:appcompat:1.6.1 -> 1.7.1 (*)
| | | | +--- androidx.core:core:1.0.0 -> 1.16.0 (*)
| | | | +--- com.google.android.datatransport:transport-api:2.2.1 (*)
| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 (*)
| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 (*)
| | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*)
| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*)
| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*)
| | | | +--- com.google.android.gms:play-services-base:18.5.0 (*)
| | | | +--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
| | | | +--- com.google.android.gms:play-services-tasks:18.2.0 (*)
| | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*)
| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*)
| | | | \--- com.google.firebase:firebase-encoders-json:17.1.0 (*)
| | | | \--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*)
| | | \--- com.google.mlkit:common:18.9.0 -> 18.11.0 (*)
| | +--- org.jetbrains.kotlin:kotlin-stdlib:2.1.20 -> 2.1.21 (*)
| | +--- io.insert-koin:koin-core:4.1.0 (*)
@ -2576,16 +2700,16 @@
| | +--- com.google.mlkit:barcode-scanning:17.3.0
| | | +--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
| | | +--- com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.1
| | | | +--- com.google.android.datatransport:transport-api:2.2.1 (*)
| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 (*)
| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 (*)
| | | | +--- com.google.android.datatransport:transport-api:2.2.1 -> 3.2.0 (*)
| | | | +--- com.google.android.datatransport:transport-backend-cct:2.3.3 -> 3.3.0 (*)
| | | | +--- com.google.android.datatransport:transport-runtime:2.2.6 -> 3.3.0 (*)
| | | | +--- com.google.android.gms:play-services-base:18.5.0 (*)
| | | | +--- com.google.android.gms:play-services-basement:18.4.0 -> 18.5.0 (*)
| | | | +--- com.google.android.gms:play-services-tasks:18.2.0 (*)
| | | | +--- com.google.android.odml:image:1.0.0-beta1
| | | | +--- com.google.firebase:firebase-components:16.1.0 -> 18.0.0 (*)
| | | | +--- com.google.firebase:firebase-encoders:16.1.0 -> 17.0.0 (*)
| | | | +--- com.google.firebase:firebase-encoders-json:17.1.0 (*)
| | | | +--- com.google.firebase:firebase-encoders-json:17.1.0 -> 18.0.1 (*)
| | | | +--- com.google.mlkit:barcode-scanning-common:17.0.0 (*)
| | | | +--- com.google.mlkit:common:18.11.0 (*)
| | | | +--- com.google.mlkit:vision-common:17.3.0 (*)

View File

@ -110,6 +110,18 @@ androidx.databinding:databinding-common:8.11.1
androidx.databinding:databinding-ktx:8.11.1
androidx.databinding:databinding-runtime:8.11.1
androidx.databinding:viewbinding:8.11.1
androidx.datastore:datastore-android:1.1.3
androidx.datastore:datastore-core-android:1.1.3
androidx.datastore:datastore-core-okio-jvm:1.1.3
androidx.datastore:datastore-core-okio:1.1.3
androidx.datastore:datastore-core:1.1.3
androidx.datastore:datastore-preferences-android:1.1.3
androidx.datastore:datastore-preferences-core-jvm:1.1.3
androidx.datastore:datastore-preferences-core:1.1.3
androidx.datastore:datastore-preferences-external-protobuf:1.1.3
androidx.datastore:datastore-preferences-proto:1.1.3
androidx.datastore:datastore-preferences:1.1.3
androidx.datastore:datastore:1.1.3
androidx.documentfile:documentfile:1.1.0
androidx.drawerlayout:drawerlayout:1.0.0
androidx.emoji2:emoji2-views-helper:1.4.0
@ -196,9 +208,9 @@ com.caverock:androidsvg-aar:1.4
com.google.accompanist:accompanist-drawablepainter:0.37.3
com.google.accompanist:accompanist-pager:0.36.0
com.google.accompanist:accompanist-permissions:0.36.0
com.google.android.datatransport:transport-api:2.2.1
com.google.android.datatransport:transport-backend-cct:2.3.3
com.google.android.datatransport:transport-runtime:2.2.6
com.google.android.datatransport:transport-api:3.2.0
com.google.android.datatransport:transport-backend-cct:3.3.0
com.google.android.datatransport:transport-runtime:3.3.0
com.google.android.gms:play-services-ads-identifier:18.0.0
com.google.android.gms:play-services-auth-api-phone:18.0.2
com.google.android.gms:play-services-auth-base:18.0.10
@ -229,11 +241,17 @@ com.google.firebase:firebase-bom:33.16.0
com.google.firebase:firebase-common-ktx:21.0.0
com.google.firebase:firebase-common:21.0.0
com.google.firebase:firebase-components:18.0.0
com.google.firebase:firebase-encoders-json:17.1.0
com.google.firebase:firebase-config-interop:16.0.1
com.google.firebase:firebase-crashlytics-ktx:19.4.4
com.google.firebase:firebase-crashlytics:19.4.4
com.google.firebase:firebase-datatransport:19.0.0
com.google.firebase:firebase-encoders-json:18.0.1
com.google.firebase:firebase-encoders-proto:16.0.0
com.google.firebase:firebase-encoders:17.0.0
com.google.firebase:firebase-installations-interop:17.1.1
com.google.firebase:firebase-installations-interop:17.2.0
com.google.firebase:firebase-installations:18.0.0
com.google.firebase:firebase-measurement-connector:19.0.0
com.google.firebase:firebase-measurement-connector:20.0.1
com.google.firebase:firebase-sessions:2.1.2
com.google.guava:failureaccess:1.0.3
com.google.guava:guava:33.4.8-android
com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava

View File

@ -1,4 +1,4 @@
package: name='org.mifospay' versionCode='1' versionName='2025.7.4-beta.0.5' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15'
package: name='org.mifospay' versionCode='1' versionName='2025.7.5-beta.0.2' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15'
minSdkVersion:'26'
targetSdkVersion:'34'
uses-permission: name='android.permission.INTERNET'

View File

@ -9,8 +9,8 @@
*/
plugins {
alias(libs.plugins.mifospay.kmp.library)
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.kmp.library.convention)
alias(libs.plugins.cmp.feature.convention)
alias(libs.plugins.android.library)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.jetbrainsCompose)

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.kmp.library)
alias(libs.plugins.kmp.library.convention)
alias(libs.plugins.jetbrainsCompose)
alias(libs.plugins.compose.compiler)
}

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.kmp.library)
alias(libs.plugins.kmp.library.convention)
alias(libs.plugins.kotlin.parcelize)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.jetbrainsCompose)

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.kmp.library)
alias(libs.plugins.kmp.library.convention)
alias(libs.plugins.kotlin.parcelize)
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.compose.compiler)

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.kmp.library)
alias(libs.plugins.kmp.library.convention)
id("kotlinx-serialization")
}

View File

@ -18,7 +18,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.kmp.library)
alias(libs.plugins.kmp.library.convention)
alias(libs.plugins.jetbrainsCompose)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.roborazzi)

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.kmp.library)
alias(libs.plugins.kmp.library.convention)
alias(libs.plugins.kotlin.allopen)
}

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.kmp.library)
alias(libs.plugins.kmp.library.convention)
alias(libs.plugins.kotlin.parcelize)
id("kotlinx-serialization")
}

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.kmp.library)
alias(libs.plugins.kmp.library.convention)
alias(libs.plugins.ktorfit)
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.ksp)

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.kmp.library)
alias(libs.plugins.kmp.library.convention)
alias(libs.plugins.jetbrainsCompose)
alias(libs.plugins.compose.compiler)
}

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -19,7 +19,7 @@ import org.jetbrains.compose.ExperimentalComposeLibrary
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
alias(libs.plugins.mokkery)
}

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -9,7 +9,7 @@
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
}
android {

View File

@ -22,6 +22,9 @@ androidxProfileinstaller = "1.4.1"
androidxTracing = "1.3.0"
appcompatVersion = "1.7.1"
coreKtxVersion = "1.16.0"
androidxMacroBenchmark = "1.3.4"
calfPermissions = "0.8.0"
# KotlinX Dependencies
lifecycleExtensionsVersion = "2.2.0"
@ -59,6 +62,9 @@ googleOssPlugin = "0.10.6"
googleidVersion = "1.1.1"
guavaVersion = "33.4.8-android"
credentialsVersion = "1.5.0"
review = "2.0.2"
appUpdate = "2.1.0"
integrity = "1.4.0"
# Static Analysis & Code Formatting
ktlint = "12.1.1"
@ -105,6 +111,7 @@ okioVersion = "3.15.0"
kermit = "2.0.6"
fileKit = "0.10.0-beta04"
wire = "5.3.5"
uiBackhandler = "1.8.2"
# Jetbrains CMP
windowsSizeClass = "0.5.0"
@ -114,6 +121,8 @@ composeLifecycle = "2.9.1"
composeNavigation = "2.8.0-alpha13"
jbCoreBundle = "1.0.1"
jbSavedState = "1.3.1"
gitLive = "2.1.0"
material3adaptive = "1.1.2"
# Desktop Version
packageName = "MifosWallet"
@ -184,6 +193,7 @@ androidx-profileinstaller = { group = "androidx.profileinstaller", name = "profi
androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidx-test-ext-junit" }
androidx-tracing-ktx = { group = "androidx.tracing", name = "tracing-ktx", version.ref = "androidxTracing" }
calf-permissions = { module = "com.mohamedrejeb.calf:calf-permissions", version.ref = "calfPermissions" }
ktlint-gradlePlugin = { group = "org.jlleitschuh.gradle", name = "ktlint-gradle", version.ref = "ktlint" }
detekt-formatting = { group = "io.gitlab.arturbosch.detekt", name = "detekt-formatting", version.ref = "detekt" }
spotless-gradle = { group = "com.diffplug.spotless", name = "spotless-plugin-gradle", version.ref = "spotlessVersion" }
@ -199,6 +209,10 @@ firebase-crashlytics-gradlePlugin = { group = "com.google.firebase", name = "fir
firebase-performance = { group = "com.google.firebase", name = "firebase-perf-ktx" }
firebase-performance-gradlePlugin = { group = "com.google.firebase", name = "perf-plugin", version.ref = "firebasePerfPlugin" }
gitlive-firebase-analytics = { module = "dev.gitlive:firebase-analytics", version.ref = "gitLive" }
gitlive-firebase-crashlytics = { module = "dev.gitlive:firebase-crashlytics", version.ref = "gitLive" }
gitlive-firebase-performance = { module = "dev.gitlive:firebase-performance", version.ref = "gitLive" }
play-services-auth = { group = "com.google.android.gms", name = "play-services-auth", version.ref = "playServicesAuthVersion" }
google-oss-licenses = { group = "com.google.android.gms", name = "play-services-oss-licenses", version.ref = "googleOss" }
google-oss-licenses-plugin = { group = "com.google.android.gms", name = "oss-licenses-plugin", version.ref = "googleOssPlugin" }
@ -221,6 +235,12 @@ truth = { group = "com.google.truth", name = "truth", version.ref = "truth" }
turbine = { group = "app.cash.turbine", name = "turbine", version.ref = "turbineVersion" }
espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espresso-core" }
app-update = { module = "com.google.android.play:app-update", version.ref = "appUpdate" }
app-update-ktx = { module = "com.google.android.play:app-update-ktx", version.ref = "appUpdate" }
integrity = { module = "com.google.android.play:integrity", version.ref = "integrity" }
review = { module = "com.google.android.play:review", version.ref = "review" }
review-ktx = { module = "com.google.android.play:review-ktx", version.ref = "review" }
zxing = { group = "com.google.zxing", name = "core", version.ref = "zxingVersion" }
fineract-api = { group = "io.github.niyajali", name = "fineract-client-kmp", version.ref = "fineractSdk" }
@ -240,6 +260,10 @@ jb-savedstate = { module = "org.jetbrains.androidx.savedstate:savedstate", versi
jb-composeNavigation = { module = "org.jetbrains.androidx.navigation:navigation-compose", version.ref = "composeNavigation" }
jb-navigation = { module = "org.jetbrains.androidx.navigation:navigation-common", version.ref = "composeNavigation" }
jetbrains-compose-material3-adaptive = { group = "org.jetbrains.compose.material3.adaptive", name = "adaptive", version.ref = "material3adaptive" }
jetbrains-compose-material3-adaptive-layout = { group = "org.jetbrains.compose.material3.adaptive", name = "adaptive-layout", version.ref = "material3adaptive" }
jetbrains-compose-material3-adaptive-navigation = { group = "org.jetbrains.compose.material3.adaptive", name = "adaptive-navigation", version.ref = "material3adaptive" }
kotest-assertions-core = { module = "io.kotest:kotest-assertions-core", version.ref = "kotestVersion" }
kotest-framework-engine = { module = "io.kotest:kotest-framework-engine", version.ref = "kotestVersion" }
kotest-framework-datatest = { module = "io.kotest:kotest-framework-datatest", version.ref = "kotestVersion" }
@ -326,6 +350,7 @@ multiplatform-settings-test = { group = "com.russhwolf", name = "multiplatform-s
moko-permission = { group = "dev.icerock.moko", name = "permissions", version.ref = "mokoPermission" }
moko-permission-compose = { group = "dev.icerock.moko", name = "permissions-compose", version.ref = "mokoPermission" }
ui-backhandler = { module = "org.jetbrains.compose.ui:ui-backhandler", version.ref = "uiBackhandler" }
window-size = { group = "dev.chrisbanes.material3", name = "material3-window-size-class-multiplatform", version.ref = "windowsSizeClass" }
compose-ui-test-junit4-android = { module = "androidx.compose.ui:ui-test-junit4-android", version.ref = "composeTest" }
@ -364,10 +389,14 @@ kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref =
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
ktorfit = { id = "de.jensklingenberg.ktorfit", version.ref = "ktorfit" }
wire = { id = "com.squareup.wire", version.ref = "wire" }
baselineprofile = { id = "androidx.baselineprofile", version.ref = "androidxMacroBenchmark" }
mifospay-cmp-feature = { id = "mifospay.cmp.feature", version = "unspecified" }
mifospay-kmp-koin = { id = "mifospay.kmp.koin", version = "unspecified" }
mifospay-kmp-library = { id = "mifospay.kmp.library", version = "unspecified" }
cmp-feature-convention = { id = "org.convention.cmp.feature", version = "unspecified" }
kmp-koin-convention = { id = "org.convention.kmp.koin", version = "unspecified" }
kmp-library-convention = { id = "org.convention.kmp.library", version = "unspecified" }
android-application-firebase = { id = "org.convention.android.application.firebase" }
android-lint = { id = "org.convention.android.application.lint" }
# Utility Plugins
mifos-detekt-plugin = { id = "mifos.detekt.plugin", version = "unspecified" }

View File

@ -8,7 +8,7 @@
* See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md
*/
plugins {
alias(libs.plugins.mifospay.cmp.feature)
alias(libs.plugins.cmp.feature.convention)
alias(libs.plugins.kotlin.parcelize)
alias(libs.plugins.kotlin.serialization)
alias(libs.plugins.protobuf)