Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions .pubnub.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
name: kotlin
version: 10.5.3
version: 10.5.4
schema: 1
scm: github.com/pubnub/kotlin
files:
- build/libs/pubnub-kotlin-10.5.3-all.jar
- build/libs/pubnub-kotlin-10.5.4-all.jar
sdks:
-
type: library
Expand All @@ -23,8 +23,8 @@ sdks:
-
distribution-type: library
distribution-repository: maven
package-name: pubnub-kotlin-10.5.3
location: https://repo.maven.apache.org/maven2/com/pubnub/pubnub-kotlin/10.5.3/pubnub-kotlin-10.5.3.jar
package-name: pubnub-kotlin-10.5.4
location: https://repo.maven.apache.org/maven2/com/pubnub/pubnub-kotlin/10.5.4/pubnub-kotlin-10.5.4.jar
supported-platforms:
supported-operating-systems:
Android:
Expand Down Expand Up @@ -121,6 +121,11 @@ sdks:
license-url: https://www.apache.org/licenses/LICENSE-2.0.txt
is-required: Required
changelog:
- date: 2025-07-21
version: v10.5.4
changes:
- type: bug
text: "Internal change - expose reconnect and disconnect in KMP ."
- date: 2025-07-15
version: v10.5.3
changes:
Expand Down
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
## v10.5.4
July 21 2025

#### Fixed
- Internal change - expose reconnect and disconnect in KMP .

## v10.5.3
July 15 2025

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ You will need the publish and subscribe keys to authenticate your app. Get your
<dependency>
<groupId>com.pubnub</groupId>
<artifactId>pubnub-kotlin</artifactId>
<version>10.5.3</version>
<version>10.5.4</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ RELEASE_SIGNING_ENABLED=true
SONATYPE_HOST=DEFAULT
SONATYPE_AUTOMATIC_RELEASE=false
GROUP=com.pubnub
VERSION_NAME=10.5.3
VERSION_NAME=10.5.4
POM_PACKAGING=jar

POM_NAME=PubNub SDK
Expand Down
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ dokka = "2.0.0"
kotlinx_datetime = "0.6.2"
kotlinx_coroutines = "1.10.2"
pubnub_js = "8.6.0"
pubnub_swift = "9.2.0"
pubnub_swift = "9.2.2"

[libraries]
retrofit2 = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit2" }
Expand Down
56 changes: 27 additions & 29 deletions pubnub-kotlin/pubnub-kotlin-api/config/ktlint/baseline.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,47 +8,40 @@
</file>
<file name="src/jsMain/kotlin/Pubnub.d.kt">
<error line="156" column="40" source="standard:comment-wrapping" />
<error line="411" column="15" source="standard:class-naming" />
<error line="428" column="15" source="standard:class-naming" />
<error line="444" column="15" source="standard:class-naming" />
<error line="456" column="15" source="standard:class-naming" />
<error line="464" column="15" source="standard:class-naming" />
<error line="472" column="15" source="standard:class-naming" />
<error line="488" column="15" source="standard:class-naming" />
<error line="501" column="15" source="standard:class-naming" />
<error line="849" column="13" source="standard:property-naming" />
<error line="1034" column="15" source="standard:class-naming" />
<error line="413" column="15" source="standard:class-naming" />
<error line="430" column="15" source="standard:class-naming" />
<error line="446" column="15" source="standard:class-naming" />
<error line="458" column="15" source="standard:class-naming" />
<error line="466" column="15" source="standard:class-naming" />
<error line="474" column="15" source="standard:class-naming" />
<error line="490" column="15" source="standard:class-naming" />
<error line="503" column="15" source="standard:class-naming" />
<error line="855" column="13" source="standard:property-naming" />
<error line="1040" column="15" source="standard:class-naming" />
<error line="1163" column="13" source="standard:property-naming" />
<error line="1171" column="13" source="standard:property-naming" />
<error line="1173" column="13" source="standard:property-naming" />
<error line="1236" column="39" source="standard:comment-wrapping" />
<error line="1321" column="15" source="standard:class-naming" />
<error line="1349" column="42" source="standard:comment-wrapping" />
<error line="1399" column="37" source="standard:comment-wrapping" />
<error line="1420" column="13" source="standard:property-naming" />
<error line="1421" column="13" source="standard:property-naming" />
<error line="1425" column="13" source="standard:property-naming" />
<error line="1046" column="15" source="standard:class-naming" />
<error line="1169" column="13" source="standard:property-naming" />
<error line="1177" column="13" source="standard:property-naming" />
<error line="1179" column="13" source="standard:property-naming" />
<error line="1242" column="39" source="standard:comment-wrapping" />
<error line="1327" column="15" source="standard:class-naming" />
<error line="1355" column="42" source="standard:comment-wrapping" />
<error line="1405" column="37" source="standard:comment-wrapping" />
<error line="1426" column="13" source="standard:property-naming" />
<error line="1445" column="9" source="standard:property-naming" />
<error line="1446" column="9" source="standard:property-naming" />
<error line="1447" column="9" source="standard:property-naming" />
<error line="1448" column="9" source="standard:property-naming" />
<error line="1449" column="9" source="standard:property-naming" />
<error line="1450" column="9" source="standard:property-naming" />
<error line="1427" column="13" source="standard:property-naming" />
<error line="1431" column="13" source="standard:property-naming" />
<error line="1432" column="13" source="standard:property-naming" />
<error line="1451" column="9" source="standard:property-naming" />
<error line="1452" column="9" source="standard:property-naming" />
<error line="1453" column="9" source="standard:property-naming" />
<error line="1454" column="9" source="standard:property-naming" />
<error line="1455" column="9" source="standard:property-naming" />
<error line="1456" column="9" source="standard:property-naming" />
<error line="1457" column="9" source="standard:property-naming" />
<error line="1458" column="9" source="standard:property-naming" />
<error line="1459" column="9" source="standard:property-naming" />
<error line="1460" column="9" source="standard:property-naming" />
<error line="1461" column="9" source="standard:property-naming" />
<error line="1462" column="9" source="standard:property-naming" />
<error line="1463" column="9" source="standard:property-naming" />
<error line="1464" column="9" source="standard:property-naming" />
<error line="1465" column="9" source="standard:property-naming" />
<error line="1466" column="9" source="standard:property-naming" />
<error line="1467" column="9" source="standard:property-naming" />
<error line="1468" column="9" source="standard:property-naming" />
Expand Down Expand Up @@ -80,5 +73,10 @@
<error line="1494" column="9" source="standard:property-naming" />
<error line="1495" column="9" source="standard:property-naming" />
<error line="1496" column="9" source="standard:property-naming" />
<error line="1497" column="9" source="standard:property-naming" />
<error line="1498" column="9" source="standard:property-naming" />
<error line="1499" column="9" source="standard:property-naming" />
<error line="1500" column="9" source="standard:property-naming" />
<error line="1501" column="9" source="standard:property-naming" />
</file>
</baseline>
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import cocoapods.PubNubSwift.channelMetadataWith
import cocoapods.PubNubSwift.channelWith
import cocoapods.PubNubSwift.disconnect
import cocoapods.PubNubSwift.getToken
import cocoapods.PubNubSwift.reconnectWithTimetoken
import cocoapods.PubNubSwift.removeAllListeners
import cocoapods.PubNubSwift.removeEventListenerWithListener
import cocoapods.PubNubSwift.removeStatusListenerWithListener
Expand Down Expand Up @@ -1061,4 +1062,12 @@ class PubNubImpl(private val pubNubObjC: KMPPubNub) : PubNub {
fileId = fileId
)
}

