Initial implementation of the reset identity feature

This commit is contained in:
Jorge Martín 2024-08-07 12:59:57 +02:00
parent 45775d71fd
commit 4ab0b1074d
23 changed files with 1003 additions and 68 deletions

View file

@ -41,6 +41,7 @@ import io.element.android.libraries.matrix.api.sync.SyncService
import io.element.android.libraries.matrix.api.user.MatrixSearchUserResults
import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.matrix.api.verification.SessionVerificationService
import io.element.android.libraries.sessionstorage.api.LoginType
import kotlinx.collections.immutable.ImmutableList
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.flow.Flow

View file

@ -16,6 +16,7 @@
package io.element.android.libraries.matrix.api.encryption
import io.element.android.libraries.matrix.api.core.UserId
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.StateFlow
@ -62,4 +63,17 @@ interface EncryptionService {
* called the fingerprint of the device.
*/
suspend fun deviceEd25519(): String?
suspend fun startIdentityReset(): Result<IdentityResetHandle?>
}
interface IdentityResetHandle
interface IdentityPasswordResetHandle : IdentityResetHandle {
suspend fun resetPassword(userId: UserId, password: String): Result<Unit>
}
interface IdentityOidcResetHandle : IdentityResetHandle {
val url: String
suspend fun resetOidc(): Result<Unit>
}