diff --git a/.github/workflows/pr_workflow.yml b/.github/workflows/pr_workflow.yml
index 5d369be..6435191 100644
--- a/.github/workflows/pr_workflow.yml
+++ b/.github/workflows/pr_workflow.yml
@@ -11,16 +11,16 @@ on:
jobs:
test:
name: Run Static Analysis + Unit Tests
- runs-on: ubuntu-18.04
+ runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- - name: set up JDK 11
+ - name: set up JDK 17
uses: actions/setup-java@v1
with:
- java-version: 11
+ java-version: 17
- name: Decrypting api-properties
run: gpg --quiet --batch --yes --decrypt --passphrase "${{ secrets.API_PROPERTIES_PASSPHRASE }}" project-config/api-properties/api.properties.asc > project-config/api-properties/api.properties
diff --git a/.github/workflows/release_workflow.yml b/.github/workflows/release_workflow.yml
index b90ee36..1d4328f 100644
--- a/.github/workflows/release_workflow.yml
+++ b/.github/workflows/release_workflow.yml
@@ -8,16 +8,16 @@ on:
jobs:
test:
name: Release - Run Unit Tests
- runs-on: ubuntu-18.04
+ runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- - name: set up JDK 11
+ - name: set up JDK 17
uses: actions/setup-java@v1
with:
- java-version: 11
+ java-version: 17
- name: Decrypting api-properties
run: gpg --quiet --batch --yes --decrypt --passphrase "${{ secrets.API_PROPERTIES_PASSPHRASE }}" project-config/api-properties/api.properties.asc > project-config/api-properties/api.properties
@@ -27,15 +27,15 @@ jobs:
apk:
name: Generate APK
- runs-on: ubuntu-18.04
+ runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- - name: set up JDK 11
+ - name: set up JDK 17
uses: actions/setup-java@v1
with:
- java-version: 11
+ java-version: 17
- name: Build debug APK
run: ./gradlew assembleDebug --stacktrace
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index fb7f4a8..b589d56 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
new file mode 100644
index 0000000..0c0c338
--- /dev/null
+++ b/.idea/deploymentTargetDropDown.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
index e1eea1d..fdf8d99 100644
--- a/.idea/kotlinc.xml
+++ b/.idea/kotlinc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/migrations.xml b/.idea/migrations.xml
new file mode 100644
index 0000000..f8051a6
--- /dev/null
+++ b/.idea/migrations.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index aedf81c..fcc8e53 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -50,6 +50,7 @@ dependencies {
implementation libs.kotlin.stdlib
implementation libs.coroutines.core
+ implementation platform(libs.koin.bom)
implementation libs.koin.core
implementation libs.koin.android
diff --git a/build.gradle b/build.gradle
index 8dbb300..0620e28 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,7 +4,7 @@ plugins {
alias(libs.plugins.android.library) apply false
alias(libs.plugins.kotlin.jvm) apply false
alias(libs.plugins.kotlin.android) apply false
- alias(libs.plugins.kotlin.kapt)
+ alias(libs.plugins.kotlin.ksp) apply false
alias(libs.plugins.easylauncher) apply false
alias(libs.plugins.gradle.deps.update)
}
@@ -20,13 +20,6 @@ apply from: "project-config/dependencies-checker/dependencies-checker.gradle"
// Usage ./gradlew jacocoTestReport
apply from: "$rootDir/quality/test-coverage-setup.gradle"
-allprojects {
- repositories {
- mavenCentral()
- google()
- }
-}
-
task installGitHooks(type: Exec) {
group 'Quality'
description 'Installs the git hooks'
diff --git a/core-android/build.gradle b/core-android/build.gradle
index 240b2e2..83794ba 100644
--- a/core-android/build.gradle
+++ b/core-android/build.gradle
@@ -28,6 +28,7 @@ android {
dependencies {
implementation libs.kotlin.stdlib
+ implementation platform(libs.koin.bom)
implementation libs.koin.core
implementation libs.retrofit
diff --git a/gradle.properties b/gradle.properties
index f996dae..0dd355c 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -18,4 +18,7 @@ android.useAndroidX=true
# Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style=official
# Temporary solution for easylauncher plugin
-android.disableResourceValidation=true
\ No newline at end of file
+android.disableResourceValidation=true
+android.defaults.buildfeatures.buildconfig=true
+android.nonTransitiveRClass=false
+android.nonFinalResIds=false
\ No newline at end of file
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 6963b07..644d9e7 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -1,59 +1,61 @@
[versions]
-gradleplugin = "7.4.1"
-kotlin = "1.8.10"
+gradleplugin = "8.2.2"
+kotlin = "1.9.0"
+ksp = "1.9.0-1.0.13"
minSdk = "23"
-compileSdk = "33"
-compose = "1.4.2"
+compileSdk = "34"
+compose = "1.5.2"
[libraries]
# Kotlin
kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" }
kotlin-jdk = { module = "org.jetbrains.kotlin:kotlin-stdlib-jdk8", version.ref = "kotlin" }
-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version = "1.6.4" }
-kotlin-result = { module = "com.michael-bull.kotlin-result:kotlin-result", version = "1.1.16" }
+coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version = "1.8.0" }
+kotlin-result = { module = "com.michael-bull.kotlin-result:kotlin-result", version = "1.1.18" }
# Debug
-leak-canary = { module = "com.squareup.leakcanary:leakcanary-android", version = "2.10" }
+leak-canary = { module = "com.squareup.leakcanary:leakcanary-android", version = "2.13" }
# Compose
-compose-bom = { module = "androidx.compose:compose-bom", version = "2023.01.00" }
+compose-bom = { module = "androidx.compose:compose-bom", version = "2024.02.01" }
compose-ui = { module = "androidx.compose.ui:ui" }
compose-foundation = { module = "androidx.compose.foundation:foundation" }
compose-material = { module = "androidx.compose.material:material" }
compose-materialIcons = { module = "androidx.compose.material:material-icons-core" }
compose-materialIconsExt = { module = "androidx.compose.material:material-icons-extended" }
compose-tooling = { module = "androidx.compose.ui:ui-tooling" }
-compose-activity = { module = "androidx.activity:activity-compose", version = "1.6.1" }
-compose-swipeRefresh = { module = "com.google.accompanist:accompanist-swiperefresh", version = "0.28.0" }
+compose-activity = { module = "androidx.activity:activity-compose", version = "1.8.2" }
+compose-swipeRefresh = { module = "com.google.accompanist:accompanist-swiperefresh", version = "0.34.0" }
compose-collapsingToolbar = { module = "me.onebone:toolbar-compose", version = "2.3.5" }
# Network related libraries
retrofit = { module = "com.squareup.retrofit2:retrofit", version = "2.9.0" }
-okhttp = { module = "com.squareup.okhttp3:okhttp", version = "4.10.0" }
+okhttp = { module = "com.squareup.okhttp3:okhttp", version = "4.12.0" }
moshi-converter = { module = "com.squareup.retrofit2:converter-moshi", version = "2.9.0" }
-moshi-codegen = { module = "com.squareup.moshi:moshi-kotlin-codegen", version = "1.14.0" }
-moshi = { module = "com.squareup.moshi:moshi", version = "1.14.0" }
+moshi-codegen = { module = "com.squareup.moshi:moshi-kotlin-codegen", version = "1.15.1" }
+moshi = { module = "com.squareup.moshi:moshi", version = "1.15.1" }
# Android components
appCompat = { module = "androidx.appcompat:appcompat", version = "1.6.1" }
-viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version = "2.4.1" }
-fragment = { module = "androidx.fragment:fragment-ktx", version = "1.5.4" }
-material = { module = "com.google.android.material:material", version = "1.8.0" }
+viewmodel = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version = "2.7.0" }
+fragment = { module = "androidx.fragment:fragment-ktx", version = "1.6.2" }
+material = { module = "com.google.android.material:material", version = "1.11.0" }
# Android utilities
play-core = { module = "com.google.android.play:core", version = "1.10.3" } # For in-App update
play-core-extensions = { module = "com.google.android.play:core-ktx", version = "1.8.1" }
# DI
-koin-core = { module = "io.insert-koin:koin-core", version = "3.3.3" }
-koin-android = { module = "io.insert-koin:koin-android", version = "3.3.3" }
+koin-bom = { module = "io.insert-koin:koin-bom", version = "3.5.3" }
+koin-core = { module = "io.insert-koin:koin-core" }
+koin-android = { module = "io.insert-koin:koin-android" }
# Image download library
-coil = { module = "io.coil-kt:coil", version = "2.2.2" }
-coil-compose = { module = "io.coil-kt:coil-compose", version = "2.2.2" }
+coil = { module = "io.coil-kt:coil", version = "2.5.0" }
+coil-compose = { module = "io.coil-kt:coil-compose", version = "2.5.0" }
# Crash reporting library
-sentry = { module = "io.sentry:sentry-android", version = "6.13.1" }
+sentry = { module = "io.sentry:sentry-android", version = "7.4.0" }
# Analytics
amplitude = { module = "com.amplitude:android-sdk", version = "3.35.1" }
@@ -63,8 +65,8 @@ timber = { module = "com.jakewharton.timber:timber", version = "5.0.1" }
# Testing
junit = { module = "junit:junit", version = "4.13.2"}
-mockk = { module = "io.mockk:mockk", version = "1.13.4"}
-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version = "1.6.4"}
+mockk = { module = "io.mockk:mockk", version = "1.13.9"}
+coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version = "1.8.0"}
[bundles]
@@ -73,6 +75,6 @@ android-application = { id = "com.android.application", version.ref = "gradleplu
android-library = { id = "com.android.library", version.ref = "gradleplugin" }
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
-kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }
-easylauncher = { id = "com.starter.easylauncher", version = "6.1.0" }
-gradle-deps-update = { id = "com.github.ben-manes.versions", version = "0.45.0" }
+kotlin-ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
+easylauncher = { id = "com.starter.easylauncher", version = "6.2.0" }
+gradle-deps-update = { id = "com.github.ben-manes.versions", version = "0.51.0" }
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index e211094..276c76a 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
#Tue Feb 14 16:12:35 BRT 2023
distributionBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
diff --git a/infrastructure/analytics-amplitude/build.gradle b/infrastructure/analytics-amplitude/build.gradle
index 56491d2..f6977e9 100644
--- a/infrastructure/analytics-amplitude/build.gradle
+++ b/infrastructure/analytics-amplitude/build.gradle
@@ -24,6 +24,7 @@ android {
dependencies {
implementation libs.kotlin.stdlib
+ implementation platform(libs.koin.bom)
implementation libs.koin.core
implementation libs.koin.android
diff --git a/infrastructure/configuration/build.gradle b/infrastructure/configuration/build.gradle
index 655acc2..1d51ddf 100644
--- a/infrastructure/configuration/build.gradle
+++ b/infrastructure/configuration/build.gradle
@@ -1,7 +1,7 @@
plugins {
alias(libs.plugins.android.library)
alias(libs.plugins.kotlin.android)
- alias(libs.plugins.kotlin.kapt)
+ alias(libs.plugins.kotlin.ksp)
}
android {
@@ -27,6 +27,7 @@ dependencies {
implementation libs.coroutines.core
implementation libs.kotlin.result
+ implementation platform(libs.koin.bom)
implementation libs.koin.core
implementation project(ProjectConfig.utilityKotlin)
@@ -35,5 +36,5 @@ dependencies {
implementation libs.retrofit
implementation libs.moshi.converter
implementation libs.moshi
- kapt libs.moshi.codegen
+ ksp libs.moshi.codegen
}
diff --git a/infrastructure/device/build.gradle b/infrastructure/device/build.gradle
index 93455c6..90cd5c4 100644
--- a/infrastructure/device/build.gradle
+++ b/infrastructure/device/build.gradle
@@ -12,8 +12,8 @@ android {
}
compileOptions {
- sourceCompatibility JavaVersion.VERSION_11
- targetCompatibility JavaVersion.VERSION_11
+ sourceCompatibility javaVersion
+ targetCompatibility javaVersion
}
kotlinOptions {
jvmTarget = jvmTargetVersion
@@ -25,5 +25,6 @@ dependencies {
implementation libs.kotlin.jdk
implementation libs.coroutines.core
+ implementation platform(libs.koin.bom)
implementation libs.koin.core
}
diff --git a/infrastructure/image/build.gradle b/infrastructure/image/build.gradle
index 59dc248..5cdec0f 100644
--- a/infrastructure/image/build.gradle
+++ b/infrastructure/image/build.gradle
@@ -31,6 +31,7 @@ dependencies {
implementation libs.kotlin.stdlib
implementation libs.coroutines.core
+ implementation platform(libs.koin.bom)
implementation libs.koin.core
implementation project(ProjectConfig.startup)
diff --git a/infrastructure/monitoring/build.gradle b/infrastructure/monitoring/build.gradle
index 188ffa1..fa9f04d 100644
--- a/infrastructure/monitoring/build.gradle
+++ b/infrastructure/monitoring/build.gradle
@@ -24,6 +24,7 @@ android {
dependencies {
implementation libs.kotlin.stdlib
+ implementation platform(libs.koin.bom)
implementation libs.koin.core
implementation libs.timber
diff --git a/infrastructure/navigation/build.gradle b/infrastructure/navigation/build.gradle
index 77604ec..d2d5e68 100644
--- a/infrastructure/navigation/build.gradle
+++ b/infrastructure/navigation/build.gradle
@@ -24,6 +24,7 @@ android {
dependencies {
implementation libs.kotlin.stdlib
+ implementation platform(libs.koin.bom)
implementation libs.koin.core
implementation project(ProjectConfig.coreAndroid)
diff --git a/infrastructure/startup/build.gradle b/infrastructure/startup/build.gradle
index 2816c77..3b8aca1 100644
--- a/infrastructure/startup/build.gradle
+++ b/infrastructure/startup/build.gradle
@@ -7,6 +7,7 @@ dependencies {
implementation libs.kotlin.stdlib
implementation libs.coroutines.core
+ implementation platform(libs.koin.bom)
implementation libs.koin.core
implementation project(ProjectConfig.utilityKotlin)
diff --git a/project-config/dependencies.gradle b/project-config/dependencies.gradle
index df40443..bac9849 100644
--- a/project-config/dependencies.gradle
+++ b/project-config/dependencies.gradle
@@ -1,6 +1,6 @@
ext {
- jvmTargetVersion = "11"
- javaVersion = JavaVersion.VERSION_11
+ jvmTargetVersion = "17"
+ javaVersion = JavaVersion.VERSION_17
ProjectConfig = [
utilityKotlin: ":utility:utility-kotlin",
diff --git a/project-config/feature-complete-build.gradle b/project-config/feature-complete-build.gradle
index 2be72fc..3d528ac 100644
--- a/project-config/feature-complete-build.gradle
+++ b/project-config/feature-complete-build.gradle
@@ -1,10 +1,10 @@
apply plugin: "com.android.library"
apply plugin: 'kotlin-android'
-apply plugin: 'kotlin-kapt'
+apply plugin: 'com.google.devtools.ksp'
//plugins {
// alias(libs.plugins.android.library)
// alias(libs.plugins.kotlin.android)
-// alias(libs.plugins.kotlin.kapt)
+// alias(libs.plugins.kotlin.ksp)
//}
android {
@@ -43,13 +43,14 @@ dependencies {
implementation libs.coroutines.core
implementation libs.kotlin.result
+ implementation platform(libs.koin.bom)
implementation libs.koin.core
implementation libs.koin.android
implementation libs.retrofit
implementation libs.moshi.converter
implementation libs.moshi
- kapt libs.moshi.codegen
+ ksp libs.moshi.codegen
implementation libs.appCompat
implementation libs.viewmodel
diff --git a/quality/jacoco.gradle b/quality/jacoco.gradle
index 77456d1..14eb788 100644
--- a/quality/jacoco.gradle
+++ b/quality/jacoco.gradle
@@ -28,10 +28,10 @@ def setupAndroidReporting() {
]
) {
reports {
- csv.enabled false
- xml.enabled false
+ csv.required = false
+ xml.required = false
html {
- enabled true
+ required = true
destination file("${buildDir}/coverage-report")
}
}
@@ -83,10 +83,10 @@ def setupKotlinReporting() {
jacocoTestReport {
dependsOn test
reports {
- csv.enabled false
- xml.enabled false
+ csv.required = false
+ xml.required = false
html {
- enabled true
+ required = true
destination file("${buildDir}/coverage-report")
}
}
diff --git a/quality/test-coverage-report.gradle b/quality/test-coverage-report.gradle
index aaf1b96..c0909ae 100644
--- a/quality/test-coverage-report.gradle
+++ b/quality/test-coverage-report.gradle
@@ -58,9 +58,9 @@ def setupAndroidReport() {
// These are the different report file formats that we have enabled jacoco to create reports for
reports {
- csv.enabled false
- xml.enabled = false
- html.enabled true
+ csv.required = false
+ xml.required = false
+ html.required = true
}
}
}
@@ -88,9 +88,9 @@ def setupKotlinReport() {
])
reports {
- csv.enabled false
- xml.enabled false
- html.enabled true
+ csv.required = false
+ xml.required = false
+ html.required = true
}
}
}
diff --git a/settings.gradle b/settings.gradle
index e09671e..da2dc3d 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -1,11 +1,19 @@
pluginManagement {
repositories {
- mavenCentral()
google()
+ mavenCentral()
gradlePluginPortal()
}
}
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
include ':app',
':utility:utility-android',
':utility:utility-kotlin',