FF to enable/disable focussing the event on notification tap

This commit is contained in:
Mauro Romito
2025-11-04 13:45:48 +01:00
committed by Mauro
parent b6a5e5c8a2
commit 76d24b9972
4 changed files with 11 additions and 2 deletions

View File

@@ -347,6 +347,7 @@ class AppCoordinator: AppCoordinatorProtocol, AuthenticationFlowCoordinatorDeleg
return
}
let eventID = appSettings.focusEventOnNotificationTap ? content.eventID : nil
if content.categoryIdentifier == NotificationConstants.Category.invite {
if let userSession {
userSession.clientProxy.roomsToAwait.insert(roomID)
@@ -355,8 +356,8 @@ class AppCoordinator: AppCoordinatorProtocol, AuthenticationFlowCoordinatorDeleg
}
handleAppRoute(.room(roomID: roomID, via: []))
} else if appSettings.threadsEnabled, let threadRootEventID = content.threadRootEventID {
handleAppRoute(.thread(roomID: roomID, threadRootEventID: threadRootEventID, focusEventID: content.eventID))
} else if let eventID = content.eventID {
handleAppRoute(.thread(roomID: roomID, threadRootEventID: threadRootEventID, focusEventID: eventID))
} else if let eventID {
handleAppRoute(.event(eventID: eventID, roomID: roomID, via: []))
} else {
handleAppRoute(.room(roomID: roomID, via: []))

View File

@@ -66,6 +66,7 @@ final class AppSettings {
case linkPreviewsEnabled
case latestEventSorterEnabled
case spaceSettingsEnabled
case focusEventOnNotificationTap
// Doug's tweaks 🔧
case hideUnreadMessagesBadge
@@ -390,6 +391,9 @@ final class AppSettings {
@UserPreference(key: UserDefaultsKeys.threadsEnabled, defaultValue: false, storageType: .userDefaults(store))
var threadsEnabled
@UserPreference(key: UserDefaultsKeys.focusEventOnNotificationTap, defaultValue: false, storageType: .userDefaults(store))
var focusEventOnNotificationTap
@UserPreference(key: UserDefaultsKeys.spaceSettingsEnabled, defaultValue: false, storageType: .userDefaults(store))
var spaceSettingsEnabled

View File

@@ -43,6 +43,7 @@ protocol DeveloperOptionsProtocol: AnyObject {
var enableOnlySignedDeviceIsolationMode: Bool { get set }
var enableKeyShareOnInvite: Bool { get set }
var hideQuietNotificationAlerts: Bool { get set }
var focusEventOnNotificationTap: Bool { get set }
var hideUnreadMessagesBadge: Bool { get set }
var elementCallBaseURLOverride: URL? { get set }

View File

@@ -121,6 +121,9 @@ struct DeveloperOptionsScreen: View {
Text("Hide quiet alerts")
Text("The badge count will still be updated")
}
Toggle(isOn: $context.focusEventOnNotificationTap) {
Text("Focus event on notification tap")
}
}
Section {