Skip to content

Commit 83cc3d0

Browse files
committed
update deps, use namespace in gradle instead of package in manifest file
1 parent a1be69a commit 83cc3d0

File tree

15 files changed

+68
-35
lines changed

15 files changed

+68
-35
lines changed

.idea/compiler.xml

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/gradle.xml

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ plugins {
77
comicApp {
88
viewBinding = true
99
parcelize = true
10+
namespace = "com.hoc.comicapp"
1011
}
1112

1213
dependencies {

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
xmlns:tools="http://schemas.android.com/tools"
4-
package="com.hoc.comicapp">
3+
xmlns:tools="http://schemas.android.com/tools">
54

65
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
76
<uses-permission android:name="android.permission.WAKE_LOCK" />
@@ -73,4 +72,4 @@
7372

7473
</application>
7574

76-
</manifest>
75+
</manifest>

base-ui/build.gradle.kts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ plugins {
33
`android-library`
44
}
55

6-
comicApp { viewBinding = true }
6+
comicApp {
7+
viewBinding = true
8+
namespace = "com.hoc.comicapp.base"
9+
}
710

811
dependencies {
912
implementation(project(deps.module.utils))
Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,2 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="com.hoc.comicapp.base">
4-
5-
</manifest>
2+
<manifest />

buildSrc/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ gradlePlugin {
2020
}
2121

2222
object PluginVersions {
23-
const val kotlin = "1.6.20"
24-
const val androidGradle = "7.1.2"
23+
const val kotlin = "1.6.21"
24+
const val androidGradle = "7.2.0"
2525
const val navigationSafeArgs = "2.5.0-alpha04"
2626
const val googleServices = "4.3.10"
2727
const val crashlytics = "2.7.1"
@@ -50,4 +50,4 @@ dependencies {
5050

5151
implementation(Plugins.gradleVersions)
5252
implementation(Plugins.spotless)
53-
}
53+
}

buildSrc/src/main/kotlin/Configurations.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@ object versions {
2222
const val ktLint = "0.44.0"
2323

2424
object sdk {
25-
const val buildTools = "31.0.0"
26-
const val compile = 31
25+
const val buildTools = "32.0.0"
26+
const val compile = 32
2727
const val min = 23
28-
const val target = 31
28+
const val target = 32
2929
}
3030

3131
object kotlin {
32-
const val core = "1.6.20"
32+
const val core = "1.6.21"
3333
const val coroutines = "1.6.1"
3434
}
3535

@@ -47,7 +47,7 @@ object versions {
4747
}
4848

4949
const val navigation = "2.5.0-alpha04"
50-
const val lifecycle = "2.5.0-alpha06"
50+
const val lifecycle = "2.4.1"
5151
const val room = "2.5.0-alpha01"
5252
const val work = "2.8.0-alpha02"
5353
}

buildSrc/src/main/kotlin/com/hoc/comicapp/plugin/ComicAppPlugin.kt

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
package com.hoc.comicapp.plugin
22

33
import appConfig
4+
import com.android.build.api.variant.AndroidComponentsExtension
45
import com.android.build.gradle.AppExtension
56
import com.android.build.gradle.AppPlugin
67
import com.android.build.gradle.LibraryExtension
78
import com.android.build.gradle.LibraryPlugin
9+
import java.lang.System.getenv
10+
import java.util.Properties
811
import org.gradle.api.JavaVersion.VERSION_1_8
912
import org.gradle.api.Plugin
1013
import org.gradle.api.Project
@@ -17,8 +20,6 @@ import org.gradle.kotlin.dsl.withType
1720
import org.jetbrains.kotlin.gradle.plugin.KotlinBasePluginWrapper
1821
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
1922
import versions
20-
import java.lang.System.getenv
21-
import java.util.Properties
2223

2324
private inline val Project.libraryExtension get() = extensions.getByType<LibraryExtension>()
2425
private inline val Project.appExtension get() = extensions.getByType<AppExtension>()
@@ -27,6 +28,9 @@ private inline val Project.javaPluginExtension get() = extensions.getByType<Java
2728
open class ComicAppExtension {
2829
var viewBinding: Boolean = false
2930
var parcelize: Boolean = false
31+
var namespace: String? = null
32+
33+
override fun toString(): String = "ComicAppExtension(viewBinding=$viewBinding, parcelize=$parcelize, namespace=$namespace)"
3034
}
3135

3236
class ComicAppPlugin : Plugin<Project> {
@@ -63,18 +67,42 @@ class ComicAppPlugin : Plugin<Project> {
6367
val comicAppExtension = project.extensions.create("comicApp", ComicAppExtension::class)
6468

6569
project.afterEvaluate {
70+
println("After evaluate $project -> config $comicAppExtension")
71+
72+
val namespace by lazy {
73+
checkNotNull(comicAppExtension.namespace) {
74+
"""
75+
|Require ComicAppExtension.namespace.
76+
|Add comicApp { namespace = "..." } to ${project.name}/build.gradle.kts""".trimMargin()
77+
}
78+
}
79+
80+
val extension by lazy {
81+
project.extensions.getByName(
82+
"androidComponents"
83+
) as AndroidComponentsExtension<*, *, *>
84+
}
85+
6686
project.plugins.all {
6787
when (this) {
6888
is LibraryPlugin -> {
69-
libraryExtension.buildFeatures {
70-
viewBinding = comicAppExtension.viewBinding
71-
dataBinding = false
89+
extension.finalizeDsl { it.namespace = namespace }
90+
91+
libraryExtension.run {
92+
buildFeatures {
93+
viewBinding = comicAppExtension.viewBinding
94+
dataBinding = false
95+
}
7296
}
7397
enableParcelize(comicAppExtension.parcelize)
7498
}
7599
is AppPlugin -> {
76-
appExtension.buildFeatures.run {
77-
viewBinding = comicAppExtension.viewBinding
100+
extension.finalizeDsl { it.namespace = namespace }
101+
102+
appExtension.run {
103+
buildFeatures.run {
104+
viewBinding = comicAppExtension.viewBinding
105+
}
78106
}
79107
enableParcelize(comicAppExtension.parcelize)
80108
}

features/feature-home/build.gradle.kts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@ plugins {
33
`comic-app-plugin`
44
}
55

6+
comicApp {
7+
namespace = "com.hoc.comicapp.features.home"
8+
}
9+
610
dependencies {
711
testImplementation("junit:junit:4.13.2")
812
androidTestImplementation("androidx.test.ext:junit:1.1.3")

0 commit comments

Comments
 (0)