Skip to content
This repository was archived by the owner on Mar 6, 2024. It is now read-only.

Commit cec9f9d

Browse files
authored
Merge pull request #43 from dropbox/parcelable
Add Parcelable
2 parents 3a412f6 + bc3315f commit cec9f9d

File tree

21 files changed

+88
-28
lines changed

21 files changed

+88
-28
lines changed

componentbox/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ plugins {
1414
id("org.jetbrains.kotlin.native.cocoapods")
1515
id("com.rickclephas.kmp.nativecoroutines")
1616
id("com.chromaticnoise.multiplatform-swiftpackage") version "2.0.3"
17+
id("kotlin-android-extensions")
1718
}
1819

1920
multiplatformSwiftPackage {
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package com.dropbox.componentbox.foundation
2+
3+
actual typealias Parcelable = android.os.Parcelable
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package com.dropbox.componentbox.foundation
2+
3+
actual typealias Parcelize = kotlinx.android.parcel.Parcelize

componentbox/src/commonMain/kotlin/com/dropbox/componentbox/foundation/BorderStroke.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ package com.dropbox.componentbox.foundation
22

33
import kotlinx.serialization.Serializable
44

5+
@Parcelize
56
@Serializable
67
data class BorderStroke(
78
val width: Int,
89
val color: Color
9-
)
10+
): Parcelable

componentbox/src/commonMain/kotlin/com/dropbox/componentbox/foundation/ButtonVariant.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.dropbox.componentbox.foundation
22

3+
import kotlinx.serialization.Serializable
34

4-
@kotlinx.serialization.Serializable
5-
enum class ButtonVariant {
5+
@Parcelize
6+
@Serializable
7+
enum class ButtonVariant: Parcelable {
68
Contained,
79
Text,
810
Outlined,

componentbox/src/commonMain/kotlin/com/dropbox/componentbox/foundation/Component.kt

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@ package com.dropbox.componentbox.foundation
33
import kotlinx.serialization.Serializable
44

55
@Serializable
6-
sealed class Component {
6+
sealed class Component: Parcelable {
77

8+
@Parcelize
89
@Serializable
910
data class Box(
1011
val id: String,
@@ -13,8 +14,9 @@ sealed class Component {
1314
var horizontalArrangement: Arrangement? = null,
1415
var verticalAlignment: Alignment? = null,
1516
var action: String? = null,
16-
) : Component()
17+
) : Component(), Parcelable
1718

19+
@Parcelize
1820
@Serializable
1921
data class Row(
2022
val id: String,
@@ -24,8 +26,9 @@ sealed class Component {
2426
var verticalAlignment: Alignment? = null,
2527
var action: String? = null,
2628
var isLazy: Boolean? = null
27-
) : Component()
29+
) : Component(), Parcelable
2830

31+
@Parcelize
2932
@Serializable
3033
data class Column(
3134
val id: String,
@@ -36,17 +39,19 @@ sealed class Component {
3639
var isLazy: Boolean? = null,
3740
var isTable: Boolean? = null,
3841
var action: String? = null
39-
) : Component()
42+
) : Component(), Parcelable
4043

44+
@Parcelize
4145
@Serializable
4246
data class Text(
4347
val id: String,
4448
var modifier: Modifier? = null,
4549
var text: String? = null,
4650
var color: Color? = null,
4751
var textStyle: String? = null
48-
) : Component()
52+
) : Component(), Parcelable
4953

54+
@Parcelize
5055
@Serializable
5156
data class Button(
5257
val id: String,
@@ -55,16 +60,18 @@ sealed class Component {
5560
var isEnabled: Boolean? = null,
5661
var action: String? = null,
5762
var variant: String? = null,
58-
) : Component()
63+
) : Component(), Parcelable
5964

65+
@Parcelize
6066
@Serializable
6167
data class Switch(
6268
val id: String,
6369
var isChecked: Boolean? = null,
6470
var modifier: Modifier? = null,
6571
var action: String? = null,
66-
) : Component()
72+
) : Component(), Parcelable
6773

74+
@Parcelize
6875
@Serializable
6976
data class Drawable(
7077
val id: String,
@@ -74,8 +81,9 @@ sealed class Component {
7481
var modifier: Modifier? = null,
7582
var alignment: Alignment? = null,
7683
var contentScale: ContentScale? = null
77-
) : Component()
84+
) : Component(), Parcelable
7885

86+
@Parcelize
7987
@Serializable
8088
data class Vector(
8189
val id: String,
@@ -84,8 +92,9 @@ sealed class Component {
8492
var alignment: Alignment? = null,
8593
var contentScale: ContentScale? = null,
8694
var color: Color? = null
87-
) : Component()
95+
) : Component(), Parcelable
8896

97+
@Parcelize
8998
@Serializable
9099
data class Surface(
91100
val id: String,
@@ -96,6 +105,6 @@ sealed class Component {
96105
var borderStroke: BorderStroke? = null,
97106
var elevation: Int? = null,
98107
var components: MutableList<Component>? = null,
99-
) : Component()
108+
) : Component(), Parcelable
100109
}
101110

componentbox/src/commonMain/kotlin/com/dropbox/componentbox/foundation/ComponentBox.kt

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,29 @@ package com.dropbox.componentbox.foundation
33
import kotlinx.serialization.Serializable
44

55
@Serializable
6-
sealed class ComponentBox {
6+
sealed class ComponentBox: Parcelable {
7+
@Parcelize
78
@Serializable
89
data class Screen(
910
val title: String?,
1011
val verticalArrangement: Arrangement,
1112
val horizontalAlignment: Alignment,
1213
val components: List<Component>
13-
) : ComponentBox()
14+
) : ComponentBox(), Parcelable
1415

16+
@Parcelize
1517
@Serializable
1618
data class Modal(
1719
val verticalArrangement: Arrangement,
1820
val horizontalAlignment: Alignment,
1921
val components: List<Component>
20-
) : ComponentBox()
22+
) : ComponentBox(), Parcelable
2123

24+
@Parcelize
2225
@Serializable
2326
data class Banner(
2427
val verticalArrangement: Arrangement,
2528
val horizontalAlignment: Alignment,
2629
val components: List<Component>
27-
) : ComponentBox()
30+
) : ComponentBox(), Parcelable
2831
}

componentbox/src/commonMain/kotlin/com/dropbox/componentbox/foundation/ComponentBoxType.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ package com.dropbox.componentbox.foundation
22

33
import kotlinx.serialization.Serializable
44

5+
@Parcelize
56
@Serializable
6-
enum class ComponentBoxType {
7+
enum class ComponentBoxType: Parcelable {
78
Screen,
89
Modal,
910
Banner

componentbox/src/commonMain/kotlin/com/dropbox/componentbox/foundation/ComponentType.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ package com.dropbox.componentbox.foundation
22

33
import kotlinx.serialization.Serializable
44

5+
@Parcelize
56
@Serializable
6-
enum class ComponentType {
7+
enum class ComponentType: Parcelable {
78
Box,
89
Button,
910
Column,
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package com.dropbox.componentbox.foundation
2+
3+
expect interface Parcelable

0 commit comments

Comments
 (0)