diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/tasks/RoomVerificationUpdateTask.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/tasks/RoomVerificationUpdateTask.kt index 0cbefd5f3b..61eff8cf61 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/tasks/RoomVerificationUpdateTask.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/tasks/RoomVerificationUpdateTask.kt @@ -25,10 +25,8 @@ import im.vector.matrix.android.api.session.room.model.message.* import im.vector.matrix.android.internal.crypto.algorithms.olm.OlmDecryptionResult import im.vector.matrix.android.internal.crypto.verification.DefaultSasVerificationService import im.vector.matrix.android.internal.di.DeviceId -import im.vector.matrix.android.internal.di.SessionDatabase import im.vector.matrix.android.internal.di.UserId import im.vector.matrix.android.internal.task.Task -import io.realm.RealmConfiguration import timber.log.Timber import java.util.* import javax.inject.Inject @@ -51,8 +49,7 @@ internal class DefaultRoomVerificationUpdateTask @Inject constructor( private val transactionsHandledByOtherDevice = ArrayList() } - override suspend fun execute(params: RoomVerificationUpdateTask.Params): Unit { - + override suspend fun execute(params: RoomVerificationUpdateTask.Params) { // TODO ignore initial sync or back pagination? val now = System.currentTimeMillis() @@ -160,5 +157,4 @@ internal class DefaultRoomVerificationUpdateTask @Inject constructor( } } } - } diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/verification/DefaultSasVerificationService.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/verification/DefaultSasVerificationService.kt index 45acc80e40..050dcea9b5 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/verification/DefaultSasVerificationService.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/verification/DefaultSasVerificationService.kt @@ -196,13 +196,13 @@ internal class DefaultSasVerificationService @Inject constructor( val senderId = event.senderId ?: return if (requestInfo.toUserId != credentials.userId) { - //I should ignore this, it's not for me + // I should ignore this, it's not for me Timber.w("## SAS Verification ignoring request from ${event.senderId}, not sent to me") return } - if(checkKeysAreDownloaded(senderId, requestInfo.fromDevice) == null) { - //I should ignore this, it's not for me + if (checkKeysAreDownloaded(senderId, requestInfo.fromDevice) == null) { + // I should ignore this, it's not for me Timber.e("## SAS Verification device ${requestInfo.fromDevice} is not knwon") // TODO cancel? return @@ -216,7 +216,7 @@ internal class DefaultSasVerificationService @Inject constructor( val pendingVerificationRequest = PendingVerificationRequest( isIncoming = true, - otherUserId = senderId,//requestInfo.toUserId, + otherUserId = senderId, // requestInfo.toUserId, transactionId = event.eventId, requestInfo = requestInfo ) @@ -512,13 +512,12 @@ internal class DefaultSasVerificationService @Inject constructor( // TODO should we cancel? return } - if(checkKeysAreDownloaded(event.senderId, readyReq.fromDevice ?: "") == null) { + if (checkKeysAreDownloaded(event.senderId, readyReq.fromDevice ?: "") == null) { Timber.e("## SAS Verification device ${readyReq.fromDevice} is not knwown") // TODO cancel? return } - handleReadyReceived(event.senderId, readyReq) } @@ -616,8 +615,7 @@ internal class DefaultSasVerificationService @Inject constructor( override fun requestKeyVerificationInDMs(userId: String, roomId: String, callback: MatrixCallback?) : PendingVerificationRequest { - - Timber.i("## SAS Requesting verification to user: $userId in room ${roomId}") + Timber.i("## SAS Requesting verification to user: $userId in room $roomId") val requestsForUser = pendingRequests[userId] ?: ArrayList().also { pendingRequests[userId] = it diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/verification/VerificationMessageLiveObserver.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/verification/VerificationMessageLiveObserver.kt index 1b25e32d7c..1c9849a29c 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/verification/VerificationMessageLiveObserver.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/verification/VerificationMessageLiveObserver.kt @@ -68,6 +68,5 @@ internal class VerificationMessageLiveObserver @Inject constructor( roomVerificationUpdateTask.configureWith( RoomVerificationUpdateTask.Params(events, sasVerificationService, cryptoService) ).executeBy(taskExecutor) - } } diff --git a/vector/src/main/java/im/vector/riotx/core/di/FragmentModule.kt b/vector/src/main/java/im/vector/riotx/core/di/FragmentModule.kt index 5fde9c1444..e563989368 100644 --- a/vector/src/main/java/im/vector/riotx/core/di/FragmentModule.kt +++ b/vector/src/main/java/im/vector/riotx/core/di/FragmentModule.kt @@ -273,7 +273,6 @@ interface FragmentModule { @FragmentKey(SoftLogoutFragment::class) fun bindSoftLogoutFragment(fragment: SoftLogoutFragment): Fragment - @Binds @IntoMap @FragmentKey(VerificationRequestFragment::class) @@ -284,13 +283,11 @@ interface FragmentModule { @FragmentKey(VerificationChooseMethodFragment::class) fun bindVerificationMethodChooserFragment(fragment: VerificationChooseMethodFragment): Fragment - @Binds @IntoMap @FragmentKey(SASVerificationCodeFragment::class) fun bindVerificationSasCodeFragment(fragment: SASVerificationCodeFragment): Fragment - @Binds @IntoMap @FragmentKey(VerificationConclusionFragment::class) diff --git a/vector/src/main/java/im/vector/riotx/features/crypto/verification/SASVerificationCodeFragment.kt b/vector/src/main/java/im/vector/riotx/features/crypto/verification/SASVerificationCodeFragment.kt index ebd7f351a4..0e145c0553 100644 --- a/vector/src/main/java/im/vector/riotx/features/crypto/verification/SASVerificationCodeFragment.kt +++ b/vector/src/main/java/im/vector/riotx/features/crypto/verification/SASVerificationCodeFragment.kt @@ -37,7 +37,6 @@ class SASVerificationCodeFragment @Inject constructor( @BindView(R.id.sas_emoji_grid) lateinit var emojiGrid: ViewGroup - @BindView(R.id.sas_decimal_code) lateinit var decimalTextView: TextView @@ -56,7 +55,6 @@ class SASVerificationCodeFragment @Inject constructor( @BindView(R.id.emoji6) lateinit var emoji6View: ViewGroup - private val viewModel by fragmentViewModel(SASVerificationCodeViewModel::class) private val sharedViewModel by parentFragmentViewModel(VerificationBottomSheetViewModel::class) @@ -65,7 +63,7 @@ class SASVerificationCodeFragment @Inject constructor( if (state.supportsEmoji) { decimalTextView.isVisible = false - when(val emojiDescription = state.emojiDescription) { + when (val emojiDescription = state.emojiDescription) { is Success -> { sasLoadingProgress.isVisible = false emojiGrid.isVisible = true @@ -104,20 +102,19 @@ class SASVerificationCodeFragment @Inject constructor( } if (state.isWaitingFromOther) { - //hide buttons + // hide buttons ButtonsVisibilityGroup.isInvisible = true sasCodeWaitingPartnerText.isVisible = true } else { ButtonsVisibilityGroup.isVisible = true sasCodeWaitingPartnerText.isVisible = false } - } is Fail -> { sasLoadingProgress.isVisible = false emojiGrid.isInvisible = true ButtonsVisibilityGroup.isInvisible = true - //TODO? + // TODO? } else -> { sasLoadingProgress.isVisible = true @@ -126,15 +123,15 @@ class SASVerificationCodeFragment @Inject constructor( } } } else { - //Decimal + // Decimal emojiGrid.isInvisible = true decimalTextView.isVisible = true val decimalCode = state.decimalDescription.invoke() decimalTextView.text = decimalCode - //TODO + // TODO if (state.isWaitingFromOther) { - //hide buttons + // hide buttons ButtonsVisibilityGroup.isInvisible = true sasCodeWaitingPartnerText.isVisible = true } else { @@ -144,10 +141,9 @@ class SASVerificationCodeFragment @Inject constructor( } } - @OnClick(R.id.sas_request_continue_button) fun onMatchButtonTapped() = withState(viewModel) { state -> - //UX echo + // UX echo ButtonsVisibilityGroup.isInvisible = true sasCodeWaitingPartnerText.isVisible = true sharedViewModel.handle(VerificationAction.SASMatchAction(state.otherUserId, state.transactionId)) @@ -155,10 +151,9 @@ class SASVerificationCodeFragment @Inject constructor( @OnClick(R.id.sas_request_cancel_button) fun onDoNotMatchButtonTapped() = withState(viewModel) { state -> - //UX echo + // UX echo ButtonsVisibilityGroup.isInvisible = true sasCodeWaitingPartnerText.isVisible = true sharedViewModel.handle(VerificationAction.SASDoNotMatchAction(state.otherUserId, state.transactionId)) } - } diff --git a/vector/src/main/java/im/vector/riotx/features/crypto/verification/SASVerificationCodeViewModel.kt b/vector/src/main/java/im/vector/riotx/features/crypto/verification/SASVerificationCodeViewModel.kt index 5fa9cc6cff..0b39ac373d 100644 --- a/vector/src/main/java/im/vector/riotx/features/crypto/verification/SASVerificationCodeViewModel.kt +++ b/vector/src/main/java/im/vector/riotx/features/crypto/verification/SASVerificationCodeViewModel.kt @@ -41,8 +41,7 @@ data class SASVerificationCodeViewState( class SASVerificationCodeViewModel @AssistedInject constructor( @Assisted initialState: SASVerificationCodeViewState, private val session: Session -) : VectorViewModel(initialState) - , SasVerificationService.SasVerificationListener { +) : VectorViewModel(initialState), SasVerificationService.SasVerificationListener { init { withState { state -> @@ -165,6 +164,5 @@ class SASVerificationCodeViewModel @AssistedInject constructor( } override fun handle(action: EmptyAction) { - } } diff --git a/vector/src/main/java/im/vector/riotx/features/crypto/verification/SasVerificationViewModel.kt b/vector/src/main/java/im/vector/riotx/features/crypto/verification/SasVerificationViewModel.kt index 637df8818e..f14a85c516 100644 --- a/vector/src/main/java/im/vector/riotx/features/crypto/verification/SasVerificationViewModel.kt +++ b/vector/src/main/java/im/vector/riotx/features/crypto/verification/SasVerificationViewModel.kt @@ -24,7 +24,6 @@ import im.vector.matrix.android.api.session.crypto.sas.SasVerificationService import im.vector.matrix.android.api.session.crypto.sas.SasVerificationTransaction import im.vector.matrix.android.api.session.crypto.sas.SasVerificationTxState import im.vector.matrix.android.api.session.user.model.User -import im.vector.matrix.android.internal.crypto.verification.PendingVerificationRequest import im.vector.riotx.core.utils.LiveEvent import javax.inject.Inject diff --git a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationBottomSheet.kt b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationBottomSheet.kt index a92910cc92..73a604e431 100644 --- a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationBottomSheet.kt +++ b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationBottomSheet.kt @@ -56,7 +56,6 @@ class VerificationBottomSheet : VectorBaseBottomSheetDialogFragment() { val roomId: String? = null ) : Parcelable - @Inject lateinit var verificationRequestViewModelFactory: VerificationRequestViewModel.Factory @Inject @@ -99,7 +98,6 @@ class VerificationBottomSheet : VectorBaseBottomSheetDialogFragment() { } override fun invalidate() = withState(viewModel) { - it.otherUserMxItem?.let { matrixItem -> val displayName = matrixItem.displayName ?: "" otherUserNameText.text = getString(R.string.verification_request_alert_title, displayName) @@ -111,7 +109,6 @@ class VerificationBottomSheet : VectorBaseBottomSheetDialogFragment() { // Did the request result in a SAS transaction? if (it.sasTransactionState != null) { - when (it.sasTransactionState) { SasVerificationTxState.None, SasVerificationTxState.SendingStart, @@ -148,7 +145,6 @@ class VerificationBottomSheet : VectorBaseBottomSheetDialogFragment() { return@withState } - // Transaction has not yet started if (it.pendingRequest == null || !it.pendingRequest.isReady) { showFragment(VerificationRequestFragment::class, Bundle().apply { @@ -159,7 +155,6 @@ class VerificationBottomSheet : VectorBaseBottomSheetDialogFragment() { putParcelable(MvRx.KEY_ARG, VerificationArgs(it.otherUserMxItem?.id ?: "", it.pendingRequest.transactionId)) }) - } super.invalidate() @@ -173,7 +168,6 @@ class VerificationBottomSheet : VectorBaseBottomSheetDialogFragment() { } // Commit now, to ensure changes occurs before next rendering frame (or bottomsheet want animate) childFragmentManager.commitTransactionNow { - replace(R.id.bottomSheetFragmentContainer, fragmentClass.java, bundle, @@ -184,7 +178,6 @@ class VerificationBottomSheet : VectorBaseBottomSheetDialogFragment() { } } - fun View.getParentCoordinatorLayout(): CoordinatorLayout? { var current = this as? View while (current != null) { diff --git a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationBottomSheetViewModel.kt b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationBottomSheetViewModel.kt index a9265293fa..21ae4a776d 100644 --- a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationBottomSheetViewModel.kt +++ b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationBottomSheetViewModel.kt @@ -34,7 +34,6 @@ import im.vector.riotx.core.platform.VectorViewModel import im.vector.riotx.core.platform.VectorViewModelAction import im.vector.riotx.core.utils.LiveEvent - data class VerificationBottomSheetViewState( val otherUserMxItem: MatrixItem? = null, val roomId: String? = null, @@ -43,7 +42,6 @@ data class VerificationBottomSheetViewState( val cancelCode: CancelCode? = null ) : MvRxState - sealed class VerificationAction : VectorViewModelAction { data class RequestVerificationByDM(val userID: String, val roomId: String?) : VerificationAction() data class StartSASVerification(val userID: String, val pendingRequestTransactionId: String) : VerificationAction() @@ -57,7 +55,6 @@ class VerificationBottomSheetViewModel @AssistedInject constructor(@Assisted ini : VectorViewModel(initialState), SasVerificationService.SasVerificationListener { - // Can be used for several actions, for a one shot result private val _requestLiveData = MutableLiveData>>() val requestLiveData: LiveData>> @@ -146,7 +143,6 @@ class VerificationBottomSheetViewModel @AssistedInject constructor(@Assisted ini } } - override fun transactionCreated(tx: SasVerificationTransaction) { transactionUpdated(tx) } diff --git a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationChooseMethodFragment.kt b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationChooseMethodFragment.kt index 69c599d335..bea49089eb 100644 --- a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationChooseMethodFragment.kt +++ b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationChooseMethodFragment.kt @@ -43,7 +43,6 @@ class VerificationChooseMethodFragment @Inject constructor( if (state.QRModeAvailable) { val cSpan = object : ClickableSpan() { override fun onClick(widget: View) { - } } val openLink = getString(R.string.verify_open_camera_link) @@ -65,5 +64,4 @@ class VerificationChooseMethodFragment @Inject constructor( sharedViewModel.handle(VerificationAction.StartSASVerification(it.otherUserMxItem?.id ?: "", it.pendingRequest?.transactionId ?: "")) } - } diff --git a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationChooseMethodViewModel.kt b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationChooseMethodViewModel.kt index 38482e9b09..96a1cafdb1 100644 --- a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationChooseMethodViewModel.kt +++ b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationChooseMethodViewModel.kt @@ -33,13 +33,11 @@ data class VerificationChooseMethodViewState( val SASMOdeAvailable: Boolean = false ) : MvRxState - class VerificationChooseMethodViewModel @AssistedInject constructor( @Assisted initialState: VerificationChooseMethodViewState, private val session: Session ) : VectorViewModel(initialState) { - init { withState { state -> val pvr = session.getSasVerificationService().getExistingVerificationRequest(state.otherUserId)?.first { @@ -70,8 +68,5 @@ class VerificationChooseMethodViewModel @AssistedInject constructor( } } - override fun handle(action: EmptyAction) {} - - } diff --git a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationConclusionFragment.kt b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationConclusionFragment.kt index da3b0dd187..0f0eaf8b10 100644 --- a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationConclusionFragment.kt +++ b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationConclusionFragment.kt @@ -50,7 +50,6 @@ class VerificationConclusionFragment @Inject constructor() : VectorBaseFragment( verifyConclusionDescription.setTextOrHide(getString(R.string.sas_verified_successful_description)) verifyConclusionBottomDescription.text = getString(R.string.verification_green_shield) verifyConclusionImageView.setImageDrawable(ContextCompat.getDrawable(requireContext(), R.drawable.ic_shield_trusted)) - } ConclusionState.WARNING -> { verificationConclusionTitle.text = getString(R.string.verification_conclusion_not_secure) diff --git a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationRequestFragment.kt b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationRequestFragment.kt index 60b89c19d6..1d499aa2ed 100644 --- a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationRequestFragment.kt +++ b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationRequestFragment.kt @@ -55,7 +55,7 @@ class VerificationRequestFragment @Inject constructor( when (state.started) { is Loading -> { - //Hide the start button, show waiting + // Hide the start button, show waiting verificationStartButton.isInvisible = true verificationWaitingText.isVisible = true val otherUser = state.matrixItem.displayName ?: state.matrixItem.id @@ -79,5 +79,4 @@ class VerificationRequestFragment @Inject constructor( verificationStartButton.isEnabled = false sharedViewModel.handle(VerificationAction.RequestVerificationByDM(state.matrixItem.id, state.roomId)) } - } diff --git a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationRequestViewModel.kt b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationRequestViewModel.kt index 752d6a6a8a..611d7a9b2a 100644 --- a/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationRequestViewModel.kt +++ b/vector/src/main/java/im/vector/riotx/features/crypto/verification/VerificationRequestViewModel.kt @@ -27,14 +27,12 @@ import im.vector.matrix.android.internal.crypto.verification.PendingVerification import im.vector.riotx.core.di.HasScreenInjector import im.vector.riotx.core.platform.VectorViewModel - data class VerificationRequestViewState( val roomId: String? = null, val matrixItem: MatrixItem, val started: Async = Success(false) ) : MvRxState - class VerificationRequestViewModel @AssistedInject constructor( @Assisted initialState: VerificationRequestViewState, private val session: Session diff --git a/vector/src/main/java/im/vector/riotx/features/home/room/detail/RoomDetailFragment.kt b/vector/src/main/java/im/vector/riotx/features/home/room/detail/RoomDetailFragment.kt index 3768820206..e689f46b0a 100644 --- a/vector/src/main/java/im/vector/riotx/features/home/room/detail/RoomDetailFragment.kt +++ b/vector/src/main/java/im/vector/riotx/features/home/room/detail/RoomDetailFragment.kt @@ -1130,7 +1130,7 @@ class RoomDetailFragment @Inject constructor( } override fun onAvatarClicked(informationData: MessageInformationData) { - //vectorBaseActivity.notImplemented("Click on user avatar") + // vectorBaseActivity.notImplemented("Click on user avatar") roomDetailViewModel.handle(RoomDetailAction.RequestVerification(informationData.senderId)) } diff --git a/vector/src/main/java/im/vector/riotx/features/home/room/detail/RoomDetailViewModel.kt b/vector/src/main/java/im/vector/riotx/features/home/room/detail/RoomDetailViewModel.kt index 0212ee75d2..3889402ec2 100644 --- a/vector/src/main/java/im/vector/riotx/features/home/room/detail/RoomDetailViewModel.kt +++ b/vector/src/main/java/im/vector/riotx/features/home/room/detail/RoomDetailViewModel.kt @@ -796,7 +796,7 @@ class RoomDetailViewModel @AssistedInject constructor(@Assisted initialState: Ro } private fun handleAcceptVerification(action: RoomDetailAction.AcceptVerificationRequest) { - session.getSasVerificationService().readyPendingVerificationInDMs(action.otherUserId,room.roomId, + session.getSasVerificationService().readyPendingVerificationInDMs(action.otherUserId, room.roomId, action.transactionId) _requestLiveData.postValue(LiveEvent(Success(action))) // session.getSasVerificationService().beginKeyVerificationInDMs(