From d87beff434db128e05f9d96802ba7fce1a3e8a0e Mon Sep 17 00:00:00 2001 From: ganfra Date: Tue, 22 Dec 2020 16:36:53 +0100 Subject: [PATCH] VoIP: clean code for call transfer and disable it for now --- .../java/org/matrix/android/sdk/api/MatrixConfiguration.kt | 2 +- .../sdk/api/session/room/model/call/CallAnswerContent.kt | 2 +- .../sdk/api/session/room/model/call/CallCapabilities.kt | 2 +- .../sdk/api/session/room/model/call/CallInviteContent.kt | 2 +- .../sdk/api/session/room/model/call/CallReplacesContent.kt | 3 ++- .../java/im/vector/app/core/platform/VectorBaseActivity.kt | 1 - .../app/features/call/transfer/CallTransferActivity.kt | 6 +++++- .../app/features/call/transfer/CallTransferViewEvents.kt | 3 +++ .../app/features/call/transfer/CallTransferViewModel.kt | 5 ++++- .../app/features/contactsbook/ContactsBookViewModel.kt | 4 ---- .../im/vector/app/features/navigation/DefaultNavigator.kt | 1 - .../vector/app/features/userdirectory/UserListFragment.kt | 2 +- .../vector/app/features/userdirectory/UserListViewState.kt | 3 +-- vector/src/main/res/layout/activity_call_transfer.xml | 5 ++++- vector/src/main/res/values/strings.xml | 1 + 15 files changed, 25 insertions(+), 17 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/MatrixConfiguration.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/MatrixConfiguration.kt index 5aca07e8cc..93a1b962ed 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/MatrixConfiguration.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/MatrixConfiguration.kt @@ -39,7 +39,7 @@ data class MatrixConfiguration( /** * True to advertise support for call transfers to other parties on Matrix calls. */ - val supportsCallTransfer: Boolean = true + val supportsCallTransfer: Boolean = false ) { /** diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/call/CallAnswerContent.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/call/CallAnswerContent.kt index e37595a129..45a54bb379 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/call/CallAnswerContent.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/call/CallAnswerContent.kt @@ -43,7 +43,7 @@ data class CallAnswerContent( /** * Capability advertisement. */ - @Json(name= "capabilities") val capabilities: CallCapabilities? = null + @Json(name = "capabilities") val capabilities: CallCapabilities? = null ): CallSignallingContent { @JsonClass(generateAdapter = true) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/call/CallCapabilities.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/call/CallCapabilities.kt index eb7edbeed3..d911ca3b88 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/call/CallCapabilities.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/call/CallCapabilities.kt @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020 New Vector Ltd + * Copyright 2020 The Matrix.org Foundation C.I.C. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/call/CallInviteContent.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/call/CallInviteContent.kt index c89549184a..42489bc0ce 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/call/CallInviteContent.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/call/CallInviteContent.kt @@ -53,7 +53,7 @@ data class CallInviteContent( /** * Capability advertisement. */ - @Json(name= "capabilities") val capabilities: CallCapabilities? = null + @Json(name = "capabilities") val capabilities: CallCapabilities? = null ): CallSignallingContent { @JsonClass(generateAdapter = true) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/call/CallReplacesContent.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/call/CallReplacesContent.kt index 310b46d03f..97a3b8c7a7 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/call/CallReplacesContent.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/room/model/call/CallReplacesContent.kt @@ -38,7 +38,8 @@ data class CallReplacesContent( */ @Json(name = "replacement_id") val replacementId: String? = null, /** - * Optional. If specified, the transferee client waits for an invite to this room and joins it (possibly waiting for user confirmation) and then continues the transfer in this room. + * Optional. If specified, the transferee client waits for an invite to this room and joins it + * (possibly waiting for user confirmation) and then continues the transfer in this room. * If absent, the transferee contacts the Matrix User ID given in the target_user field in a room of its choosing. */ @Json(name = "target_room") val targerRoomId: String? = null, diff --git a/vector/src/main/java/im/vector/app/core/platform/VectorBaseActivity.kt b/vector/src/main/java/im/vector/app/core/platform/VectorBaseActivity.kt index 268ec7eb26..7ec04e32e8 100644 --- a/vector/src/main/java/im/vector/app/core/platform/VectorBaseActivity.kt +++ b/vector/src/main/java/im/vector/app/core/platform/VectorBaseActivity.kt @@ -127,7 +127,6 @@ abstract class VectorBaseActivity : AppCompatActivity(), HasScr .disposeOnDestroy() } - /* ========================================================================================== * DATA * ========================================================================================== */ diff --git a/vector/src/main/java/im/vector/app/features/call/transfer/CallTransferActivity.kt b/vector/src/main/java/im/vector/app/features/call/transfer/CallTransferActivity.kt index ec517c813b..98025cfbd4 100644 --- a/vector/src/main/java/im/vector/app/features/call/transfer/CallTransferActivity.kt +++ b/vector/src/main/java/im/vector/app/features/call/transfer/CallTransferActivity.kt @@ -82,6 +82,7 @@ class CallTransferActivity : VectorBaseActivity(), override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + waitingView = views.waitingView.waitingView sharedActionViewModel = viewModelProvider.get(UserListSharedActionViewModel::class.java) sharedActionViewModel .observe() @@ -111,9 +112,12 @@ class CallTransferActivity : VectorBaseActivity(), callTransferViewModel.observeViewEvents { when (it) { is CallTransferViewEvents.Dismiss -> finish() + CallTransferViewEvents.Loading -> showWaitingView() + is CallTransferViewEvents.FailToTransfer -> showSnackbar(getString(R.string.call_transfer_failure)) } } configureToolbar(views.callTransferToolbar) + views.callTransferToolbar.title = getString(R.string.call_transfer_title) setupConnectAction() } @@ -150,7 +154,7 @@ class CallTransferActivity : VectorBaseActivity(), } companion object { - + fun newIntent(context: Context, callId: String): Intent { return Intent(context, CallTransferActivity::class.java).also { it.putExtra(MvRx.KEY_ARG, CallTransferArgs(callId)) diff --git a/vector/src/main/java/im/vector/app/features/call/transfer/CallTransferViewEvents.kt b/vector/src/main/java/im/vector/app/features/call/transfer/CallTransferViewEvents.kt index b4a228efca..9ac5cdac4f 100644 --- a/vector/src/main/java/im/vector/app/features/call/transfer/CallTransferViewEvents.kt +++ b/vector/src/main/java/im/vector/app/features/call/transfer/CallTransferViewEvents.kt @@ -17,7 +17,10 @@ package im.vector.app.features.call.transfer import im.vector.app.core.platform.VectorViewEvents +import im.vector.app.features.roommemberprofile.RoomMemberProfileViewEvents sealed class CallTransferViewEvents : VectorViewEvents { object Dismiss : CallTransferViewEvents() + object Loading: CallTransferViewEvents() + object FailToTransfer : CallTransferViewEvents() } diff --git a/vector/src/main/java/im/vector/app/features/call/transfer/CallTransferViewModel.kt b/vector/src/main/java/im/vector/app/features/call/transfer/CallTransferViewModel.kt index 78c7cc4664..1a40fa2c8e 100644 --- a/vector/src/main/java/im/vector/app/features/call/transfer/CallTransferViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/call/transfer/CallTransferViewModel.kt @@ -18,6 +18,7 @@ package im.vector.app.features.call.transfer import androidx.lifecycle.viewModelScope import com.airbnb.mvrx.ActivityViewModelContext +import com.airbnb.mvrx.Fail import com.airbnb.mvrx.MvRxViewModelFactory import com.airbnb.mvrx.ViewModelContext import com.squareup.inject.assisted.Assisted @@ -81,9 +82,11 @@ class CallTransferViewModel @AssistedInject constructor(@Assisted initialState: private fun transferCall(action: CallTransferAction.Connect) { viewModelScope.launch { try { + _viewEvents.post(CallTransferViewEvents.Loading) call?.mxCall?.transfer(action.selectedUserId, null) + _viewEvents.post(CallTransferViewEvents.Dismiss) } catch (failure: Throwable) { - Timber.v("Fail to transfer call: $failure") + _viewEvents.post(CallTransferViewEvents.FailToTransfer) } } } diff --git a/vector/src/main/java/im/vector/app/features/contactsbook/ContactsBookViewModel.kt b/vector/src/main/java/im/vector/app/features/contactsbook/ContactsBookViewModel.kt index 9721425f56..b8cdf08234 100644 --- a/vector/src/main/java/im/vector/app/features/contactsbook/ContactsBookViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/contactsbook/ContactsBookViewModel.kt @@ -16,7 +16,6 @@ package im.vector.app.features.contactsbook -import androidx.fragment.app.FragmentActivity import androidx.lifecycle.viewModelScope import com.airbnb.mvrx.ActivityViewModelContext import com.airbnb.mvrx.FragmentViewModelContext @@ -31,9 +30,6 @@ import im.vector.app.core.contacts.MappedContact import im.vector.app.core.extensions.exhaustive import im.vector.app.core.platform.EmptyViewEvents import im.vector.app.core.platform.VectorViewModel -import im.vector.app.features.createdirect.CreateDirectRoomActivity -import im.vector.app.features.invite.InviteUsersToRoomActivity -import im.vector.app.features.userdirectory.UserListViewModel import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import org.matrix.android.sdk.api.MatrixCallback diff --git a/vector/src/main/java/im/vector/app/features/navigation/DefaultNavigator.kt b/vector/src/main/java/im/vector/app/features/navigation/DefaultNavigator.kt index 5f785acbaf..991f776a45 100644 --- a/vector/src/main/java/im/vector/app/features/navigation/DefaultNavigator.kt +++ b/vector/src/main/java/im/vector/app/features/navigation/DefaultNavigator.kt @@ -35,7 +35,6 @@ import im.vector.app.core.utils.toast import im.vector.app.features.call.conference.JitsiCallViewModel import im.vector.app.features.call.conference.VectorJitsiActivity import im.vector.app.features.call.transfer.CallTransferActivity -import im.vector.app.features.call.transfer.CallTransferArgs import im.vector.app.features.createdirect.CreateDirectRoomActivity import im.vector.app.features.crypto.keysbackup.settings.KeysBackupManageActivity import im.vector.app.features.crypto.keysbackup.setup.KeysBackupSetupActivity diff --git a/vector/src/main/java/im/vector/app/features/userdirectory/UserListFragment.kt b/vector/src/main/java/im/vector/app/features/userdirectory/UserListFragment.kt index 0dca6802c4..69e4c58c24 100644 --- a/vector/src/main/java/im/vector/app/features/userdirectory/UserListFragment.kt +++ b/vector/src/main/java/im/vector/app/features/userdirectory/UserListFragment.kt @@ -191,7 +191,7 @@ class UserListFragment @Inject constructor( } } - fun getCurrentState() = withState(viewModel){ it } + fun getCurrentState() = withState(viewModel) { it } override fun onInviteFriendClick() { viewModel.handle(UserListAction.ComputeMatrixToLinkForSharing) diff --git a/vector/src/main/java/im/vector/app/features/userdirectory/UserListViewState.kt b/vector/src/main/java/im/vector/app/features/userdirectory/UserListViewState.kt index 1c7ccc70dd..b5d816047f 100644 --- a/vector/src/main/java/im/vector/app/features/userdirectory/UserListViewState.kt +++ b/vector/src/main/java/im/vector/app/features/userdirectory/UserListViewState.kt @@ -49,7 +49,6 @@ data class UserListViewState( } } } - - fun showInviteActions() = showInviteActions && pendingSelections.isEmpty() + fun showInviteActions() = showInviteActions && pendingSelections.isEmpty() } diff --git a/vector/src/main/res/layout/activity_call_transfer.xml b/vector/src/main/res/layout/activity_call_transfer.xml index b748591788..e4e50b2ce2 100644 --- a/vector/src/main/res/layout/activity_call_transfer.xml +++ b/vector/src/main/res/layout/activity_call_transfer.xml @@ -42,6 +42,7 @@ android:layout_width="wrap_content" android:layout_centerVertical="true" android:layout_alignParentStart="true" + android:enabled="false" android:layout_height="wrap_content"/> - + \ No newline at end of file diff --git a/vector/src/main/res/values/strings.xml b/vector/src/main/res/values/strings.xml index ed3876871f..8ed3798c1c 100644 --- a/vector/src/main/res/values/strings.xml +++ b/vector/src/main/res/values/strings.xml @@ -2785,6 +2785,7 @@ Consult first Connect Transfer + An error occured while transfering call