From 0d63c3a14cf2975412cd10b6a9684c7923a7d32b Mon Sep 17 00:00:00 2001 From: Christophe Deschamps Date: Tue, 14 Jun 2022 17:41:27 +0200 Subject: [PATCH] Big Pause/Play buttons --- Classes/Swift/Voip/Theme/VoipTexts.swift | 4 ++- .../ActiveCallOrConferenceView.swift | 28 +++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/Classes/Swift/Voip/Theme/VoipTexts.swift b/Classes/Swift/Voip/Theme/VoipTexts.swift index fa90df38b..fc11674ba 100644 --- a/Classes/Swift/Voip/Theme/VoipTexts.swift +++ b/Classes/Swift/Voip/Theme/VoipTexts.swift @@ -56,7 +56,9 @@ import UIKit static let call_context_action_hangup = NSLocalizedString("Terminate call",comment:"") static let call_remote_recording = NSLocalizedString("This call is being recorded.",comment:"") static let call_remotely_paused_title = NSLocalizedString("Call has been paused by remote.",comment:"") - + static let call_locally_paused_title = NSLocalizedString("You have paused the call.",comment:"") + static let call_locally_paused_subtitle = NSLocalizedString("Click on play button to resume it.",comment:"") + // Conference static let conference_schedule_title = NSLocalizedString("Schedule a meeting",comment:"") static let conference_group_call_title = NSLocalizedString("Start a group call",comment:"") diff --git a/Classes/Swift/Voip/Views/CompositeViewControllers/ActiveCallOrConferenceView.swift b/Classes/Swift/Voip/Views/CompositeViewControllers/ActiveCallOrConferenceView.swift index f00263df4..72678fc35 100644 --- a/Classes/Swift/Voip/Views/CompositeViewControllers/ActiveCallOrConferenceView.swift +++ b/Classes/Swift/Voip/Views/CompositeViewControllers/ActiveCallOrConferenceView.swift @@ -28,6 +28,8 @@ import linphonesw let content_inset = 12.0 var callPausedByRemoteView : PausedCallOrConferenceView? = nil + var callPausedByLocalView : PausedCallOrConferenceView? = nil + var conferencePausedView : PausedCallOrConferenceView? = nil var currentCallView : ActiveCallView? = nil @@ -89,8 +91,13 @@ import linphonesw currentCallData??.isRemotelyPaused.readCurrentAndObserve { remotelyPaused in self.callPausedByRemoteView?.isHidden = remotelyPaused != true } + currentCallData??.isPaused.readCurrentAndObserve { locallyPaused in + self.callPausedByLocalView?.isHidden = locallyPaused != true + } if (currentCallData == nil) { self.callPausedByRemoteView?.isHidden = true + self.callPausedByLocalView?.isHidden = true + } else { currentCallData??.isIncoming.readCurrentAndObserve { _ in self.updateNavigation() } currentCallData??.isOutgoing.readCurrentAndObserve { _ in self.updateNavigation() } @@ -113,11 +120,25 @@ import linphonesw callPausedByRemoteView?.matchParentSideBorders().matchParentHeight().alignAbove(view:controlsView,withMargin:SharedLayoutConstants.buttons_bottom_margin).done() callPausedByRemoteView?.isHidden = true + // Paused by local (Call) + callPausedByLocalView = PausedCallOrConferenceView(iconName: "voip_conference_play_big",titleText: VoipTexts.call_locally_paused_title,subTitleText: VoipTexts.call_locally_paused_subtitle) + view.addSubview(callPausedByLocalView!) + callPausedByLocalView?.matchParentSideBorders().matchParentHeight().alignAbove(view:controlsView,withMargin:SharedLayoutConstants.buttons_bottom_margin).done() + callPausedByLocalView?.isHidden = true + callPausedByLocalView?.onClick { + CallsViewModel.shared.currentCallData.value??.togglePause() + } + + + // Conference paused - conferencePausedView = PausedCallOrConferenceView(iconName: "voip_conference_paused_big",titleText: VoipTexts.conference_paused_title,subTitleText: VoipTexts.conference_paused_subtitle) + conferencePausedView = PausedCallOrConferenceView(iconName: "voip_conference_play_big",titleText: VoipTexts.conference_paused_title,subTitleText: VoipTexts.conference_paused_subtitle) view.addSubview(conferencePausedView!) conferencePausedView?.matchParentSideBorders().matchParentHeight().alignAbove(view:controlsView,withMargin:SharedLayoutConstants.buttons_bottom_margin).done() conferencePausedView?.isHidden = true + conferencePausedView?.onClick { + ConferenceViewModel.shared.togglePlayPause() + } // Conference grid conferenceGridView = VoipConferenceGridView() @@ -161,13 +182,16 @@ import linphonesw fullScreenMutableContainerView.addSubview(conferenceAudioOnlyView!) conferenceAudioOnlyView?.matchParentDimmensions().done() conferenceAudioOnlyView?.isHidden = true - ConferenceViewModel.shared.conferenceDisplayMode.readCurrentAndObserve { (conferenceMode) in if (ConferenceViewModel.shared.conferenceExists.value == true) { self.displaySelectedConferenceLayout() } } + ConferenceViewModel.shared.isConferenceLocallyPaused.readCurrentAndObserve { (paused) in + self.conferencePausedView?.isHidden = paused != true || ConferenceViewModel.shared.conferenceExists.value != true + } + // Calls List ControlsViewModel.shared.goToCallsListEvent.observe { (_) in