Skip to content

Commit

Permalink
Fixes #2911 - Make Element Call widget URL configurable
Browse files Browse the repository at this point in the history
  • Loading branch information
stefanceriu committed Jun 27, 2024
1 parent 82823c9 commit 5cc684b
Show file tree
Hide file tree
Showing 12 changed files with 485 additions and 33 deletions.
8 changes: 5 additions & 3 deletions ElementX/Sources/Application/AppSettings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ final class AppSettings {
case sharePresence
case hideUnreadMessagesBadge

case elementCallBaseURL
case elementCallBaseURLOverride
case elementCallEncryptionEnabled

// Feature flags
Expand Down Expand Up @@ -244,8 +244,10 @@ final class AppSettings {

// MARK: - Element Call

@UserPreference(key: UserDefaultsKeys.elementCallBaseURL, defaultValue: "https://call.element.io", storageType: .userDefaults(store))
var elementCallBaseURL: URL
let elementCallBaseURL: URL = "https://call.element.io"

@UserPreference(key: UserDefaultsKeys.elementCallBaseURLOverride, defaultValue: nil, storageType: .userDefaults(store))
var elementCallBaseURLOverride: URL?

// MARK: - Users

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -543,9 +543,11 @@ class UserSessionFlowCoordinator: FlowCoordinatorProtocol {

private func presentCallScreen(roomProxy: RoomProxyProtocol) {
let callScreenCoordinator = CallScreenCoordinator(parameters: .init(elementCallService: elementCallService,
clientProxy: userSession.clientProxy,
roomProxy: roomProxy,
callBaseURL: appSettings.elementCallBaseURL,
clientID: InfoPlistReader.main.bundleIdentifier))
clientID: InfoPlistReader.main.bundleIdentifier,
elementCallBaseURL: appSettings.elementCallBaseURL,
elementCallBaseURLOverride: appSettings.elementCallBaseURLOverride))

callScreenCoordinator.actions
.sink { [weak self] action in
Expand Down
65 changes: 65 additions & 0 deletions ElementX/Sources/Mocks/Generated/GeneratedMocks.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1994,6 +1994,7 @@ class ClientProxyMock: ClientProxyProtocol {
set(value) { underlyingHomeserver = value }
}
var underlyingHomeserver: String!
var userIDServerName: String?
var userDisplayNamePublisher: CurrentValuePublisher<String?, Never> {
get { return underlyingUserDisplayNamePublisher }
set(value) { underlyingUserDisplayNamePublisher = value }
Expand Down Expand Up @@ -3638,6 +3639,70 @@ class ClientProxyMock: ClientProxyProtocol {
return resolveRoomAliasReturnValue
}
}
//MARK: - getElementWellKnown

var getElementWellKnownUnderlyingCallsCount = 0
var getElementWellKnownCallsCount: Int {
get {
if Thread.isMainThread {
return getElementWellKnownUnderlyingCallsCount
} else {
var returnValue: Int? = nil
DispatchQueue.main.sync {
returnValue = getElementWellKnownUnderlyingCallsCount
}

return returnValue!
}
}
set {
if Thread.isMainThread {
getElementWellKnownUnderlyingCallsCount = newValue
} else {
DispatchQueue.main.sync {
getElementWellKnownUnderlyingCallsCount = newValue
}
}
}
}
var getElementWellKnownCalled: Bool {
return getElementWellKnownCallsCount > 0
}

var getElementWellKnownUnderlyingReturnValue: Result<ElementWellKnown?, ClientProxyError>!

Check failure on line 3672 in ElementX/Sources/Mocks/Generated/GeneratedMocks.swift

View workflow job for this annotation

GitHub Actions / Tests

cannot find type 'ElementWellKnown' in scope
var getElementWellKnownReturnValue: Result<ElementWellKnown?, ClientProxyError>! {
get {
if Thread.isMainThread {
return getElementWellKnownUnderlyingReturnValue
} else {
var returnValue: Result<ElementWellKnown?, ClientProxyError>? = nil
DispatchQueue.main.sync {
returnValue = getElementWellKnownUnderlyingReturnValue
}

return returnValue!
}
}
set {
if Thread.isMainThread {
getElementWellKnownUnderlyingReturnValue = newValue
} else {
DispatchQueue.main.sync {
getElementWellKnownUnderlyingReturnValue = newValue
}
}
}
}
var getElementWellKnownClosure: (() async -> Result<ElementWellKnown?, ClientProxyError>)?

Check failure on line 3696 in ElementX/Sources/Mocks/Generated/GeneratedMocks.swift

View workflow job for this annotation

GitHub Actions / Tests

cannot find type 'ElementWellKnown' in scope

func getElementWellKnown() async -> Result<ElementWellKnown?, ClientProxyError> {
getElementWellKnownCallsCount += 1
if let getElementWellKnownClosure = getElementWellKnownClosure {
return await getElementWellKnownClosure()
} else {
return getElementWellKnownReturnValue
}
}
//MARK: - ignoreUser

var ignoreUserUnderlyingCallsCount = 0
Expand Down
Loading

0 comments on commit 5cc684b

Please sign in to comment.