diff --git a/app/src/main/java/org/linphone/ui/call/conference/fragment/ActiveConferenceCallFragment.kt b/app/src/main/java/org/linphone/ui/call/conference/fragment/ActiveConferenceCallFragment.kt index 078afa3b6..7a011f820 100644 --- a/app/src/main/java/org/linphone/ui/call/conference/fragment/ActiveConferenceCallFragment.kt +++ b/app/src/main/java/org/linphone/ui/call/conference/fragment/ActiveConferenceCallFragment.kt @@ -125,10 +125,13 @@ class ActiveConferenceCallFragment : GenericCallFragment() { callViewModel = requireActivity().run { ViewModelProvider(this)[CurrentCallViewModel::class.java] } + observeToastEvents(callViewModel) + observeToastEvents(callViewModel.conferenceModel) callsViewModel = requireActivity().run { ViewModelProvider(this)[CallsViewModel::class.java] } + observeToastEvents(callsViewModel) binding.lifecycleOwner = viewLifecycleOwner binding.viewModel = callViewModel diff --git a/app/src/main/java/org/linphone/ui/call/fragment/ActiveCallFragment.kt b/app/src/main/java/org/linphone/ui/call/fragment/ActiveCallFragment.kt index 72ed16cc2..4a188201a 100644 --- a/app/src/main/java/org/linphone/ui/call/fragment/ActiveCallFragment.kt +++ b/app/src/main/java/org/linphone/ui/call/fragment/ActiveCallFragment.kt @@ -154,10 +154,12 @@ class ActiveCallFragment : GenericCallFragment() { callViewModel = requireActivity().run { ViewModelProvider(this)[CurrentCallViewModel::class.java] } + observeToastEvents(callViewModel) callsViewModel = requireActivity().run { ViewModelProvider(this)[CallsViewModel::class.java] } + observeToastEvents(callsViewModel) binding.lifecycleOwner = viewLifecycleOwner binding.viewModel = callViewModel diff --git a/app/src/main/java/org/linphone/ui/call/fragment/EndedCallFragment.kt b/app/src/main/java/org/linphone/ui/call/fragment/EndedCallFragment.kt index 82f58994c..202ad5527 100644 --- a/app/src/main/java/org/linphone/ui/call/fragment/EndedCallFragment.kt +++ b/app/src/main/java/org/linphone/ui/call/fragment/EndedCallFragment.kt @@ -67,6 +67,7 @@ class EndedCallFragment : GenericCallFragment() { callViewModel = requireActivity().run { ViewModelProvider(this)[CurrentCallViewModel::class.java] } + observeToastEvents(callViewModel) binding.lifecycleOwner = viewLifecycleOwner binding.viewModel = callViewModel diff --git a/app/src/main/java/org/linphone/ui/call/fragment/IncomingCallFragment.kt b/app/src/main/java/org/linphone/ui/call/fragment/IncomingCallFragment.kt index 2f9050bba..ea5f9ad57 100644 --- a/app/src/main/java/org/linphone/ui/call/fragment/IncomingCallFragment.kt +++ b/app/src/main/java/org/linphone/ui/call/fragment/IncomingCallFragment.kt @@ -55,6 +55,7 @@ class IncomingCallFragment : GenericCallFragment() { callViewModel = requireActivity().run { ViewModelProvider(this)[CurrentCallViewModel::class.java] } + observeToastEvents(callViewModel) binding.lifecycleOwner = viewLifecycleOwner binding.viewModel = callViewModel diff --git a/app/src/main/java/org/linphone/ui/call/fragment/OutgoingCallFragment.kt b/app/src/main/java/org/linphone/ui/call/fragment/OutgoingCallFragment.kt index 954ef7ea4..e4b0bdbd3 100644 --- a/app/src/main/java/org/linphone/ui/call/fragment/OutgoingCallFragment.kt +++ b/app/src/main/java/org/linphone/ui/call/fragment/OutgoingCallFragment.kt @@ -56,6 +56,7 @@ class OutgoingCallFragment : GenericCallFragment() { callViewModel = requireActivity().run { ViewModelProvider(this)[CurrentCallViewModel::class.java] } + observeToastEvents(callViewModel) binding.lifecycleOwner = viewLifecycleOwner binding.viewModel = callViewModel diff --git a/app/src/main/java/org/linphone/ui/call/fragment/TransferCallFragment.kt b/app/src/main/java/org/linphone/ui/call/fragment/TransferCallFragment.kt index 1aad00078..dc1209182 100644 --- a/app/src/main/java/org/linphone/ui/call/fragment/TransferCallFragment.kt +++ b/app/src/main/java/org/linphone/ui/call/fragment/TransferCallFragment.kt @@ -115,10 +115,12 @@ class TransferCallFragment : GenericCallFragment() { callViewModel = requireActivity().run { ViewModelProvider(this)[CurrentCallViewModel::class.java] } + observeToastEvents(callViewModel) callsViewModel = requireActivity().run { ViewModelProvider(this)[CallsViewModel::class.java] } + observeToastEvents(callsViewModel) binding.viewModel = viewModel binding.callsViewModel = callsViewModel diff --git a/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt b/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt index a5b7bab9d..0bc677b1b 100644 --- a/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt +++ b/app/src/main/java/org/linphone/ui/call/viewmodel/CurrentCallViewModel.kt @@ -358,7 +358,11 @@ class CurrentCallViewModel videoUpdateInProgress.postValue(false) updateCallDuration() if (corePreferences.automaticallyStartCallRecording) { - isRecording.postValue(call.params.isRecording) + val recording = call.params.isRecording + isRecording.postValue(recording) + if (recording) { + showRecordingToast() + } } // MediaEncryption None & SRTP won't be notified through onEncryptionChanged callback, @@ -855,8 +859,12 @@ class CurrentCallViewModel Log.i("$TAG Starting call recording") currentCall.startRecording() } + val recording = currentCall.params.isRecording isRecording.postValue(recording) + if (recording) { + showRecordingToast() + } } } } @@ -1172,7 +1180,11 @@ class CurrentCallViewModel contact.postValue(model) displayedName.postValue(model.friend.name) - isRecording.postValue(call.params.isRecording) + val recording = call.params.isRecording + isRecording.postValue(recording) + if (recording) { + showRecordingToast() + } val isRemoteRecording = call.remoteParams?.isRecording == true if (isRemoteRecording) { @@ -1471,4 +1483,16 @@ class CurrentCallViewModel } } } + + @AnyThread + private fun showRecordingToast() { + showGreenToastEvent.postValue( + Event( + Pair( + R.string.call_is_being_recorded, + R.drawable.record_fill + ) + ) + ) + } } diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index c88fb10dc..1661a0b6b 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -633,6 +633,7 @@ Appel chiffré de point à point Appel non chiffré Liste des appels + L\'appel est enregistré %s enregistre l\'appel %s appels %s appels en pause diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f23abecea..9d59cdcef 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -673,6 +673,7 @@ Point-to-point encrypted by SRTP Call is not encrypted Calls list + Call is being recorded %s is recording %s calls %s paused calls