override fun disconnect() {
pubNubObjC.disconnect()
}

override fun reconnect(timetoken: Long) {
pubNubObjC.reconnectWithTimetoken(platform.Foundation.NSNumber(unsignedLongLong = timetoken.toULong()))
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -554,4 +554,8 @@ expect interface PubNub {
): SubscriptionSet

fun parseToken(token: String): PNToken

fun reconnect(timetoken: Long = 0L)

fun disconnect()
}
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,9 @@ open external class PubNub(config: Any /* UUID | UserId */) {

open fun stop()

open fun reconnect()
open fun reconnect(params: ReconnectParameters)

open fun disconnect()

open fun addListener(params: ListenerParameters)

Expand Down Expand Up @@ -745,6 +747,10 @@ open external class PubNub(config: Any /* UUID | UserId */) {
val objects: ((objectEvent: BaseObjectsEvent) -> Unit)?
}

interface ReconnectParameters {
var timetoken: String?
}

interface StatusListenerParameters {
val status: ((statusEvent: StatusEvent) -> Unit)?
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -195,6 +195,14 @@ class PubNubImpl(val jsPubNub: PubNubJs) : PubNub {
)
}

override fun reconnect(timetoken: Long) {
jsPubNub.reconnect(createJsObject { this.timetoken = timetoken.toString() })
}

override fun disconnect() {
jsPubNub.disconnect()
}

override fun fire(channel: String, message: Any, meta: Any?, usePost: Boolean): Publish {
return FireImpl(
jsPubNub,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -263,14 +263,14 @@ actual interface PubNub : StatusEmitter, EventEmitter {
*
* @param timetoken optional timetoken to use for the subscriptions on reconnection.
*/
fun reconnect(timetoken: Long = 0L)
actual fun reconnect(timetoken: Long)

/**
* Cancel any subscribe and heartbeat loops or ongoing re-connections.
*
* Monitor the results in [SubscribeCallback.status]
*/
fun disconnect()
actual fun disconnect()

/**
* Unsubscribe from all channels and all channel groups.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -518,4 +518,8 @@ actual interface PubNub {
ttl: Int?,
customMessageType: String?
): Publish

actual fun reconnect(timetoken: Long)

actual fun disconnect()
}
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ class PubNubImplTest : BaseTest() {
fun getVersionAndTimeStamp() {
val version = PubNubImpl.SDK_VERSION
val timeStamp = PubNubImpl.timestamp()
assertEquals("10.5.3", version)
assertEquals("10.5.4", version)
assertTrue(timeStamp > 0)
}

Expand Down
Loading