Warn on verify when private keys not known
This commit is contained in:
parent
10094a212c
commit
8f7b18239d
|
@ -23,5 +23,5 @@ sealed class RoomMemberProfileAction : VectorViewModelAction {
|
||||||
|
|
||||||
object RetryFetchingInfo: RoomMemberProfileAction()
|
object RetryFetchingInfo: RoomMemberProfileAction()
|
||||||
object IgnoreUser: RoomMemberProfileAction()
|
object IgnoreUser: RoomMemberProfileAction()
|
||||||
data class VerifyUser(val userId: String? = null, val roomId: String? = null): RoomMemberProfileAction()
|
data class VerifyUser(val userId: String? = null, val roomId: String? = null, val canCrossSign: Boolean? = true): RoomMemberProfileAction()
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ package im.vector.riotx.features.roommemberprofile
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.os.Parcelable
|
import android.os.Parcelable
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import com.airbnb.mvrx.Fail
|
import com.airbnb.mvrx.Fail
|
||||||
import com.airbnb.mvrx.Incomplete
|
import com.airbnb.mvrx.Incomplete
|
||||||
|
@ -100,9 +101,22 @@ class RoomMemberProfileFragment @Inject constructor(
|
||||||
is Success -> {
|
is Success -> {
|
||||||
when (val action = async.invoke()) {
|
when (val action = async.invoke()) {
|
||||||
is RoomMemberProfileAction.VerifyUser -> {
|
is RoomMemberProfileAction.VerifyUser -> {
|
||||||
|
if (action.canCrossSign == true) {
|
||||||
VerificationBottomSheet
|
VerificationBottomSheet
|
||||||
.withArgs(roomId = null, otherUserId = action.userId!!)
|
.withArgs(roomId = null, otherUserId = action.userId!!)
|
||||||
.show(parentFragmentManager, "VERIF")
|
.show(parentFragmentManager, "VERIF")
|
||||||
|
} else {
|
||||||
|
AlertDialog.Builder(requireContext())
|
||||||
|
.setTitle(R.string.dialog_title_warning)
|
||||||
|
.setMessage(R.string.verify_cannot_cross_sign)
|
||||||
|
.setPositiveButton(R.string.verification_profile_verify) { _, _ ->
|
||||||
|
VerificationBottomSheet
|
||||||
|
.withArgs(roomId = null, otherUserId = action.userId!!)
|
||||||
|
.show(parentFragmentManager, "VERIF")
|
||||||
|
}
|
||||||
|
.setNegativeButton(R.string.cancel, null)
|
||||||
|
.show()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,7 +149,12 @@ class RoomMemberProfileViewModel @AssistedInject constructor(@Assisted private v
|
||||||
if (!state.isMine && state.userMXCrossSigningInfo?.isTrusted() == false) {
|
if (!state.isMine && state.userMXCrossSigningInfo?.isTrusted() == false) {
|
||||||
// ok, let's find or create the DM room
|
// ok, let's find or create the DM room
|
||||||
_actionResultLiveData.postValue(
|
_actionResultLiveData.postValue(
|
||||||
LiveEvent(Success(action.copy(userId = state.userId)))
|
LiveEvent(Success(
|
||||||
|
action.copy(
|
||||||
|
userId = state.userId,
|
||||||
|
canCrossSign = session.getCrossSigningService().canCrossSign()
|
||||||
|
)
|
||||||
|
))
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,6 +91,8 @@
|
||||||
|
|
||||||
<string name="unignore">Unignore</string>
|
<string name="unignore">Unignore</string>
|
||||||
|
|
||||||
|
<string name="verify_cannot_cross_sign">This session is unable to share this verification with your other sessions.\nThe verification will be saved locally and shared in a future version of the app.</string>
|
||||||
|
|
||||||
<string name="room_list_sharing_header_recent_rooms">Recent rooms</string>
|
<string name="room_list_sharing_header_recent_rooms">Recent rooms</string>
|
||||||
<string name="room_list_sharing_header_other_rooms">Other rooms</string>
|
<string name="room_list_sharing_header_other_rooms">Other rooms</string>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue