Merge pull request #275 from ouchadam/tech/version-catalog

Tech/version catalog
This commit is contained in:
Adam Brown 2022-12-11 15:14:04 +00:00 committed by GitHub
commit 8aa1d3f1a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
50 changed files with 382 additions and 343 deletions

View File

@ -1,76 +1,25 @@
plugins { plugins {
id 'com.android.application' id "st-application-conventions"
id 'kotlin-android' alias libs.plugins.firebase.crashlytics apply false
} }
applyCommonAndroidParameters(project) applyCrashlyticsIfRelease()
applyCrashlyticsIfRelease(project)
android { android {
ndkVersion "25.0.8141415" namespace "app.dapk.st"
defaultConfig {
applicationId "app.dapk.st"
def versionJson = new groovy.json.JsonSlurper().parseText(rootProject.file('version.json').text)
versionCode versionJson.code
versionName versionJson.name
if (isDebugBuild) {
resConfigs "en", "xxhdpi"
} else {
resConfigs "en"
}
if (isFoss()) {
archivesBaseName = "$archivesBaseName-foss"
}
}
bundle {
abi.enableSplit true
density.enableSplit true
language.enableSplit true
}
buildTypes { buildTypes {
debug {
versionNameSuffix = " [debug]"
matchingFallbacks = ['release']
signingConfig.storeFile rootProject.file("tools/debug.keystore")
}
release { release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard/app.pro', 'proguard/app.pro',
"proguard/serializationx.pro", "proguard/serializationx.pro",
"proguard/olm.pro" "proguard/olm.pro"
if (project.hasProperty("unsigned")) {
// releases are signed externally
} else {
signingConfig = buildTypes.debug.signingConfig
} }
} }
}
compileOptions {
coreLibraryDesugaringEnabled true
}
packagingOptions {
resources.excludes += "DebugProbesKt.bin"
}
}
if (isDebugBuild) {
androidComponents {
def release = selector().withBuildType("release")
beforeVariants(release) { it.enabled = false }
}
} }
dependencies { dependencies {
coreLibraryDesugaring Dependencies.google.jdkLibs coreLibraryDesugaring libs.android.desugar
implementation project(":features:home") implementation project(":features:home")
implementation project(":features:directory") implementation project(":features:directory")
@ -98,11 +47,22 @@ dependencies {
implementation "chat-engine:matrix-chat-engine" implementation "chat-engine:matrix-chat-engine"
implementation "chat-engine.matrix:store" implementation "chat-engine.matrix:store"
implementation Dependencies.google.androidxComposeUi implementation libs.compose.ui
implementation Dependencies.mavenCentral.ktorAndroid implementation libs.ktor.android
implementation Dependencies.mavenCentral.sqldelightAndroid implementation libs.sqldelight.android
implementation Dependencies.mavenCentral.matrixOlm implementation libs.matrix.olm
implementation Dependencies.mavenCentral.kotlinSerializationJson implementation libs.kotlin.serialization
debugImplementation Dependencies.mavenCentral.leakCanary debugImplementation libs.leakcanary
}
def applyCrashlyticsIfRelease() {
if (isReleaseBuild && !isFoss()) {
project.apply plugin: libs.plugins.firebase.crashlytics.get().pluginId
project.afterEvaluate {
project.tasks.withType(com.google.firebase.crashlytics.buildtools.gradle.tasks.UploadMappingFileTask).configureEach {
it.googleServicesResourceRoot.set(project.file("src/release/res/"))
}
}
}
} }

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android">
package="app.dapk.st">
<application> <application>
<meta-data <meta-data

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android">
package="app.dapk.st">
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/> <uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>

View File

@ -1,24 +1,9 @@
buildscript {
apply from: "dependencies.gradle"
repositories {
Dependencies._repositories.call(it)
}
dependencies {
classpath Dependencies.google.androidGradlePlugin
classpath Dependencies.mavenCentral.kotlinGradlePlugin
classpath Dependencies.mavenCentral.sqldelightGradlePlugin
classpath Dependencies.mavenCentral.kotlinSerializationGradlePlugin
classpath Dependencies.google.firebaseCrashlyticsPlugin
}
}
def launchTask = getGradle() def launchTask = getGradle()
.getStartParameter() .getStartParameter()
.getTaskRequests() .getTaskRequests()
.toString() .toString()
.toLowerCase() .toLowerCase()
def isReleaseBuild = launchTask.contains("release") ext.isReleaseBuild = launchTask.contains("bundlerelease") || launchTask.contains("assemblerelease")
ext.isDebugBuild = !isReleaseBuild ext.isDebugBuild = !isReleaseBuild
subprojects { subprojects {
@ -37,112 +22,17 @@ task clean(type: Delete) {
delete rootProject.buildDir delete rootProject.buildDir
} }
ext.applyMatrixServiceModule = { project ->
project.apply plugin: 'kotlin'
project.apply plugin: 'org.jetbrains.kotlin.plugin.serialization'
def dependencies = project.dependencies
dependencies.api project.project(":matrix:matrix")
dependencies.api project.project(":matrix:common")
dependencies.implementation project.project(":matrix:matrix-http")
dependencies.implementation Dependencies.mavenCentral.kotlinSerializationJson
}
ext.applyLibraryPlugins = { project ->
project.apply plugin: 'com.android.library'
project.apply plugin: 'kotlin-android'
}
ext.androidSdkVersion = 33
ext.applyCommonAndroidParameters = { project ->
def android = project.android
android.compileSdk androidSdkVersion
android.compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
incremental = true
}
android.defaultConfig {
minSdkVersion 24
targetSdkVersion androidSdkVersion
}
}
ext.applyLibraryModuleOptimisations = { project ->
project.android {
variantFilter { variant ->
if (variant.name == "debug") {
variant.ignore = true
}
}
buildFeatures {
buildConfig = false
dataBinding = false
aidl = false
renderScript = false
resValues = false
shaders = false
viewBinding = false
}
}
}
ext.applyCompose = { project ->
def dependencies = project.dependencies
dependencies.implementation Dependencies.google.androidxComposeUi
dependencies.implementation Dependencies.google.androidxComposeFoundation
dependencies.implementation Dependencies.google.androidxComposeMaterial
dependencies.implementation Dependencies.google.androidxComposeIconsExtended
dependencies.implementation Dependencies.google.androidxActivityCompose
def android = project.android
android.buildFeatures.compose = true
android.composeOptions {
kotlinCompilerExtensionVersion = Dependencies.google.kotlinCompilerExtensionVersion
}
}
ext.applyAndroidComposeLibraryModule = { project ->
applyAndroidLibraryModule(project)
applyCompose(project)
}
ext.applyAndroidLibraryModule = { project ->
applyLibraryPlugins(project)
applyCommonAndroidParameters(project)
applyLibraryModuleOptimisations(project)
}
ext.applyCrashlyticsIfRelease = { project ->
if (isReleaseBuild && !isFoss()) {
project.apply plugin: 'com.google.firebase.crashlytics'
project.afterEvaluate {
project.tasks.withType(com.google.firebase.crashlytics.buildtools.gradle.tasks.UploadMappingFileTask).configureEach {
it.googleServicesResourceRoot.set(project.file("src/release/res/"))
}
}
}
}
ext.kotlinTest = { dependencies -> ext.kotlinTest = { dependencies ->
dependencies.testImplementation Dependencies.mavenCentral.kluent dependencies.testImplementation libs.kluent
dependencies.testImplementation Dependencies.mavenCentral.kotlinTest dependencies.testImplementation libs.kotlin.test
dependencies.testImplementation "org.jetbrains.kotlin:kotlin-test-junit:1.7.20" dependencies.testImplementation libs.mockk
dependencies.testImplementation Dependencies.mavenCentral.mockk dependencies.testImplementation libs.kotlin.coroutines.test
dependencies.testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4'
dependencies.testImplementation 'org.junit.jupiter:junit-jupiter-api:5.9.1'
dependencies.testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.9.1'
} }
ext.kotlinFixtures = { dependencies -> ext.kotlinFixtures = { dependencies ->
dependencies.testFixturesImplementation Dependencies.mavenCentral.mockk dependencies.testFixturesImplementation libs.mockk
dependencies.testFixturesImplementation Dependencies.mavenCentral.kluent dependencies.testFixturesImplementation libs.kluent
dependencies.testFixturesImplementation Dependencies.mavenCentral.kotlinCoroutinesCore dependencies.testFixturesImplementation libs.kotlin.coroutines
} }
ext.androidImportFixturesWorkaround = { project, fixtures -> ext.androidImportFixturesWorkaround = { project, fixtures ->

13
buildSrc/build.gradle Normal file
View File

@ -0,0 +1,13 @@
plugins {
id 'groovy-gradle-plugin'
}
repositories {
gradlePluginPortal()
google()
}
dependencies {
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:${libs.versions.kotlin.get()}")
implementation "com.android.tools.build:gradle:${libs.versions.android.gp.get()}"
}

7
buildSrc/settings.gradle Normal file
View File

@ -0,0 +1,7 @@
dependencyResolutionManagement {
versionCatalogs {
create("libs") {
from(files("../gradle/libs.versions.toml"))
}
}
}

View File

@ -0,0 +1,20 @@
plugins {
id 'st-android-library-conventions'
}
android {
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get()
}
}
dependencies {
implementation libs.compose.ui
implementation libs.compose.foundation
implementation libs.compose.material.three
implementation libs.compose.icons.extended
implementation libs.compose.activity
}

View File

@ -0,0 +1,18 @@
plugins {
id "kotlin-android"
}
def androidSdkVersion = 33
android {
compileSdk androidSdkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
incremental = true
}
defaultConfig {
minSdkVersion 24
targetSdkVersion androidSdkVersion
}
}

View File

@ -0,0 +1,22 @@
plugins {
id "com.android.library"
id "st-android-conventions"
}
android {
variantFilter { variant ->
if (variant.name == "debug") {
variant.ignore = true
}
}
buildFeatures {
buildConfig = false
dataBinding = false
aidl = false
renderScript = false
resValues = false
shaders = false
viewBinding = false
}
}

View File

@ -0,0 +1,64 @@
plugins {
id "com.android.application"
id "st-android-conventions"
}
android {
ndkVersion "25.0.8141415"
defaultConfig {
applicationId "app.dapk.st"
def versionJson = new groovy.json.JsonSlurper().parseText(rootProject.file('version.json').text)
versionCode versionJson.code
versionName versionJson.name
if (isDebugBuild) {
resConfigs "en", "xxhdpi"
} else {
resConfigs "en"
}
if (isFoss()) {
archivesBaseName = "$archivesBaseName-foss"
}
}
bundle {
abi.enableSplit true
density.enableSplit true
language.enableSplit true
}
buildTypes {
debug {
versionNameSuffix = " [debug]"
matchingFallbacks = ['release']
signingConfig.storeFile rootProject.file("tools/debug.keystore")
}
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt')
if (project.hasProperty("unsigned")) {
// releases are signed externally
} else {
signingConfig = buildTypes.debug.signingConfig
}
}
}
compileOptions {
coreLibraryDesugaringEnabled true
}
packagingOptions {
resources.excludes += "DebugProbesKt.bin"
}
}
if (isDebugBuild) {
androidComponents {
def release = selector().withBuildType("release")
beforeVariants(release) { it.enabled = false }
}
}

