forked from mirrors/linphone-iphone
SDK update & Layout API adjustement on Video Conference
This commit is contained in:
parent
08ce19533b
commit
64a290ac4a
7 changed files with 79 additions and 40 deletions
|
|
@ -80,7 +80,7 @@ import linphonesw
|
|||
switch (layout!) {
|
||||
case .Grid: icon = "voip_conference_mosaic"; break
|
||||
case .ActiveSpeaker: icon = "voip_conference_active_speaker"; break
|
||||
case .Legacy: icon = "voip_conference_audio_only"; break
|
||||
// Todo audio only case .Legacy: icon = "voip_conference_audio_only"; break
|
||||
}
|
||||
layoutPicker.applyTintedIcons(tintedIcons: [UIButton.State.normal.rawValue : TintableIcon(name: icon ,tintColor: LightDarkColor(.white,.white))])
|
||||
}
|
||||
|
|
|
|||
|
|
@ -194,7 +194,7 @@ class ConferenceViewModel {
|
|||
ControlsViewModel.shared.updateUI()
|
||||
}
|
||||
Core.get().micEnabled = ConferenceWaitingRoomViewModel.sharedModel.isMicrophoneMuted.value != true
|
||||
conference.layout = ConferenceWaitingRoomViewModel.sharedModel.joinLayout.value!
|
||||
changeLayout(layout: ConferenceWaitingRoomViewModel.sharedModel.joinLayout.value!)
|
||||
updateConferenceLayout(conference: conference)
|
||||
}
|
||||
|
||||
|
|
@ -239,19 +239,25 @@ class ConferenceViewModel {
|
|||
|
||||
func changeLayout(layout: ConferenceLayout) {
|
||||
Log.i("[Conference] Trying to change conference layout to $layout")
|
||||
if let conference = conference.value {
|
||||
conference.layout = layout
|
||||
updateConferenceLayout(conference: conference)
|
||||
if let conference = conference.value, let call = conference.call, let params = try?call.core?.createCallParams(call: call) {
|
||||
params.videoEnabled = true // TODO AUdioLonly layout != ConferenceDisplayMode.AUDIO_ONLY
|
||||
params.conferenceVideoLayout = layout
|
||||
try?call.update(params: params)
|
||||
conferenceDisplayMode.value = layout
|
||||
let list = sortDevicesDataList(devices: conferenceParticipantDevices.value!)
|
||||
conferenceParticipantDevices.value = list
|
||||
} else {
|
||||
Log.e("[Conference] Conference is null in ConferenceViewModel")
|
||||
Log.e("[Conference] Conference or Call Or Call Params is null in ConferenceViewModel")
|
||||
}
|
||||
}
|
||||
|
||||
private func updateConferenceLayout(conference: Conference) {
|
||||
conferenceDisplayMode.value = conference.layout == .Legacy ? .Grid : conference.layout
|
||||
let list = sortDevicesDataList(devices: conferenceParticipantDevices.value!)
|
||||
conferenceParticipantDevices.value = list
|
||||
Log.i("[Conference] Conference current layout is: \(conference.layout)")
|
||||
if let call = conference.call, let params = call.params {
|
||||
conferenceDisplayMode.value = params.conferenceVideoLayout
|
||||
let list = sortDevicesDataList(devices: conferenceParticipantDevices.value!)
|
||||
conferenceParticipantDevices.value = list
|
||||
Log.i("[Conference] Conference current layout is: \(conferenceDisplayMode.value)")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -54,14 +54,14 @@ import linphonesw
|
|||
cell.selectionStyle = .none
|
||||
if (indexPath.row == 0) {
|
||||
cell.setOption(title: VoipTexts.conference_display_mode_mosaic, onSelectAction: {
|
||||
ConferenceViewModel.shared.conference.value?.layout = .Grid
|
||||
ConferenceViewModel.shared.changeLayout(layout: .Grid)
|
||||
ConferenceViewModel.shared.conferenceDisplayMode.value = .Grid
|
||||
}, image:(UIImage(named: "voip_conference_mosaic")?.tinted(with: VoipTheme.voipDrawableColor.get())!)!)
|
||||
cell.isUserInteractionEnabled = ConferenceViewModel.shared.conferenceParticipantDevices.value!.count <= ConferenceViewModel.shared.maxParticipantsForMosaicLayout
|
||||
}
|
||||
if (indexPath.row == 1) {
|
||||
cell.setOption(title: VoipTexts.conference_display_mode_active_speaker, onSelectAction: {
|
||||
ConferenceViewModel.shared.conference.value?.layout = .ActiveSpeaker
|
||||
ConferenceViewModel.shared.changeLayout(layout: .ActiveSpeaker)
|
||||
ConferenceViewModel.shared.conferenceDisplayMode.value = .ActiveSpeaker
|
||||
}, image:(UIImage(named: "voip_conference_active_speaker")?.tinted(with: VoipTheme.voipDrawableColor.get())!)!)
|
||||
cell.isUserInteractionEnabled = true
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ class ConferenceLayoutPickerView: UIStackView {
|
|||
addArrangedSubview(activeSpeaker)
|
||||
|
||||
let audioOnly = CallControlButton(imageInset : UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5),buttonTheme: VoipTheme.conf_waiting_room_layout_picker, onClickAction: {
|
||||
ConferenceWaitingRoomViewModel.sharedModel.joinLayout.value = .Legacy
|
||||
ConferenceWaitingRoomViewModel.sharedModel.joinLayout.value = .Grid
|
||||
ConferenceWaitingRoomViewModel.sharedModel.showLayoutPicker.value = false
|
||||
})
|
||||
audioOnly.applyTintedIcons(tintedIcons: [UIButton.State.normal.rawValue : TintableIcon(name: "voip_conference_audio_only" ,tintColor: LightDarkColor(.white,.white))])
|
||||
|
|
@ -66,7 +66,7 @@ class ConferenceLayoutPickerView: UIStackView {
|
|||
ConferenceWaitingRoomViewModel.sharedModel.joinLayout.readCurrentAndObserve { layout in
|
||||
grid.isSelected = layout == .Grid
|
||||
activeSpeaker.isSelected = layout == .ActiveSpeaker
|
||||
audioOnly.isSelected = layout == .Legacy
|
||||
audioOnly.isSelected = layout == .Grid
|
||||
}
|
||||
|
||||
let padding2 = UIView()
|
||||
|
|
|
|||
2
Podfile
2
Podfile
|
|
@ -5,7 +5,7 @@ source "https://github.com/CocoaPods/Specs.git"
|
|||
|
||||
def all_pods
|
||||
if ENV['PODFILE_PATH'].nil?
|
||||
pod 'linphone-sdk', '5.2.0-alpha.61+5e27e59a'
|
||||
pod 'linphone-sdk', '5.2.0-alpha.149+074802f6'
|
||||
else
|
||||
pod 'linphone-sdk', :path => ENV['PODFILE_PATH'] # local sdk
|
||||
end
|
||||
|
|
|
|||
|
|
@ -609,7 +609,7 @@
|
|||
63E27A321C4FECD000D332AE /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 63E27A311C4FECD000D332AE /* LaunchScreen.xib */; };
|
||||
63E27A521C50EDB000D332AE /* hold.mkv in Resources */ = {isa = PBXBuildFile; fileRef = 63E27A511C50EB2700D332AE /* hold.mkv */; };
|
||||
63E59A3F1ADE70D900646FB3 /* InAppProductsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 63E59A3E1ADE70D900646FB3 /* InAppProductsManager.m */; };
|
||||
63E802DB1C625AEF000D5509 /* (null) in Resources */ = {isa = PBXBuildFile; };
|
||||
63E802DB1C625AEF000D5509 /* BuildFile in Resources */ = {isa = PBXBuildFile; };
|
||||
63EC8D391D7438660066547B /* AssistantLinkView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 63EC8D3B1D7438660066547B /* AssistantLinkView.xib */; };
|
||||
63F1DF441BCE618E00EDED90 /* UIAddressTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = 63F1DF431BCE618E00EDED90 /* UIAddressTextField.m */; };
|
||||
63FB30351A680E73008CA393 /* UIRoundedImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = 63FB30341A680E73008CA393 /* UIRoundedImageView.m */; };
|
||||
|
|
@ -2530,7 +2530,7 @@
|
|||
path = LinphoneUI;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
29B97314FDCFA39411CA2CEA /* CustomTemplate */ = {
|
||||
29B97314FDCFA39411CA2CEA = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8C23BCB71D82AAC3005F19BB /* linphone.entitlements */,
|
||||
|
|
@ -3942,7 +3942,7 @@
|
|||
fr,
|
||||
hu,
|
||||
);
|
||||
mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */;
|
||||
mainGroup = 29B97314FDCFA39411CA2CEA;
|
||||
productRefGroup = 19C28FACFE9D520D11CA2CBB /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
|
|
@ -4009,7 +4009,7 @@
|
|||
633FEEE01D3CD55A0014B822 /* numpad_8_over~ipad@2x.png in Resources */,
|
||||
C6710FA42722B20000ED888F /* voip_single_contact_avatar.png in Resources */,
|
||||
633FEDDC1D3CD5590014B822 /* call_start_body_disabled~ipad.png in Resources */,
|
||||
63E802DB1C625AEF000D5509 /* (null) in Resources */,
|
||||
63E802DB1C625AEF000D5509 /* BuildFile in Resources */,
|
||||
633FEE2E1D3CD5590014B822 /* color_F.png in Resources */,
|
||||
C6710FA72722B20000ED888F /* voip_call_more.png in Resources */,
|
||||
633FEDC51D3CD5590014B822 /* call_hangup_disabled@2x.png in Resources */,
|
||||
|
|
@ -4814,25 +4814,58 @@
|
|||
"${BUILT_PRODUCTS_DIR}/IQKeyboardManager/IQKeyboardManager.framework",
|
||||
"${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework",
|
||||
"${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/bctoolbox-ios.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/bctoolbox-tester.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/bctoolbox.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/belcard.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/belle-sip.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/belr.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/lime.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/limetester.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/linphone.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/linphonetester.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/mediastreamer2.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/msamr.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/mscodec2.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/msopenh264.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/mssilk.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/mswebrtc.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/msx264.framework",
|
||||
"${PODS_ROOT}/linphone-sdk/linphone-sdk/apple-darwin/Frameworks/ortp.framework",
|
||||
"${BUILT_PRODUCTS_DIR}/linphone-sdk/linphonesw.framework",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/bctoolbox-ios.framework/bctoolbox-ios",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/bctoolbox-tester.framework/bctoolbox-tester",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/bctoolbox.framework/bctoolbox",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/belcard.framework/belcard",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/belle-sip.framework/belle-sip",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/belr.framework/belr",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/lime.framework/lime",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/limetester.framework/limetester",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/linphone.framework/linphone",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/linphonetester.framework/linphonetester",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/mediastreamer2.framework/mediastreamer2",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/msamr.framework/msamr",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/mscodec2.framework/mscodec2",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/msopenh264.framework/msopenh264",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/mssilk.framework/mssilk",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/mswebrtc.framework/mswebrtc",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/msx264.framework/msx264",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/ortp.framework/ortp",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/bctoolbox-ios.framework/bctoolbox-ios",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/bctoolbox-tester.framework/bctoolbox-tester",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/bctoolbox.framework/bctoolbox",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/belcard.framework/belcard",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/belle-sip.framework/belle-sip",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/belr.framework/belr",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/lime.framework/lime",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/limetester.framework/limetester",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/linphone.framework/linphone",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/linphonetester.framework/linphonetester",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/mediastreamer2.framework/mediastreamer2",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/msamr.framework/msamr",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/mscodec2.framework/mscodec2",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/msopenh264.framework/msopenh264",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/mssilk.framework/mssilk",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/mswebrtc.framework/mswebrtc",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/msx264.framework/msx264",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/all-frameworks/ortp.framework/ortp",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/app-extension/bctoolbox.framework/bctoolbox",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/app-extension/belcard.framework/belcard",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/app-extension/belle-sip.framework/belle-sip",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/app-extension/belr.framework/belr",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/app-extension/lime.framework/lime",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/app-extension/linphone.framework/linphone",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/app-extension/mediastreamer2.framework/mediastreamer2",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/app-extension/msamr.framework/msamr",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/app-extension/mscodec2.framework/mscodec2",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/app-extension/msopenh264.framework/msopenh264",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/app-extension/mssilk.framework/mssilk",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/app-extension/mswebrtc.framework/mswebrtc",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/app-extension/msx264.framework/msx264",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/app-extension/ortp.framework/ortp",
|
||||
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/basic-frameworks/bctoolbox-ios.framework/bctoolbox-ios",
|
||||
);
|
||||
name = "[CP] Embed Pods Frameworks";
|
||||
outputPaths = (
|
||||
|
|
@ -4840,6 +4873,7 @@
|
|||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IQKeyboardManager.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SVProgressHUD.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/linphonesw.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/bctoolbox-ios.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/bctoolbox-tester.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/bctoolbox.framework",
|
||||
|
|
@ -4858,7 +4892,6 @@
|
|||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/mswebrtc.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/msx264.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ortp.framework",
|
||||
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/linphonesw.framework",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
|
|
|
|||
|
|
@ -65,8 +65,8 @@
|
|||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
selectedDebuggerIdentifier = ""
|
||||
selectedLauncherIdentifier = "Xcode.IDEFoundation.Launcher.PosixSpawn"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue