From c61f4f01bc79e2789c3cafe3d1d7de10115408b9 Mon Sep 17 00:00:00 2001 From: Konstantin Aksenov Date: Fri, 24 Nov 2023 11:17:33 +1000 Subject: [PATCH] feat(core): gradle 8, kotlin, libs.toml --- .github/workflows/master-github-pages.yml | 20 ++++--- .github/workflows/pr-checks.yml | 31 +++++----- .../workflows/release-deploy-ext-clicks.yml | 9 +-- .github/workflows/release-deploy.yml | 9 +-- build.gradle.kts | 6 +- buildSrc/build.gradle.kts | 8 +-- buildSrc/settings.gradle.kts | 7 +++ buildSrc/src/main/kotlin/KakaoDeployment.kt | 47 +-------------- .../main/kotlin/KakaoExtClicksDeployment.kt | 34 ++--------- buildSrc/src/main/kotlin/PackageInfo.kt | 5 ++ buildSrc/src/main/kotlin/Versions.kt | 49 --------------- gradle.properties | 2 +- gradle/libs.versions.toml | 59 +++++++++++++++++++ gradle/wrapper/gradle-wrapper.properties | 2 +- kakao-ext-clicks/build.gradle.kts | 27 ++++----- kakao-ext-clicks/src/main/AndroidManifest.xml | 5 +- kakao/build.gradle.kts | 59 +++++++++---------- kakao/src/main/AndroidManifest.xml | 5 +- sample/build.gradle.kts | 49 +++++++-------- .../sample/screen/TestActivityScreen.kt | 2 +- sample/src/main/AndroidManifest.xml | 3 +- .../sample/ButtonDoubleClickActivity.kt | 5 +- sample/src/main/res/layout/activity_test.xml | 38 +++++------- settings.gradle.kts | 2 +- 24 files changed, 212 insertions(+), 271 deletions(-) create mode 100644 buildSrc/settings.gradle.kts create mode 100644 buildSrc/src/main/kotlin/PackageInfo.kt create mode 100644 gradle/libs.versions.toml diff --git a/.github/workflows/master-github-pages.yml b/.github/workflows/master-github-pages.yml index ec707f0e3..44f8a5e23 100644 --- a/.github/workflows/master-github-pages.yml +++ b/.github/workflows/master-github-pages.yml @@ -10,15 +10,21 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - - name: Set up JDK 11 - uses: actions/setup-java@v1 + - name: Set up JDK 17 + uses: actions/setup-java@v3 with: - java-version: 11 + distribution: "temurin" + java-version: 17 - name: dokkaHtml run: | ./gradlew clean dokkaHtml - - uses: helaili/jekyll-action@v2 + - name: Build Page + uses: actions/jekyll-build-pages@v1 with: - jekyll_src: 'html' - target_branch: 'gh-pages' - token: ${{ secrets.GITHUB_TOKEN }} + source: "./html" + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./_site + diff --git a/.github/workflows/pr-checks.yml b/.github/workflows/pr-checks.yml index 646674879..54964f4e1 100644 --- a/.github/workflows/pr-checks.yml +++ b/.github/workflows/pr-checks.yml @@ -5,11 +5,12 @@ jobs: runs-on: ubuntu-latest name: Detekt steps: - - uses: actions/checkout@v1 - - name: Set up JDK 11 - uses: actions/setup-java@v1 + - uses: actions/checkout@v3 + - name: Set up JDK 17 + uses: actions/setup-java@v3 with: - java-version: 11 + distribution: "temurin" + java-version: 17 - name: detekt run: | ./gradlew clean detekt @@ -19,15 +20,16 @@ jobs: name: Assemble Debug APK runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 - - name: Set up JDK 11 - uses: actions/setup-java@v1 + - uses: actions/checkout@v3 + - name: Set up JDK 17 + uses: actions/setup-java@v3 with: - java-version: 11 + distribution: "temurin" + java-version: 17 - name: Assemble Debug APK run: bash ./gradlew sample:assembleDebug - name: Upload app APK - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v3 with: name: apk path: sample/build/outputs/apk/debug/sample-debug.apk @@ -37,15 +39,16 @@ jobs: name: Assemble Instrumental APK runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 - - name: Set up JDK 11 - uses: actions/setup-java@v1 + - uses: actions/checkout@v3 + - name: Set up JDK 17 + uses: actions/setup-java@v3 with: - java-version: 11 + distribution: "temurin" + java-version: 17 - name: Assemble Instrumental APK run: bash ./gradlew sample:assembleDebugAndroidTest - name: Upload app APK - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v3 with: name: apk path: sample/build/outputs/apk/androidTest/debug/sample-debug-androidTest.apk diff --git a/.github/workflows/release-deploy-ext-clicks.yml b/.github/workflows/release-deploy-ext-clicks.yml index 44914f434..1556a8aa9 100644 --- a/.github/workflows/release-deploy-ext-clicks.yml +++ b/.github/workflows/release-deploy-ext-clicks.yml @@ -5,11 +5,12 @@ jobs: deploy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 - - name: Set up JDK 11 - uses: actions/setup-java@v1 + - uses: actions/checkout@v3 + - name: Set up JDK 17 + uses: actions/setup-java@v3 with: - java-version: 11 + distribution: "temurin" + java-version: 17 - uses: little-core-labs/get-git-tag@v3.0.2 - name: deploy-release-ext-clicks run: ./gradlew :kakao-ext-clicks:publishDefaultPublicationToOSSHRRepository -PreleaseMode=RELEASE --stacktrace diff --git a/.github/workflows/release-deploy.yml b/.github/workflows/release-deploy.yml index 8555ba513..9f1d13d03 100644 --- a/.github/workflows/release-deploy.yml +++ b/.github/workflows/release-deploy.yml @@ -6,11 +6,12 @@ jobs: deploy: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 - - name: Set up JDK 11 - uses: actions/setup-java@v1 + - uses: actions/checkout@v3 + - name: Set up JDK 17 + uses: actions/setup-java@v3 with: - java-version: 11 + distribution: "temurin" + java-version: 17 - uses: little-core-labs/get-git-tag@v3.0.2 - name: deploy-release run: ./gradlew :kakao:publishDefaultPublicationToOSSHRRepository -PreleaseMode=RELEASE --stacktrace diff --git a/build.gradle.kts b/build.gradle.kts index cf50545e9..54a14a1c7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,7 +5,7 @@ buildscript { gradlePluginPortal() } dependencies { - classpath("com.android.tools.build:gradle:7.2.2") + classpath(libs.com.android.tools.build.gradle) } } @@ -15,11 +15,11 @@ repositories { } plugins { - id("io.gitlab.arturbosch.detekt") version Versions.detekt + id("io.gitlab.arturbosch.detekt") version libs.versions.detekt } detekt { - toolVersion = "1.17.1" + toolVersion = libs.versions.detekt.get() input = files(subprojects.map { File(it.projectDir, "/src/main/kotlin") }) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index c83d022ff..2bcb257cb 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -9,8 +9,8 @@ repositories { } dependencies { - implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.21") - implementation("com.android.tools.build:gradle:7.3.1") - implementation("org.jetbrains.dokka:dokka-gradle-plugin:1.7.20") - implementation("org.kohsuke:github-api:1.129") + implementation(libs.org.jetbrains.kotlin.kotlinGradlePlugin ) + implementation(libs.com.android.tools.build.gradle) + implementation(libs.org.jetbrains.dokka.dokkaGradlePlugin) + implementation(libs.org.kohsuke.githubApi) } diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts new file mode 100644 index 000000000..fc1fd8972 --- /dev/null +++ b/buildSrc/settings.gradle.kts @@ -0,0 +1,7 @@ +dependencyResolutionManagement { + versionCatalogs { + register("libs") { + from(files("../gradle/libs.versions.toml")) + } + } +} diff --git a/buildSrc/src/main/kotlin/KakaoDeployment.kt b/buildSrc/src/main/kotlin/KakaoDeployment.kt index 22133a955..fd9539b0e 100644 --- a/buildSrc/src/main/kotlin/KakaoDeployment.kt +++ b/buildSrc/src/main/kotlin/KakaoDeployment.kt @@ -58,53 +58,12 @@ object KakaoDeployment { project.plugins.apply("maven-publish") - val (component, additionalArtifacts) = when { - project.extensions.findByType(LibraryExtension::class) != null -> { - val android = project.extensions.findByType(LibraryExtension::class)!! - val main = android.sourceSets.getByName("main") - val sourcesJar by project.tasks.creating(Jar::class) { - classifier = "sources" - from(main.java.srcDirs) - } - val javadocJar by project.tasks.creating(Jar::class) { - classifier = "javadoc" - val dokka = project.tasks.findByName("dokkaJavadoc") as DokkaTask - from(dokka.outputDirectory) - dependsOn(dokka) - } - - Pair(project.components["release"], listOf(sourcesJar, javadocJar)) - } - - project.the(JavaPluginConvention::class) != null -> { - val javaPlugin = project.the(JavaPluginConvention::class) - - val sourcesJar by project.tasks.creating(Jar::class) { - classifier = "sources" - from(javaPlugin.sourceSets["main"].allSource) - } - val javadocJar by project.tasks.creating(Jar::class) { - classifier = "javadoc" - from(javaPlugin.docsDir) - dependsOn("javadoc") - } - - Pair(project.components["java"], listOf(sourcesJar, javadocJar)) - } - - else -> { - throw RuntimeException("Unknown plugin") - } - } - project.configure { publications { create("default", MavenPublication::class.java) { - KakaoDeployment.customizePom(pom) - additionalArtifacts.forEach { it -> - artifact(it) - } - from(component) + groupId = PackageInfo.groupId + customizePom(pom) + from(project.components["release"]) } } repositories { diff --git a/buildSrc/src/main/kotlin/KakaoExtClicksDeployment.kt b/buildSrc/src/main/kotlin/KakaoExtClicksDeployment.kt index a52b1f0aa..36a2db3ce 100644 --- a/buildSrc/src/main/kotlin/KakaoExtClicksDeployment.kt +++ b/buildSrc/src/main/kotlin/KakaoExtClicksDeployment.kt @@ -58,41 +58,15 @@ object KakaoExtClicksDeployment { project.plugins.apply("maven-publish") - val (component, additionalArtifacts) = when { - project.extensions.findByType(LibraryExtension::class) != null -> { - val android = project.extensions.findByType(LibraryExtension::class)!! - val main = android.sourceSets.getByName("main") - val sourcesJar by project.tasks.creating(Jar::class) { - classifier = "sources" - from(main.java.srcDirs) - } - - Pair(project.components["release"], listOf(sourcesJar)) - } - project.the(JavaPluginConvention::class) != null -> { - val javaPlugin = project.the(JavaPluginConvention::class) - - val sourcesJar by project.tasks.creating(Jar::class) { - classifier = "sources" - from(javaPlugin.sourceSets["main"].allSource) - } - Pair(project.components["java"], listOf(sourcesJar)) - } - else -> { - throw RuntimeException("Unknown plugin") - } - } - project.configure { publications { create("default", MavenPublication::class.java) { - KakaoExtClicksDeployment.customizePom(pom) - additionalArtifacts.forEach { it -> - artifact(it) - } - from(component) + groupId = PackageInfo.groupId + customizePom(pom) + from(project.components["release"]) } } + repositories { maven { name = "Local" diff --git a/buildSrc/src/main/kotlin/PackageInfo.kt b/buildSrc/src/main/kotlin/PackageInfo.kt new file mode 100644 index 000000000..39938acd9 --- /dev/null +++ b/buildSrc/src/main/kotlin/PackageInfo.kt @@ -0,0 +1,5 @@ +import java.io.File + +object PackageInfo { + const val groupId = "io.github.kakaocup" +} diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index facec6df6..910fb8a48 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -3,55 +3,6 @@ import java.io.File object Versions { val kakaoVersion = File("buildsystem/version").readText().trim() val kakaoExtClicksVersion = File("buildsystem/extclickversion").readText().trim() - - val kotlin = "1.7.21" - val detekt = "1.17.1" - val dokka = "1.7.20" - val maven = "1.5" - val oss = "4.5.4" - val appcompat = "1.3.0" - val recyclerview = "1.2.0" - val viewpager2 = "1.0.0" - val swiperefresh = "1.1.0" - val annotation = "1.2.0" - val design = "1.3.0" - val espresso = "3.5.1" - val espresso_rules = "1.4.0" - val espresso_runner = "1.4.0" - val junit = "4.13.2" - val junit_ext = "1.1.2" - val gradle_versions = "0.39.0" - val google_maps = "17.0.1" - val google_maps_utils = "2.3.0" - val multidex = "2.0.1" -} - -object Libraries { - val kotlin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}" - val kotlin_stdlib = "org.jetbrains.kotlin:kotlin-stdlib:${Versions.kotlin}" - val detekt = "io.gitlab.arturbosch.detekt:detekt-gradle-plugin:${Versions.detekt}" - val dokka = "org.jetbrains.dokka:kotlin-as-java-plugin:${Versions.dokka}" - val dokka_gradle = "org.jetbrains.dokka:dokka-gradle-plugin:${Versions.dokka}" - val maven = "com.github.dcendents:android-maven-gradle-plugin:${Versions.maven}" - val oss = "org.jfrog.buildinfo:build-info-extractor-gradle:${Versions.oss}" - val appcompat = "androidx.appcompat:appcompat:${Versions.appcompat}" - val googleMaps = "com.google.android.gms:play-services-maps:${Versions.google_maps}" - val googleMapsUtils = "com.google.maps.android:maps-utils-ktx:${Versions.google_maps_utils}" - val recyclerview = "androidx.recyclerview:recyclerview:${Versions.recyclerview}" - val viewpager2 = "androidx.viewpager2:viewpager2:${Versions.viewpager2}" - val swiperefresh = "androidx.swiperefreshlayout:swiperefreshlayout:${Versions.swiperefresh}" - val annotation = "androidx.annotation:annotation:${Versions.annotation}" - val design = "com.google.android.material:material:${Versions.design}" - val espresso_runner = "androidx.test:runner:${Versions.espresso_runner}" - val espresso_rules = "androidx.test:rules:${Versions.espresso_rules}" - val espresso_core = "androidx.test.espresso:espresso-core:${Versions.espresso}" - val espresso_web = "androidx.test.espresso:espresso-web:${Versions.espresso}" - val espresso_contrib = "androidx.test.espresso:espresso-contrib:${Versions.espresso}" - val espresso_intents = "androidx.test.espresso:espresso-intents:${Versions.espresso}" - val junit = "junit:junit:${Versions.junit}" - val junit_ext = "androidx.test.ext:junit:${Versions.junit_ext}" - val gradle_versions = "com.github.ben-manes:gradle-versions-plugin:${Versions.gradle_versions}" - val multidex = "androidx.multidex:multidex:${Versions.multidex}" } object Description { diff --git a/gradle.properties b/gradle.properties index 13b8217c9..184c63629 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ android.useAndroidX=true android.enableJetifier=true -org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError \ No newline at end of file +org.gradle.jvmargs=-Xmx4096m -XX:+HeapDumpOnOutOfMemoryError diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 000000000..a1b76820a --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,59 @@ +[versions] +jvmVersion = "17" + +targetSdk = "34" +compileSdk = "34" +minSdk = "14" + +agpVersion = "8.1.4" +kotlinVersion = "1.9.20" + +dokkaVersion = "1.9.10" +appcompatVersion = "1.6.1" +recyclerviewVersion = "1.3.2" +viewPager2Version = "1.0.0" +swiperefreshlayoutVersion = "1.1.0" +annotationVersion = "1.2.0" +testRunnerVersion = "1.5.2" +testRulesVersion = "1.5.0" + +espressoVersion = "3.5.1" + +junitVersion = "4.13.2" +junitExtVersion = "1.1.5" +multidexVersion = "2.0.1" +materialVersion = "1.10.0" + +detekt = "1.17.1" + +githubApiVersion = "1.129" + +[libraries] +com-android-tools-build-gradle = { group = "com.android.tools.build", name = "gradle", version.ref = "agpVersion" } +org-jetbrains-kotlin-kotlinGradlePlugin = { group = "org.jetbrains.kotlin", name = "kotlin-gradle-plugin", version.ref = "kotlinVersion" } + +com-google-android-material = { group = "com.google.android.material", name = "material", version.ref = "materialVersion" } + +androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompatVersion" } +androidx-recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "recyclerviewVersion" } +androidx-viewpager2 = { group = "androidx.viewpager2", name = "viewpager2", version.ref = "viewPager2Version" } +androidx-swiperefreshlayout = { group = "androidx.swiperefreshlayout", name = "swiperefreshlayout", version.ref = "swiperefreshlayoutVersion" } + +androidx-test-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoVersion" } +androidx-test-espresso-web = { group = "androidx.test.espresso", name = "espresso-web", version.ref = "espressoVersion" } +androidx-test-espresso-intents = { group = "androidx.test.espresso", name = "espresso-intents", version.ref = "espressoVersion" } +androidx-test-espresso-contrib = { group = "androidx.test.espresso", name = "espresso-contrib", version.ref = "espressoVersion" } + +androidx-annotation = { group = "androidx.annotation", name = "annotation", version.ref = "annotationVersion" } +androidx-test-runner = { group = "androidx.test", name = "runner", version.ref = "testRunnerVersion" } +androidx-test-rules = { group = "androidx.test", name = "rules", version.ref = "testRulesVersion" } + +junit-junit = { group = "junit", name = "junit", version.ref = "junitVersion" } +androidx-test-ext-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitExtVersion" } + +androidx-multidex-multidex = { group = "androidx.multidex", name = "multidex", version.ref = "multidexVersion" } + +org-jetbrains-dokka-kotlinAsJavaPlugin = { group = "org.jetbrains.dokka", name = "kotlin-as-java-plugin", version.ref = "dokkaVersion" } +org-jetbrains-dokka-dokkaGradlePlugin = { group = "org.jetbrains.dokka", name = "dokka-gradle-plugin", version.ref = "dokkaVersion" } + +org-kohsuke-githubApi = { group = "org.kohsuke", name = "github-api", version.ref = "githubApiVersion" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e091e920a..807e752f5 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.1-all.zip diff --git a/kakao-ext-clicks/build.gradle.kts b/kakao-ext-clicks/build.gradle.kts index 64c92a487..805368e00 100644 --- a/kakao-ext-clicks/build.gradle.kts +++ b/kakao-ext-clicks/build.gradle.kts @@ -1,31 +1,30 @@ plugins { id("com.android.library") - id("kotlin-android") - id("com.github.ben-manes.versions") version Versions.gradle_versions + kotlin("android") } android { - compileSdk = 33 + namespace = "io.github.kakaocup.kakao.ext.clicks" + compileSdk = libs.versions.compileSdk.get().toInt() defaultConfig { - minSdk = 14 - targetSdk = 33 + minSdk = libs.versions.minSdk.get().toInt() multiDexEnabled = true } - sourceSets { - getByName("main") { - java.srcDir("src/main/kotlin") - res.srcDir("src/main/res") - } - getByName("test") { - java.srcDir("src/test/kotlin") + kotlin { + jvmToolchain(libs.versions.jvmVersion.get().toInt()) + } + + publishing { + singleVariant("release") { + withJavadocJar() + withSourcesJar() } } } dependencies { - implementation(Libraries.kotlin_stdlib) - implementation(Libraries.espresso_core) + implementation(libs.androidx.test.espresso.core) implementation(project(":kakao")) } diff --git a/kakao-ext-clicks/src/main/AndroidManifest.xml b/kakao-ext-clicks/src/main/AndroidManifest.xml index b4560fe5a..8072ee00d 100644 --- a/kakao-ext-clicks/src/main/AndroidManifest.xml +++ b/kakao-ext-clicks/src/main/AndroidManifest.xml @@ -1,5 +1,2 @@ - - - - + diff --git a/kakao/build.gradle.kts b/kakao/build.gradle.kts index 8ba6618a0..0052b768c 100644 --- a/kakao/build.gradle.kts +++ b/kakao/build.gradle.kts @@ -1,51 +1,46 @@ plugins { id("com.android.library") - id("kotlin-android") + kotlin ("android") id("org.jetbrains.dokka") - id("com.github.ben-manes.versions") version Versions.gradle_versions } android { - compileSdk = 33 + namespace = "io.github.kakaocup.kakao" + compileSdk = libs.versions.compileSdk.get().toInt() defaultConfig { - minSdk = 14 - targetSdk = 33 + minSdk = libs.versions.minSdk.get().toInt() multiDexEnabled = true } - sourceSets { - getByName("main") { - java.srcDir("src/main/kotlin") - res.srcDir("src/main/res") - } - getByName("test") { - java.srcDir("src/test/kotlin") + packaging.resources.excludes.add("META-INF/*") + + kotlin { + jvmToolchain(libs.versions.jvmVersion.get().toInt()) + } + + publishing { + singleVariant("release") { + withJavadocJar() + withSourcesJar() } } } dependencies { - implementation(Libraries.kotlin_stdlib) - implementation(Libraries.appcompat) - implementation(Libraries.recyclerview) - implementation(Libraries.viewpager2) - implementation(Libraries.swiperefresh) - implementation(Libraries.design) - implementation(Libraries.espresso_core) - implementation(Libraries.espresso_web) - implementation(Libraries.espresso_intents) - implementation(Libraries.espresso_contrib) - implementation(Libraries.multidex) - - dokkaHtmlPlugin(Libraries.dokka) -} + implementation(libs.androidx.test.espresso.core) + implementation(libs.androidx.test.espresso.web) + implementation(libs.androidx.test.espresso.intents) + implementation(libs.androidx.test.espresso.contrib) -tasks.named("dependencyUpdates", com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask::class).configure { - rejectVersionIf { - val stableKeyword: Boolean = listOf("RELEASE", "FINAL", "GA").any { currentVersion.toUpperCase().contains(it) } - val regex = "/^[0-9,.v-]+(-r)?$/".toRegex() - !stableKeyword && !(regex.matches(currentVersion)) - } + implementation(libs.androidx.appcompat) + implementation(libs.androidx.recyclerview) + implementation(libs.androidx.viewpager2) + implementation(libs.androidx.swiperefreshlayout) + implementation(libs.com.google.android.material) + + implementation(libs.androidx.multidex.multidex) + + dokkaHtmlPlugin(libs.org.jetbrains.dokka.kotlinAsJavaPlugin) } tasks.dokkaGfm { diff --git a/kakao/src/main/AndroidManifest.xml b/kakao/src/main/AndroidManifest.xml index 1a7fb8cde..8072ee00d 100644 --- a/kakao/src/main/AndroidManifest.xml +++ b/kakao/src/main/AndroidManifest.xml @@ -1,5 +1,2 @@ - - - - + diff --git a/sample/build.gradle.kts b/sample/build.gradle.kts index 77adeb16c..bd791df54 100644 --- a/sample/build.gradle.kts +++ b/sample/build.gradle.kts @@ -1,20 +1,21 @@ plugins { id("com.android.application") - id("kotlin-android") - id("com.github.ben-manes.versions") version Versions.gradle_versions + kotlin("android") } android { - compileSdk = 33 + namespace = "io.github.kakaocup.sample" + compileSdk = libs.versions.compileSdk.get().toInt() + defaultConfig { minSdk = 21 - targetSdk = 33 - targetSdk = 33 + targetSdk = libs.versions.targetSdk.get().toInt() versionCode = 1 versionName = "1.0.0" multiDexEnabled = true testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } + testOptions { animationsDisabled = true } @@ -32,36 +33,28 @@ android { debug { signingConfig = signingConfigs.getByName("kakao") } } - sourceSets { - getByName("main") { - java.srcDir("src/main/kotlin") - res.srcDir("src/main/res") - } - getByName("androidTest") { - java.srcDir("src/androidTest/kotlin") - } + kotlin { + jvmToolchain(libs.versions.jvmVersion.get().toInt()) } } dependencies { - implementation(Libraries.kotlin_stdlib) - implementation(Libraries.appcompat) - implementation(Libraries.recyclerview) - implementation(Libraries.design) - implementation(Libraries.viewpager2) - implementation(Libraries.googleMaps) - implementation(Libraries.multidex) + implementation(libs.androidx.appcompat) + implementation(libs.androidx.recyclerview) + implementation(libs.com.google.android.material) + implementation(libs.androidx.viewpager2) + implementation(libs.androidx.multidex.multidex) - testImplementation(Libraries.junit) + testImplementation(libs.junit.junit) androidTestImplementation(project(":kakao")) androidTestImplementation(project(":kakao-ext-clicks")) - androidTestImplementation(Libraries.annotation) - androidTestImplementation(Libraries.espresso_runner) - androidTestImplementation(Libraries.espresso_rules) - androidTestImplementation(Libraries.espresso_intents) - androidTestImplementation(Libraries.espresso_core) - androidTestImplementation(Libraries.espresso_web) - androidTestImplementation(Libraries.junit_ext) + androidTestImplementation(libs.androidx.annotation) + androidTestImplementation(libs.androidx.test.runner) + androidTestImplementation(libs.androidx.test.rules) + androidTestImplementation(libs.androidx.test.espresso.intents) + androidTestImplementation(libs.androidx.test.espresso.core) + androidTestImplementation(libs.androidx.test.espresso.web) + androidTestImplementation(libs.androidx.test.ext.junit) } diff --git a/sample/src/androidTest/kotlin/io/github/kakaocup/sample/screen/TestActivityScreen.kt b/sample/src/androidTest/kotlin/io/github/kakaocup/sample/screen/TestActivityScreen.kt index 888ca3e50..7278be117 100644 --- a/sample/src/androidTest/kotlin/io/github/kakaocup/sample/screen/TestActivityScreen.kt +++ b/sample/src/androidTest/kotlin/io/github/kakaocup/sample/screen/TestActivityScreen.kt @@ -19,7 +19,7 @@ open class TestActivityScreen : Screen() { val singleTypeRecycler: KButton = KButton { withId(R.id.single_type_recycler) } val autoComplete: KButton = KButton { withId(R.id.auto_complete) } val snackbarButton: KButton = KButton { withId(R.id.snackbar_button) } - val toolbar: KToolbar = KToolbar { withId(R.id.action_bar) } + val toolbar: KToolbar = KToolbar { withId(com.google.android.material.R.id.action_bar) } val textViewLarge: KTextView = KTextView { withId(R.id.text_view_large) diff --git a/sample/src/main/AndroidManifest.xml b/sample/src/main/AndroidManifest.xml index afb8c0a35..4f8ae549d 100644 --- a/sample/src/main/AndroidManifest.xml +++ b/sample/src/main/AndroidManifest.xml @@ -1,6 +1,5 @@ - + diff --git a/sample/src/main/kotlin/io/github/kakaocup/sample/ButtonDoubleClickActivity.kt b/sample/src/main/kotlin/io/github/kakaocup/sample/ButtonDoubleClickActivity.kt index 7855cb107..20b08f3c6 100644 --- a/sample/src/main/kotlin/io/github/kakaocup/sample/ButtonDoubleClickActivity.kt +++ b/sample/src/main/kotlin/io/github/kakaocup/sample/ButtonDoubleClickActivity.kt @@ -49,15 +49,16 @@ class ButtonDoubleClickActivity : AppCompatActivity() { return true } - override fun onScroll(e1: MotionEvent, e2: MotionEvent, distanceX: Float, distanceY: Float): Boolean { + override fun onScroll(e1: MotionEvent?, e2: MotionEvent, distanceX: Float, distanceY: Float): Boolean { return true } + override fun onLongPress(e: MotionEvent) { // do nothing } - override fun onFling(e1: MotionEvent, e2: MotionEvent, velocityX: Float, velocityY: Float): Boolean { + override fun onFling(e1: MotionEvent?, e2: MotionEvent, velocityX: Float, velocityY: Float): Boolean { return true } } diff --git a/sample/src/main/res/layout/activity_test.xml b/sample/src/main/res/layout/activity_test.xml index e87b6d8bb..815339b93 100644 --- a/sample/src/main/res/layout/activity_test.xml +++ b/sample/src/main/res/layout/activity_test.xml @@ -45,28 +45,22 @@ android:text="SINGLE TYPE RECYCLER"/>