View File

@ -0,0 +1,3 @@
plugins {
id 'st-android-compose-library-conventions'
}

@ -1 +1 @@
Subproject commit 0439dc648c91af643dd480b359ce48bd11700d89 Subproject commit 8139eaaf57cee4ce9d0616d617e8aff7eb1480e3

View File

@ -4,9 +4,9 @@ plugins {
} }
dependencies { dependencies {
api Dependencies.mavenCentral.kotlinCoroutinesCore api libs.kotlin.coroutines
testFixturesImplementation Dependencies.mavenCentral.kotlinCoroutinesCore testFixturesImplementation libs.kotlin.coroutines
testFixturesImplementation Dependencies.mavenCentral.kluent testFixturesImplementation libs.kluent
testFixturesImplementation Dependencies.mavenCentral.mockk testFixturesImplementation libs.mockk
testFixturesImplementation Dependencies.mavenCentral.kotlinCoroutinesTest testFixturesImplementation libs.kotlin.coroutines.test
} }

View File

@ -1,8 +1,6 @@
ext.Dependencies = new DependenciesContainer() ext.applyRepositories = { dependencyResolutionManagement ->
dependencyResolutionManagement.repositories {
ext.Dependencies.with { google {
_repositories = { repositories ->
repositories.google {
content { content {
includeGroupByRegex "com\\.android.*" includeGroupByRegex "com\\.android.*"
includeGroupByRegex "com\\.google.*" includeGroupByRegex "com\\.google.*"
@ -10,14 +8,14 @@ ext.Dependencies.with {
} }
} }
repositories.maven { maven {
url 'https://jitpack.io' url 'https://jitpack.io'
content { content {
includeGroup "com.github.UnifiedPush" includeGroup "com.github.UnifiedPush"
} }
} }
repositories.mavenCentral { mavenCentral {
content { content {
includeGroupByRegex "org\\.jetbrains.*" includeGroupByRegex "org\\.jetbrains.*"
includeGroupByRegex "com\\.google.*" includeGroupByRegex "com\\.google.*"
@ -96,82 +94,4 @@ ext.Dependencies.with {
} }
} }
} }
def kotlinVer = "1.7.20"
def sqldelightVer = "1.5.4"
def composeVer = "1.2.1"
def ktorVer = "2.1.3"
google = new DependenciesContainer()
google.with {
androidGradlePlugin = "com.android.tools.build:gradle:7.3.1"
androidxComposeUi = "androidx.compose.ui:ui:${composeVer}"
androidxComposeFoundation = "androidx.compose.foundation:foundation:${composeVer}"
androidxComposeMaterial = "androidx.compose.material3:material3:1.0.0-rc01"
androidxComposeIconsExtended = "androidx.compose.material:material-icons-extended:${composeVer}"
androidxActivityCompose = "androidx.activity:activity-compose:1.6.0"
kotlinCompilerExtensionVersion = "1.3.2"
firebaseCrashlyticsPlugin = "com.google.firebase:firebase-crashlytics-gradle:2.9.2"
firebaseBom = "com.google.firebase:firebase-bom:31.0.1"
jdkLibs = "com.android.tools:desugar_jdk_libs:1.1.5"
}
mavenCentral = new DependenciesContainer()
mavenCentral.with {
kotlinGradlePlugin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVer}"
kotlinSerializationGradlePlugin = "org.jetbrains.kotlin:kotlin-serialization:${kotlinVer}"
kotlinSerializationJson = "org.jetbrains.kotlinx:kotlinx-serialization-json:1.4.1"
kotlinCoroutinesCore = "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4"
kotlinCoroutinesTest = 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.6.4'
kotlinTest = "org.jetbrains.kotlin:kotlin-test-junit:${kotlinVer}"
sqldelightGradlePlugin = "com.squareup.sqldelight:gradle-plugin:${sqldelightVer}"
sqldelightAndroid = "com.squareup.sqldelight:android-driver:${sqldelightVer}"
sqldelightInMemory = "com.squareup.sqldelight:sqlite-driver:${sqldelightVer}"
leakCanary = 'com.squareup.leakcanary:leakcanary-android:2.10'
ktorAndroid = "io.ktor:ktor-client-android:${ktorVer}"
ktorCore = "io.ktor:ktor-client-core:${ktorVer}"
ktorSerialization = "io.ktor:ktor-client-serialization:${ktorVer}"
ktorJson = "io.ktor:ktor-serialization-kotlinx-json:${ktorVer}"
ktorLogging = "io.ktor:ktor-client-logging-jvm:${ktorVer}"
ktorJava = "io.ktor:ktor-client-java:${ktorVer}"
ktorContentNegotiation = "io.ktor:ktor-client-content-negotiation:${ktorVer}"
coil = "io.coil-kt:coil-compose:2.2.2"
accompanistSystemuicontroller = "com.google.accompanist:accompanist-systemuicontroller:0.27.1"
junit = "junit:junit:4.13.2"
kluent = "org.amshove.kluent:kluent:1.72"
mockk = 'io.mockk:mockk:1.13.2'
matrixOlm = "org.matrix.android:olm-sdk:3.2.12"
}
jitPack = new DependenciesContainer()
jitPack.with {
unifiedPush = "com.github.UnifiedPush:android-connector:2.0.1"
}
} }
class DependenciesContainer extends GroovyObjectSupport {
private final Map<String, Object> storage = new HashMap<String, Object>();
@Override
Object getProperty(String name) {
return storage.get(name);
}
@Override
void setProperty(String name, Object newValue) {
storage.put(name, newValue);
}
}

View File

@ -1,7 +1,13 @@
applyAndroidComposeLibraryModule(project) plugins {
id "st-android-compose-library-conventions"
}
android {
namespace "app.dapk.st.design"
}
dependencies { dependencies {
implementation project(":core") implementation project(":core")
implementation Dependencies.mavenCentral.coil implementation libs.compose.coil
implementation Dependencies.mavenCentral.accompanistSystemuicontroller implementation libs.accompanist.systemuicontroller
} }

View File

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest package="app.dapk.st.design"/>

View File

@ -1,4 +1,6 @@
applyAndroidComposeLibraryModule(project) plugins {
id "st-android-compose-library-conventions"
}
dependencies { dependencies {
implementation project(":core") implementation project(":core")

View File

@ -1,4 +1,6 @@
plugins { id 'kotlin' } plugins {
id "kotlin"
}
dependencies { dependencies {
compileOnly project(":domains:android:stub") compileOnly project(":domains:android:stub")

View File

@ -1,6 +1,8 @@
applyAndroidLibraryModule(project) plugins {
id "st-android-library-conventions"
}
dependencies { dependencies {
implementation project(":core") implementation project(":core")
implementation Dependencies.mavenCentral.coil implementation libs.compose.coil
} }

View File

@ -1,5 +1,7 @@
applyAndroidLibraryModule(project) plugins {
apply plugin: "org.jetbrains.kotlin.plugin.serialization" id "st-android-library-conventions"
alias libs.plugins.kotlin.serialization
}
dependencies { dependencies {
implementation "chat-engine:chat-engine" implementation "chat-engine:chat-engine"
@ -9,8 +11,8 @@ dependencies {
firebase(it, "messaging") firebase(it, "messaging")
implementation Dependencies.mavenCentral.kotlinSerializationJson implementation libs.kotlin.serialization
implementation Dependencies.jitPack.unifiedPush implementation libs.unifiedpush
kotlinTest(it) kotlinTest(it)
testImplementation 'chat-engine:chat-engine-test' testImplementation 'chat-engine:chat-engine-test'

View File

@ -1,5 +1,5 @@
plugins { plugins {
id 'kotlin' id "kotlin"
id 'java-test-fixtures' id 'java-test-fixtures'
} }
@ -12,7 +12,7 @@ if (localProperties.exists()) {
} }
dependencies { dependencies {
def androidVer = androidSdkVersion def androidVer = 33
api files("${properties.getProperty("sdk.dir")}/platforms/android-${androidVer}/android.jar") api files("${properties.getProperty("sdk.dir")}/platforms/android-${androidVer}/android.jar")
kotlinFixtures(it) kotlinFixtures(it)

View File

@ -1,4 +1,6 @@
applyAndroidLibraryModule(project) plugins {
id "st-android-library-conventions"
}
dependencies { dependencies {
implementation project(':core') implementation project(':core')

View File

@ -1 +1,3 @@
plugins { id 'kotlin' } plugins {
id "kotlin"
}

View File

@ -1,15 +1,15 @@
plugins { plugins {
id 'kotlin' id "kotlin"
id 'java-test-fixtures' id 'java-test-fixtures'
} }
dependencies { dependencies {
compileOnly project(":domains:android:viewmodel-stub") compileOnly project(":domains:android:viewmodel-stub")
implementation Dependencies.mavenCentral.kotlinCoroutinesCore implementation libs.kotlin.coroutines
kotlinFixtures(it) kotlinFixtures(it)
testFixturesImplementation Dependencies.mavenCentral.kotlinCoroutinesCore testFixturesImplementation libs.kotlin.coroutines
testFixturesImplementation Dependencies.mavenCentral.kotlinCoroutinesTest testFixturesImplementation libs.kotlin.coroutines.test
testFixturesImplementation testFixtures(project(":core")) testFixturesImplementation testFixtures(project(":core"))
testFixturesCompileOnly project(":domains:android:viewmodel-stub") testFixturesCompileOnly project(":domains:android:viewmodel-stub")
} }

View File

@ -1,4 +1,6 @@
applyAndroidLibraryModule(project) plugins {
id "st-android-library-conventions"
}
dependencies { dependencies {
implementation project(':core') implementation project(':core')

View File

@ -1,4 +1,6 @@
plugins { id 'kotlin' } plugins {
id "kotlin"
}
dependencies { dependencies {
implementation project(':core') implementation project(':core')

View File

@ -1,7 +1,9 @@
applyAndroidLibraryModule(project) plugins {
id "st-android-library-conventions"
}
dependencies { dependencies {
implementation project(':core') implementation project(':core')
implementation platform(Dependencies.google.firebaseBom) implementation platform(libs.firebase.bom)
implementation 'com.google.firebase:firebase-crashlytics' implementation 'com.google.firebase:firebase-crashlytics'
} }

View File

@ -1,4 +1,6 @@
applyAndroidLibraryModule(project) plugins {
id "st-android-library-conventions"
}
dependencies { dependencies {
implementation project(':core') implementation project(':core')

View File

@ -1,9 +1,11 @@
applyAndroidLibraryModule(project) plugins {
id "st-android-library-conventions"
}
dependencies { dependencies {
implementation project(':core') implementation project(':core')
implementation project(':domains:android:core') implementation project(':domains:android:core')
implementation "chat-engine:chat-engine" implementation "chat-engine:chat-engine"
implementation platform('com.google.firebase:firebase-bom:29.0.3') implementation platform(libs.firebase.bom)
implementation 'com.google.firebase:firebase-messaging' implementation 'com.google.firebase:firebase-messaging'
} }

View File

@ -1,7 +1,7 @@
plugins { plugins {
id 'kotlin' id 'kotlin'
id 'com.squareup.sqldelight' alias libs.plugins.kotlin.serialization
id 'org.jetbrains.kotlin.plugin.serialization' alias libs.plugins.sqldelight
id 'java-test-fixtures' id 'java-test-fixtures'
} }
@ -15,9 +15,8 @@ sqldelight {
dependencies { dependencies {
implementation project(":core") implementation project(":core")
implementation "chat-engine:chat-engine" implementation "chat-engine:chat-engine"
implementation Dependencies.mavenCentral.kotlinSerializationJson implementation libs.kotlin.serialization
implementation Dependencies.mavenCentral.kotlinCoroutinesCore implementation libs.sqldelight.extensions
implementation "com.squareup.sqldelight:coroutines-extensions:1.5.4"
kotlinFixtures(it) kotlinFixtures(it)
testImplementation(testFixtures(project(":core"))) testImplementation(testFixtures(project(":core")))

View File

@ -1,4 +1,10 @@
applyAndroidComposeLibraryModule(project) plugins {
id "st-feature-conventions"
}
android {
namespace "app.dapk.st.directory"
}
dependencies { dependencies {
implementation project(":domains:android:compose-core") implementation project(":domains:android:compose-core")
@ -7,7 +13,7 @@ dependencies {
implementation project(":features:messenger") implementation project(":features:messenger")
implementation project(":core") implementation project(":core")
implementation project(":design-library") implementation project(":design-library")
implementation Dependencies.mavenCentral.coil implementation libs.compose.coil
kotlinTest(it) kotlinTest(it)

View File

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest package="app.dapk.st.directory"/>

View File

@ -1,4 +1,10 @@
applyAndroidComposeLibraryModule(project) plugins {
id "st-feature-conventions"
}
android {
namespace "app.dapk.st.home"
}
dependencies { dependencies {
implementation "chat-engine:chat-engine" implementation "chat-engine:chat-engine"
@ -12,5 +18,5 @@ dependencies {
implementation 'screen-state:screen-android' implementation 'screen-state:screen-android'
implementation project(":core") implementation project(":core")
implementation project(":design-library") implementation project(":design-library")
implementation Dependencies.mavenCentral.coil implementation libs.compose.coil
} }

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="app.dapk.st.home"> <manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application> <application>
<activity android:name="app.dapk.st.home.MainActivity"/> <activity android:name="app.dapk.st.home.MainActivity"/>

View File

@ -1,4 +1,10 @@
applyAndroidComposeLibraryModule(project) plugins {
id "st-feature-conventions"
}
android {
namespace "app.dapk.st.login"
}
dependencies { dependencies {
implementation "chat-engine:chat-engine" implementation "chat-engine:chat-engine"

View File

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest package="app.dapk.st.login"/>

View File

@ -1,5 +1,11 @@
applyAndroidComposeLibraryModule(project) plugins {
apply plugin: 'kotlin-parcelize' id "st-feature-conventions"
id "org.jetbrains.kotlin.plugin.parcelize"
}
android {
namespace "app.dapk.st.messenger"
}
dependencies { dependencies {
implementation "chat-engine:chat-engine" implementation "chat-engine:chat-engine"
@ -10,7 +16,7 @@ dependencies {
implementation project(":core") implementation project(":core")
implementation project(":features:navigator") implementation project(":features:navigator")
implementation project(":design-library") implementation project(":design-library")
implementation Dependencies.mavenCentral.coil implementation libs.compose.coil
kotlinTest(it) kotlinTest(it)

View File

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android">
package="app.dapk.st.messenger">
<application> <application>

View File

@ -1,5 +1,11 @@
applyAndroidLibraryModule(project) plugins {
apply plugin: 'kotlin-parcelize' id "st-feature-conventions"
id "org.jetbrains.kotlin.plugin.parcelize"
}
android {
namespace "app.dapk.st.navigator"
}
dependencies { dependencies {
compileOnly project(":domains:android:stub") compileOnly project(":domains:android:stub")

View File

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="app.dapk.st.navigator"/>

View File

@ -1,8 +1,13 @@
applyAndroidLibraryModule(project) plugins {
id "st-android-library-conventions"
}
android {
namespace "app.dapk.st.notifications"
}
dependencies { dependencies {
implementation "chat-engine:chat-engine" implementation "chat-engine:chat-engine"
// implementation project(':domains:store')
implementation project(":domains:android:work") implementation project(":domains:android:work")
implementation project(':domains:android:push') implementation project(':domains:android:push')
implementation project(":domains:android:core") implementation project(":domains:android:core")
@ -11,8 +16,7 @@ dependencies {
implementation project(":features:messenger") implementation project(":features:messenger")
implementation project(":features:navigator") implementation project(":features:navigator")
implementation libs.kotlin.serialization
implementation Dependencies.mavenCentral.kotlinSerializationJson
kotlinTest(it) kotlinTest(it)
testImplementation 'chat-engine:chat-engine-test' testImplementation 'chat-engine:chat-engine-test'

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="app.dapk.st.notifications"> <manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
</manifest> </manifest>

View File

@ -1,4 +1,10 @@
applyAndroidComposeLibraryModule(project) plugins {
id "st-feature-conventions"
}
android {
namespace "app.dapk.st.profile"
}
dependencies { dependencies {
implementation "chat-engine:chat-engine" implementation "chat-engine:chat-engine"

View File

@ -1,2 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="app.dapk.st.profile"/>

View File

@ -1,4 +1,6 @@
applyAndroidComposeLibraryModule(project) plugins {
id "st-feature-conventions"
}
dependencies { dependencies {
implementation "chat-engine:chat-engine" implementation "chat-engine:chat-engine"

View File

@ -1,4 +1,6 @@
applyAndroidComposeLibraryModule(project) plugins {
id "st-feature-conventions"
}
dependencies { dependencies {
implementation "chat-engine:chat-engine" implementation "chat-engine:chat-engine"

View File

@ -1,4 +1,6 @@
applyAndroidComposeLibraryModule(project) plugins {
id "st-feature-conventions"
}
dependencies { dependencies {
implementation "chat-engine:chat-engine" implementation "chat-engine:chat-engine"

57
gradle/libs.versions.toml Normal file
View File

@ -0,0 +1,57 @@
[versions]
kotlin = "1.7.20"
coroutines = "1.6.4"
sqldelight = "1.5.4"
ktor = "2.2.1"
compose = "1.2.1"
compose-compiler = "1.3.2"
android-gp = "7.3.1"
[plugins]
android-application = { id = "com.android.application", version.ref = "android-gp" }
android-library = { id = "com.android.library", version.ref = "android-gp" }
android-kotlin = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }
firebase-crashlytics = { id = "com.google.firebase.crashlytics", version = "2.9.2" }
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
sqldelight = { id = "com.squareup.sqldelight", version.ref = "sqldelight" }
[libraries]
compose-ui = { group = "androidx.compose.ui", name = "ui", version.ref = "compose" }
compose-foundation = { group = "androidx.compose.foundation", name = "foundation", version.ref = "compose" }
compose-material-three = { group = "androidx.compose.material3", name = "material3", version = "1.0.0-rc01" }
compose-icons-extended = { group = "androidx.compose.material", name = "material-icons-extended", version.ref = "compose" }
compose-activity = { group = "androidx.activity", name = "activity-compose", version = "1.6.0" }
compose-coil = { group = "io.coil-kt", name = "coil-compose", version = "2.2.2" }
android-desugar = { group = "com.android.tools", name = "desugar_jdk_libs", version = "1.1.5" }
accompanist-systemuicontroller = { group = "com.google.accompanist", name = "accompanist-systemuicontroller", version = "0.27.1" }
matrix-olm = { group = "org.matrix.android", name = "olm-sdk", version = "3.2.12" }
unifiedpush = { group = "com.github.UnifiedPush", name = "android-connector", version = "2.0.1" }
firebase-bom = { module = "com.google.firebase:firebase-bom", version = "31.0.1" }
kotlin-serialization = { group = "org.jetbrains.kotlinx", name = "kotlinx-serialization-json", version = "1.4.1" }
kotlin-coroutines = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-core", version.ref = "coroutines" }
kotlin-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-test", version.ref = "coroutines" }
kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test-junit", version.ref = "kotlin" }
sqldelight-android = { group = "com.squareup.sqldelight", name = "android-driver", version.ref = "sqldelight" }
sqldelight-test = { group = "com.squareup.sqldelight", name = "sqlite-driver", version.ref = "sqldelight" }
sqldelight-extensions = { group = "com.squareup.sqldelight", name = "coroutines-extensions", version.ref = "sqldelight" }
ktor-android = { group = "io.ktor", name = "ktor-client-android", version.ref = "ktor" }
junit = { group = "junit", name = "junit", version = "4.13.2" }
kluent = { group = "org.amshove.kluent", name = "kluent", version = "1.72" }
mockk = { group = "io.mockk", name = "mockk", version = "1.13.3" }
leakcanary = { group = "com.squareup.leakcanary", name = "leakcanary-android", version = "2.10" }

@ -1 +1 @@
Subproject commit 4e92f14031cc8be907cba09b3bfc1d9dbd380072 Subproject commit 088fd0e720acf5bc23eb8458469e782c5c10fcc7

View File

@ -1,10 +1,15 @@
pluginManagement {
repositories {
gradlePluginPortal()
google()
}
}
dependencyResolutionManagement { dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
apply from: "dependencies.gradle" apply from: "dependencies.gradle"
repositories { applyRepositories(it)
Dependencies._repositories.call(it)
}
} }
rootProject.name = "SmallTalk" rootProject.name = "SmallTalk"
includeBuild 'screen-state' includeBuild 'screen-state'