fix: sealed reveal flow fixes (batch v1.0.19)
This commit is contained in:
parent
b64ae1f29a
commit
737514d18f
|
|
@ -44,7 +44,8 @@ class SealedRevealManager @Inject constructor(
|
|||
userId: String,
|
||||
partnerId: String
|
||||
): Boolean {
|
||||
val oneTimeKey = pendingAnswerKeyStore.load(questionId) ?: return false
|
||||
val storeKey = "daily_${date}_${questionId}"
|
||||
val oneTimeKey = pendingAnswerKeyStore.load(storeKey) ?: return false
|
||||
val partnerPublicKey = deviceKeyDataSource.getPublicKey(partnerId) ?: return false
|
||||
|
||||
val keybox = releaseKeyEncryptor.wrapForRecipient(
|
||||
|
|
@ -64,7 +65,7 @@ class SealedRevealManager @Inject constructor(
|
|||
encryptedAnswerKey = keybox
|
||||
)
|
||||
|
||||
pendingAnswerKeyStore.remove(questionId)
|
||||
pendingAnswerKeyStore.remove(storeKey)
|
||||
return true
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -87,7 +87,7 @@ class FirestoreAnswerDataSource @Inject constructor(
|
|||
answer.writtenText, answer.selectedOptionIds, answer.scaleValue
|
||||
)
|
||||
|
||||
pendingAnswerKeyStore.store(questionId, oneTimeKey)
|
||||
pendingAnswerKeyStore.store("daily_${date}_${questionId}", oneTimeKey)
|
||||
|
||||
val data = mapOf(
|
||||
"userId" to userId,
|
||||
|
|
|
|||
|
|
@ -130,7 +130,8 @@ class AnswerRevealViewModel @Inject constructor(
|
|||
private fun computeSealedPhase(answer: LocalAnswer?, partnerAnswer: LocalAnswer?): SealedRevealPhase {
|
||||
if (answer?.schemaVersion != 3) return SealedRevealPhase.NONE
|
||||
if (answer.isRevealed) return SealedRevealPhase.REVEALED
|
||||
if (!pendingAnswerKeyStore.hasPendingKey(questionId)) return SealedRevealPhase.LOST_LOCAL_KEY
|
||||
val pendingKey = "daily_${answer.answerDate}_${questionId}"
|
||||
if (!pendingAnswerKeyStore.hasPendingKey(pendingKey)) return SealedRevealPhase.LOST_LOCAL_KEY
|
||||
return if (partnerAnswer != null) SealedRevealPhase.BOTH_ANSWERED else SealedRevealPhase.ANSWER_SEALED
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue