Propose to verify the current session if the 4S contains secret, even if there is no other sessions
This commit is contained in:
parent
2efe5a420c
commit
633b12f66d
|
@ -7,7 +7,7 @@ Features ✨:
|
||||||
Improvements 🙌:
|
Improvements 🙌:
|
||||||
- You can now join room through permalink and within room directory search
|
- You can now join room through permalink and within room directory search
|
||||||
- Add long click gesture to copy userId, user display name, room name, room topic and room alias (#1774)
|
- Add long click gesture to copy userId, user display name, room name, room topic and room alias (#1774)
|
||||||
- Do not propose to verify session if there is only one session (#1901)
|
- Do not propose to verify session if there is only one session and 4S is not configured (#1901)
|
||||||
|
|
||||||
Bugfix 🐛:
|
Bugfix 🐛:
|
||||||
- Display name not shown under Settings/General (#1926)
|
- Display name not shown under Settings/General (#1926)
|
||||||
|
|
|
@ -89,14 +89,18 @@ class DeviceVerificationInfoBottomSheetController @Inject constructor(
|
||||||
title(stringProvider.getString(R.string.encryption_information_verified))
|
title(stringProvider.getString(R.string.encryption_information_verified))
|
||||||
description(stringProvider.getString(R.string.settings_active_sessions_verified_device_desc))
|
description(stringProvider.getString(R.string.settings_active_sessions_verified_device_desc))
|
||||||
}
|
}
|
||||||
} else if (data.hasOtherSessions) {
|
} else if (data.canVerifySession) {
|
||||||
// You need to complete security, only if there are other session(s) available
|
// You need to complete security, only if there are other session(s) available, or if 4S contains secrets
|
||||||
genericItem {
|
genericItem {
|
||||||
id("trust${cryptoDeviceInfo.deviceId}")
|
id("trust${cryptoDeviceInfo.deviceId}")
|
||||||
style(GenericItem.STYLE.BIG_TEXT)
|
style(GenericItem.STYLE.BIG_TEXT)
|
||||||
titleIconResourceId(shield)
|
titleIconResourceId(shield)
|
||||||
title(stringProvider.getString(R.string.crosssigning_verify_this_session))
|
title(stringProvider.getString(R.string.crosssigning_verify_this_session))
|
||||||
description(stringProvider.getString(R.string.confirm_your_identity))
|
if (data.hasOtherSessions) {
|
||||||
|
description(stringProvider.getString(R.string.confirm_your_identity))
|
||||||
|
} else {
|
||||||
|
description(stringProvider.getString(R.string.confirm_your_identity_quad_s))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -133,7 +137,7 @@ class DeviceVerificationInfoBottomSheetController @Inject constructor(
|
||||||
description("(${cryptoDeviceInfo.deviceId})")
|
description("(${cryptoDeviceInfo.deviceId})")
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isMine && !currentSessionIsTrusted && data.hasOtherSessions) {
|
if (isMine && !currentSessionIsTrusted && data.canVerifySession) {
|
||||||
// Add complete security
|
// Add complete security
|
||||||
dividerItem {
|
dividerItem {
|
||||||
id("completeSecurityDiv")
|
id("completeSecurityDiv")
|
||||||
|
|
|
@ -43,7 +43,8 @@ class DeviceVerificationInfoBottomSheetViewModel @AssistedInject constructor(@As
|
||||||
setState {
|
setState {
|
||||||
copy(
|
copy(
|
||||||
hasAccountCrossSigning = session.cryptoService().crossSigningService().isCrossSigningInitialized(),
|
hasAccountCrossSigning = session.cryptoService().crossSigningService().isCrossSigningInitialized(),
|
||||||
accountCrossSigningIsTrusted = session.cryptoService().crossSigningService().isCrossSigningVerified()
|
accountCrossSigningIsTrusted = session.cryptoService().crossSigningService().isCrossSigningVerified(),
|
||||||
|
isRecoverySetup = session.sharedSecretStorageService.isRecoverySetup()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
session.rx().liveCrossSigningInfo(session.myUserId)
|
session.rx().liveCrossSigningInfo(session.myUserId)
|
||||||
|
|
|
@ -28,5 +28,10 @@ data class DeviceVerificationInfoBottomSheetViewState(
|
||||||
val hasAccountCrossSigning: Boolean = false,
|
val hasAccountCrossSigning: Boolean = false,
|
||||||
val accountCrossSigningIsTrusted: Boolean = false,
|
val accountCrossSigningIsTrusted: Boolean = false,
|
||||||
val isMine: Boolean = false,
|
val isMine: Boolean = false,
|
||||||
val hasOtherSessions: Boolean = false
|
val hasOtherSessions: Boolean = false,
|
||||||
) : MvRxState
|
val isRecoverySetup: Boolean = false
|
||||||
|
) : MvRxState {
|
||||||
|
|
||||||
|
val canVerifySession: Boolean
|
||||||
|
get() = hasOtherSessions || isRecoverySetup
|
||||||
|
}
|
||||||
|
|
|
@ -2413,6 +2413,7 @@
|
||||||
<string name="crosssigning_verify_session">Verify login</string>
|
<string name="crosssigning_verify_session">Verify login</string>
|
||||||
<string name="cross_signing_verify_by_emoji">Interactively Verify by Emoji</string>
|
<string name="cross_signing_verify_by_emoji">Interactively Verify by Emoji</string>
|
||||||
<string name="confirm_your_identity">Confirm your identity by verifying this login from one of your other sessions, granting it access to encrypted messages.</string>
|
<string name="confirm_your_identity">Confirm your identity by verifying this login from one of your other sessions, granting it access to encrypted messages.</string>
|
||||||
|
<string name="confirm_your_identity_quad_s">Confirm your identity by verifying this login, granting it access to encrypted messages.</string>
|
||||||
<string name="mark_as_verified">Mark as Trusted</string>
|
<string name="mark_as_verified">Mark as Trusted</string>
|
||||||
|
|
||||||
<string name="error_empty_field_choose_user_name">Please choose a username.</string>
|
<string name="error_empty_field_choose_user_name">Please choose a username.</string>
|
||||||
|
|
Loading…
Reference in New Issue