Move any visible account settings into AccountSettings. (#6308)

* Remove the now unused setting to disable in-app notifications.

* Move visible account settings into AccountSettings.

Have ignored enableNotifications for now as that will require reworking the NotificationManager.

* Allow different sounds to be selected for each account.

* Move defaultNotificationTone into AccountSettings.
This commit is contained in:
Doug
2026-10-13 15:21:13 +01:00
committed by GitHub
parent 011087baf5
commit ac29354b08
37 changed files with 240 additions and 151 deletions
@@ -467,10 +467,28 @@ class AppCoordinator: AppCoordinatorProtocol, AuthenticationFlowCoordinatorDeleg
MXLog.info("Migrating to version 25.07.4, log files have been moved.")
}
if oldVersion < Version(26, 10, 2) {
MXLog.info("Migrating to version 26.10.2, moving notification sounds.")
let soundsDirectory = URL.libraryDirectory.appending(component: "Sounds", directoryHint: .isDirectory)
// Sounds are now referenced directly, the duplicate file can go.
try? FileManager.default.removeItem(at: soundsDirectory.appending(component: "currentAlert.caf"))
let oldCustomTonesLocation = soundsDirectory.appending(component: "AvailableSounds", directoryHint: .isDirectory)
if FileManager.default.fileExists(atPath: oldCustomTonesLocation.path(percentEncoded: false)) {
do {
try FileManager.default.moveItem(at: oldCustomTonesLocation, to: URL.customTonesDirectory)
} catch {
MXLog.error("Failed moving custom notification sounds: \(error)")
}
}
}
// Store the old version to run additional migrations on the user session once it has been set up.
userSessionMigrationsOldVersion = oldVersion
}
// swiftlint:disable:next cyclomatic_complexity
private func performUserSessionMigrations(_ userSession: UserSessionProtocol) async {
guard let oldVersion = userSessionMigrationsOldVersion else { return }
@@ -515,6 +533,23 @@ class AppCoordinator: AppCoordinatorProtocol, AuthenticationFlowCoordinatorDeleg
userSession.userSettings.account.migrateAppSettingsValue(\.searchBreadcrumbsKey)
}
if oldVersion < Version(26, 10, 2) {
MXLog.info("Migrating to version 26.10.2, moving visible account settings.")
userSession.userSettings.account.migrateAppSettingsValue(\.showAllRoomListActivityKey)
userSession.userSettings.account.migrateAppSettingsValue(\.selectedNotificationToneKey)
userSession.userSettings.account.migrateAppSettingsValue(\.sharePresenceKey)
// Make sure system notification sounds are available in the new directory.
if let selectedNotificationTone = userSession.userSettings.account.selectedNotificationTone {
do {
MXLog.info("Copying the selected system notification sound.")
try NotificationToneManager.copySystemToneIfNeeded(selectedNotificationTone)
} catch {
MXLog.error("Failed migrating the selected notification sound: \(error)")
}
}
}
userSessionMigrationsOldVersion = nil
}