From 5728452e682109813200b6960fb9ba884c74a707 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 18 Nov 2025 15:48:36 +0100 Subject: [PATCH 1/2] Remove unused `slidingSyncProxy` from DB. --- .../screens/createaccount/MessageParser.kt | 1 - .../createaccount/DefaultMessageParserTest.kt | 1 - .../signedout/impl/SignedOutStateProvider.kt | 1 - .../api/auth/external/ExternalSession.kt | 1 - .../libraries/matrix/impl/mapper/Session.kt | 2 - .../matrix/impl/mapper/SessionKtTest.kt | 18 -------- .../sessionstorage/api/SessionData.kt | 2 - .../sessionstorage/impl/SessionDataMapper.kt | 2 - .../impl/src/main/sqldelight/databases/11.db | Bin 0 -> 12288 bytes .../libraries/matrix/session/SessionData.sq | 1 - .../src/main/sqldelight/migrations/10.sqm | 43 ++++++++++++++++++ .../impl/DatabaseSessionStoreTest.kt | 5 -- .../libraries/sessionstorage/impl/Fixtures.kt | 1 - .../sessionstorage/test/SessionData.kt | 1 - 14 files changed, 43 insertions(+), 36 deletions(-) create mode 100644 libraries/session-storage/impl/src/main/sqldelight/databases/11.db create mode 100644 libraries/session-storage/impl/src/main/sqldelight/migrations/10.sqm diff --git a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/createaccount/MessageParser.kt b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/createaccount/MessageParser.kt index 012e78b296..d7954373bc 100644 --- a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/createaccount/MessageParser.kt +++ b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/createaccount/MessageParser.kt @@ -39,7 +39,6 @@ class DefaultMessageParser( accessToken = accessToken, deviceId = deviceId, refreshToken = null, - slidingSyncProxy = null ) } } diff --git a/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/createaccount/DefaultMessageParserTest.kt b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/createaccount/DefaultMessageParserTest.kt index 80d5bdc53c..680fda2838 100644 --- a/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/createaccount/DefaultMessageParserTest.kt +++ b/features/login/impl/src/test/kotlin/io/element/android/features/login/impl/screens/createaccount/DefaultMessageParserTest.kt @@ -84,5 +84,4 @@ internal fun anExternalSession( accessToken = "access_token", deviceId = "device_id", refreshToken = null, - slidingSyncProxy = null ) diff --git a/features/signedout/impl/src/main/kotlin/io/element/android/features/signedout/impl/SignedOutStateProvider.kt b/features/signedout/impl/src/main/kotlin/io/element/android/features/signedout/impl/SignedOutStateProvider.kt index 01fa7a1147..396339adbb 100644 --- a/features/signedout/impl/src/main/kotlin/io/element/android/features/signedout/impl/SignedOutStateProvider.kt +++ b/features/signedout/impl/src/main/kotlin/io/element/android/features/signedout/impl/SignedOutStateProvider.kt @@ -37,7 +37,6 @@ private fun aSessionData( refreshToken = "aRefreshToken", homeserverUrl = "aHomeserverUrl", oidcData = null, - slidingSyncProxy = null, loginTimestamp = null, isTokenValid = isTokenValid, loginType = LoginType.UNKNOWN, diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/auth/external/ExternalSession.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/auth/external/ExternalSession.kt index 311078f7f6..1241f5fb15 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/auth/external/ExternalSession.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/auth/external/ExternalSession.kt @@ -17,5 +17,4 @@ data class ExternalSession( val accessToken: String, val refreshToken: String?, val homeserverUrl: String, - val slidingSyncProxy: String? ) diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/mapper/Session.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/mapper/Session.kt index d38b3ca123..3199ebf71a 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/mapper/Session.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/mapper/Session.kt @@ -28,7 +28,6 @@ internal fun Session.toSessionData( refreshToken = refreshToken, homeserverUrl = homeserverUrl ?: this.homeserverUrl, oidcData = oidcData, - slidingSyncProxy = null, loginTimestamp = Date(), isTokenValid = isTokenValid, loginType = loginType, @@ -54,7 +53,6 @@ internal fun ExternalSession.toSessionData( refreshToken = refreshToken, homeserverUrl = homeserverUrl, oidcData = null, - slidingSyncProxy = slidingSyncProxy, loginTimestamp = Date(), isTokenValid = isTokenValid, loginType = loginType, diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/mapper/SessionKtTest.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/mapper/SessionKtTest.kt index 91dc578d11..a3b4e319ea 100644 --- a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/mapper/SessionKtTest.kt +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/mapper/SessionKtTest.kt @@ -38,7 +38,6 @@ class SessionKtTest { assertThat(result.homeserverUrl).isEqualTo(A_HOMESERVER_URL) assertThat(result.isTokenValid).isTrue() assertThat(result.oidcData).isNull() - assertThat(result.slidingSyncProxy).isNull() assertThat(result.loginType).isEqualTo(LoginType.PASSWORD) assertThat(result.loginTimestamp).isNotNull() assertThat(result.passphrase).isEqualTo(A_SECRET) @@ -70,20 +69,6 @@ class SessionKtTest { assertThat(result.homeserverUrl).isEqualTo(A_HOMESERVER_URL_2) } - @Test - fun `toSessionData copy the sliding sync url if present`() { - val result = aRustSession( - proxy = SlidingSyncVersion.NATIVE - ).toSessionData( - isTokenValid = true, - loginType = LoginType.PASSWORD, - passphrase = A_SECRET, - sessionPaths = SessionPaths(File("/a/file"), File("/a/cache")), - homeserverUrl = A_HOMESERVER_URL_2, - ) - assertThat(result.slidingSyncProxy).isNull() - } - @Test fun `ExternalSession toSessionData compute the expected result`() { val result = anExternalSession().toSessionData( @@ -99,7 +84,6 @@ class SessionKtTest { assertThat(result.homeserverUrl).isEqualTo(A_HOMESERVER_URL) assertThat(result.isTokenValid).isTrue() assertThat(result.oidcData).isNull() - assertThat(result.slidingSyncProxy).isNull() assertThat(result.loginType).isEqualTo(LoginType.PASSWORD) assertThat(result.loginTimestamp).isNotNull() assertThat(result.passphrase).isEqualTo(A_SECRET) @@ -125,12 +109,10 @@ private fun anExternalSession( accessToken: String = "accessToken", refreshToken: String? = null, homeserverUrl: String = A_HOMESERVER_URL, - slidingSyncProxy: String? = null, ) = ExternalSession( userId = userId, deviceId = deviceId, accessToken = accessToken, refreshToken = refreshToken, homeserverUrl = homeserverUrl, - slidingSyncProxy = slidingSyncProxy, ) diff --git a/libraries/session-storage/api/src/main/kotlin/io/element/android/libraries/sessionstorage/api/SessionData.kt b/libraries/session-storage/api/src/main/kotlin/io/element/android/libraries/sessionstorage/api/SessionData.kt index 00c5394026..568dbe7e3a 100644 --- a/libraries/session-storage/api/src/main/kotlin/io/element/android/libraries/sessionstorage/api/SessionData.kt +++ b/libraries/session-storage/api/src/main/kotlin/io/element/android/libraries/sessionstorage/api/SessionData.kt @@ -26,8 +26,6 @@ data class SessionData( val homeserverUrl: String, /** The Open ID Connect info for this session, if any. */ val oidcData: String?, - /** The Sliding Sync Proxy URL for this session, if any. */ - val slidingSyncProxy: String?, /** The timestamp of the last login. May be `null` in very old sessions. */ val loginTimestamp: Date?, /** Whether the [accessToken] is valid or not. */ diff --git a/libraries/session-storage/impl/src/main/kotlin/io/element/android/libraries/sessionstorage/impl/SessionDataMapper.kt b/libraries/session-storage/impl/src/main/kotlin/io/element/android/libraries/sessionstorage/impl/SessionDataMapper.kt index a8a27dc9b1..ea69709bbd 100644 --- a/libraries/session-storage/impl/src/main/kotlin/io/element/android/libraries/sessionstorage/impl/SessionDataMapper.kt +++ b/libraries/session-storage/impl/src/main/kotlin/io/element/android/libraries/sessionstorage/impl/SessionDataMapper.kt @@ -21,7 +21,6 @@ internal fun SessionData.toDbModel(): DbSessionData { refreshToken = refreshToken, homeserverUrl = homeserverUrl, oidcData = oidcData, - slidingSyncProxy = slidingSyncProxy, loginTimestamp = loginTimestamp?.time, isTokenValid = if (isTokenValid) 1L else 0L, loginType = loginType.name, @@ -43,7 +42,6 @@ internal fun DbSessionData.toApiModel(): SessionData { refreshToken = refreshToken, homeserverUrl = homeserverUrl, oidcData = oidcData, - slidingSyncProxy = slidingSyncProxy, loginTimestamp = loginTimestamp?.let { Date(it) }, isTokenValid = isTokenValid == 1L, loginType = LoginType.fromName(loginType ?: LoginType.UNKNOWN.name), diff --git a/libraries/session-storage/impl/src/main/sqldelight/databases/11.db b/libraries/session-storage/impl/src/main/sqldelight/databases/11.db new file mode 100644 index 0000000000000000000000000000000000000000..92222fe4217e6daa15c47df7bdc3428c2a3d8a07 GIT binary patch literal 12288 zcmeH~&2G~`5XbF+C`whew_Zoh1w>mllp=8>5Q8E@D2apUDcabZcvZ(XyX&ZZ11?BB zLEnY9>XF%X+$4}F62~$t`D1tI>;LoEl6#-qLUS0Ua>6v6I(v@mIau5yzP1o-vht#rtQJP20W<(j$Cos3c>fj`q24=N59>M^KR>7 zqk91#yo*C?74oSF_@8#g9t#4@?5CGJSq@WdOFoiZMf3e)IZ7uSQ%||<%XpRF(GjpP z?*HQ>y?TyFl=nD^~Nu(u_*L>VX+9y z1amx1?_Hzc_Mu*cDeAe-_=eDDHgv|6$|A|sCi9opToq6Coatzp5|mXO9IRLK%Eky- z5b=MEP(QIDkZYDIq46mkf=*$`!StNDRjJf~O_1h^hT%2LDuzIEX6zwknitY%5!Mqu zxsxK2kY7PM0v&OPnbO#)Y|P8($KatT(AWjmBFLrWnEx($#F8<`Qqg-U)XcCHRoV-M zW?1nAgJ930EaN$0S1@I9&fyu>Y5g-CYfCvx)B0vNzf!}@8UP%A| literal 0 HcmV?d00001 diff --git a/libraries/session-storage/impl/src/main/sqldelight/io/element/android/libraries/matrix/session/SessionData.sq b/libraries/session-storage/impl/src/main/sqldelight/io/element/android/libraries/matrix/session/SessionData.sq index b61c746fb8..8e5fb7a1f8 100644 --- a/libraries/session-storage/impl/src/main/sqldelight/io/element/android/libraries/matrix/session/SessionData.sq +++ b/libraries/session-storage/impl/src/main/sqldelight/io/element/android/libraries/matrix/session/SessionData.sq @@ -14,7 +14,6 @@ CREATE TABLE SessionData ( accessToken TEXT NOT NULL, refreshToken TEXT, homeserverUrl TEXT NOT NULL, - slidingSyncProxy TEXT, -- added in version 2 loginTimestamp INTEGER, -- added in version 3 diff --git a/libraries/session-storage/impl/src/main/sqldelight/migrations/10.sqm b/libraries/session-storage/impl/src/main/sqldelight/migrations/10.sqm new file mode 100644 index 0000000000..3d969333de --- /dev/null +++ b/libraries/session-storage/impl/src/main/sqldelight/migrations/10.sqm @@ -0,0 +1,43 @@ +-- Migrate DB from version 10 +-- Remove field slidingSyncProxy + +-- Equivalent to (DROP not supported by sqldelight): +-- ALTER TABLE SessionData DROP slidingSyncProxy; + +CREATE TABLE SessionData_bak ( + userId TEXT NOT NULL PRIMARY KEY, + deviceId TEXT NOT NULL, + accessToken TEXT NOT NULL, + refreshToken TEXT, + homeserverUrl TEXT NOT NULL, + loginTimestamp INTEGER, + oidcData TEXT, + isTokenValid INTEGER NOT NULL DEFAULT 1, + loginType TEXT, + passphrase TEXT, + sessionPath TEXT NOT NULL DEFAULT "", + cachePath TEXT NOT NULL DEFAULT "", + position INTEGER NOT NULL DEFAULT 0, + lastUsageIndex INTEGER NOT NULL DEFAULT 0, + userDisplayName TEXT, + userAvatarUrl TEXT +); +INSERT INTO SessionData_bak SELECT + userId, + deviceId, + accessToken, + refreshToken, + homeserverUrl, + loginTimestamp, + oidcData, + isTokenValid, + loginType, + passphrase, + sessionPath, + cachePath, + position, + lastUsageIndex, + userDisplayName, + userAvatarUrl FROM SessionData; +DROP TABLE SessionData; +ALTER TABLE SessionData_bak RENAME TO SessionData; diff --git a/libraries/session-storage/impl/src/test/kotlin/io/element/android/libraries/sessionstorage/impl/DatabaseSessionStoreTest.kt b/libraries/session-storage/impl/src/test/kotlin/io/element/android/libraries/sessionstorage/impl/DatabaseSessionStoreTest.kt index 1bbfa14872..e40000986b 100644 --- a/libraries/session-storage/impl/src/test/kotlin/io/element/android/libraries/sessionstorage/impl/DatabaseSessionStoreTest.kt +++ b/libraries/session-storage/impl/src/test/kotlin/io/element/android/libraries/sessionstorage/impl/DatabaseSessionStoreTest.kt @@ -220,7 +220,6 @@ class DatabaseSessionStoreTest { accessToken = "accessToken", refreshToken = "refreshToken", homeserverUrl = "homeserverUrl", - slidingSyncProxy = "slidingSyncProxy", loginTimestamp = 1, oidcData = "aOidcData", isTokenValid = 1, @@ -239,7 +238,6 @@ class DatabaseSessionStoreTest { accessToken = "accessTokenAltered", refreshToken = "refreshTokenAltered", homeserverUrl = "homeserverUrlAltered", - slidingSyncProxy = "slidingSyncProxyAltered", loginTimestamp = 2, oidcData = "aOidcDataAltered", isTokenValid = 1, @@ -266,7 +264,6 @@ class DatabaseSessionStoreTest { assertThat(alteredSession.accessToken).isEqualTo(secondSessionData.accessToken) assertThat(alteredSession.refreshToken).isEqualTo(secondSessionData.refreshToken) assertThat(alteredSession.homeserverUrl).isEqualTo(secondSessionData.homeserverUrl) - assertThat(alteredSession.slidingSyncProxy).isEqualTo(secondSessionData.slidingSyncProxy) // Check that alteredSession.loginTimestamp is not altered, so equal to firstSessionData.loginTimestamp assertThat(alteredSession.loginTimestamp).isEqualTo(firstSessionData.loginTimestamp) assertThat(alteredSession.oidcData).isEqualTo(secondSessionData.oidcData) @@ -286,7 +283,6 @@ class DatabaseSessionStoreTest { accessToken = "accessToken", refreshToken = "refreshToken", homeserverUrl = "homeserverUrl", - slidingSyncProxy = "slidingSyncProxy", loginTimestamp = 1, oidcData = "aOidcData", isTokenValid = 1, @@ -305,7 +301,6 @@ class DatabaseSessionStoreTest { accessToken = "accessTokenAltered", refreshToken = "refreshTokenAltered", homeserverUrl = "homeserverUrlAltered", - slidingSyncProxy = "slidingSyncProxyAltered", loginTimestamp = 2, oidcData = "aOidcDataAltered", isTokenValid = 1, diff --git a/libraries/session-storage/impl/src/test/kotlin/io/element/android/libraries/sessionstorage/impl/Fixtures.kt b/libraries/session-storage/impl/src/test/kotlin/io/element/android/libraries/sessionstorage/impl/Fixtures.kt index b46bec236a..4a488588ff 100644 --- a/libraries/session-storage/impl/src/test/kotlin/io/element/android/libraries/sessionstorage/impl/Fixtures.kt +++ b/libraries/session-storage/impl/src/test/kotlin/io/element/android/libraries/sessionstorage/impl/Fixtures.kt @@ -19,7 +19,6 @@ internal fun aDbSessionData( accessToken = "accessToken", refreshToken = "refreshToken", homeserverUrl = "homeserverUrl", - slidingSyncProxy = null, loginTimestamp = null, oidcData = "aOidcData", isTokenValid = 1, diff --git a/libraries/session-storage/test/src/main/kotlin/io/element/android/libraries/sessionstorage/test/SessionData.kt b/libraries/session-storage/test/src/main/kotlin/io/element/android/libraries/sessionstorage/test/SessionData.kt index 65bc3bb55e..c791a20620 100644 --- a/libraries/session-storage/test/src/main/kotlin/io/element/android/libraries/sessionstorage/test/SessionData.kt +++ b/libraries/session-storage/test/src/main/kotlin/io/element/android/libraries/sessionstorage/test/SessionData.kt @@ -31,7 +31,6 @@ fun aSessionData( refreshToken = refreshToken, homeserverUrl = "aHomeserverUrl", oidcData = null, - slidingSyncProxy = null, loginTimestamp = null, isTokenValid = isTokenValid, loginType = LoginType.UNKNOWN, From 7cbc616befb5fd96c8c0da7f67240ed101e71398 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 18 Nov 2025 16:42:34 +0100 Subject: [PATCH 2/2] Remove unused import. --- .../android/libraries/matrix/impl/mapper/SessionKtTest.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/mapper/SessionKtTest.kt b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/mapper/SessionKtTest.kt index a3b4e319ea..e5fc8b154f 100644 --- a/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/mapper/SessionKtTest.kt +++ b/libraries/matrix/impl/src/test/kotlin/io/element/android/libraries/matrix/impl/mapper/SessionKtTest.kt @@ -19,7 +19,6 @@ import io.element.android.libraries.matrix.test.A_SECRET import io.element.android.libraries.matrix.test.A_USER_ID import io.element.android.libraries.sessionstorage.api.LoginType import org.junit.Test -import org.matrix.rustcomponents.sdk.SlidingSyncVersion import java.io.File class SessionKtTest {