Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,10 @@ android {
targetCompatibility = JavaVersion.VERSION_17
}

kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
kotlin {
jvmToolchain(17)
}

buildFeatures {
compose = true
}
Expand Down
19 changes: 2 additions & 17 deletions appupdater/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,24 +1,9 @@
import com.vanniktech.maven.publish.AndroidSingleVariantLibrary

plugins {
alias(libs.plugins.androidLibrary)
alias(libs.plugins.jetbrainsKotlinAndroid)
alias(libs.plugins.maven.publish)
alias(libs.plugins.project.androidLibrary)
}
android {
compileSdk = libs.versions.compileSdkVersion.get().toInt()
defaultConfig {
minSdk = libs.versions.minSdkVersion.get().toInt()
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}
buildFeatures {
viewBinding = true
}
Expand Down Expand Up @@ -51,7 +36,7 @@ dependencies {
testImplementation(libs.junit4)
testImplementation(libs.mockito.kotlin)
testImplementation(libs.turbine)
testImplementation (libs.kotlinx.coroutines.test)
testImplementation(libs.kotlinx.coroutines.test)
androidTestImplementation(libs.androidx.test.junit)
androidTestImplementation(libs.androidx.test.rules)
androidTestImplementation(libs.androidx.test.ui.espresso.core)
Expand Down
1 change: 1 addition & 0 deletions build-logic/convention/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
24 changes: 24 additions & 0 deletions build-logic/convention/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
plugins {
`kotlin-dsl`
}

group = "com.pouyaheydari.appupdater.convention"

java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

dependencies {
compileOnly(libs.android.gradlePlugin)
compileOnly(libs.kotlin.gradlePlugin)
}

gradlePlugin {
plugins {
create("androidLibraryPlugin") {
id = "com.pouyaheydari.androidLibraryPlugin"
implementationClass = "com.pouyaheydari.appupdater.convention.plugins.AndroidLibraryPlugin"
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package com.pouyaheydari.appupdater.convention.helpers

import org.gradle.api.JavaVersion

fun javaVersion(): JavaVersion = JavaVersion.VERSION_17
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package com.pouyaheydari.appupdater.convention.helpers

import org.gradle.api.Project
import org.gradle.api.artifacts.VersionCatalog
import org.gradle.api.artifacts.VersionCatalogsExtension
import org.gradle.kotlin.dsl.getByType

fun Project.compileSdk(): Int = baseLibs.findVersion("compileSdkVersion").get().requiredVersion.toInt()

fun Project.minSdk(): Int = baseLibs.findVersion("minSdkVersion").get().requiredVersion.toInt()

val Project.baseLibs
get(): VersionCatalog = extensions.getByType<VersionCatalogsExtension>().named("libs")
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package com.pouyaheydari.appupdater.convention.plugins

import com.android.build.gradle.LibraryExtension
import com.pouyaheydari.appupdater.convention.helpers.baseLibs
import com.pouyaheydari.appupdater.convention.helpers.compileSdk
import com.pouyaheydari.appupdater.convention.helpers.javaVersion
import com.pouyaheydari.appupdater.convention.helpers.minSdk
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.jvm.toolchain.JavaLanguageVersion
import org.gradle.kotlin.dsl.configure
import org.jetbrains.kotlin.gradle.dsl.KotlinAndroidProjectExtension

class AndroidLibraryPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
with(pluginManager) {
apply(baseLibs.findPlugin("androidLibrary").get().get().pluginId)
apply(baseLibs.findPlugin("jetbrainsKotlinAndroid").get().get().pluginId)
apply(baseLibs.findPlugin("maven.publish").get().get().pluginId)
}

extensions.configure<LibraryExtension> {
compileSdk = compileSdk()
defaultConfig {
minSdk = minSdk()
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
compileOptions {
sourceCompatibility = javaVersion()
targetCompatibility = javaVersion()
}
}
extensions.configure<KotlinAndroidProjectExtension> {
jvmToolchain {
languageVersion.set(JavaLanguageVersion.of(17))
}
}
}
}
}
16 changes: 16 additions & 0 deletions build-logic/settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
dependencyResolutionManagement {

repositories {
google()
mavenCentral()
}

versionCatalogs {
create("libs") {
from(files("../gradle/libs.versions.toml"))
}
}
}

rootProject.name = "build-logic"
include(":convention")
1 change: 0 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
plugins {
alias(libs.plugins.androidApplication) apply false
alias(libs.plugins.androidLibrary) apply false
alias(libs.plugins.jetbrainsKotlinAndroid) apply false
alias(libs.plugins.kotlin.jvm) apply false
alias(libs.plugins.compose.compiler) apply false
Expand Down
15 changes: 1 addition & 14 deletions compose/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,31 +1,18 @@
plugins {
alias(libs.plugins.androidLibrary)
alias(libs.plugins.jetbrainsKotlinAndroid)
alias(libs.plugins.project.androidLibrary)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.maven.publish)
}

android {
compileSdk = libs.versions.compileSdkVersion.get().toInt()
defaultConfig {
minSdk = libs.versions.minSdkVersion.get().toInt()
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true
}
}

namespace = "com.pouyaheydari.appupdater.compose"

testOptions.unitTests.isIncludeAndroidResources = true

compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}
buildFeatures {
compose = true
}
Expand Down
22 changes: 3 additions & 19 deletions directdownload/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,23 +1,8 @@
plugins {
alias(libs.plugins.androidLibrary)
alias(libs.plugins.jetbrainsKotlinAndroid)
alias(libs.plugins.maven.publish)
alias(libs.plugins.project.androidLibrary)
}

android {
compileSdk = libs.versions.compileSdkVersion.get().toInt()
defaultConfig {
minSdk = libs.versions.minSdkVersion.get().toInt()
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}
namespace = "com.pouyaheydari.appupdater.directdownload"
}

Expand All @@ -31,9 +16,8 @@ dependencies {
testImplementation(libs.junit4)
testImplementation(libs.mockito)
testImplementation(libs.mockito.kotlin)
testImplementation (libs.kotlinx.coroutines.test)
testImplementation (libs.roboelectric)

testImplementation(libs.kotlinx.coroutines.test)
testImplementation(libs.roboelectric)
androidTestImplementation(libs.androidx.test.junit)
androidTestImplementation(libs.androidx.test.rules)
androidTestImplementation(libs.androidx.test.ui.espresso.core)
Expand Down
25 changes: 14 additions & 11 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,27 @@ appVersion = "1000"
compileSdkVersion = "36"
minSdkVersion = "23"
targetSdkVersion = "36"
agp = "8.12.0"
kotlin = "2.2.0"
agp = "8.13.2"
kotlin = "2.2.21"
appcompat = "1.7.1"
androidXCore = "1.16.0"
androidXCore = "1.17.0"
constraintLayout = "2.2.1"
junit4 = "4.13.2"
androidTestJUnit = "1.3.0"
androidTestRules = "1.7.0"
androidTestEspresso = "3.7.0"
recyclerView = "1.4.0"
lifecycle = "2.9.2"
lifecycle = "2.10.0"
coroutines = "1.10.2"
fragment = "1.8.8"
androidxComposeBom = "2025.07.00"
composeActivity = "1.10.1"
mockito = "5.18.0"
mockitoKotlin = "6.0.0"
roboelectric = "4.15.1"
fragment = "1.8.9"
androidxComposeBom = "2025.12.00"
composeActivity = "1.12.1"
mockito = "5.21.0"
mockitoKotlin = "6.1.0"
roboelectric = "4.16"
turbine = "1.2.1"
uiautomator = "2.3.0"
mavenPublish = "0.34.0"
mavenPublish = "0.35.0"

[libraries]
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
Expand Down Expand Up @@ -54,6 +54,8 @@ kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-t
kotlinx-coroutines = { group = "org.jetbrains.kotlinx", name = "kotlinx-coroutines-android", version.ref = "coroutines" }
androidx-uiautomator = { group = "androidx.test.uiautomator", name = "uiautomator", version.ref = "uiautomator" }
turbine = { module = "app.cash.turbine:turbine", version.ref = "turbine" }
android-gradlePlugin = { group = "com.android.tools.build", name = "gradle", version.ref = "agp" }
kotlin-gradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlin" }

[plugins]
androidApplication = { id = "com.android.application", version.ref = "agp" }
Expand All @@ -62,3 +64,4 @@ jetbrainsKotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "k
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
maven-publish = { id = "com.vanniktech.maven.publish", version.ref = "mavenPublish" }
project-androidLibrary = { id = "com.pouyaheydari.androidLibraryPlugin"}
3 changes: 3 additions & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
pluginManagement {

includeBuild("build-logic")

repositories {
google()
mavenCentral()
Expand Down
23 changes: 2 additions & 21 deletions store/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,30 +1,11 @@
plugins {
alias(libs.plugins.androidLibrary)
alias(libs.plugins.jetbrainsKotlinAndroid)
alias(libs.plugins.maven.publish)
alias(libs.plugins.project.androidLibrary)
}

android {
compileSdk = libs.versions.compileSdkVersion.get().toInt()
defaultConfig {
minSdk = libs.versions.minSdkVersion.get().toInt()
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}
namespace = "com.pouyaheydari.appupdater.store"
}
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

dependencies {
api(projects.core)

Expand Down