From 27c47245276e5106253256ce9a88b280daa6f63c Mon Sep 17 00:00:00 2001 From: Sk Niyaj Ali Date: Tue, 7 May 2024 19:49:36 +0530 Subject: [PATCH] Fix - Refactoring dependencies to Version Catalog (#2076) * Migrated all dependencies to Version Catalog * Migrated all dependencies to Version Catalog * chore: Added Coil Dependency On Version Catalog - Applied version catalog references on remaining module. --- build.gradle.kts | 13 +- core/common/build.gradle.kts | 23 +- core/data/build.gradle.kts | 42 +- core/datastore/build.gradle.kts | 53 ++- core/designsystem/build.gradle.kts | 42 +- .../component/MifosEditTextField.kt | 2 +- core/network/build.gradle.kts | 67 ++-- feature/auth/build.gradle.kts | 53 ++- feature/checker-inbox-task/build.gradle.kts | 62 ++- feature/client/build.gradle.kts | 89 ++--- gradle/libs.versions.toml | 374 ++++++++++++++++++ gradle/wrapper/gradle-wrapper.properties | 2 +- mifosng-android/build.gradle.kts | 145 +++---- 13 files changed, 665 insertions(+), 302 deletions(-) create mode 100644 gradle/libs.versions.toml diff --git a/build.gradle.kts b/build.gradle.kts index e5b5c473106..eb92788ef20 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,10 +1,9 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. plugins { - id("com.android.application") version "8.1.2" apply false - id("org.jetbrains.kotlin.android") version "1.9.22" apply false - id("com.google.dagger.hilt.android") version "2.50" apply false - id("com.android.library") version "8.1.2" apply false - id("org.jetbrains.kotlin.plugin.serialization") version "1.5.21" apply false - id("androidx.navigation.safeargs") version "2.6.0" apply false - id("io.realm.kotlin") version "1.11.0" apply false + alias(libs.plugins.android.application) apply false + alias(libs.plugins.android.library) apply false + alias(libs.plugins.kotlin.android) apply false + alias(libs.plugins.hilt) apply false + alias(libs.plugins.kotlin.serialization) apply false + alias(libs.plugins.androidx.navigation) apply false } diff --git a/core/common/build.gradle.kts b/core/common/build.gradle.kts index 649e1e41418..7436611bdf8 100644 --- a/core/common/build.gradle.kts +++ b/core/common/build.gradle.kts @@ -1,6 +1,6 @@ plugins { - id("com.android.library") - id("org.jetbrains.kotlin.android") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) } android { @@ -23,22 +23,27 @@ android { ) } } + compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } + kotlinOptions { jvmTarget = "17" } } dependencies { + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.appcompat) + + implementation(libs.material) + + testImplementation(libs.junit4) - implementation("androidx.core:core-ktx:1.12.0") - implementation("androidx.appcompat:appcompat:1.6.1") - implementation("com.google.android.material:material:1.11.0") - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test.ext:junit:1.1.5") - androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") - implementation("com.squareup.retrofit2:converter-gson:2.9.0") + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.test.espresso.core) + + implementation(libs.converter.gson) } \ No newline at end of file diff --git a/core/data/build.gradle.kts b/core/data/build.gradle.kts index 21e06f00525..c83a5d562d4 100644 --- a/core/data/build.gradle.kts +++ b/core/data/build.gradle.kts @@ -1,8 +1,8 @@ plugins { - id("com.android.library") - id("org.jetbrains.kotlin.android") - id("kotlin-kapt") - id("kotlin-parcelize") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + id(libs.plugins.kotlin.parcelize.get().pluginId) + id(libs.plugins.kotlin.kapt.get().pluginId) } android { @@ -25,10 +25,12 @@ android { ) } } + compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } + kotlinOptions { jvmTarget = "17" } @@ -36,26 +38,30 @@ android { dependencies { - implementation("androidx.core:core-ktx:1.12.0") - implementation("androidx.appcompat:appcompat:1.6.1") - implementation("com.google.android.material:material:1.11.0") implementation(project(":core:datastore")) implementation(project(":core:network")) - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test.ext:junit:1.1.5") - androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") - implementation("com.squareup.retrofit2:converter-gson:2.9.0") + + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.appcompat) + + implementation(libs.material) + + testImplementation(libs.junit4) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.test.espresso.core) //DBFlow dependencies - kapt("com.github.raizlabs.dbflow.dbflow:dbflow-processor:3.1.1") - implementation("com.github.raizlabs.dbflow.dbflow:dbflow:3.1.1") - kapt("com.github.raizlabs.dbflow:dbflow-processor:4.2.4") + kapt(libs.dbflow.processor) + implementation(libs.dbflow) + kapt(libs.github.dbflow.processor) // Hilt dependency - implementation("com.google.dagger:hilt-android:2.50") - kapt("com.google.dagger:hilt-android-compiler:2.50") + implementation(libs.hilt.android) + kapt(libs.hilt.compiler) //rxjava dependencies - implementation("io.reactivex:rxandroid:1.1.0") - implementation("io.reactivex:rxjava:1.3.8") + implementation(libs.rxandroid) + implementation(libs.rxjava) + + implementation(libs.okhttp) } \ No newline at end of file diff --git a/core/datastore/build.gradle.kts b/core/datastore/build.gradle.kts index c6e50c0d472..f475f0524be 100644 --- a/core/datastore/build.gradle.kts +++ b/core/datastore/build.gradle.kts @@ -1,11 +1,10 @@ plugins { - id("com.android.library") - id("org.jetbrains.kotlin.android") - id("kotlin-kapt") - id("com.google.dagger.hilt.android") - id("io.realm.kotlin") - id("kotlin-parcelize") - id("org.jetbrains.kotlin.plugin.serialization") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.serialization) + alias(libs.plugins.hilt) + id(libs.plugins.kotlin.parcelize.get().pluginId) + id(libs.plugins.kotlin.kapt.get().pluginId) } android { @@ -44,35 +43,33 @@ dependencies { implementation(project(":core:common")) - implementation("androidx.core:core-ktx:1.12.0") - implementation("androidx.appcompat:appcompat:1.6.1") - implementation("com.google.android.material:material:1.11.0") - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test.ext:junit:1.1.5") - androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") - implementation("com.squareup.retrofit2:converter-gson:2.9.0") + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.appcompat) + + implementation(libs.material) + + testImplementation(libs.junit4) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.test.espresso.core) + + implementation(libs.converter.gson) //rxjava dependencies - implementation("io.reactivex:rxandroid:1.1.0") - implementation("io.reactivex:rxjava:1.3.8") + implementation(libs.rxandroid) + implementation(libs.rxjava) //DBFlow dependencies - kapt("com.github.raizlabs.dbflow.dbflow:dbflow-processor:3.1.1") - implementation("com.github.raizlabs.dbflow.dbflow:dbflow:3.1.1") - kapt("com.github.raizlabs.dbflow:dbflow-processor:4.2.4") + kapt(libs.dbflow.processor) + implementation(libs.dbflow) + kapt(libs.github.dbflow.processor) // Hilt dependency - implementation("com.google.dagger:hilt-android:2.50") - kapt("com.google.dagger:hilt-android-compiler:2.50") - + implementation(libs.hilt.android) + kapt(libs.hilt.compiler) // fineract sdk dependencies - implementation("com.github.openMF:mifos-android-sdk-arch:1.06") + implementation(libs.mifos.android.sdk.arch) // sdk client - implementation("com.github.openMF:fineract-client:2.0.3") - - // Mongo Realm - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1") - implementation("io.realm.kotlin:library-base:1.11.0") + implementation(libs.fineract.client) } \ No newline at end of file diff --git a/core/designsystem/build.gradle.kts b/core/designsystem/build.gradle.kts index aad9de4a885..0df26e5186f 100644 --- a/core/designsystem/build.gradle.kts +++ b/core/designsystem/build.gradle.kts @@ -1,7 +1,7 @@ plugins { - id("com.android.library") - id("org.jetbrains.kotlin.android") - id("kotlin-kapt") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + id(libs.plugins.kotlin.kapt.get().pluginId) } android { @@ -44,28 +44,28 @@ android { dependencies { - implementation("androidx.core:core-ktx:1.12.0") - implementation("androidx.appcompat:appcompat:1.6.1") - implementation("com.google.android.material:material:1.11.0") - implementation(project(":core:datastore")) - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test.ext:junit:1.1.5") - androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.appcompat) + implementation(libs.androidx.material) + testImplementation(libs.junit4) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.test.espresso.core) // Jetpack Compose - implementation("androidx.compose.material:material:1.6.0") - implementation("androidx.compose.compiler:compiler:1.5.8") - implementation("androidx.compose.ui:ui-tooling-preview:1.6.1") - implementation("androidx.activity:activity-compose:1.8.2") - debugImplementation("androidx.compose.ui:ui-tooling:1.6.1") - implementation("androidx.compose.material3:material3:1.1.2") - implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0") +// implementation(libs.androidx.material) + implementation(libs.androidx.compose.material3) + implementation(libs.androidx.compiler) + implementation(libs.androidx.compose.ui.tooling.preview) + implementation(libs.androidx.activity.compose) + debugImplementation(libs.androidx.compose.ui.tooling) + implementation(libs.androidx.lifecycle.viewModelCompose) + implementation(libs.androidx.material.icons.extended) // coil - implementation("io.coil-kt:coil-compose:2.5.0") + implementation(libs.coil.kt.compose) //DBFlow dependencies - kapt("com.github.raizlabs.dbflow.dbflow:dbflow-processor:3.1.1") - implementation("com.github.raizlabs.dbflow.dbflow:dbflow:3.1.1") - kapt("com.github.raizlabs.dbflow:dbflow-processor:4.2.4") + kapt(libs.dbflow.processor) + implementation(libs.dbflow) + kapt(libs.github.dbflow.processor) } \ No newline at end of file diff --git a/core/designsystem/src/main/java/com/mifos/core/designsystem/component/MifosEditTextField.kt b/core/designsystem/src/main/java/com/mifos/core/designsystem/component/MifosEditTextField.kt index 1b3994cdb06..579017e918e 100644 --- a/core/designsystem/src/main/java/com/mifos/core/designsystem/component/MifosEditTextField.kt +++ b/core/designsystem/src/main/java/com/mifos/core/designsystem/component/MifosEditTextField.kt @@ -4,7 +4,7 @@ import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.Icon +import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.OutlinedTextFieldDefaults diff --git a/core/network/build.gradle.kts b/core/network/build.gradle.kts index 5641a3a1a4b..a16966cf2c7 100644 --- a/core/network/build.gradle.kts +++ b/core/network/build.gradle.kts @@ -1,10 +1,10 @@ plugins { - id("com.android.library") - id("org.jetbrains.kotlin.android") - id("kotlin-kapt") - id("com.google.dagger.hilt.android") - id("kotlin-parcelize") - id("org.jetbrains.kotlin.plugin.serialization") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.hilt) + alias(libs.plugins.kotlin.serialization) + id(libs.plugins.kotlin.parcelize.get().pluginId) + id(libs.plugins.kotlin.kapt.get().pluginId) } android { @@ -41,35 +41,31 @@ dependencies { implementation(project(":core:datastore")) implementation(project(":core:common")) - implementation("androidx.core:core-ktx:1.12.0") - implementation("androidx.appcompat:appcompat:1.6.1") - implementation("com.google.android.material:material:1.11.0") - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test.ext:junit:1.1.5") - androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.appcompat) + implementation(libs.material) + testImplementation(libs.junit4) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.test.espresso.core) //rxjava dependencies - implementation("io.reactivex:rxandroid:1.1.0") - implementation("io.reactivex:rxjava:1.3.8") + implementation(libs.rxandroid) + implementation(libs.rxjava) // Hilt dependency - implementation("com.google.dagger:hilt-android:2.50") - kapt("com.google.dagger:hilt-android-compiler:2.50") + implementation(libs.hilt.android) + kapt(libs.hilt.compiler) // fineract sdk dependencies - implementation("com.github.openMF:mifos-android-sdk-arch:1.06") + implementation(libs.mifos.android.sdk.arch) // sdk client - implementation("com.github.openMF:fineract-client:2.0.3") + implementation(libs.fineract.client) //DBFlow dependencies - kapt("com.github.raizlabs.dbflow.dbflow:dbflow-processor:3.1.1") - implementation("com.github.raizlabs.dbflow.dbflow:dbflow:3.1.1") - kapt("com.github.raizlabs.dbflow:dbflow-processor:4.2.4") - - // Mongo Realm - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1") - implementation("io.realm.kotlin:library-base:1.11.0") + kapt(libs.dbflow.processor) + implementation(libs.dbflow) + kapt(libs.github.dbflow.processor) //Square dependencies @@ -77,17 +73,18 @@ dependencies { // exclude Retrofit’s OkHttp peer-dependency module and define your own module import exclude(module = "okhttp") } - implementation("com.squareup.retrofit2:converter-gson:2.9.0") - implementation("com.squareup.retrofit2:converter-scalars:2.9.0") - implementation("com.squareup.retrofit2:adapter-rxjava:2.9.0") - implementation("com.squareup.okhttp3:okhttp:4.9.2") - implementation("com.squareup.okhttp3:logging-interceptor:4.11.0") - implementation("com.jakewharton.fliptables:fliptables:1.0.1") + implementation(libs.converter.gson) + implementation(libs.converter.scalars) + implementation(libs.adapter.rxjava) + implementation(libs.okhttp) + implementation(libs.logging.interceptor) - //stetho dependencies - implementation("com.facebook.stetho:stetho:1.3.1") - implementation("com.facebook.stetho:stetho-okhttp3:1.3.1") + implementation(libs.fliptables) + //stetho dependencies + implementation(libs.stetho) + implementation(libs.stetho.okhttp3) + // coil - implementation("io.coil-kt:coil-compose:2.5.0") + implementation(libs.coil.kt.compose) } \ No newline at end of file diff --git a/feature/auth/build.gradle.kts b/feature/auth/build.gradle.kts index 473f90ae36c..fdc2d6dd8c9 100644 --- a/feature/auth/build.gradle.kts +++ b/feature/auth/build.gradle.kts @@ -1,8 +1,8 @@ plugins { - id("com.android.library") - id("org.jetbrains.kotlin.android") - id("kotlin-kapt") - id("com.google.dagger.hilt.android") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.hilt) + id(libs.plugins.kotlin.kapt.get().pluginId) } android { @@ -52,39 +52,38 @@ dependencies { implementation(project(":core:datastore")) implementation(project(":core:common")) - - implementation("androidx.core:core-ktx:1.12.0") - implementation("androidx.appcompat:appcompat:1.6.1") - implementation("com.google.android.material:material:1.11.0") - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test.ext:junit:1.1.5") - androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.appcompat) + implementation(libs.material) + testImplementation(libs.junit4) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.test.espresso.core) // Hilt dependency - implementation("com.google.dagger:hilt-android:2.50") - kapt("com.google.dagger:hilt-android-compiler:2.50") + implementation(libs.hilt.android) + kapt(libs.hilt.compiler) //rxjava dependencies - implementation("io.reactivex:rxandroid:1.1.0") - implementation("io.reactivex:rxjava:1.3.8") + implementation(libs.rxandroid) + implementation(libs.rxjava) // Jetpack Compose - implementation("androidx.compose.material:material:1.6.0") - implementation("androidx.compose.compiler:compiler:1.5.8") - implementation("androidx.compose.ui:ui-tooling-preview:1.6.1") - implementation("androidx.activity:activity-compose:1.8.2") - debugImplementation("androidx.compose.ui:ui-tooling:1.6.1") - implementation("androidx.compose.material3:material3:1.1.2") - implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0") - implementation("androidx.compose.material:material-icons-extended:1.6.1") + implementation(libs.androidx.material) + implementation(libs.androidx.compiler) + implementation(libs.androidx.compose.ui.tooling.preview) + implementation(libs.androidx.activity.compose) + debugImplementation(libs.androidx.compose.ui.tooling) + implementation(libs.androidx.compose.material3) + implementation(libs.androidx.lifecycle.viewModelCompose) + implementation(libs.androidx.material.icons.extended) // ViewModel utilities for Compose - implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0") - implementation("androidx.hilt:hilt-navigation-compose:1.1.0") + implementation(libs.androidx.lifecycle.viewModelCompose) + implementation(libs.androidx.hilt.navigation.compose) // fineract sdk dependencies - implementation("com.github.openMF:mifos-android-sdk-arch:1.06") + implementation(libs.mifos.android.sdk.arch) // sdk client - implementation("com.github.openMF:fineract-client:2.0.3") + implementation(libs.fineract.client) } \ No newline at end of file diff --git a/feature/checker-inbox-task/build.gradle.kts b/feature/checker-inbox-task/build.gradle.kts index 32d5752ed00..f0f5626c643 100644 --- a/feature/checker-inbox-task/build.gradle.kts +++ b/feature/checker-inbox-task/build.gradle.kts @@ -1,8 +1,8 @@ plugins { - id("com.android.library") - id("org.jetbrains.kotlin.android") - id("kotlin-kapt") - id("com.google.dagger.hilt.android") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.hilt) + id(libs.plugins.kotlin.kapt.get().pluginId) } android { @@ -46,47 +46,41 @@ dependencies { implementation(project(":core:data")) implementation(project(":core:designsystem")) implementation(project(":core:common")) - - - implementation("androidx.core:core-ktx:1.12.0") - implementation("androidx.appcompat:appcompat:1.6.1") - implementation("com.google.android.material:material:1.11.0") implementation(project(":core:network")) implementation(project(":core:datastore")) - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test.ext:junit:1.1.5") - androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.appcompat) + // Jetpack Compose + implementation(libs.androidx.material) + implementation(libs.androidx.compiler) + implementation(libs.androidx.compose.ui.tooling.preview) + implementation(libs.androidx.activity.compose) + debugImplementation(libs.androidx.compose.ui.tooling) + implementation(libs.androidx.compose.material3) + implementation(libs.androidx.lifecycle.viewModelCompose) + implementation(libs.androidx.material.icons.extended) + + // ViewModel utilities for Compose + implementation(libs.androidx.lifecycle.runtimeCompose) + implementation(libs.androidx.hilt.navigation.compose) // swipe refresh - implementation("com.google.accompanist:accompanist-swiperefresh:0.25.1") + implementation(libs.accompanist.swiperefresh) // coil - implementation("io.coil-kt:coil-compose:2.5.0") + implementation(libs.coil.kt.compose) // Hilt dependency - implementation("com.google.dagger:hilt-android:2.50") - kapt("com.google.dagger:hilt-android-compiler:2.50") + implementation(libs.hilt.android) + kapt(libs.hilt.compiler) //rxjava dependencies - implementation("io.reactivex:rxandroid:1.1.0") - implementation("io.reactivex:rxjava:1.3.8") - - // Jetpack Compose - implementation("androidx.compose.material:material:1.6.0") - implementation("androidx.compose.compiler:compiler:1.5.8") - implementation("androidx.compose.ui:ui-tooling-preview:1.6.1") - implementation("androidx.activity:activity-compose:1.8.2") - debugImplementation("androidx.compose.ui:ui-tooling:1.6.1") - implementation("androidx.compose.material3:material3:1.1.2") - implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0") - implementation("androidx.compose.material:material-icons-extended:1.6.1") - - // ViewModel utilities for Compose - implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0") - implementation("androidx.hilt:hilt-navigation-compose:1.1.0") + implementation(libs.rxandroid) + implementation(libs.rxjava) - // compose lifecycle - implementation("androidx.lifecycle:lifecycle-runtime-compose:2.7.0") + testImplementation(libs.junit4) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.test.espresso.core) } \ No newline at end of file diff --git a/feature/client/build.gradle.kts b/feature/client/build.gradle.kts index bd6d34ea4b8..11c88739d3a 100644 --- a/feature/client/build.gradle.kts +++ b/feature/client/build.gradle.kts @@ -1,8 +1,8 @@ plugins { - id("com.android.library") - id("org.jetbrains.kotlin.android") - id("kotlin-kapt") - id("com.google.dagger.hilt.android") + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.hilt) + id(libs.plugins.kotlin.kapt.get().pluginId) } android { @@ -51,64 +51,55 @@ dependencies { implementation(project(":core:common")) implementation(project(":core:network")) - - implementation("androidx.core:core-ktx:1.12.0") - implementation("androidx.appcompat:appcompat:1.6.1") - implementation("com.google.android.material:material:1.11.0") - testImplementation("junit:junit:4.13.2") - androidTestImplementation("androidx.test.ext:junit:1.1.5") - androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") - - // Hilt dependency - implementation("com.google.dagger:hilt-android:2.50") - kapt("com.google.dagger:hilt-android-compiler:2.50") - - //rxjava dependencies - implementation("io.reactivex:rxandroid:1.1.0") - implementation("io.reactivex:rxjava:1.3.8") + implementation(libs.androidx.core.ktx) + implementation(libs.androidx.appcompat) // Jetpack Compose - implementation("androidx.compose.material:material:1.6.0") - implementation("androidx.compose.compiler:compiler:1.5.8") - implementation("androidx.compose.ui:ui-tooling-preview:1.6.1") - implementation("androidx.activity:activity-compose:1.8.2") - debugImplementation("androidx.compose.ui:ui-tooling:1.6.1") - implementation("androidx.compose.material3:material3:1.1.2") - implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0") - implementation("androidx.compose.material:material-icons-extended:1.6.1") + implementation(libs.androidx.material) + implementation(libs.androidx.compiler) + implementation(libs.androidx.compose.ui.tooling.preview) + implementation(libs.androidx.activity.compose) + debugImplementation(libs.androidx.compose.ui.tooling) + implementation(libs.androidx.compose.material3) + implementation(libs.androidx.lifecycle.viewModelCompose) + implementation(libs.androidx.material.icons.extended) // ViewModel utilities for Compose - implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0") - implementation("androidx.hilt:hilt-navigation-compose:1.1.0") + implementation(libs.androidx.lifecycle.runtimeCompose) + implementation(libs.androidx.hilt.navigation.compose) + + // swipe refresh + implementation(libs.accompanist.swiperefresh) + implementation(libs.accompanist.permission) + + // coil + implementation(libs.coil.kt.compose) // fineract sdk dependencies - implementation("com.github.openMF:mifos-android-sdk-arch:1.06") + implementation(libs.mifos.android.sdk.arch) // sdk client - implementation("com.github.openMF:fineract-client:2.0.3") - - // coil - implementation("io.coil-kt:coil-compose:2.5.0") + implementation(libs.fineract.client) //DBFlow dependencies - kapt("com.github.raizlabs.dbflow.dbflow:dbflow-processor:3.1.1") - implementation("com.github.raizlabs.dbflow.dbflow:dbflow:3.1.1") - kapt("com.github.raizlabs.dbflow:dbflow-processor:4.2.4") + kapt(libs.dbflow.processor) + implementation(libs.dbflow) + kapt(libs.github.dbflow.processor) - // swipe refresh - implementation("com.google.accompanist:accompanist-swiperefresh:0.25.1") + // Hilt dependency + implementation(libs.hilt.android) + kapt(libs.hilt.compiler) - // paging 3 - implementation("androidx.paging:paging-runtime-ktx:3.2.1") - implementation("androidx.paging:paging-compose:3.2.1") + //rxjava dependencies + implementation(libs.rxandroid) + implementation(libs.rxjava) - // Mongo Realm - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1") - implementation("io.realm.kotlin:library-base:1.11.0") + // paging 3 + implementation(libs.androidx.paging.runtime.ktx) + implementation(libs.androidx.paging.compose) - // permission - implementation("com.google.accompanist:accompanist-permissions:0.31.1-alpha") + testImplementation(libs.junit4) + androidTestImplementation(libs.androidx.junit) + androidTestImplementation(libs.androidx.test.espresso.core) - // compose lifecycle - implementation("androidx.lifecycle:lifecycle-runtime-compose:2.7.0") } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 00000000000..6740e2a6d6f --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,374 @@ +[versions] +accompanistSwiperefresh = "0.25.1" +accompanistPermission = "0.34.0" +adapterRxjava = "2.9.0" +androidDesugarJdkLibs = "2.0.4" +androidGradlePlugin = "8.2.2" +androidIconifyMaterial = "2.2.2" +androidJob = "1.2.6" +androidMapsUtils = "0.4.2" +androidTools = "31.3.0" +androidxActivity = "1.8.2" +androidxAppCompat = "1.6.1" +androidxArchCore = '2.2.0' +androidxComposeBom = "2024.02.01" +androidxComposeCompiler = "1.5.6" +androidxComposeUi = "1.6.2" +androidxComposeRuntime = "1.6.2" +androidxComposeRuntimeTracing = "1.0.0-beta01" +androidxComposeMaterial3 = "1.2.0" +androidxCore = "1.12.0" +androidxCoreSplashscreen = "1.0.1" +androidxEspresso = "3.5.1" +androidxHiltNavigationCompose = "1.2.0" +androidxLifecycle = "2.7.0" +androidxMacroBenchmark = "1.2.3" +androidxBaselineProfile = "1.2.3" +androidxBenchmark = "1.2.3" +androidxBenchmarkJunit4 = "1.1.1" +androidxMetrics = "1.0.0-beta01" +androidxNavigation = "2.7.7" +androidxProfileinstaller = "1.3.1" +androidxStartup = "1.1.1" +androidxTestCore = "1.5.0" +androidxTestExt = "1.1.5" +androidxTestRules = "1.5.0" +androidxTestRunner = "1.5.2" +androidxTracing = "1.2.0" +androidxUiAutomator = "2.3.0" +androidxWindowManager = "1.2.0" +androidxWork = "2.9.0" +annotation = "1.7.1" +compiler = "1.5.10" +converterGson = "2.9.0" +converterScalars = "2.9.0" +coreTesting = "2.2.0" +coil-compose = "2.5.0" +dbflow = "3.1.1" +dbflowProcessor = "4.2.4" +espressoIdlingResource = "3.5.1" +espressoIntents = "3.5.1" +fineractClientVersion = "2.0.3" +firebaseBom = "32.7.3" +firebaseCrashlyticsPlugin = "2.9.9" +firebasePerfPlugin = "1.4.2" +fliptables = "1.0.1" +glide = "4.15.1" +gmsPlugin = "4.4.1" +googleOss = "17.0.1" +googleOssPlugin = "0.10.6" +hilt = "2.50" +hiltExt = "1.2.0" +junit4 = "4.13.2" +junitJupiter = "5.8.2" +junitVersion = "1.1.5" +kotlin = "1.9.22" +kotlinxCoroutines = "1.7.3" +kotlinxDatetime = "0.5.0" +kotlinxSerializationJson = "1.6.0" +kotlinxImmutable = "0.3.6" +ksp = "1.9.21-1.0.16" # "1.9.10-1.0.13" +legacySupportV4 = "1.0.0" +lifecycleCommonJava8 = "2.7.0" +lifecycleExtensions = "2.2.0" +lifecycleReactivestreamsKtx = "2.7.0" +lint = "31.3.0" +leakcanaryVersion = '2.10' +material = "1.11.0" +materialIconsExtended = "1.6.2" +materialshowcaseview = "1.3.7" +materialVersion = "1.6.2" +mifosAndroidSdkArchVersion = "1.06" +mifosPasscode = "1.0.0" +mockitoCore = "5.5.0" +moshiVersion = '1.15.0' +mockkVersion = "1.13.5" +multidex = "2.0.1" +navigationFragmentKtx = "2.7.7" +navigationUiKtx = "2.7.7" +okhttpVersion = "4.12.0" +pagingRuntimeKtx = "3.2.1" +playServicesLocation = "21.1.0" +playServicesMaps = "18.2.0" +playServicesPlaces = "17.0.0" +preferenceKtx = "1.2.1" +protobuf = "3.24.4" +protobufPlugin = "0.9.4" +playIntegrity = '1.3.0' +playUpdate = "2.1.0" +playScanner = "16.1.0" +playService = "18.3.0" +realmVersion = "1.13.0" +recyclerview = "1.3.2" +room = "2.6.1" +retrofit = "2.9.0" +rxandroidVersion = "1.1.0" +rxjava = "1.3.8" +rxjava3 = "3.1.8" # 1.3.8 +rxandroid = "3.0.2" # 1.1.0 + +secrets = "2.0.1" +stetho = "1.3.1" +stethoOkhttp3 = "1.3.1" +sweetError = "1.0.9" +textdrawable = "558677ea31" +turbine = "1.0.0" +timberVersion = '5.0.1' +truthVersion = '1.1.5' + +[libraries] +# AndroidX Libraries +accompanist-swiperefresh = { module = "com.google.accompanist:accompanist-swiperefresh", version.ref = "accompanistSwiperefresh" } +accompanist-permission = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanistPermission" } +android-desugarJdkLibs = { group = "com.android.tools", name = "desugar_jdk_libs", version.ref = "androidDesugarJdkLibs" } + +# Androidx Activity Compose +androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "androidxActivity" } +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidxAppCompat" } +androidx-benchmark-macro = { group = "androidx.benchmark", name = "benchmark-macro-junit4", version.ref = "androidxMacroBenchmark" } +androidx-annotation = { module = "androidx.annotation:annotation", version.ref = "annotation" } + +#Androidx Multidex +androidx-multidex = { module = "androidx.multidex:multidex", version.ref = "multidex" } + +# Androidx Preference +androidx-paging-compose = { module = "androidx.paging:paging-compose", version.ref = "pagingRuntimeKtx" } +androidx-paging-runtime-ktx = { module = "androidx.paging:paging-runtime-ktx", version.ref = "pagingRuntimeKtx" } +androidx-preference-ktx = { module = "androidx.preference:preference-ktx", version.ref = "preferenceKtx" } + +#Androidx RecyclerView +androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "recyclerview" } + +#Android Maps +android-maps-utils = { module = "com.google.maps.android:android-maps-utils", version.ref = "androidMapsUtils" } + +#Android Iconify +android-iconify-material = { module = "com.joanzapata.iconify:android-iconify-material", version.ref = "androidIconifyMaterial" } + +#RxAndroid +rxandroid = { module = "io.reactivex:rxandroid", version.ref = "rxandroidVersion" } +rxjava = { module = "io.reactivex:rxjava", version.ref = "rxjava" } + + +# Androidx Compose UI +androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidxComposeBom" } +androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation" } +androidx-compose-foundation-layout = { group = "androidx.compose.foundation", name = "foundation-layout" } + +# Androidx Compose Material +androidx-compiler = { module = "androidx.compose.compiler:compiler", version.ref = "compiler" } +androidx-material = { module = "androidx.compose.material:material", version.ref = "materialVersion" } +androidx-material-icons-extended = { module = "androidx.compose.material:material-icons-extended", version.ref = "materialIconsExtended" } +androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "androidxComposeMaterial3" } +androidx-compose-material3-windowSizeClass = { group = "androidx.compose.material3", name = "material3-window-size-class", version.ref = "androidxComposeMaterial3" } + +# Android Material +material = { module = "com.google.android.material:material", version.ref = "material" } +materialshowcaseview = { module = "com.github.deano2390:MaterialShowcaseView", version.ref = "materialshowcaseview" } + +# Androidx Compose Runtime +androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidxCore" } +androidx-compose-runtime = { group = "androidx.compose.runtime", name = "runtime", version.ref = "androidxComposeRuntime" } +androidx-compose-runtime-livedata = { group = "androidx.compose.runtime", name = "runtime-livedata", version.ref = "androidxComposeRuntime" } +androidx-compose-runtime-tracing = { group = "androidx.compose.runtime", name = "runtime-tracing", version.ref = "androidxComposeRuntimeTracing" } +androidx-compose-ui = { group = "androidx.compose.ui", name = "ui", version.ref = "androidxComposeUi" } +androidx-compose-ui-test = { group = "androidx.compose.ui", name = "ui-test-junit4", version.ref = "androidxComposeUi" } +androidx-compose-ui-testManifest = { group = "androidx.compose.ui", name = "ui-test-manifest", version.ref = "androidxComposeUi" } +androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "androidxComposeUi" } +androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview", version.ref = "androidxComposeUi" } +androidx-compose-ui-util = { group = "androidx.compose.ui", name = "ui-util", version.ref = "androidxComposeUi" } +androidx-compose-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics", version.ref = "androidxComposeUi" } + +# Androidx Startup and Splash Screen +androidx-core-splashscreen = { group = "androidx.core", name = "core-splashscreen", version.ref = "androidxCoreSplashscreen" } +androidx-core-startup = { group = "androidx.startup", name = "startup-runtime", version.ref = "androidxStartup" } + +# Androidx Hilt Navigation +androidx-hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "androidxHiltNavigationCompose" } + +# Androidx Lifecycle +androidx-lifecycle-livedata-ktx = { group = "androidx.lifecycle", name = "lifecycle-livedata-ktx", version.ref = "androidxLifecycle" } +androidx-lifecycle-runtimeCompose = { group = "androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "androidxLifecycle" } +androidx-lifecycle-viewModelCompose = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-compose", version.ref = "androidxLifecycle" } +androidx-lifecycle-viewmodel-ktx = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "androidxLifecycle" } +androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "androidxLifecycle" } +androidx-lifecycle-viewmodel-savedstate = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-savedstate", version.ref = "androidxLifecycle" } +androidx-lifecycle-common-java8 = { module = "androidx.lifecycle:lifecycle-common-java8", version.ref = "lifecycleCommonJava8" } +androidx-lifecycle-extensions = { module = "androidx.lifecycle:lifecycle-extensions", version.ref = "lifecycleExtensions" } +androidx-lifecycle-reactivestreams-ktx = { module = "androidx.lifecycle:lifecycle-reactivestreams-ktx", version.ref = "lifecycleReactivestreamsKtx" } + +androidx-metrics = { group = "androidx.metrics", name = "metrics-performance", version.ref = "androidxMetrics" } + +# Androidx Navigation +androidx-navigation-fragment-ktx = { module = "androidx.navigation:navigation-fragment-ktx", version.ref = "navigationFragmentKtx" } +androidx-navigation-ui-ktx = { module = "androidx.navigation:navigation-ui-ktx", version.ref = "navigationUiKtx" } +# AndroidX Compose Navigation +androidx-navigation-compose = { group = "androidx.navigation", name = "navigation-compose", version.ref = "androidxNavigation" } +androidx-navigation-testing = { group = "androidx.navigation", name = "navigation-testing", version.ref = "androidxNavigation" } + +androidx-core-testing = { module = "androidx.arch.core:core-testing", version.ref = "coreTesting" } + +androidx-profileinstaller = { group = "androidx.profileinstaller", name = "profileinstaller", version.ref = "androidxProfileinstaller" } +androidx-test-core = { group = "androidx.test", name = "core", version.ref = "androidxTestCore" } +androidx-test-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "androidxEspresso" } +androidx-espresso-idling-resource = { module = "androidx.test.espresso:espresso-idling-resource", version.ref = "espressoIdlingResource" } +androidx-espresso-intents = { module = "androidx.test.espresso:espresso-intents", version.ref = "espressoIntents" } +androidx-junit = { module = "androidx.test.ext:junit", version.ref = "junitVersion" } +androidx-legacy-support-v4 = { module = "androidx.legacy:legacy-support-v4", version.ref = "legacySupportV4" } +androidx-test-ext = { group = "androidx.test.ext", name = "junit-ktx", version.ref = "androidxTestExt" } +androidx-test-rules = { group = "androidx.test", name = "rules", version.ref = "androidxTestRules" } +androidx-test-runner = { group = "androidx.test", name = "runner", version.ref = "androidxTestRunner" } +androidx-test-uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", version.ref = "androidxUiAutomator" } +androidx-tracing-ktx = { group = "androidx.tracing", name = "tracing-ktx", version.ref = "androidxTracing" } +androidx-window-manager = { module = "androidx.window:window", version.ref = "androidxWindowManager" } + +# Androidx Work +androidx-work-ktx = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "androidxWork" } +androidx-work-testing = { group = "androidx.work", name = "work-testing", version.ref = "androidxWork" } + +#Retrofit Converters +adapter-rxjava = { module = "com.squareup.retrofit2:adapter-rxjava", version.ref = "adapterRxjava" } +converter-gson = { module = "com.squareup.retrofit2:converter-gson", version.ref = "converterGson" } +converter-scalars = { module = "com.squareup.retrofit2:converter-scalars", version.ref = "converterScalars" } + +# Coil Compose +coil-kt-compose = { module = "io.coil-kt:coil-compose", version.ref = "coil-compose" } + +# DBFlow +dbflow = { module = "com.github.raizlabs.dbflow.dbflow:dbflow", version.ref = "dbflow" } +dbflow-processor = { module = "com.github.raizlabs.dbflow.dbflow:dbflow-processor", version.ref = "dbflow" } +github-dbflow-processor = { module = "com.github.raizlabs.dbflow:dbflow-processor", version.ref = "dbflowProcessor" } + +#Evernote +android-job = { module = "com.evernote:android-job", version.ref = "androidJob" } + +# Fliptables +fliptables = { module = "com.jakewharton.fliptables:fliptables", version.ref = "fliptables" } + +#Glide +glide = { module = "com.github.bumptech.glide:glide", version.ref = "glide" } + +# Firebase Analytics & Bom +firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics-ktx" } +firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebaseBom" } +firebase-cloud-messaging = { group = "com.google.firebase", name = "firebase-messaging-ktx" } +firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics-ktx" } +firebase-performance = { group = "com.google.firebase", name = "firebase-perf-ktx" } +firebase-performance-gradle = { group = "com.google.firebase", name = "perf-plugin", version.ref = "firebasePerfPlugin" } + +# Google OSS Plugins +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" } + +# Hilt. +hilt-android = { group = "com.google.dagger", name = "hilt-android", version.ref = "hilt" } +hilt-android-testing = { group = "com.google.dagger", name = "hilt-android-testing", version.ref = "hilt" } +hilt-compiler = { group = "com.google.dagger", name = "hilt-android-compiler", version.ref = "hilt" } +hilt-ext-compiler = { group = "androidx.hilt", name = "hilt-compiler", version.ref = "hiltExt" } +hilt-ext-work = { group = "androidx.hilt", name = "hilt-work", version.ref = "hiltExt" } + +#Junit +junit4 = { group = "junit", name = "junit", version.ref = "junit4" } +junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junitJupiter" } + + +# Coroutines +kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib-jdk8", version.ref = "kotlin" } +kotlinx-coroutines-core = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "kotlinxCoroutines" } +kotlinx-coroutines-android = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "kotlinxCoroutines" } +kotlinx-coroutines-guava = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-guava", version.ref = "kotlinxCoroutines" } +# For testing +kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "kotlinxCoroutines" } +kotlinx-datetime = { group = "org.jetbrains.kotlinx", name = "kotlinx-datetime", version.ref = "kotlinxDatetime" } +kotlinx-serialization-json = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version.ref = "kotlinxSerializationJson" } +kotlinx-collections-immutable = {group = "org.jetbrains.kotlinx", name = "kotlinx-collections-immutable", version.ref = "kotlinxImmutable"} + +#Android Lint +lint-api = { group = "com.android.tools.lint", name = "lint-api", version.ref = "lint" } + +# LeackCanary +leakcanary = { group = "com.squareup.leakcanary", name = "leakcanary-android", version.ref = "leakcanaryVersion" } + +# Moshi +moshi-kotlin-codegen = { group = "com.squareup.moshi", name = "moshi-kotlin-codegen", version.ref = "moshiVersion" } +moshi = { group = "com.squareup.moshi", name = "moshi", version.ref = "moshiVersion" } + +# Mockk +mockk-android = { group = "io.mockk", name = "mockk-android", version.ref = "mockkVersion" } +mockk = { group = "io.mockk", name = "mockk", version.ref = "mockkVersion" } + +# Mockito +mockito-android = { module = "org.mockito:mockito-android", version.ref = "mockitoCore" } +mockito-core = { module = "org.mockito:mockito-core", version.ref = "mockitoCore" } + +# Mifos SDKs +fineract-client = { module = "com.github.openMF:fineract-client", version.ref = "fineractClientVersion" } +mifos-android-sdk-arch = { module = "com.github.openMF:mifos-android-sdk-arch", version.ref = "mifosAndroidSdkArchVersion" } +mifos-passcode = { module = "com.mifos.mobile:mifos-passcode", version.ref = "mifosPasscode" } + +#OkHttp +okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttpVersion" } +logging-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttpVersion" } +stetho = { module = "com.facebook.stetho:stetho", version.ref = "stetho" } +stetho-okhttp3 = { module = "com.facebook.stetho:stetho-okhttp3", version.ref = "stethoOkhttp3" } + +#Google Play +play-app-update = { group = "com.google.android.play", name = "app-update", version.ref="playUpdate"} +play-app-update-ktx = { group = "com.google.android.play", name = "app-update-ktx", version.ref="playUpdate"} +play-gms-scanner = { group = "com.google.android.gms", name = "play-services-code-scanner", version.ref = "playScanner"} +play-integrity = { group = "com.google.android.play", name = "integrity", version.ref = "playIntegrity"} +play-service = {group = "com.google.android.gms", name = "play-services-base", version.ref = "playService"} +play-services-location = { module = "com.google.android.gms:play-services-location", version.ref = "playServicesLocation" } +play-services-maps = { module = "com.google.android.gms:play-services-maps", version.ref = "playServicesMaps" } +play-services-places = { module = "com.google.android.gms:play-services-places", version.ref = "playServicesPlaces" } + +#Protobuf +protobuf-kotlin-lite = { group = "com.google.protobuf", name = "protobuf-kotlin-lite", version.ref = "protobuf" } +protobuf-protoc = { group = "com.google.protobuf", name = "protoc", version.ref = "protobuf" } + +# Room Database +room-compiler = { group = "androidx.room", name = "room-compiler", version.ref = "room" } +room-ktx = { group = "androidx.room", name = "room-ktx", version.ref = "room" } +room-runtime = { group = "androidx.room", name = "room-runtime", version.ref = "room" } +room-paging = { group = "androidx.room", name = "room-paging", version.ref = "room" } + +# Realm +realm-library-base = { group = "io.realm.kotlin", name = "library-base", version.ref = "realmVersion" } + +#SweetError +sweet-error = { module = "com.github.therajanmaurya:sweet-error", version.ref = "sweetError" } + +#TextDrawable +textdrawable = { module = "com.github.amulyakhare:TextDrawable", version.ref = "textdrawable" } + +#Turbine +turbine = { group = "app.cash.turbine", name = "turbine", version.ref = "turbine" } + +# Timber +timber = { group = "com.jakewharton.timber", name = "timber", version.ref = "timberVersion" } + +# Truth +truth = { group = "com.google.truth", name = "truth", version.ref = "truthVersion" } + + +[plugins] +android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" } +android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" } +android-test = { id = "com.android.test", version.ref = "androidGradlePlugin" } +androidx-baselineprofile = { id = "androidx.baselineprofile", version.ref = "androidxBaselineProfile" } +androidx-benchmark = { id = "androidx.benchmark", version.ref = "androidxBenchmark" } +androidx-navigation = {id = "androidx.navigation.safeargs", version.ref = "androidxNavigation"} +firebase-crashlytics = { id = "com.google.firebase.crashlytics", version.ref = "firebaseCrashlyticsPlugin" } +firebase-perf = { id = "com.google.firebase.firebase-perf", version.ref = "firebasePerfPlugin" } +gms = { id = "com.google.gms.google-services", version.ref = "gmsPlugin" } +hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +kotlin-kapt = { id = "kotlin-kapt", version.ref = "kotlin" } +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } +kotlin-parcelize = { id = "kotlin-parcelize", version.ref = "kotlin" } +ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } +protobuf = { id = "com.google.protobuf", version.ref = "protobufPlugin" } +realm = { id = "io.realm.kotlin", version.ref = "realmVersion" } +secrets = { id = "com.google.android.libraries.mapsplatform.secrets-gradle-plugin", version.ref = "secrets" } + diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index f5011f20042..e76eeedd1a0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Fri Feb 02 11:29:16 IST 2024 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists \ No newline at end of file diff --git a/mifosng-android/build.gradle.kts b/mifosng-android/build.gradle.kts index f784bebc868..a7118264508 100644 --- a/mifosng-android/build.gradle.kts +++ b/mifosng-android/build.gradle.kts @@ -6,13 +6,13 @@ import org.gradle.api.tasks.testing.logging.TestLogEvent */ plugins { - id("com.android.application") - id("org.jetbrains.kotlin.android") - id("kotlin-kapt") - id("kotlin-parcelize") - id("androidx.navigation.safeargs.kotlin") - id("com.google.dagger.hilt.android") - id("org.jetbrains.kotlin.plugin.serialization") + alias(libs.plugins.android.application) + alias(libs.plugins.androidx.navigation) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.serialization) + alias(libs.plugins.hilt) + id(libs.plugins.kotlin.parcelize.get().pluginId) + id(libs.plugins.kotlin.kapt.get().pluginId) } apply(from = "../config/quality/quality.gradle") @@ -129,131 +129,132 @@ dependencies { implementation(project(":core:common")) // Multidex dependency - implementation("androidx.multidex:multidex:2.0.1") + implementation(libs.androidx.multidex) // Text drawable dependency - implementation("com.github.amulyakhare:TextDrawable:558677ea31") + implementation(libs.textdrawable) // Kotlin standard library - implementation("org.jetbrains.kotlin:kotlin-stdlib:1.9.22") + implementation(libs.kotlin.stdlib) //DBFlow dependencies - kapt("com.github.raizlabs.dbflow.dbflow:dbflow-processor:3.1.1") - implementation("com.github.raizlabs.dbflow.dbflow:dbflow:3.1.1") - kapt("com.github.raizlabs.dbflow:dbflow-processor:4.2.4") + kapt(libs.dbflow.processor) + implementation(libs.dbflow) + kapt(libs.github.dbflow.processor) // App's Support dependencies, including test - implementation("androidx.appcompat:appcompat:1.6.1") - implementation("androidx.legacy:legacy-support-v4:1.0.0") - implementation("androidx.recyclerview:recyclerview:1.3.1") - implementation("com.google.android.material:material:1.9.0") - implementation("com.google.android.gms:play-services-places:17.0.0") - implementation("com.google.android.gms:play-services-location:21.0.1") - implementation("com.google.android.gms:play-services-maps:18.1.0") - implementation("com.google.maps.android:android-maps-utils:0.4.2") - implementation("androidx.test.espresso:espresso-idling-resource:3.5.1") + implementation(libs.androidx.appcompat) + implementation(libs.androidx.legacy.support.v4) + implementation(libs.androidx.recyclerview) + implementation(libs.material) + implementation(libs.play.services.places) + implementation(libs.play.services.location) + implementation(libs.play.services.maps) + implementation(libs.android.maps.utils) + implementation(libs.androidx.espresso.idling.resource) //LifeCycle - implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.1") - implementation("androidx.lifecycle:lifecycle-extensions:2.2.0") - implementation("androidx.lifecycle:lifecycle-reactivestreams-ktx:2.6.1") - implementation("androidx.lifecycle:lifecycle-common-java8:2.6.1") + implementation(libs.androidx.lifecycle.runtime.ktx) + implementation(libs.androidx.lifecycle.extensions) + implementation(libs.androidx.lifecycle.reactivestreams.ktx) + implementation(libs.androidx.lifecycle.common.java8) //Square dependencies implementation("com.squareup.retrofit2:retrofit:2.9.0") { // exclude Retrofit’s OkHttp peer-dependency module and define your own module import exclude(module = "okhttp") } - implementation("com.squareup.retrofit2:converter-gson:2.9.0") - implementation("com.squareup.retrofit2:converter-scalars:2.9.0") - implementation("com.squareup.retrofit2:adapter-rxjava:2.9.0") - implementation("com.squareup.okhttp3:okhttp:4.9.2") - implementation("com.squareup.okhttp3:logging-interceptor:4.11.0") - implementation("com.jakewharton.fliptables:fliptables:1.0.1") + implementation(libs.converter.gson) + implementation(libs.converter.scalars) + implementation(libs.adapter.rxjava) + implementation(libs.okhttp) + implementation(libs.logging.interceptor) + + implementation(libs.fliptables) //sweet error dependency - implementation("com.github.therajanmaurya:sweet-error:1.0.9") + implementation(libs.sweet.error) //rxjava dependencies - implementation("io.reactivex:rxandroid:1.1.0") - implementation("io.reactivex:rxjava:1.3.8") + implementation(libs.rxandroid) + implementation(libs.rxjava) //stetho dependencies - implementation("com.facebook.stetho:stetho:1.3.1") - implementation("com.facebook.stetho:stetho-okhttp3:1.3.1") + implementation(libs.stetho) + implementation(libs.stetho.okhttp3) //showcase View dependency - implementation("com.github.deano2390:MaterialShowcaseView:1.3.7") + implementation(libs.materialshowcaseview) //Iconify dependency - implementation("com.joanzapata.iconify:android-iconify-material:2.2.2") + implementation(libs.android.iconify.material) //glide dependency - implementation("com.github.bumptech.glide:glide:4.15.1") + implementation(libs.glide) //mifos passcode dependency - implementation("com.mifos.mobile:mifos-passcode:1.0.0") + implementation(libs.mifos.passcode) // Android Testing Support Library's runner and rules dependencies - androidTestImplementation("androidx.test:runner:1.5.2") - androidTestImplementation("androidx.test:rules:1.5.0") + androidTestImplementation(libs.androidx.test.runner) + androidTestImplementation(libs.androidx.test.rules) // Espresso UI Testing dependencies. - androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") + androidTestImplementation(libs.androidx.test.espresso.core) androidTestImplementation("androidx.test.espresso:espresso-contrib:3.5.1") { exclude(group = "com.android.support", module = "appcompat") exclude(group = "com.android.support", module = "support-v4") exclude(group = "com.android.support", module = "recyclerview-v7") exclude(group = "com.android.support", module = "design") } - androidTestImplementation("androidx.test.espresso:espresso-intents:3.5.1") + androidTestImplementation(libs.androidx.espresso.intents) // Mockito and jUnit dependencies - testImplementation("junit:junit:4.13.2") - testImplementation("org.mockito:mockito-core:5.5.0") - androidTestImplementation("junit:junit:4.13.2") - androidTestImplementation("org.mockito:mockito-core:5.5.0") - androidTestImplementation("org.mockito:mockito-android:5.5.0") - testImplementation("org.junit.jupiter:junit-jupiter:5.7.2") - testImplementation("androidx.arch.core:core-testing:2.2.0") + testImplementation(libs.junit4) + testImplementation(libs.mockito.core) + androidTestImplementation(libs.junit4) + androidTestImplementation(libs.mockito.core) + androidTestImplementation(libs.mockito.android) + testImplementation(libs.junit.jupiter) + testImplementation(libs.androidx.core.testing) //Android-Jobs - implementation("com.evernote:android-job:1.2.6") + implementation(libs.android.job) // androidx annotations - implementation("androidx.annotation:annotation:1.6.0") + implementation(libs.androidx.annotation) //preferences - implementation("androidx.preference:preference-ktx:1.2.0") + implementation(libs.androidx.preference.ktx) //Splash Screen - implementation("androidx.core:core-splashscreen:1.1.0-alpha01") + implementation(libs.androidx.core.splashscreen) // Navigation Components - implementation("androidx.navigation:navigation-fragment-ktx:2.6.0") - implementation("androidx.navigation:navigation-ui-ktx:2.6.0") + implementation(libs.androidx.navigation.fragment.ktx) + implementation(libs.androidx.navigation.ui.ktx) // Hilt dependency - implementation("com.google.dagger:hilt-android:2.50") - kapt("com.google.dagger:hilt-android-compiler:2.50") + implementation(libs.hilt.android) + kapt(libs.hilt.compiler) // fineract sdk dependencies - implementation("com.github.openMF:mifos-android-sdk-arch:1.06") + implementation(libs.mifos.android.sdk.arch) // sdk client - implementation("com.github.openMF:fineract-client:2.0.3") + implementation(libs.fineract.client) // Jetpack Compose - implementation("androidx.compose.material:material:1.6.0") - implementation("androidx.compose.compiler:compiler:1.5.8") - implementation("androidx.compose.ui:ui-tooling-preview:1.6.1") - implementation("androidx.activity:activity-compose:1.8.2") - debugImplementation("androidx.compose.ui:ui-tooling:1.6.1") - implementation("androidx.compose.material3:material3:1.1.2") - implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0") - implementation("androidx.compose.material:material-icons-extended:1.6.1") + implementation(libs.androidx.material) + implementation(libs.androidx.compiler) + implementation(libs.androidx.compose.ui.tooling.preview) + implementation(libs.androidx.activity.compose) + debugImplementation(libs.androidx.compose.ui.tooling) + implementation(libs.androidx.compose.material3) + implementation(libs.androidx.lifecycle.viewModelCompose) + implementation(libs.androidx.material.icons.extended) // ViewModel utilities for Compose - implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0") - implementation("androidx.hilt:hilt-navigation-compose:1.1.0") + implementation(libs.androidx.lifecycle.viewModelCompose) + implementation(libs.androidx.hilt.navigation.compose) } \ No newline at end of file