Compare commits

..

2 commits

Author SHA1 Message Date
Christophe Deschamps
0179c12b07 Moved to SPM stable branch (release/5.4 sdk) 2025-03-25 16:42:50 +01:00
Christophe Deschamps
03bd42d750 Move from Pod to SPM for linphone-sdk 2025-03-25 13:50:00 +00:00
29 changed files with 136 additions and 176 deletions

View file

@ -7,7 +7,7 @@
objects = { objects = {
/* Begin PBXBuildFile section */ /* Begin PBXBuildFile section */
4ED1F0A881A9ACB5977A8987 /* (null) in Frameworks */ = {isa = PBXBuildFile; }; 4ED1F0A881A9ACB5977A8987 /* BuildFile in Frameworks */ = {isa = PBXBuildFile; };
660AAF7F2B839272004C0FA6 /* msgNotificationService.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 660AAF7B2B839271004C0FA6 /* msgNotificationService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 660AAF7F2B839272004C0FA6 /* msgNotificationService.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = 660AAF7B2B839271004C0FA6 /* msgNotificationService.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
660D8A712B517D260092694D /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 660D8A702B517D260092694D /* GoogleService-Info.plist */; }; 660D8A712B517D260092694D /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 660D8A702B517D260092694D /* GoogleService-Info.plist */; };
6613A0AE2BAEB7DF008923A4 /* MeetingFragment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6613A0AD2BAEB7DF008923A4 /* MeetingFragment.swift */; }; 6613A0AE2BAEB7DF008923A4 /* MeetingFragment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6613A0AD2BAEB7DF008923A4 /* MeetingFragment.swift */; };
@ -43,6 +43,8 @@
66FBFC4B2B83BD7B00BC6AB1 /* CoreExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66C491FA2B24D32600CEA16D /* CoreExtension.swift */; }; 66FBFC4B2B83BD7B00BC6AB1 /* CoreExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66C491FA2B24D32600CEA16D /* CoreExtension.swift */; };
66FDB7812C7C689A00561566 /* EventEditViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66FDB7802C7C689A00561566 /* EventEditViewController.swift */; }; 66FDB7812C7C689A00561566 /* EventEditViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 66FDB7802C7C689A00561566 /* EventEditViewController.swift */; };
C60E8F192C0F649200A06DB8 /* UIApplicationExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C60E8F182C0F649200A06DB8 /* UIApplicationExtension.swift */; }; C60E8F192C0F649200A06DB8 /* UIApplicationExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C60E8F182C0F649200A06DB8 /* UIApplicationExtension.swift */; };
C618BF562D75CA03005A00E0 /* linphonesw in Frameworks */ = {isa = PBXBuildFile; productRef = C618BF552D75CA03005A00E0 /* linphonesw */; };
C618BF582D75CA0D005A00E0 /* linphonesw in Frameworks */ = {isa = PBXBuildFile; productRef = C618BF572D75CA0D005A00E0 /* linphonesw */; };
C62817282C1B389700DBA646 /* SideMenuAccountRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = C62817272C1B389700DBA646 /* SideMenuAccountRow.swift */; }; C62817282C1B389700DBA646 /* SideMenuAccountRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = C62817272C1B389700DBA646 /* SideMenuAccountRow.swift */; };
C628172E2C1C3A3600DBA646 /* AccountExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C628172D2C1C3A3600DBA646 /* AccountExtension.swift */; }; C628172E2C1C3A3600DBA646 /* AccountExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C628172D2C1C3A3600DBA646 /* AccountExtension.swift */; };
C62817302C1C3DCC00DBA646 /* AccountModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C628172F2C1C3DCC00DBA646 /* AccountModel.swift */; }; C62817302C1C3DCC00DBA646 /* AccountModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C628172F2C1C3DCC00DBA646 /* AccountModel.swift */; };
@ -405,6 +407,7 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
C618BF582D75CA0D005A00E0 /* linphonesw in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -412,7 +415,8 @@
isa = PBXFrameworksBuildPhase; isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
4ED1F0A881A9ACB5977A8987 /* (null) in Frameworks */, C618BF562D75CA03005A00E0 /* linphonesw in Frameworks */,
4ED1F0A881A9ACB5977A8987 /* BuildFile in Frameworks */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -1066,7 +1070,7 @@
}; };
}; };
}; };
buildConfigurationList = D719ABAE2ABC67BF00B41C10 /* Build configuration list for PBXProject "Linphone" */; buildConfigurationList = D719ABAE2ABC67BF00B41C10 /* Build configuration list for PBXProject "linphone" */;
compatibilityVersion = "Xcode 14.0"; compatibilityVersion = "Xcode 14.0";
developmentRegion = en; developmentRegion = en;
hasScannedForEncodings = 0; hasScannedForEncodings = 0;
@ -1075,6 +1079,9 @@
Base, Base,
); );
mainGroup = D719ABAA2ABC67BF00B41C10; mainGroup = D719ABAA2ABC67BF00B41C10;
packageReferences = (
C618BF542D75CA03005A00E0 /* XCRemoteSwiftPackageReference "linphone-sdk-swift-ios" */,
);
productRefGroup = D719ABB42ABC67BF00B41C10 /* Products */; productRefGroup = D719ABB42ABC67BF00B41C10 /* Products */;
projectDirPath = ""; projectDirPath = "";
projectRoot = ""; projectRoot = "";
@ -1709,7 +1716,7 @@
defaultConfigurationIsVisible = 0; defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
D719ABAE2ABC67BF00B41C10 /* Build configuration list for PBXProject "Linphone" */ = { D719ABAE2ABC67BF00B41C10 /* Build configuration list for PBXProject "linphone" */ = {
isa = XCConfigurationList; isa = XCConfigurationList;
buildConfigurations = ( buildConfigurations = (
D719ABC02ABC67BF00B41C10 /* Debug */, D719ABC02ABC67BF00B41C10 /* Debug */,
@ -1728,6 +1735,30 @@
defaultConfigurationName = Release; defaultConfigurationName = Release;
}; };
/* End XCConfigurationList section */ /* End XCConfigurationList section */
/* Begin XCRemoteSwiftPackageReference section */
C618BF542D75CA03005A00E0 /* XCRemoteSwiftPackageReference "linphone-sdk-swift-ios" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://gitlab.linphone.org/BC/public/linphone-sdk-swift-ios.git";
requirement = {
branch = stable;
kind = branch;
};
};
/* End XCRemoteSwiftPackageReference section */
/* Begin XCSwiftPackageProductDependency section */
C618BF552D75CA03005A00E0 /* linphonesw */ = {
isa = XCSwiftPackageProductDependency;
package = C618BF542D75CA03005A00E0 /* XCRemoteSwiftPackageReference "linphone-sdk-swift-ios" */;
productName = linphonesw;
};
C618BF572D75CA0D005A00E0 /* linphonesw */ = {
isa = XCSwiftPackageProductDependency;
package = C618BF542D75CA03005A00E0 /* XCRemoteSwiftPackageReference "linphone-sdk-swift-ios" */;
productName = linphonesw;
};
/* End XCSwiftPackageProductDependency section */
}; };
rootObject = D719ABAB2ABC67BF00B41C10 /* Project object */; rootObject = D719ABAB2ABC67BF00B41C10 /* Project object */;
} }

