Skip to content

Commit 20406ec

Browse files
authored
QRCode login: treat not found error as expired error. (#6161)
Reorder some when cases.
2 parents 8ca5ff3 + 0311fc9 commit 20406ec

File tree

4 files changed

+10
-4
lines changed

4 files changed

+10
-4
lines changed

features/login/impl/src/main/kotlin/io/element/android/features/login/impl/qrcode/QrCodeLoginFlowNode.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,8 @@ class QrCodeLoginFlowNode(
119119
is QrLoginException.Cancelled -> {
120120
backstack.replace(NavTarget.Error(QrCodeErrorScreenType.Cancelled))
121121
}
122-
is QrLoginException.Expired -> {
122+
is QrLoginException.Expired,
123+
is QrLoginException.NotFound -> {
123124
backstack.replace(NavTarget.Error(QrCodeErrorScreenType.Expired))
124125
}
125126
is QrLoginException.Declined -> {
@@ -138,7 +139,9 @@ class QrCodeLoginFlowNode(
138139
Timber.e(error, "OIDC metadata is invalid")
139140
backstack.replace(NavTarget.Error(QrCodeErrorScreenType.UnknownError))
140141
}
141-
else -> {
142+
QrLoginException.CheckCodeAlreadySent,
143+
QrLoginException.CheckCodeCannotBeSent,
144+
QrLoginException.Unknown -> {
142145
Timber.e(error, "Unknown error found")
143146
backstack.replace(NavTarget.Error(QrCodeErrorScreenType.UnknownError))
144147
}

features/login/impl/src/test/kotlin/io/element/android/features/login/impl/qrcode/QrCodeLoginFlowNodeTest.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ class QrCodeLoginFlowNodeTest {
6161
qrCodeLoginManager.currentLoginStep.value = QrCodeLoginStep.Failed(QrLoginException.Expired)
6262
assertThat(flowNode.currentNavTarget()).isEqualTo(QrCodeLoginFlowNode.NavTarget.Error(QrCodeErrorScreenType.Expired))
6363

64+
qrCodeLoginManager.currentLoginStep.value = QrCodeLoginStep.Failed(QrLoginException.NotFound)
65+
assertThat(flowNode.currentNavTarget()).isEqualTo(QrCodeLoginFlowNode.NavTarget.Error(QrCodeErrorScreenType.Expired))
66+
6467
qrCodeLoginManager.currentLoginStep.value = QrCodeLoginStep.Failed(QrLoginException.Declined)
6568
assertThat(flowNode.currentNavTarget()).isEqualTo(QrCodeLoginFlowNode.NavTarget.Error(QrCodeErrorScreenType.Declined))
6669

libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/auth/qrlogin/QrLoginException.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ sealed class QrLoginException : Exception() {
1313
data object ConnectionInsecure : QrLoginException()
1414
data object Declined : QrLoginException()
1515
data object Expired : QrLoginException()
16+
data object NotFound : QrLoginException()
1617
data object LinkingNotSupported : QrLoginException()
1718
data object OidcMetadataInvalid : QrLoginException()
1819
data object SlidingSyncNotAvailable : QrLoginException()
1920
data object OtherDeviceNotSignedIn : QrLoginException()
2021
data object CheckCodeAlreadySent : QrLoginException()
2122
data object CheckCodeCannotBeSent : QrLoginException()
2223
data object Unknown : QrLoginException()
23-
data object NotFound : QrLoginException()
2424
}

libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/auth/qrlogin/QrErrorMapper.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,13 @@ object QrErrorMapper {
3838
is RustHumanQrLoginException.ConnectionInsecure -> QrLoginException.ConnectionInsecure
3939
is RustHumanQrLoginException.Declined -> QrLoginException.Declined
4040
is RustHumanQrLoginException.Expired -> QrLoginException.Expired
41+
is RustHumanQrLoginException.NotFound -> QrLoginException.NotFound
4142
is RustHumanQrLoginException.OtherDeviceNotSignedIn -> QrLoginException.OtherDeviceNotSignedIn
4243
is RustHumanQrLoginException.LinkingNotSupported -> QrLoginException.LinkingNotSupported
4344
is RustHumanQrLoginException.Unknown -> QrLoginException.Unknown
4445
is RustHumanQrLoginException.OidcMetadataInvalid -> QrLoginException.OidcMetadataInvalid
4546
is RustHumanQrLoginException.SlidingSyncNotAvailable -> QrLoginException.SlidingSyncNotAvailable
4647
is RustHumanQrLoginException.CheckCodeAlreadySent -> QrLoginException.CheckCodeAlreadySent
4748
is RustHumanQrLoginException.CheckCodeCannotBeSent -> QrLoginException.CheckCodeCannotBeSent
48-
is RustHumanQrLoginException.NotFound -> QrLoginException.NotFound
4949
}
5050
}

0 commit comments

Comments
 (0)