From 191cef6fffa7d51d1396c60184cc906e3217493c Mon Sep 17 00:00:00 2001 From: ganfra Date: Fri, 29 Jan 2021 16:34:30 +0100 Subject: [PATCH] VoIP: clean after PR's review --- .../java/org/matrix/android/sdk/api/session/Session.kt | 8 ++++++-- .../sdk/api/session/thirdparty/ThirdPartyService.kt | 3 +++ .../matrix/android/sdk/internal/session/DefaultSession.kt | 5 +++-- vector/src/main/assets/open_source_licenses.html | 5 +++++ .../im/vector/app/features/call/dialpad/DialPadLookup.kt | 2 +- .../app/features/call/transfer/CallTransferActivity.kt | 6 +++--- .../im/vector/app/features/call/webrtc/PSTNProtocol.kt | 2 +- .../vector/app/features/call/webrtc/WebRtcCallManager.kt | 4 +++- .../app/features/matrixto/MatrixToBottomSheetViewModel.kt | 8 ++++---- .../roomdirectory/picker/RoomDirectoryPickerViewModel.kt | 6 +++++- 10 files changed, 34 insertions(+), 15 deletions(-) diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/Session.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/Session.kt index d668d139af..dea8758140 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/Session.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/Session.kt @@ -73,8 +73,7 @@ interface Session : HomeServerCapabilitiesService, SecureStorageService, AccountDataService, - AccountService, - ThirdPartyService { + AccountService { /** * The params associated to the session @@ -214,6 +213,11 @@ interface Session : */ fun searchService(): SearchService + /** + * Returns the third party service associated with the session + */ + fun thirdPartyService(): ThirdPartyService + /** * Add a listener to the session. * @param listener the listener to add. diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/thirdparty/ThirdPartyService.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/thirdparty/ThirdPartyService.kt index 025b52bdee..2ae4562b0b 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/thirdparty/ThirdPartyService.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/api/session/thirdparty/ThirdPartyService.kt @@ -19,6 +19,9 @@ package org.matrix.android.sdk.api.session.thirdparty import org.matrix.android.sdk.api.session.room.model.thirdparty.ThirdPartyProtocol import org.matrix.android.sdk.api.session.thirdparty.model.ThirdPartyUser +/** + * See https://matrix.org/docs/spec/client_server/r0.4.0.html#get-matrix-client-r0-thirdparty-protocols + */ interface ThirdPartyService { /** diff --git a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/DefaultSession.kt b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/DefaultSession.kt index 4dca3dc4b2..1ae4c0e5ba 100644 --- a/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/DefaultSession.kt +++ b/matrix-sdk-android/src/main/java/org/matrix/android/sdk/internal/session/DefaultSession.kt @@ -114,7 +114,7 @@ internal class DefaultSession @Inject constructor( private val accountService: Lazy, private val defaultIdentityService: DefaultIdentityService, private val integrationManagerService: IntegrationManagerService, - private val thirdPartyService: ThirdPartyService, + private val thirdPartyService: Lazy, private val callSignalingService: Lazy, @UnauthenticatedWithCertificate private val unauthenticatedWithCertificateOkHttpClient: Lazy, @@ -135,7 +135,6 @@ internal class DefaultSession @Inject constructor( ProfileService by profileService.get(), AccountDataService by accountDataService.get(), AccountService by accountService.get(), - ThirdPartyService by thirdPartyService, GlobalErrorHandler.Listener { override val sharedSecretStorageService: SharedSecretStorageService @@ -260,6 +259,8 @@ internal class DefaultSession @Inject constructor( override fun searchService(): SearchService = searchService.get() + override fun thirdPartyService(): ThirdPartyService = thirdPartyService.get() + override fun getOkHttpClient(): OkHttpClient { return unauthenticatedWithCertificateOkHttpClient.get() } diff --git a/vector/src/main/assets/open_source_licenses.html b/vector/src/main/assets/open_source_licenses.html index 4ce4e9a210..3c6a9c48a4 100755 --- a/vector/src/main/assets/open_source_licenses.html +++ b/vector/src/main/assets/open_source_licenses.html @@ -385,6 +385,11 @@ SOFTWARE.
Copyright 2016 JetRadar +
  • + dialogs / android-dialer +
    + Copyright (c) 2017-present, dialog LLC +
  •  Apache License
    diff --git a/vector/src/main/java/im/vector/app/features/call/dialpad/DialPadLookup.kt b/vector/src/main/java/im/vector/app/features/call/dialpad/DialPadLookup.kt
    index 79c770da28..1c5caee2cd 100644
    --- a/vector/src/main/java/im/vector/app/features/call/dialpad/DialPadLookup.kt
    +++ b/vector/src/main/java/im/vector/app/features/call/dialpad/DialPadLookup.kt
    @@ -33,7 +33,7 @@ class DialPadLookup @Inject constructor(val session: Session,
         suspend fun lookupPhoneNumber(phoneNumber: String): Result {
             val supportedProtocolKey = callManager.supportedPSTNProtocol ?: throw Failure()
             val thirdPartyUser = tryOrNull {
    -            session.getThirdPartyUser(supportedProtocolKey, fields = mapOf(
    +            session.thirdPartyService().getThirdPartyUser(supportedProtocolKey, fields = mapOf(
                         "m.id.phone" to phoneNumber
                 )).firstOrNull()
             } ?: throw Failure()
    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 0a7144f213..c5b4dda135 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
    @@ -80,9 +80,9 @@ class CallTransferActivity : VectorBaseActivity(),
             waitingView = views.waitingView.waitingView
     
             callTransferViewModel.observeViewEvents {
    -            when (it) {
    -                is CallTransferViewEvents.Dismiss -> finish()
    -                CallTransferViewEvents.Loading -> showWaitingView()
    +            when (it)  {
    +                is CallTransferViewEvents.Dismiss        -> finish()
    +                CallTransferViewEvents.Loading           -> showWaitingView()
                     is CallTransferViewEvents.FailToTransfer -> showSnackbar(getString(R.string.call_transfer_failure))
                 }
             }
    diff --git a/vector/src/main/java/im/vector/app/features/call/webrtc/PSTNProtocol.kt b/vector/src/main/java/im/vector/app/features/call/webrtc/PSTNProtocol.kt
    index 2c56e7fa35..3e6d2df690 100644
    --- a/vector/src/main/java/im/vector/app/features/call/webrtc/PSTNProtocol.kt
    +++ b/vector/src/main/java/im/vector/app/features/call/webrtc/PSTNProtocol.kt
    @@ -25,7 +25,7 @@ private const val PSTN_MATRIX_KEY = "m.protocol.pstn"
     
     suspend fun Session.getSupportedPSTN(maxTries: Int): String? {
         val thirdPartyProtocols: Map = try {
    -        getThirdPartyProtocols()
    +        thirdPartyService().getThirdPartyProtocols()
         } catch (failure: Throwable) {
             if (maxTries == 1) {
                 return null
    diff --git a/vector/src/main/java/im/vector/app/features/call/webrtc/WebRtcCallManager.kt b/vector/src/main/java/im/vector/app/features/call/webrtc/WebRtcCallManager.kt
    index aeea0d7d7d..8c504b984a 100644
    --- a/vector/src/main/java/im/vector/app/features/call/webrtc/WebRtcCallManager.kt
    +++ b/vector/src/main/java/im/vector/app/features/call/webrtc/WebRtcCallManager.kt
    @@ -118,7 +118,9 @@ class WebRtcCallManager @Inject constructor(
             GlobalScope.launch {
                 supportedPSTNProtocol = currentSession?.getSupportedPSTN(3)
                 if (supportedPSTNProtocol != null) {
    -                pstnSupportListeners.forEach { it.onPSTNSupportUpdated() }
    +                pstnSupportListeners.forEach {
    +                    tryOrNull { it.onPSTNSupportUpdated() }
    +                }
                 }
             }
         }
    diff --git a/vector/src/main/java/im/vector/app/features/matrixto/MatrixToBottomSheetViewModel.kt b/vector/src/main/java/im/vector/app/features/matrixto/MatrixToBottomSheetViewModel.kt
    index bb0994f799..c9c43fa80d 100644
    --- a/vector/src/main/java/im/vector/app/features/matrixto/MatrixToBottomSheetViewModel.kt
    +++ b/vector/src/main/java/im/vector/app/features/matrixto/MatrixToBottomSheetViewModel.kt
    @@ -75,8 +75,8 @@ class MatrixToBottomSheetViewModel @AssistedInject constructor(
                 return
             }
     
    -        when (permalinkData) {
    -            is PermalinkData.UserLink -> {
    +        when (permalinkData)  {
    +            is PermalinkData.UserLink     -> {
                     val user = resolveUser(permalinkData.userId)
                     setState {
                         copy(
    @@ -85,11 +85,11 @@ class MatrixToBottomSheetViewModel @AssistedInject constructor(
                         )
                     }
                 }
    -            is PermalinkData.RoomLink -> {
    +            is PermalinkData.RoomLink     -> {
                     // not yet supported
                     _viewEvents.post(MatrixToViewEvents.Dismiss)
                 }
    -            is PermalinkData.GroupLink -> {
    +            is PermalinkData.GroupLink    -> {
                     // not yet supported
                     _viewEvents.post(MatrixToViewEvents.Dismiss)
                 }
    diff --git a/vector/src/main/java/im/vector/app/features/roomdirectory/picker/RoomDirectoryPickerViewModel.kt b/vector/src/main/java/im/vector/app/features/roomdirectory/picker/RoomDirectoryPickerViewModel.kt
    index b2bad73a37..322daa8ec7 100644
    --- a/vector/src/main/java/im/vector/app/features/roomdirectory/picker/RoomDirectoryPickerViewModel.kt
    +++ b/vector/src/main/java/im/vector/app/features/roomdirectory/picker/RoomDirectoryPickerViewModel.kt
    @@ -19,6 +19,7 @@ package im.vector.app.features.roomdirectory.picker
     import androidx.lifecycle.viewModelScope
     import com.airbnb.mvrx.Fail
     import com.airbnb.mvrx.FragmentViewModelContext
    +import com.airbnb.mvrx.Loading
     import com.airbnb.mvrx.MvRxViewModelFactory
     import com.airbnb.mvrx.Success
     import com.airbnb.mvrx.ViewModelContext
    @@ -53,8 +54,11 @@ class RoomDirectoryPickerViewModel @AssistedInject constructor(@Assisted initial
     
         private fun load() {
             viewModelScope.launch {
    +            setState {
    +                copy(asyncThirdPartyRequest = Loading())
    +            }
                 try {
    -                val thirdPartyProtocols = session.getThirdPartyProtocols()
    +                val thirdPartyProtocols = session.thirdPartyService().getThirdPartyProtocols()
                     setState {
                         copy(asyncThirdPartyRequest = Success(thirdPartyProtocols))
                     }