Skip to content

Commit 0e12d4e

Browse files
authored
Revert "Say so when this session has no secrets to verify another one with" (#7644)
1 parent 5c0c330 commit 0e12d4e

7 files changed

Lines changed: 3 additions & 78 deletions

File tree

features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationPresenter.kt

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ package io.element.android.features.verifysession.impl.incoming
1313
import androidx.compose.runtime.Composable
1414
import androidx.compose.runtime.DisposableEffect
1515
import androidx.compose.runtime.LaunchedEffect
16-
import androidx.compose.runtime.collectAsState
1716
import androidx.compose.runtime.derivedStateOf
1817
import androidx.compose.runtime.getValue
1918
import androidx.compose.runtime.remember
@@ -27,8 +26,6 @@ import io.element.android.libraries.architecture.Presenter
2726
import io.element.android.libraries.dateformatter.api.DateFormatter
2827
import io.element.android.libraries.dateformatter.api.DateFormatterMode
2928
import io.element.android.libraries.di.annotations.SessionCoroutineScope
30-
import io.element.android.libraries.matrix.api.encryption.EncryptionService
31-
import io.element.android.libraries.matrix.api.encryption.RecoveryState
3229
import io.element.android.libraries.matrix.api.verification.SessionVerificationRequestDetails
3330
import io.element.android.libraries.matrix.api.verification.SessionVerificationService
3431
import io.element.android.libraries.matrix.api.verification.VerificationFlowState
@@ -48,7 +45,6 @@ class IncomingVerificationPresenter(
4845
@Assisted private val navigator: IncomingVerificationNavigator,
4946
@SessionCoroutineScope private val sessionCoroutineScope: CoroutineScope,
5047
private val sessionVerificationService: SessionVerificationService,
51-
private val encryptionService: EncryptionService,
5248
private val stateMachine: IncomingVerificationStateMachine,
5349
private val dateFormatter: DateFormatter,
5450
) : Presenter<IncomingVerificationState> {
@@ -96,15 +92,12 @@ class IncomingVerificationPresenter(
9692
mode = DateFormatterMode.TimeOrDate,
9793
)
9894
}
99-
val recoveryState by encryptionService.recoveryStateStateFlow.collectAsState()
100-
val isMissingSecrets = recoveryState == RecoveryState.INCOMPLETE
101-
val step by remember(isMissingSecrets) {
95+
val step by remember {
10296
derivedStateOf {
103-
val currentStep = stateAndDispatch.state.value.toVerificationStep(
97+
stateAndDispatch.state.value.toVerificationStep(
10498
sessionVerificationRequestDetails = verificationRequest.details,
10599
formattedSignInTime = formattedSignInTime,
106100
)
107-
if (isMissingSecrets && currentStep is Step.Initial) Step.Unavailable else currentStep
108101
}
109102
}
110103

@@ -138,7 +131,6 @@ class IncomingVerificationPresenter(
138131
} else {
139132
stateAndDispatch.dispatchAction(StateMachineEvent.DeclineChallenge)
140133
}
141-
Step.Unavailable,
142134
Step.Canceled,
143135
Step.Completed,
144136
Step.Failure -> navigator.onFinish()

features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationState.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@ data class IncomingVerificationState(
3232
val isWaiting: Boolean,
3333
) : Step
3434

35-
data object Unavailable : Step
36-
3735
data object Canceled : Step
3836
data object Completed : Step
3937
data object Failure : Step

features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationStatePreviewParam.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ open class IncomingVerificationStatePreviewParam : PreviewParameterProvider<Inco
4343
anIncomingVerificationState(step = Step.Completed, verificationRequest = anIncomingUserVerificationRequest()),
4444
anIncomingVerificationState(step = Step.Failure),
4545
anIncomingVerificationState(step = Step.Canceled),
46-
anIncomingVerificationState(step = Step.Unavailable),
4746
// Add other state here
4847
)
4948
}

features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationView.kt

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,7 @@ fun IncomingVerificationView(
9595
@Composable
9696
private fun IncomingVerificationHeader(step: Step, request: VerificationRequest.Incoming) {
9797
val iconStyle = when (step) {
98-
Step.Canceled,
99-
Step.Unavailable -> BigIcon.Style.AlertSolid
98+
Step.Canceled -> BigIcon.Style.AlertSolid
10099
is Step.Initial -> when (request) {
101100
is VerificationRequest.Incoming.OtherSession -> BigIcon.Style.Default(CompoundIcons.Devices())
102101
is VerificationRequest.Incoming.User -> BigIcon.Style.Default(CompoundIcons.UserProfileSolid())
@@ -107,7 +106,6 @@ private fun IncomingVerificationHeader(step: Step, request: VerificationRequest.
107106
}
108107
val titleTextId = when (step) {
109108
Step.Canceled -> CommonStrings.common_verification_failed
110-
Step.Unavailable -> R.string.screen_session_verification_unavailable_title
111109
is Step.Initial -> R.string.screen_session_verification_request_title
112110
is Step.Verifying -> when (step.data) {
113111
is SessionVerificationData.Decimals -> R.string.screen_session_verification_compare_numbers_title
@@ -118,7 +116,6 @@ private fun IncomingVerificationHeader(step: Step, request: VerificationRequest.
118116
}
119117
val subtitleTextId = when (step) {
120118
Step.Canceled -> R.string.screen_session_verification_request_failure_subtitle
121-
Step.Unavailable -> R.string.screen_session_verification_unavailable_subtitle
122119
is Step.Initial -> when (request) {
123120
is VerificationRequest.Incoming.OtherSession -> R.string.screen_session_verification_request_subtitle
124121
is VerificationRequest.Incoming.User -> R.string.screen_session_verification_user_responder_subtitle
@@ -249,15 +246,6 @@ private fun IncomingVerificationBottomMenu(
249246
)
250247
}
251248
}
252-
Step.Unavailable -> {
253-
VerificationBottomMenu {
254-
Button(
255-
modifier = Modifier.fillMaxWidth(),
256-
text = stringResource(CommonStrings.action_ignore),
257-
onClick = { eventSink(IncomingVerificationViewEvent.IgnoreVerification) },
258-
)
259-
}
260-
}
261249
Step.Canceled,
262250
is Step.Completed,
263251
is Step.Failure -> {

features/verifysession/impl/src/test/kotlin/io/element/android/features/verifysession/impl/incoming/IncomingVerificationPresenterTest.kt

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ import io.element.android.features.verifysession.impl.ui.aEmojisSessionVerificat
1313
import io.element.android.libraries.dateformatter.api.DateFormatter
1414
import io.element.android.libraries.dateformatter.test.FakeDateFormatter
1515
import io.element.android.libraries.matrix.api.core.FlowId
16-
import io.element.android.libraries.matrix.api.encryption.EncryptionService
17-
import io.element.android.libraries.matrix.api.encryption.RecoveryState
1816
import io.element.android.libraries.matrix.api.user.MatrixUser
1917
import io.element.android.libraries.matrix.api.verification.SessionVerificationRequestDetails
2018
import io.element.android.libraries.matrix.api.verification.SessionVerificationService
@@ -23,7 +21,6 @@ import io.element.android.libraries.matrix.api.verification.VerificationRequest
2321
import io.element.android.libraries.matrix.test.A_DEVICE_ID
2422
import io.element.android.libraries.matrix.test.A_TIMESTAMP
2523
import io.element.android.libraries.matrix.test.A_USER_ID
26-
import io.element.android.libraries.matrix.test.encryption.FakeEncryptionService
2724
import io.element.android.libraries.matrix.test.verification.FakeSessionVerificationService
2825
import io.element.android.tests.testutils.WarmUpRule
2926
import io.element.android.tests.testutils.lambda.lambdaError
@@ -297,47 +294,6 @@ class IncomingVerificationPresenterTest {
297294
navigatorLambda.assertions().isCalledOnce()
298295
}
299296
}
300-
301-
@Test
302-
fun `present - a session missing its secrets cannot be used to verify and offers no verification action`() = runTest {
303-
val acknowledgeVerificationRequestLambda = lambdaRecorder<VerificationRequest.Incoming, Unit> { _ -> }
304-
val resetLambda = lambdaRecorder<Boolean, Unit> { }
305-
val acceptVerificationRequestLambda = lambdaRecorder<Unit> { lambdaError() }
306-
val encryptionService = FakeEncryptionService().apply {
307-
recoveryStateStateFlow.value = RecoveryState.INCOMPLETE
308-
}
309-
createPresenter(
310-
service = FakeSessionVerificationService(
311-
acknowledgeVerificationRequestLambda = acknowledgeVerificationRequestLambda,
312-
acceptVerificationRequestLambda = acceptVerificationRequestLambda,
313-
resetLambda = resetLambda,
314-
),
315-
encryptionService = encryptionService,
316-
).test {
317-
advanceUntilIdle()
318-
assertThat(awaitItem().step).isEqualTo(IncomingVerificationState.Step.Unavailable)
319-
acceptVerificationRequestLambda.assertions().isNeverCalled()
320-
cancelAndIgnoreRemainingEvents()
321-
}
322-
}
323-
324-
@Test
325-
fun `present - a session that holds its secrets is offered the verification action`() = runTest {
326-
val encryptionService = FakeEncryptionService().apply {
327-
recoveryStateStateFlow.value = RecoveryState.ENABLED
328-
}
329-
createPresenter(
330-
service = FakeSessionVerificationService(
331-
acknowledgeVerificationRequestLambda = { },
332-
resetLambda = { },
333-
),
334-
encryptionService = encryptionService,
335-
).test {
336-
advanceUntilIdle()
337-
assertThat(awaitItem().step).isInstanceOf(IncomingVerificationState.Step.Initial::class.java)
338-
cancelAndIgnoreRemainingEvents()
339-
}
340-
}
341297
}
342298

343299
private val anIncomingSessionVerificationRequest = VerificationRequest.Incoming.OtherSession(
@@ -358,13 +314,11 @@ internal fun TestScope.createPresenter(
358314
verificationRequest: VerificationRequest.Incoming = anIncomingSessionVerificationRequest,
359315
navigator: IncomingVerificationNavigator = IncomingVerificationNavigator { lambdaError() },
360316
service: SessionVerificationService = FakeSessionVerificationService(),
361-
encryptionService: EncryptionService = FakeEncryptionService(),
362317
dateFormatter: DateFormatter = FakeDateFormatter(),
363318
) = IncomingVerificationPresenter(
364319
verificationRequest = verificationRequest,
365320
navigator = navigator,
366321
sessionVerificationService = service,
367-
encryptionService = encryptionService,
368322
stateMachine = IncomingVerificationStateMachine(service),
369323
dateFormatter = dateFormatter,
370324
sessionCoroutineScope = backgroundScope,

tests/uitests/src/test/snapshots/images/features.verifysession.impl.incoming_IncomingVerificationView_Day_14_en.png

Lines changed: 0 additions & 3 deletions
This file was deleted.

tests/uitests/src/test/snapshots/images/features.verifysession.impl.incoming_IncomingVerificationView_Night_14_en.png

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)