diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/pushers/HttpPusher.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/pushers/HttpPusher.kt index 20700ee68e..1258c5c02f 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/pushers/HttpPusher.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/pushers/HttpPusher.kt @@ -79,7 +79,5 @@ data class HttpPusher( * true to limit the push content to only id and not message content * Ref: https://matrix.org/docs/spec/push_gateway/r0.1.1#homeserver-behaviour */ - val withEventIdOnly: Boolean, - - val includeData: Map, + val withEventIdOnly: Boolean ) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/pushers/Pusher.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/pushers/Pusher.kt index 907777d470..92ac6c483b 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/pushers/Pusher.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/pushers/Pusher.kt @@ -46,6 +46,5 @@ enum class PusherState { data class PusherData( val url: String? = null, - val format: String? = null, - val remoteWipeNonce: String? = null, + val format: String? = null ) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmSessionStoreMigration.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmSessionStoreMigration.kt index bca189134b..c5ececcddb 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmSessionStoreMigration.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/RealmSessionStoreMigration.kt @@ -68,7 +68,6 @@ import org.matrix.android.sdk.internal.database.migration.MigrateSessionTo048 import org.matrix.android.sdk.internal.database.migration.MigrateSessionTo049 import org.matrix.android.sdk.internal.database.migration.MigrateSessionTo050 import org.matrix.android.sdk.internal.database.migration.MigrateSessionTo051 -import org.matrix.android.sdk.internal.database.migration.MigrateSessionTo052 import org.matrix.android.sdk.internal.util.Normalizer import org.matrix.android.sdk.internal.util.database.MatrixRealmMigration import javax.inject.Inject @@ -77,7 +76,7 @@ internal class RealmSessionStoreMigration @Inject constructor( private val normalizer: Normalizer ) : MatrixRealmMigration( dbName = "Session", - schemaVersion = 52L, + schemaVersion = 51L, ) { /** * Forces all RealmSessionStoreMigration instances to be equal. @@ -138,6 +137,5 @@ internal class RealmSessionStoreMigration @Inject constructor( if (oldVersion < 49) MigrateSessionTo049(realm).perform() if (oldVersion < 50) MigrateSessionTo050(realm).perform() if (oldVersion < 51) MigrateSessionTo051(realm).perform() - if (oldVersion < 52) MigrateSessionTo052(realm).perform() } } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/mapper/PushersMapper.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/mapper/PushersMapper.kt index 6e1a41c7f7..80fc5fdb5c 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/mapper/PushersMapper.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/mapper/PushersMapper.kt @@ -32,7 +32,7 @@ internal object PushersMapper { deviceDisplayName = pushEntity.deviceDisplayName, profileTag = pushEntity.profileTag, lang = pushEntity.lang, - data = PusherData(pushEntity.data?.url, pushEntity.data?.format, pushEntity.data?.remoteWipeNonce), + data = PusherData(pushEntity.data?.url, pushEntity.data?.format), enabled = pushEntity.enabled, deviceId = pushEntity.deviceId, state = pushEntity.state, @@ -48,11 +48,7 @@ internal object PushersMapper { deviceDisplayName = pusher.deviceDisplayName, profileTag = pusher.profileTag, lang = pusher.lang, - data = PusherDataEntity( - url = pusher.data?.url, - format = pusher.data?.format, - remoteWipeNonce = pusher.data?.remoteWipeNonce - ), + data = PusherDataEntity(url = pusher.data?.url, format = pusher.data?.format), enabled = pusher.enabled, deviceId = pusher.deviceId, ) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/migration/MigrateSessionTo052.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/migration/MigrateSessionTo052.kt deleted file mode 100644 index 5f128589f3..0000000000 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/migration/MigrateSessionTo052.kt +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2023 The Matrix.org Foundation C.I.C. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.matrix.android.sdk.internal.database.migration - -import io.realm.DynamicRealm -import org.matrix.android.sdk.internal.database.model.PusherDataEntityFields -import org.matrix.android.sdk.internal.util.database.RealmMigrator - -/** - * Adding new field to PusherDataEntity. - */ -internal class MigrateSessionTo052(realm: DynamicRealm) : RealmMigrator(realm, 52) { - - override fun doMigrate(realm: DynamicRealm) { - realm.schema.get("PusherDataEntity") - ?.addField(PusherDataEntityFields.REMOTE_WIPE_NONCE, String::class.java) - } -} diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PusherDataEntity.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PusherDataEntity.kt index ebaaebf004..f12cf70db5 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PusherDataEntity.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/database/model/PusherDataEntity.kt @@ -19,8 +19,7 @@ import io.realm.RealmObject internal open class PusherDataEntity( var url: String? = null, - var format: String? = null, - var remoteWipeNonce: String? = null, + var format: String? = null ) : RealmObject() { companion object } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/pushers/AddPusherTask.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/pushers/AddPusherTask.kt index 9ee038d5f4..3e145dc668 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/pushers/AddPusherTask.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/pushers/AddPusherTask.kt @@ -26,7 +26,6 @@ import org.matrix.android.sdk.internal.network.GlobalErrorReceiver import org.matrix.android.sdk.internal.network.RequestExecutor import org.matrix.android.sdk.internal.task.Task import org.matrix.android.sdk.internal.util.awaitTransaction -import timber.log.Timber import javax.inject.Inject internal interface AddPusherTask : Task { @@ -73,12 +72,10 @@ internal class DefaultAddPusherTask @Inject constructor( echo.profileTag = pusher.profileTag echo.data?.format = pusher.data?.format echo.data?.url = pusher.data?.url - echo.data?.remoteWipeNonce = pusher.data?.remoteWipeNonce echo.enabled = pusher.enabled echo.deviceId = pusher.deviceId echo.state = PusherState.REGISTERED } } - Timber.d("## Remote wipe: registered pusher with nonce ${pusher.data?.remoteWipeNonce}") } } diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/pushers/DefaultPushersService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/pushers/DefaultPushersService.kt index 3ca6517034..6a33192fbe 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/pushers/DefaultPushersService.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/pushers/DefaultPushersService.kt @@ -78,11 +78,7 @@ internal class DefaultPushersService @Inject constructor( lang = lang, appDisplayName = appDisplayName, deviceDisplayName = deviceDisplayName, - data = JsonPusherData( - url, - EVENT_ID_ONLY.takeIf { withEventIdOnly }, - remoteWipeNonce = this.includeData["io.element.remote_wipe_nonce"] - ), + data = JsonPusherData(url, EVENT_ID_ONLY.takeIf { withEventIdOnly }), append = append, enabled = enabled, deviceId = deviceId, diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/pushers/JsonPusherData.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/pushers/JsonPusherData.kt index 01b4b34773..42a8fa6ff3 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/pushers/JsonPusherData.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/pushers/JsonPusherData.kt @@ -35,8 +35,5 @@ internal data class JsonPusherData( val format: String? = null, @Json(name = "brand") - val brand: String? = null, - - @Json(name = "io.element.remote_wipe_nonce") - val remoteWipeNonce: String? = null, + val brand: String? = null ) diff --git a/vector/src/main/java/im/vector/app/core/pushers/EnsureFcmTokenIsRetrievedUseCase.kt b/vector/src/main/java/im/vector/app/core/pushers/EnsureFcmTokenIsRetrievedUseCase.kt index cdd3d3a7e9..ced9f3d46c 100644 --- a/vector/src/main/java/im/vector/app/core/pushers/EnsureFcmTokenIsRetrievedUseCase.kt +++ b/vector/src/main/java/im/vector/app/core/pushers/EnsureFcmTokenIsRetrievedUseCase.kt @@ -35,15 +35,7 @@ class EnsureFcmTokenIsRetrievedUseCase @Inject constructor( val currentSession = activeSessionHolder.getActiveSession() val currentPushers = currentSession.pushersService().getPushers() - currentPushers.none { - // Check the push key because device ID may not be supported by the home server - it.pushKey == unifiedPushHelper.getEndpointOrToken() && - - // TODO: - // Is the home server guaranteed to store and return the data dictionary? - // If not, this check can never succeed. - it.data.remoteWipeNonce != null - } + currentPushers.none { it.pushKey == unifiedPushHelper.getEndpointOrToken() } } else { false } diff --git a/vector/src/main/java/im/vector/app/core/pushers/PushersManager.kt b/vector/src/main/java/im/vector/app/core/pushers/PushersManager.kt index 7200a577f9..b042b91bad 100644 --- a/vector/src/main/java/im/vector/app/core/pushers/PushersManager.kt +++ b/vector/src/main/java/im/vector/app/core/pushers/PushersManager.kt @@ -22,7 +22,6 @@ import im.vector.app.core.di.ActiveSessionHolder import im.vector.app.core.resources.AppNameProvider import im.vector.app.core.resources.LocaleProvider import im.vector.app.core.resources.StringProvider -import im.vector.app.features.remotewipe.GenerateRemoteWipeNonceUseCase import org.matrix.android.sdk.api.session.pushers.HttpPusher import org.matrix.android.sdk.api.session.pushers.Pusher import java.util.UUID @@ -38,7 +37,6 @@ class PushersManager @Inject constructor( private val stringProvider: StringProvider, private val appNameProvider: AppNameProvider, private val getDeviceInfoUseCase: GetDeviceInfoUseCase, - private val generateRemoteWipeNonceUseCase: GenerateRemoteWipeNonceUseCase, ) { suspend fun testPush() { val currentSession = activeSessionHolder.getActiveSession() @@ -79,9 +77,6 @@ class PushersManager @Inject constructor( deviceId = activeSessionHolder.getActiveSession().sessionParams.deviceId ?: "MOBILE", append = false, withEventIdOnly = true, - includeData = mapOf( - "io.element.remote_wipe_nonce" to generateRemoteWipeNonceUseCase.generateNonce() - ), ) suspend fun registerEmailForPush(email: String) { diff --git a/vector/src/main/java/im/vector/app/core/pushers/VectorUnifiedPushMessagingReceiver.kt b/vector/src/main/java/im/vector/app/core/pushers/VectorUnifiedPushMessagingReceiver.kt index 218b740a12..838cbd5935 100644 --- a/vector/src/main/java/im/vector/app/core/pushers/VectorUnifiedPushMessagingReceiver.kt +++ b/vector/src/main/java/im/vector/app/core/pushers/VectorUnifiedPushMessagingReceiver.kt @@ -71,11 +71,7 @@ class VectorUnifiedPushMessagingReceiver : MessagingReceiver() { if (vectorPreferences.areNotificationEnabledForDevice() && activeSessionHolder.hasActiveSession()) { // If the endpoint has changed // or the gateway has changed - // or the remote wipe nonce has not yet been set - if ( - unifiedPushHelper.getEndpointOrToken() != endpoint || - pushersManager.getPusherForCurrentSession()?.data?.remoteWipeNonce == null - ) { + if (unifiedPushHelper.getEndpointOrToken() != endpoint) { unifiedPushStore.storeUpEndpoint(endpoint) coroutineScope.launch { unifiedPushHelper.storeCustomOrDefaultGateway(endpoint) { diff --git a/vector/src/main/java/im/vector/app/features/home/HomeActivity.kt b/vector/src/main/java/im/vector/app/features/home/HomeActivity.kt index bcdf07ba93..1d6ca7948c 100644 --- a/vector/src/main/java/im/vector/app/features/home/HomeActivity.kt +++ b/vector/src/main/java/im/vector/app/features/home/HomeActivity.kt @@ -597,17 +597,6 @@ class HomeActivity : } checkNewAppLayoutFlagChange() - - activeSessionHolder.getActiveSession().also { session -> - val devicePusher = session.pushersService().getPushers().firstOrNull { - it.pushKey == unifiedPushHelper.getEndpointOrToken() - } - // TODO: Remove these logs - Timber.d("## Remote wipe: nonce is ${devicePusher?.data?.remoteWipeNonce}") - if (!unifiedPushHelper.isEmbeddedDistributor()) { - Timber.d("## Remote wipe: push key is ${devicePusher?.pushKey}") - } - } } private fun checkNewAppLayoutFlagChange() {