Skip to content

Commit 76ada2b

Browse files
committed
update the example
1 parent cfacdb7 commit 76ada2b

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

example/src/main/java/org/xmtp/android/example/MainViewModel.kt

+19-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import org.xmtp.android.example.extension.stateFlow
2020
import org.xmtp.android.example.pushnotifications.PushNotificationTokenManager
2121
import org.xmtp.android.library.Conversation
2222
import org.xmtp.android.library.DecodedMessage
23+
import org.xmtp.android.library.push.Service
2324

2425
class MainViewModel : ViewModel() {
2526

@@ -43,7 +44,24 @@ class MainViewModel : ViewModel() {
4344
val listItems = mutableListOf<MainListItem>()
4445
try {
4546
val conversations = ClientManager.client.conversations.list(includeGroups = true)
46-
PushNotificationTokenManager.xmtpPush.subscribe(conversations.map { it.topic })
47+
val subscriptions = conversations.map {
48+
val hmacKeysResult = ClientManager.client.conversations.getHmacKeys()
49+
val hmacKeys = hmacKeysResult.hmacKeysMap
50+
val result = hmacKeys[it.topic]?.valuesList?.map { hmacKey ->
51+
Service.Subscription.HmacKey.newBuilder().also { sub_key ->
52+
sub_key.key = hmacKey.hmacKey
53+
sub_key.thirtyDayPeriodsSinceEpoch = hmacKey.thirtyDayPeriodsSinceEpoch
54+
}.build()
55+
}
56+
57+
Service.Subscription.newBuilder().also { sub ->
58+
sub.addAllHmacKeys(result)
59+
sub.topic = it.topic
60+
sub.isSilent = it.version == Conversation.Version.V1
61+
}.build()
62+
}
63+
64+
PushNotificationTokenManager.xmtpPush.subscribeWithMetadata(subscriptions)
4765
listItems.addAll(
4866
conversations.map { conversation ->
4967
val lastMessage = fetchMostRecentMessage(conversation)

0 commit comments

Comments
 (0)