View file

@ -17,7 +17,7 @@
BlueprintIdentifier = "D719ABB22ABC67BF00B41C10" BlueprintIdentifier = "D719ABB22ABC67BF00B41C10"
BuildableName = "Linphone.app" BuildableName = "Linphone.app"
BlueprintName = "Linphone" BlueprintName = "Linphone"
ReferencedContainer = "container:Linphone.xcodeproj"> ReferencedContainer = "container:linphone.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildActionEntry> </BuildActionEntry>
</BuildActionEntries> </BuildActionEntries>
@ -46,7 +46,7 @@
BlueprintIdentifier = "D719ABB22ABC67BF00B41C10" BlueprintIdentifier = "D719ABB22ABC67BF00B41C10"
BuildableName = "Linphone.app" BuildableName = "Linphone.app"
BlueprintName = "Linphone" BlueprintName = "Linphone"
ReferencedContainer = "container:Linphone.xcodeproj"> ReferencedContainer = "container:linphone.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildableProductRunnable> </BuildableProductRunnable>
</LaunchAction> </LaunchAction>
@ -63,7 +63,7 @@
BlueprintIdentifier = "D719ABB22ABC67BF00B41C10" BlueprintIdentifier = "D719ABB22ABC67BF00B41C10"
BuildableName = "Linphone.app" BuildableName = "Linphone.app"
BlueprintName = "Linphone" BlueprintName = "Linphone"
ReferencedContainer = "container:Linphone.xcodeproj"> ReferencedContainer = "container:linphone.xcodeproj">
</BuildableReference> </BuildableReference>
</BuildableProductRunnable> </BuildableProductRunnable>
</ProfileAction> </ProfileAction>

