From eb0dcd6b8c8e91ae6d7044857456a1772a679f45 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 6 May 2024 22:31:06 +0200 Subject: [PATCH] UnifiedPush: correctly unregister the provider. --- .../unifiedpush/UnifiedPushProvider.kt | 2 +- .../UnregisterUnifiedPushUseCase.kt | 22 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/UnifiedPushProvider.kt b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/UnifiedPushProvider.kt index 9c9d9b034b..cd16481ec3 100644 --- a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/UnifiedPushProvider.kt +++ b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/UnifiedPushProvider.kt @@ -71,7 +71,7 @@ class UnifiedPushProvider @Inject constructor( override suspend fun unregister(matrixClient: MatrixClient) { val clientSecret = pushClientSecret.getSecretForUser(matrixClient.sessionId) - unRegisterUnifiedPushUseCase.execute(clientSecret) + unRegisterUnifiedPushUseCase.execute(matrixClient, clientSecret) } override suspend fun getCurrentUserPushConfig(): CurrentUserPushConfig? { diff --git a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/UnregisterUnifiedPushUseCase.kt b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/UnregisterUnifiedPushUseCase.kt index b6030564ca..ba389d0ae6 100644 --- a/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/UnregisterUnifiedPushUseCase.kt +++ b/libraries/pushproviders/unifiedpush/src/main/kotlin/io/element/android/libraries/pushproviders/unifiedpush/UnregisterUnifiedPushUseCase.kt @@ -18,26 +18,26 @@ package io.element.android.libraries.pushproviders.unifiedpush import android.content.Context import io.element.android.libraries.di.ApplicationContext +import io.element.android.libraries.matrix.api.MatrixClient +import io.element.android.libraries.pushproviders.api.PusherSubscriber import org.unifiedpush.android.connector.UnifiedPush import timber.log.Timber import javax.inject.Inject class UnregisterUnifiedPushUseCase @Inject constructor( @ApplicationContext private val context: Context, - // private val pushDataStore: PushDataStore, private val unifiedPushStore: UnifiedPushStore, - // private val unifiedPushGatewayResolver: UnifiedPushGatewayResolver, + private val pusherSubscriber: PusherSubscriber, ) { - suspend fun execute(clientSecret: String) { - // val mode = BackgroundSyncMode.FDROID_BACKGROUND_SYNC_MODE_FOR_REALTIME - // pushDataStore.setFdroidSyncBackgroundMode(mode) - try { - unifiedPushStore.getEndpoint(clientSecret)?.let { - Timber.d("Removing $it") - // TODO pushersManager?.unregisterPusher(it) + suspend fun execute(matrixClient: MatrixClient, clientSecret: String) { + val endpoint = unifiedPushStore.getEndpoint(clientSecret) + val gateway = unifiedPushStore.getPushGateway(clientSecret) + if (endpoint != null && gateway != null) { + try { + pusherSubscriber.unregisterPusher(matrixClient, endpoint, gateway) + } catch (e: Exception) { + Timber.d(e, "Probably unregistering a non existing pusher") } - } catch (e: Exception) { - Timber.d(e, "Probably unregistering a non existing pusher") } unifiedPushStore.storeUpEndpoint(null, clientSecret) unifiedPushStore.storePushGateway(null, clientSecret)