Skip to content

Commit e079dee

Browse files
authored
Make AndroidAdvertisement parcelable (#652)
1 parent 136eddb commit e079dee

4 files changed

Lines changed: 15 additions & 2 deletions

File tree

core/api/android/core.api

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public abstract interface class com/juul/kable/Advertisement {
1111
public abstract fun serviceData (Ljava/util/UUID;)[B
1212
}
1313

14-
public abstract interface class com/juul/kable/AndroidAdvertisement : com/juul/kable/Advertisement {
14+
public abstract interface class com/juul/kable/AndroidAdvertisement : android/os/Parcelable, com/juul/kable/Advertisement {
1515
public abstract fun getAddress ()Ljava/lang/String;
1616
public abstract fun getBondState ()Lcom/juul/kable/AndroidAdvertisement$BondState;
1717
public abstract fun getBytes ()[B
@@ -343,6 +343,14 @@ public final class com/juul/kable/ScanFailedException : java/lang/IllegalStateEx
343343
public final fun getErrorCode ()I
344344
}
345345

346+
public final class com/juul/kable/ScanResultAndroidAdvertisement$Creator : android/os/Parcelable$Creator {
347+
public fun <init> ()V
348+
public final fun createFromParcel (Landroid/os/Parcel;)Lcom/juul/kable/ScanResultAndroidAdvertisement;
349+
public synthetic fun createFromParcel (Landroid/os/Parcel;)Ljava/lang/Object;
350+
public final fun newArray (I)[Lcom/juul/kable/ScanResultAndroidAdvertisement;
351+
public synthetic fun newArray (I)[Ljava/lang/Object;
352+
}
353+
346354
public abstract interface class com/juul/kable/Scanner {
347355
public abstract fun getAdvertisements ()Lkotlinx/coroutines/flow/Flow;
348356
}

core/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ plugins {
22
// Android plugin must be before multiplatform plugin until https://youtrack.jetbrains.com/issue/KT-34038 is fixed.
33
id("com.android.library")
44
kotlin("multiplatform")
5+
id("kotlin-parcelize")
56
id("kotlinx-atomicfu")
67
id("org.jmailen.kotlinter")
78
id("org.jetbrains.dokka")

core/src/androidMain/kotlin/AndroidAdvertisement.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package com.juul.kable
22

3+
import android.os.Parcelable
4+
35
@Deprecated(
46
message = "Moved as nested class of `AndroidAdvertisement`.",
57
replaceWith = ReplaceWith("AndroidAdvertisement.BondState"),
68
)
79
public typealias BondState = AndroidAdvertisement.BondState
810

9-
public interface AndroidAdvertisement : Advertisement {
11+
public interface AndroidAdvertisement : Advertisement, Parcelable {
1012

1113
public enum class BondState {
1214
None,

core/src/androidMain/kotlin/ScanResultAndroidAdvertisement.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@ import android.os.Build.VERSION
1010
import android.os.Build.VERSION_CODES
1111
import android.os.ParcelUuid
1212
import com.benasher44.uuid.Uuid
13+
import kotlinx.parcelize.Parcelize
1314

15+
@Parcelize
1416
internal class ScanResultAndroidAdvertisement(
1517
private val scanResult: ScanResult,
1618
) : AndroidAdvertisement {

0 commit comments

Comments
 (0)