diff --git a/library/src/main/java/org/xmtp/android/library/push/README.md b/library/src/main/java/org/xmtp/android/library/push/README.md index 9b13a9d1..2615fa40 100644 --- a/library/src/main/java/org/xmtp/android/library/push/README.md +++ b/library/src/main/java/org/xmtp/android/library/push/README.md @@ -79,3 +79,7 @@ This example branch can serve as the basis for what you might want to provide fo ```kotlin XMTPPush(context, "10.0.2.2:8080").subscribe(conversations.map { it.topic }) ``` + + ```kotlin + XMTPPush(context, "10.0.2.2:8080").unsubscribe(conversations.map { it.topic }) + ``` diff --git a/library/src/main/java/org/xmtp/android/library/push/XMTPPush.kt b/library/src/main/java/org/xmtp/android/library/push/XMTPPush.kt index 2268a286..fc3a7fbd 100644 --- a/library/src/main/java/org/xmtp/android/library/push/XMTPPush.kt +++ b/library/src/main/java/org/xmtp/android/library/push/XMTPPush.kt @@ -51,6 +51,17 @@ class XMTPPush() { client.subscribe(request) } + fun unsubscribe(topics: List) { + if (pushServer == "") { + throw XMTPException("No push server") + } + val request = Service.UnsubscribeRequest.newBuilder().also { request -> + request.installationId = installationId + request.addAllTopics(topics) + }.build() + client.unsubscribe(request) + } + val client: NotificationsGrpc.NotificationsFutureStub get() { val protocolClient: ManagedChannel =