View file

@ -26,6 +26,7 @@ import linphone // needed for unwrapped function linphone_core_set_push_and_app_
import Combine import Combine
import UniformTypeIdentifiers import UniformTypeIdentifiers
import Network import Network
import SwiftUI
#if USE_CRASHLYTICS #if USE_CRASHLYTICS
import Firebase import Firebase

View file

@ -20,6 +20,7 @@
import Foundation import Foundation
import linphonesw import linphonesw
import Combine import Combine
import SwiftUI
// swiftlint:disable line_length // swiftlint:disable line_length
// swiftlint:disable type_body_length // swiftlint:disable type_body_length

View file

@ -2031,17 +2031,21 @@ struct CallView: View {
if callViewModel.isOneOneCall { if callViewModel.isOneOneCall {
VStack { VStack {
Button { Button {
withAnimation { if callViewModel.callsCounter < 2 {
callViewModel.isTransferInsteadCall = true withAnimation {
MagicSearchSingleton.shared.searchForSuggestions() callViewModel.isTransferInsteadCall = true
isShowStartCallFragment.toggle() MagicSearchSingleton.shared.searchForSuggestions()
} isShowStartCallFragment.toggle()
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
telecomManager.callStarted = false
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
telecomManager.callStarted = true
} }
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
telecomManager.callStarted = false
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
telecomManager.callStarted = true
}
}
} else {
callViewModel.transferClicked()
} }
} label: { } label: {
HStack { HStack {
@ -2057,7 +2061,7 @@ struct CallView: View {
.background(Color.gray500) .background(Color.gray500)
.cornerRadius(40) .cornerRadius(40)
Text("call_action_blind_transfer") Text(callViewModel.callsCounter < 2 ? "call_action_blind_transfer" : "call_action_attended_transfer")
.foregroundStyle(.white) .foregroundStyle(.white)
.default_text_style(styleSize: 15) .default_text_style(styleSize: 15)
} }
@ -2398,17 +2402,21 @@ struct CallView: View {
if callViewModel.isOneOneCall { if callViewModel.isOneOneCall {
VStack { VStack {
Button { Button {
withAnimation { if callViewModel.callsCounter < 2 {
callViewModel.isTransferInsteadCall = true withAnimation {
MagicSearchSingleton.shared.searchForSuggestions() callViewModel.isTransferInsteadCall = true
isShowStartCallFragment.toggle() MagicSearchSingleton.shared.searchForSuggestions()
} isShowStartCallFragment.toggle()
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
telecomManager.callStarted = false
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
telecomManager.callStarted = true
} }
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
telecomManager.callStarted = false
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
telecomManager.callStarted = true
}
}
} else {
callViewModel.transferClicked()
} }
} label: { } label: {
HStack { HStack {
@ -2424,7 +2432,7 @@ struct CallView: View {
.background(Color.gray500) .background(Color.gray500)
.cornerRadius(40) .cornerRadius(40)
Text("call_action_blind_transfer") Text(callViewModel.callsCounter < 2 ? "call_action_blind_transfer" : "call_action_attended_transfer")
.foregroundStyle(.white) .foregroundStyle(.white)
.default_text_style(styleSize: 15) .default_text_style(styleSize: 15)
} }

View file

@ -165,20 +165,20 @@ struct CallsListFragment: View {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) { DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
callViewModel.resetCallView() callViewModel.resetCallView()
} }
} }
}, label: { }, label: {
HStack { HStack {
HStack { HStack {
Image((callViewModel.selectedCall!.state == .PausedByRemote Image((callViewModel.selectedCall!.state == .PausedByRemote
|| callViewModel.selectedCall!.state == .Pausing || callViewModel.selectedCall!.state == .Pausing
|| callViewModel.selectedCall!.state == .Paused) ? String(localized: "call_action_resume_call") : String(localized: "call_action_pause_call")) || callViewModel.selectedCall!.state == .Paused) ? String(localized: "call_action_resume_call") : String(localized: "call_action_pause_call"))
.resizable() .resizable()
.frame(width: 30, height: 30) .frame(width: 30, height: 30)
} }
.frame(width: 35, height: 30) .frame(width: 35, height: 30)
.background(.clear) .background(.clear)
.cornerRadius(40) .cornerRadius(40)
Text((callViewModel.selectedCall!.state == .PausedByRemote Text((callViewModel.selectedCall!.state == .PausedByRemote
|| callViewModel.selectedCall!.state == .Pausing || callViewModel.selectedCall!.state == .Pausing

View file

@ -19,6 +19,7 @@
import Foundation import Foundation
import linphonesw import linphonesw
import SwiftUI
class CallMediaEncryptionModel: ObservableObject { class CallMediaEncryptionModel: ObservableObject {
var coreContext = CoreContext.shared var coreContext = CoreContext.shared

View file

@ -19,6 +19,7 @@
import Foundation import Foundation
import linphonesw import linphonesw
import SwiftUI
class SentVideoWindow: ObservableObject { class SentVideoWindow: ObservableObject {
var widthFactor: CGFloat = 1 var widthFactor: CGFloat = 1

View file

@ -19,6 +19,7 @@
import Foundation import Foundation
import linphonesw import linphonesw
import SwiftUI
class ParticipantModel: ObservableObject { class ParticipantModel: ObservableObject {

View file

@ -21,6 +21,7 @@ import SwiftUI
import linphonesw import linphonesw
import AVFAudio import AVFAudio
import Combine import Combine
import SwiftUI
// swiftlint:disable line_length // swiftlint:disable line_length
// swiftlint:disable type_body_length // swiftlint:disable type_body_length

View file

@ -19,6 +19,7 @@
import linphonesw import linphonesw
import Combine import Combine
import SwiftUI
// swiftlint:disable line_length // swiftlint:disable line_length
class ContactViewModel: ObservableObject { class ContactViewModel: ObservableObject {

View file

@ -18,6 +18,7 @@
*/ */
import linphonesw import linphonesw
import SwiftUI
class ContactsListViewModel: ObservableObject { class ContactsListViewModel: ObservableObject {

View file

@ -18,6 +18,7 @@
*/ */
import linphonesw import linphonesw
import SwiftUI
class EditContactViewModel: ObservableObject { class EditContactViewModel: ObservableObject {

View file

@ -18,6 +18,7 @@
*/ */
import linphonesw import linphonesw
import SwiftUI
class FavoriteContactsListViewModel: ObservableObject { class FavoriteContactsListViewModel: ObservableObject {

View file

@ -19,6 +19,7 @@
import linphonesw import linphonesw
import Combine import Combine
import SwiftUI
// swiftlint:disable line_length // swiftlint:disable line_length
class ConversationForwardMessageViewModel: ObservableObject { class ConversationForwardMessageViewModel: ObservableObject {

View file

@ -20,6 +20,7 @@
import Foundation import Foundation
import linphonesw import linphonesw
import Combine import Combine
import SwiftUI
// swiftlint:disable line_length // swiftlint:disable line_length
class ConversationsListViewModel: ObservableObject { class ConversationsListViewModel: ObservableObject {

View file

@ -19,6 +19,7 @@
import linphonesw import linphonesw
import Combine import Combine
import SwiftUI
// swiftlint:disable line_length // swiftlint:disable line_length
class StartConversationViewModel: ObservableObject { class StartConversationViewModel: ObservableObject {

View file

@ -18,6 +18,7 @@
*/ */
import linphonesw import linphonesw
import SwiftUI
class HelpViewModel: ObservableObject { class HelpViewModel: ObservableObject {
private let TAG = "[HelpViewModel]" private let TAG = "[HelpViewModel]"

View file

@ -96,98 +96,6 @@ struct StartCallFragment: View {
.background(.white) .background(.white)
VStack(spacing: 0) { VStack(spacing: 0) {
if callViewModel.isTransferInsteadCall {
VStack {
HStack(alignment: .center) {
Text("contacts_list_all_contacts_title")
.default_text_style_800(styleSize: 16)
Spacer()
}
.padding(.vertical, 10)
.padding(.horizontal, 16)
if callViewModel.calls.count > 1 {
ForEach(0..<callViewModel.calls.count, id: \.self) { index in
HStack {
HStack {
if callViewModel.calls[index].callLog != nil && callViewModel.calls[index].callLog!.remoteAddress != nil {
if callViewModel.callsContactAvatarModel[index] != nil && callViewModel.calls[index].callLog?.conferenceInfo == nil {
Avatar(contactAvatarModel: callViewModel.callsContactAvatarModel[index]!, avatarSize: 50)
} else {
VStack {
Image("users-three-square")
.renderingMode(.template)
.resizable()
.frame(width: 28, height: 28)
.foregroundStyle(Color.grayMain2c600)
}
.frame(width: 50, height: 50)
.background(Color.grayMain2c200)
.clipShape(Circle())
}
if callViewModel.calls[index].callLog?.conferenceInfo == nil {
Text(callViewModel.callsContactAvatarModel[index]!.name)
.default_text_style(styleSize: 16)
.frame(maxWidth: .infinity, alignment: .leading)
.lineLimit(1)
} else {
Text(callViewModel.calls[index].callLog!.conferenceInfo!.subject ?? String(localized: "conference_name_error"))
.default_text_style(styleSize: 16)
.frame(maxWidth: .infinity, alignment: .leading)
.lineLimit(1)
}
Spacer()
HStack {
if callViewModel.calls[index].state == .PausedByRemote
|| callViewModel.calls[index].state == .Pausing
|| callViewModel.calls[index].state == .Paused
|| callViewModel.calls[index].state == .Resuming {
Text(callViewModel.calls[index].state == .Resuming ? String(localized: "call_state_resuming") : String(localized: "call_state_paused"))
.default_text_style_300(styleSize: 14)
.frame(maxWidth: .infinity, alignment: .trailing)
.lineLimit(1)
.padding(.horizontal, 4)
Image("pause")
.resizable()
.frame(width: 25, height: 25)
} else {
Text("call_state_connected")
.default_text_style_300(styleSize: 14)
.frame(maxWidth: .infinity, alignment: .trailing)
.lineLimit(1)
.padding(.horizontal, 4)
Image("phone-call")
.resizable()
.frame(width: 25, height: 25)
}
}
}
}
}
.buttonStyle(.borderless)
.listRowInsets(EdgeInsets(top: 10, leading: 20, bottom: 10, trailing: 20))
.listRowSeparator(.hidden)
.background(.white)
.onTapGesture {
}
}
} else {
HStack(alignment: .center) {
Text("contacts_list_all_contacts_title")
.default_text_style_800(styleSize: 16)
}
.padding(.vertical, 10)
.padding(.horizontal, 16)
}
}
}
ZStack(alignment: .trailing) { ZStack(alignment: .trailing) {
TextField("history_call_start_search_bar_filter_hint", text: $startCallViewModel.searchField) TextField("history_call_start_search_bar_filter_hint", text: $startCallViewModel.searchField)
.default_text_style(styleSize: 15) .default_text_style(styleSize: 15)
@ -262,44 +170,41 @@ struct StartCallFragment: View {
.padding(.vertical) .padding(.vertical)
.padding(.horizontal) .padding(.horizontal)
NavigationLink(destination: {
if !callViewModel.isTransferInsteadCall { StartGroupCallFragment(startCallViewModel: startCallViewModel)
NavigationLink(destination: { }, label: {
StartGroupCallFragment(startCallViewModel: startCallViewModel) HStack {
}, label: { HStack(alignment: .center) {
HStack { Image("meetings")
HStack(alignment: .center) {
Image("meetings")
.renderingMode(.template)
.resizable()
.foregroundStyle(.white)
.frame(width: 20, height: 20, alignment: .leading)
}
.padding(16)
.background(Color.orangeMain500)
.cornerRadius(40)
Text("history_call_start_create_group_call")
.foregroundStyle(.black)
.default_text_style_800(styleSize: 16)
Spacer()
Image("caret-right")
.renderingMode(.template) .renderingMode(.template)
.resizable() .resizable()
.foregroundStyle(Color.grayMain2c500) .foregroundStyle(.white)
.frame(width: 25, height: 25, alignment: .leading) .frame(width: 20, height: 20, alignment: .leading)
} }
}) .padding(16)
.padding(.vertical, 10) .background(Color.orangeMain500)
.padding(.horizontal, 20) .cornerRadius(40)
.background(
LinearGradient(gradient: Gradient(colors: [.grayMain2c100, .white]), startPoint: .leading, endPoint: .trailing) Text("history_call_start_create_group_call")
.padding(.vertical, 10) .foregroundStyle(.black)
.padding(.horizontal, 40) .default_text_style_800(styleSize: 16)
)
} Spacer()
Image("caret-right")
.renderingMode(.template)
.resizable()
.foregroundStyle(Color.grayMain2c500)
.frame(width: 25, height: 25, alignment: .leading)
}
})
.padding(.vertical, 10)
.padding(.horizontal, 20)
.background(
LinearGradient(gradient: Gradient(colors: [.grayMain2c100, .white]), startPoint: .leading, endPoint: .trailing)
.padding(.vertical, 10)
.padding(.horizontal, 40)
)
ScrollView { ScrollView {
if !ContactsManager.shared.lastSearch.isEmpty { if !ContactsManager.shared.lastSearch.isEmpty {

View file

@ -19,6 +19,7 @@
import linphonesw import linphonesw
import Combine import Combine
import SwiftUI
class HistoryListViewModel: ObservableObject { class HistoryListViewModel: ObservableObject {

View file

@ -19,6 +19,7 @@
import linphonesw import linphonesw
import Combine import Combine
import SwiftUI
// swiftlint:disable line_length // swiftlint:disable line_length
class StartCallViewModel: ObservableObject { class StartCallViewModel: ObservableObject {

View file

@ -18,6 +18,7 @@
*/ */
import linphonesw import linphonesw
import SwiftUI
class MeetingModel: ObservableObject { class MeetingModel: ObservableObject {

View file

@ -18,6 +18,7 @@
*/ */
import linphonesw import linphonesw
import SwiftUI
class AccountProfileViewModel: ObservableObject { class AccountProfileViewModel: ObservableObject {

View file

@ -18,6 +18,7 @@
*/ */
import linphonesw import linphonesw
import SwiftUI
class AccountSettingsViewModel: ObservableObject { class AccountSettingsViewModel: ObservableObject {

View file

@ -18,6 +18,7 @@
*/ */
import linphonesw import linphonesw
import SwiftUI
class SettingsViewModel: ObservableObject { class SettingsViewModel: ObservableObject {

View file

@ -18,6 +18,7 @@
*/ */
import linphonesw import linphonesw
import SwiftUI
class SharedMainViewModel: ObservableObject { class SharedMainViewModel: ObservableObject {

View file

@ -96,7 +96,7 @@ class Log: LoggingServiceDelegate {
#endif #endif
} }
func onLogMessageWritten(logService: linphonesw.LoggingService, domain: String, level: linphonesw.LogLevel, message: String) { func onLogMessageWritten(logService: LoggingService, domain: String, level: LogLevel, message: String) {
output(message, level.rawValue, domain) output(message, level.rawValue, domain)
} }

View file

@ -19,6 +19,7 @@
import linphonesw import linphonesw
import Combine import Combine
import SwiftUI
final class MagicSearchSingleton: ObservableObject { final class MagicSearchSingleton: ObservableObject {

View file

@ -4,12 +4,6 @@ source "https://gitlab.linphone.org/BC/public/podspec.git"
source "https://github.com/CocoaPods/Specs.git" source "https://github.com/CocoaPods/Specs.git"
def basic_pods def basic_pods
if ENV['PODFILE_PATH'].nil?
pod 'linphone-sdk', '~> 5.4.0-alpha'
else
pod 'linphone-sdk', :path => ENV['PODFILE_PATH'] # local sdk
end
crashlytics crashlytics
end end