Skip to content

Commit bc459d4

Browse files
Expose reconnect and disconnect in KMP (#359)
* PubNub SDK v10.5.4 release. --------- Co-authored-by: PubNub Release Bot <[email protected]>
1 parent 2acb2da commit bc459d4

File tree

13 files changed

+80
-40
lines changed

13 files changed

+80
-40
lines changed

.pubnub.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
name: kotlin
2-
version: 10.5.3
2+
version: 10.5.4
33
schema: 1
44
scm: github.com/pubnub/kotlin
55
files:
6-
- build/libs/pubnub-kotlin-10.5.3-all.jar
6+
- build/libs/pubnub-kotlin-10.5.4-all.jar
77
sdks:
88
-
99
type: library
@@ -23,8 +23,8 @@ sdks:
2323
-
2424
distribution-type: library
2525
distribution-repository: maven
26-
package-name: pubnub-kotlin-10.5.3
27-
location: https://repo.maven.apache.org/maven2/com/pubnub/pubnub-kotlin/10.5.3/pubnub-kotlin-10.5.3.jar
26+
package-name: pubnub-kotlin-10.5.4
27+
location: https://repo.maven.apache.org/maven2/com/pubnub/pubnub-kotlin/10.5.4/pubnub-kotlin-10.5.4.jar
2828
supported-platforms:
2929
supported-operating-systems:
3030
Android:
@@ -121,6 +121,11 @@ sdks:
121121
license-url: https://www.apache.org/licenses/LICENSE-2.0.txt
122122
is-required: Required
123123
changelog:
124+
- date: 2025-07-21
125+
version: v10.5.4
126+
changes:
127+
- type: bug
128+
text: "Internal change - expose reconnect and disconnect in KMP ."
124129
- date: 2025-07-15
125130
version: v10.5.3
126131
changes:

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## v10.5.4
2+
July 21 2025
3+
4+
#### Fixed
5+
- Internal change - expose reconnect and disconnect in KMP .
6+
17
## v10.5.3
28
July 15 2025
39

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ You will need the publish and subscribe keys to authenticate your app. Get your
2020
<dependency>
2121
<groupId>com.pubnub</groupId>
2222
<artifactId>pubnub-kotlin</artifactId>
23-
<version>10.5.3</version>
23+
<version>10.5.4</version>
2424
</dependency>
2525
```
2626

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ RELEASE_SIGNING_ENABLED=true
1818
SONATYPE_HOST=DEFAULT
1919
SONATYPE_AUTOMATIC_RELEASE=false
2020
GROUP=com.pubnub
21-
VERSION_NAME=10.5.3
21+
VERSION_NAME=10.5.4
2222
POM_PACKAGING=jar
2323

2424
POM_NAME=PubNub SDK

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dokka = "2.0.0"
1313
kotlinx_datetime = "0.6.2"
1414
kotlinx_coroutines = "1.10.2"
1515
pubnub_js = "8.6.0"
16-
pubnub_swift = "9.2.0"
16+
pubnub_swift = "9.2.2"
1717

1818
[libraries]
1919
retrofit2 = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit2" }

pubnub-kotlin/pubnub-kotlin-api/config/ktlint/baseline.xml

Lines changed: 27 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -8,47 +8,40 @@
88
</file>
99
<file name="src/jsMain/kotlin/Pubnub.d.kt">
1010
<error line="156" column="40" source="standard:comment-wrapping" />
11-
<error line="411" column="15" source="standard:class-naming" />
12-
<error line="428" column="15" source="standard:class-naming" />
13-
<error line="444" column="15" source="standard:class-naming" />
14-
<error line="456" column="15" source="standard:class-naming" />
15-
<error line="464" column="15" source="standard:class-naming" />
16-
<error line="472" column="15" source="standard:class-naming" />
17-
<error line="488" column="15" source="standard:class-naming" />
18-
<error line="501" column="15" source="standard:class-naming" />
19-
<error line="849" column="13" source="standard:property-naming" />
20-
<error line="1034" column="15" source="standard:class-naming" />
11+
<error line="413" column="15" source="standard:class-naming" />
12+
<error line="430" column="15" source="standard:class-naming" />
13+
<error line="446" column="15" source="standard:class-naming" />
14+
<error line="458" column="15" source="standard:class-naming" />
15+
<error line="466" column="15" source="standard:class-naming" />
16+
<error line="474" column="15" source="standard:class-naming" />
17+
<error line="490" column="15" source="standard:class-naming" />
18+
<error line="503" column="15" source="standard:class-naming" />
19+
<error line="855" column="13" source="standard:property-naming" />
2120
<error line="1040" column="15" source="standard:class-naming" />
22-
<error line="1163" column="13" source="standard:property-naming" />
23-
<error line="1171" column="13" source="standard:property-naming" />
24-
<error line="1173" column="13" source="standard:property-naming" />
25-
<error line="1236" column="39" source="standard:comment-wrapping" />
26-
<error line="1321" column="15" source="standard:class-naming" />
27-
<error line="1349" column="42" source="standard:comment-wrapping" />
28-
<error line="1399" column="37" source="standard:comment-wrapping" />
29-
<error line="1420" column="13" source="standard:property-naming" />
30-
<error line="1421" column="13" source="standard:property-naming" />
31-
<error line="1425" column="13" source="standard:property-naming" />
21+
<error line="1046" column="15" source="standard:class-naming" />
22+
<error line="1169" column="13" source="standard:property-naming" />
23+
<error line="1177" column="13" source="standard:property-naming" />
24+
<error line="1179" column="13" source="standard:property-naming" />
25+
<error line="1242" column="39" source="standard:comment-wrapping" />
26+
<error line="1327" column="15" source="standard:class-naming" />
27+
<error line="1355" column="42" source="standard:comment-wrapping" />
28+
<error line="1405" column="37" source="standard:comment-wrapping" />
3229
<error line="1426" column="13" source="standard:property-naming" />
33-
<error line="1445" column="9" source="standard:property-naming" />
34-
<error line="1446" column="9" source="standard:property-naming" />
35-
<error line="1447" column="9" source="standard:property-naming" />
36-
<error line="1448" column="9" source="standard:property-naming" />
37-
<error line="1449" column="9" source="standard:property-naming" />
38-
<error line="1450" column="9" source="standard:property-naming" />
30+
<error line="1427" column="13" source="standard:property-naming" />
31+
<error line="1431" column="13" source="standard:property-naming" />
32+
<error line="1432" column="13" source="standard:property-naming" />
3933
<error line="1451" column="9" source="standard:property-naming" />
4034
<error line="1452" column="9" source="standard:property-naming" />
4135
<error line="1453" column="9" source="standard:property-naming" />
4236
<error line="1454" column="9" source="standard:property-naming" />
4337
<error line="1455" column="9" source="standard:property-naming" />
4438
<error line="1456" column="9" source="standard:property-naming" />
4539
<error line="1457" column="9" source="standard:property-naming" />
40+
<error line="1458" column="9" source="standard:property-naming" />
41+
<error line="1459" column="9" source="standard:property-naming" />
4642
<error line="1460" column="9" source="standard:property-naming" />
4743
<error line="1461" column="9" source="standard:property-naming" />
4844
<error line="1462" column="9" source="standard:property-naming" />
49-
<error line="1463" column="9" source="standard:property-naming" />
50-
<error line="1464" column="9" source="standard:property-naming" />
51-
<error line="1465" column="9" source="standard:property-naming" />
5245
<error line="1466" column="9" source="standard:property-naming" />
5346
<error line="1467" column="9" source="standard:property-naming" />
5447
<error line="1468" column="9" source="standard:property-naming" />
@@ -80,5 +73,10 @@
8073
<error line="1494" column="9" source="standard:property-naming" />
8174
<error line="1495" column="9" source="standard:property-naming" />
8275
<error line="1496" column="9" source="standard:property-naming" />
76+
<error line="1497" column="9" source="standard:property-naming" />
77+
<error line="1498" column="9" source="standard:property-naming" />
78+
<error line="1499" column="9" source="standard:property-naming" />
79+
<error line="1500" column="9" source="standard:property-naming" />
80+
<error line="1501" column="9" source="standard:property-naming" />
8381
</file>
8482
</baseline>

pubnub-kotlin/pubnub-kotlin-api/src/appleMain/kotlin/com/pubnub/api/PubNubImpl.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import cocoapods.PubNubSwift.channelMetadataWith
1010
import cocoapods.PubNubSwift.channelWith
1111
import cocoapods.PubNubSwift.disconnect
1212
import cocoapods.PubNubSwift.getToken
13+
import cocoapods.PubNubSwift.reconnectWithTimetoken
1314
import cocoapods.PubNubSwift.removeAllListeners
1415
import cocoapods.PubNubSwift.removeEventListenerWithListener
1516
import cocoapods.PubNubSwift.removeStatusListenerWithListener
@@ -1061,4 +1062,12 @@ class PubNubImpl(private val pubNubObjC: KMPPubNub) : PubNub {
10611062
fileId = fileId
10621063
)
10631064
}
1065+
1066+
override fun disconnect() {
1067+
pubNubObjC.disconnect()
1068+
}
1069+
1070+
override fun reconnect(timetoken: Long) {
1071+
pubNubObjC.reconnectWithTimetoken(platform.Foundation.NSNumber(unsignedLongLong = timetoken.toULong()))
1072+
}
10641073
}

pubnub-kotlin/pubnub-kotlin-api/src/commonMain/kotlin/com/pubnub/api/PubNub.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -554,4 +554,8 @@ expect interface PubNub {
554554
): SubscriptionSet
555555

556556
fun parseToken(token: String): PNToken
557+
558+
fun reconnect(timetoken: Long = 0L)
559+
560+
fun disconnect()
557561
}

pubnub-kotlin/pubnub-kotlin-api/src/jsMain/kotlin/Pubnub.d.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,9 @@ open external class PubNub(config: Any /* UUID | UserId */) {
205205

206206
open fun stop()
207207

208-
open fun reconnect()
208+
open fun reconnect(params: ReconnectParameters)
209+
210+
open fun disconnect()
209211

210212
open fun addListener(params: ListenerParameters)
211213

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

750+
interface ReconnectParameters {
751+
var timetoken: String?
752+
}
753+
748754
interface StatusListenerParameters {
749755
val status: ((statusEvent: StatusEvent) -> Unit)?
750756
}

pubnub-kotlin/pubnub-kotlin-api/src/jsMain/kotlin/com/pubnub/api/PubNubImpl.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,14 @@ class PubNubImpl(val jsPubNub: PubNubJs) : PubNub {
195195
)
196196
}
197197

198+
override fun reconnect(timetoken: Long) {
199+
jsPubNub.reconnect(createJsObject { this.timetoken = timetoken.toString() })
200+
}
201+
202+
override fun disconnect() {
203+
jsPubNub.disconnect()
204+
}
205+
198206
override fun fire(channel: String, message: Any, meta: Any?, usePost: Boolean): Publish {
199207
return FireImpl(
200208
jsPubNub,

0 commit comments

Comments
 (0)