Skip to content

Commit

Permalink
Create parcelize convention plugin (#79)
Browse files Browse the repository at this point in the history
* Create parcelize convention plugin

* Include implementations for parcelable classes

* Include actual constructor

Co-authored-by: Davies Ashley <[email protected]>
  • Loading branch information
ashdavies and ashdavies authored Jan 6, 2023
1 parent e3e2712 commit 4a7106f
Show file tree
Hide file tree
Showing 13 changed files with 52 additions and 8 deletions.
8 changes: 2 additions & 6 deletions build-plugins/src/main/kotlin/io.ashdavies.android.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,6 @@ import com.android.build.gradle.LibraryExtension
import com.android.build.gradle.internal.dsl.BaseAppModuleExtension
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension

/*pluginManager.withPlugin("android") {
plugins { id("kotlin-parcelize") }
}*/

plugins {
kotlin("multiplatform")
}
Expand All @@ -17,8 +13,8 @@ kotlin {
androidMain.dependencies {
implementation(libs.androidx.annotation)
implementation(libs.androidx.core.ktx)
implementation(libs.google.android.material)
implementation(libs.jetbrains.kotlinx.coroutines.android)
implementation(libs.google.android.material) // Necessary?
implementation(libs.jetbrains.kotlinx.coroutines.android) // Necessary?
}

androidTest {
Expand Down
15 changes: 15 additions & 0 deletions build-plugins/src/main/kotlin/io.ashdavies.parcelable.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import org.gradle.kotlin.dsl.kotlin

pluginManager.withPlugin("com.android.library") {
plugins { id("kotlin-parcelize") }
}

plugins {
kotlin("multiplatform")
}

kotlin {
commonMain.dependencies {
implementation(project(":parcelable-support"))
}
}
2 changes: 1 addition & 1 deletion dominion-app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
plugins {
id("io.ashdavies.default")
id("kotlin-parcelize")
id("io.ashdavies.parcelable")
}

android {
Expand Down
2 changes: 1 addition & 1 deletion events-app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import com.android.build.api.dsl.VariantDimension

plugins {
id("io.ashdavies.default")
id("kotlin-parcelize")
id("io.ashdavies.parcelable")
}

android {
Expand Down
8 changes: 8 additions & 0 deletions parcelable-support/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
plugins {
id("io.ashdavies.default")
id("kotlin-parcelize")
}

android {
namespace = "io.ashdavies.parcelable"
}
2 changes: 2 additions & 0 deletions parcelable-support/src/androidMain/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest />
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package io.ashdavies.parcelable

public actual typealias Parcelable = android.os.Parcelable
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package io.ashdavies.parcelable

public actual typealias Parcelize = kotlinx.parcelize.Parcelize
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package io.ashdavies.parcelable

public expect interface Parcelable
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package io.ashdavies.parcelable

@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.BINARY)
public expect annotation class Parcelize()
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package io.ashdavies.parcelable

public actual interface Parcelable : java.io.Serializable
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package io.ashdavies.parcelable

@Target(AnnotationTarget.CLASS)
@Retention(AnnotationRetention.SOURCE)
public actual annotation class Parcelize actual constructor()
1 change: 1 addition & 0 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ include(
":local-storage",
":notion-console",
":paging-compose",
":parcelable-support",
":playground-app",
":version-catalog",
)
Expand Down

0 comments on commit 4a7106f

Please sign in to comment.