diff --git a/app/src/main/java/app/closer/data/remote/FirestoreInviteDataSource.kt b/app/src/main/java/app/closer/data/remote/FirestoreInviteDataSource.kt index 8ac1e153..82817a89 100644 --- a/app/src/main/java/app/closer/data/remote/FirestoreInviteDataSource.kt +++ b/app/src/main/java/app/closer/data/remote/FirestoreInviteDataSource.kt @@ -3,7 +3,6 @@ package app.closer.data.remote import app.closer.crypto.RecoveryKeyManager import app.closer.domain.model.Invite import com.google.firebase.firestore.FirebaseFirestore -import com.google.firebase.firestore.SetOptions import com.google.firebase.Timestamp import com.google.firebase.functions.FirebaseFunctions import kotlinx.coroutines.suspendCancellableCoroutine @@ -85,10 +84,11 @@ class FirestoreInviteDataSource @Inject constructor( * can decrypt the couple keyset locally. */ suspend fun acceptInvite(code: String, recoveryPhrase: String): app.closer.domain.repository.AcceptInviteResult { + @Suppress("DEPRECATION") val result = functions.getHttpsCallable("acceptInviteCallable") .call(mapOf("code" to code, "recoveryPhrase" to recoveryPhrase)) .await() - val data = result.data as? Map<*, *> + val data = result.getData() as? Map<*, *> ?: throw IllegalStateException("Invalid response from acceptInviteCallable") val coupleId = data["coupleId"] as? String diff --git a/app/src/main/java/app/closer/data/repository/InviteRepositoryImpl.kt b/app/src/main/java/app/closer/data/repository/InviteRepositoryImpl.kt index 494498b9..5fbb5494 100644 --- a/app/src/main/java/app/closer/data/repository/InviteRepositoryImpl.kt +++ b/app/src/main/java/app/closer/data/repository/InviteRepositoryImpl.kt @@ -26,10 +26,6 @@ class InviteRepositoryImpl @Inject constructor( dataSource.getInviteByCode(code) } - override suspend fun markAccepted(code: String, acceptorUserId: String, coupleId: String): Result = runCatching { - dataSource.markAccepted(code, acceptorUserId, coupleId) - } - override suspend fun acceptInvite(code: String, acceptorUserId: String, recoveryPhrase: String): Result = runCatching { dataSource.acceptInvite(code, recoveryPhrase) } diff --git a/app/src/main/java/app/closer/domain/repository/InviteRepository.kt b/app/src/main/java/app/closer/domain/repository/InviteRepository.kt index 6b4ca540..8bf3c716 100644 --- a/app/src/main/java/app/closer/domain/repository/InviteRepository.kt +++ b/app/src/main/java/app/closer/domain/repository/InviteRepository.kt @@ -20,6 +20,5 @@ data class AcceptInviteResult( interface InviteRepository { suspend fun createInvite(inviterUserId: String): Result suspend fun getInviteByCode(code: String): Result - suspend fun markAccepted(code: String, acceptorUserId: String, coupleId: String): Result suspend fun acceptInvite(code: String, acceptorUserId: String, recoveryPhrase: String): Result } diff --git a/app/src/main/java/app/closer/ui/pairing/InviteConfirmViewModel.kt b/app/src/main/java/app/closer/ui/pairing/InviteConfirmViewModel.kt index 82c1ae11..bb93a2ef 100644 --- a/app/src/main/java/app/closer/ui/pairing/InviteConfirmViewModel.kt +++ b/app/src/main/java/app/closer/ui/pairing/InviteConfirmViewModel.kt @@ -6,7 +6,6 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import app.closer.core.navigation.AppRoute import app.closer.crypto.CoupleEncryptionManager -import app.closer.domain.model.Invite import app.closer.domain.repository.AuthRepository import app.closer.domain.repository.InviteRepository import app.closer.domain.repository.UserRepository @@ -38,8 +37,6 @@ class InviteConfirmViewModel @Inject constructor( ) : ViewModel() { private val inviteCode: String = savedStateHandle["inviteCode"] ?: "" - // No longer loaded client-side; the Cloud Function returns it server-side. - private var loadedInvite: Invite? = null private val _uiState = MutableStateFlow(InviteConfirmUiState()) val uiState: StateFlow = _uiState.asStateFlow() diff --git a/docs/store/feature-graphic-1024x500.png b/docs/store/feature-graphic-1024x500.png index 15be0beb..448a9f35 100644 Binary files a/docs/store/feature-graphic-1024x500.png and b/docs/store/feature-graphic-1024x500.png differ diff --git a/docs/store/sources/feature-graphic.svg b/docs/store/sources/feature-graphic.svg index 3e3e9000..e4311206 100644 --- a/docs/store/sources/feature-graphic.svg +++ b/docs/store/sources/feature-graphic.svg @@ -26,8 +26,9 @@ Closer - A private space for two. - Private questions, reveals, and rituals for couples. + A private space + for two. + Private questions and intentional reveals.