mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 12:07:55 +00:00
7adc963cf9
The rebase onto release/26.09.1 moved three things the fork depends on. Upstream now owns a UserProfileScreenHook of its own (#5980), which rewrites a screen's view state rather than injecting a view. The fork's section hook keeps its behaviour under the fork-only name ExtendedProfileSectionHook, so both can live side by side and upstream's file stays untouched. Upstream's new @AppHook macro generates the same register<Name> methods, so registration is unchanged. UserProfileScreenCoordinatorParameters lost appSettings and reordered its arguments, and UserDetailsEditScreenCoordinator now publishes its own UserDetailsEditScreenCoordinatorAction instead of borrowing the room one (#5893). The members flow and the profile editor follow both. AppSettings.override gained oAuthClientURIPath (#5934), whose default appends apps/ios to the website URL. HealthChat passes nil to keep the registered client_uri at https://healthchat.ch exactly as the shipped build has it — changing what the app registers with MAS is not a side effect a rebase should have.
43 lines
2.7 KiB
Swift
43 lines
2.7 KiB
Swift
//
|
|
// Copyright 2026 Novaloop AG
|
|
//
|
|
// SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial.
|
|
// Please see LICENSE files in the repository root for full details.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
/// Pins HealthChat's server, OIDC and push configuration by overriding `AppSettings` at startup.
|
|
///
|
|
/// - `accountProviders` / `allowOtherAccountProviders` lock every user to `healthchat.ch` (the server name;
|
|
/// `.well-known` delegates to `matrix.healthchat.ch`) and hide the change-server / create-account UI.
|
|
/// - `oAuthRedirectURL` uses the app's own URL scheme so the OIDC/MAS callback needs no associated domain.
|
|
/// - Legacy `element.io` help/encryption/copyright URLs are passed through unchanged for now.
|
|
struct HealthChatAppSettingsHook: AppSettingsHookProtocol {
|
|
func configure(_ appSettings: AppSettings) -> AppSettings {
|
|
appSettings.override(accountProviders: ["healthchat.ch"],
|
|
allowOtherAccountProviders: false,
|
|
hideBrandChrome: false,
|
|
pushGatewayBaseURL: "https://sygnal.healthchat.ch",
|
|
oAuthRedirectURL: "ch.healthchat.element:/oauth/callback",
|
|
// nil keeps the registered client_uri at the bare website URL, as shipped before upstream's `apps/ios` default.
|
|
oAuthClientURIPath: nil,
|
|
websiteURL: "https://healthchat.ch",
|
|
logoURL: "https://app.healthchat.ch/themes/element/img/logos/element-logo.png",
|
|
copyrightURL: appSettings.copyrightURL,
|
|
acceptableUseURL: "https://www.healthchat.ch/datenschutz",
|
|
privacyURL: "https://www.healthchat.ch/datenschutz",
|
|
encryptionURL: appSettings.encryptionURL,
|
|
deviceVerificationURL: appSettings.deviceVerificationURL,
|
|
chatBackupDetailsURL: appSettings.chatBackupDetailsURL,
|
|
identityPinningViolationDetailsURL: appSettings.identityPinningViolationDetailsURL,
|
|
historySharingDetailsURL: appSettings.historySharingDetailsURL,
|
|
elementWebHosts: ["app.healthchat.ch"],
|
|
accountProvisioningHost: appSettings.accountProvisioningHost,
|
|
bugReportApplicationID: appSettings.bugReportApplicationID,
|
|
analyticsTermsURL: appSettings.analyticsTermsURL,
|
|
mapTilerConfiguration: AppSettings.bundledMapTilerConfiguration)
|
|
return appSettings
|
|
}
|
|
}
|