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..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 { @@ -38,7 +37,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 +68,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 +83,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 +108,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 0000000000..92222fe421 Binary files /dev/null and b/libraries/session-storage/impl/src/main/sqldelight/databases/11.db differ 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,