diff --git a/Config/BWIBuildSettings.swift b/Config/BWIBuildSettings.swift index e527d66bd..04671e235 100644 --- a/Config/BWIBuildSettings.swift +++ b/Config/BWIBuildSettings.swift @@ -621,4 +621,7 @@ class BWIBuildSettings: NSObject { // MARK: Sessions Manager var enableNewSessionManagerByDefault = false + + // MARK: Voice Broadcast + var enableLabFeatureVoiceBroadcasts = false } diff --git a/Riot/Modules/Application/LegacyAppDelegate.m b/Riot/Modules/Application/LegacyAppDelegate.m index 100c69c31..9891eead1 100644 --- a/Riot/Modules/Application/LegacyAppDelegate.m +++ b/Riot/Modules/Application/LegacyAppDelegate.m @@ -2562,6 +2562,7 @@ NSString *const AppDelegateUniversalLinkDidChangeNotification = @"AppDelegateUni { MXLogDebug(@"[AppDelegate] showLaunchAnimation"); + /* bwi: 4782 removed by nv UIView *launchLoadingView; if (MXSDKOptions.sharedInstance.enableStartupProgress) { @@ -2569,15 +2570,8 @@ NSString *const AppDelegateUniversalLinkDidChangeNotification = @"AppDelegateUni { launchLoadingView = [BUMLaunchLoadingViewController makeView]; } else { - if (MXSDKOptions.sharedInstance.enableStartupProgress) - { - MXSession *mainSession = self.mxSessions.firstObject; - launchLoadingView = [LaunchLoadingView instantiateWithStartupProgress:mainSession.startupProgress]; - } - else - { - launchLoadingView = [LaunchLoadingView instantiateWithStartupProgress:nil]; - } + MXSession *mainSession = self.mxSessions.firstObject; + launchLoadingView = [LaunchLoadingView instantiateWithStartupProgress:mainSession.startupProgress]; [(LaunchLoadingView *) launchLoadingView updateWithTheme:ThemeService.shared.theme]; } @@ -2586,7 +2580,9 @@ NSString *const AppDelegateUniversalLinkDidChangeNotification = @"AppDelegateUni [window addSubview:launchLoadingView]; } - + */ + + /* bwi: 4782 - new code from nv MXSession *mainSession = self.mxSessions.firstObject; LaunchLoadingView *launchLoadingView = [LaunchLoadingView instantiateWithStartupProgress:mainSession.startupProgress]; @@ -2596,8 +2592,9 @@ NSString *const AppDelegateUniversalLinkDidChangeNotification = @"AppDelegateUni [window addSubview:launchLoadingView]; - launchAnimationContainerView = launchLoadingView; + launchAnimationContainerView = launchLoadingView; + */ [MXSDKOptions.sharedInstance.profiler startMeasuringTaskWithName:MXTaskProfileNameStartupLaunchScreen]; } } diff --git a/Riot/Modules/Authentication/AuthenticationCoordinator.swift b/Riot/Modules/Authentication/AuthenticationCoordinator.swift index 0ceed0374..cb10aacfd 100644 --- a/Riot/Modules/Authentication/AuthenticationCoordinator.swift +++ b/Riot/Modules/Authentication/AuthenticationCoordinator.swift @@ -635,8 +635,7 @@ final class AuthenticationCoordinator: NSObject, AuthenticationCoordinatorProtoc loadingViewController.modalPresentationStyle = .fullScreen navigationRouter.setRootModule(loadingViewController) } else { - let startupProgress: MXSessionStartupProgress? = MXSDKOptions.sharedInstance().enableStartupProgress ? session?.startupProgress : nil - let loadingViewController = LaunchLoadingViewController(startupProgress: startupProgress) + let loadingViewController = LaunchLoadingViewController(startupProgress: session?.startupProgress) loadingViewController.modalPresentationStyle = .fullScreen // Replace the navigation stack with the loading animation diff --git a/Riot/Modules/Authentication/Legacy/LegacyAuthenticationCoordinator.swift b/Riot/Modules/Authentication/Legacy/LegacyAuthenticationCoordinator.swift index b0999be31..e0c9a51b4 100644 --- a/Riot/Modules/Authentication/Legacy/LegacyAuthenticationCoordinator.swift +++ b/Riot/Modules/Authentication/Legacy/LegacyAuthenticationCoordinator.swift @@ -121,8 +121,7 @@ final class LegacyAuthenticationCoordinator: NSObject, AuthenticationCoordinator loadingViewController.modalPresentationStyle = .fullScreen navigationRouter.setRootModule(loadingViewController) } else { - let startupProgress: MXSessionStartupProgress? = MXSDKOptions.sharedInstance().enableStartupProgress ? session?.startupProgress : nil - let loadingViewController = LaunchLoadingViewController(startupProgress: startupProgress) + let loadingViewController = LaunchLoadingViewController(startupProgress: session?.startupProgress) loadingViewController.modalPresentationStyle = .fullScreen // Replace the navigation stack with the loading animation diff --git a/Riot/Modules/SetPinCode/EnterPinCode/EnterPinCodeViewController.swift b/Riot/Modules/SetPinCode/EnterPinCode/EnterPinCodeViewController.swift index e9e24480d..6c6c05569 100644 --- a/Riot/Modules/SetPinCode/EnterPinCode/EnterPinCodeViewController.swift +++ b/Riot/Modules/SetPinCode/EnterPinCode/EnterPinCodeViewController.swift @@ -88,7 +88,9 @@ final class EnterPinCodeViewController: UIViewController { inactiveLogoImageView.isHidden = true } // BWI: accessibility description + /* bwi: 4782 digitButtonReset.vc_setupAccessibilityTraitsButton(withTitle: BWIL10n.pinProtectionResetButtonAccessibilityLabel, hint: BWIL10n.pinProtectionResetButtonAccessibilityHint, isEnabled: true) + */ } override func viewWillAppear(_ animated: Bool) { diff --git a/Riot/Modules/Settings/SettingsViewController.m b/Riot/Modules/Settings/SettingsViewController.m index 7c43a0dc3..ff086336d 100644 --- a/Riot/Modules/Settings/SettingsViewController.m +++ b/Riot/Modules/Settings/SettingsViewController.m @@ -755,7 +755,6 @@ ChangePasswordCoordinatorBridgePresenterDelegate> { [sectionLabs addRowWithTag:LABS_ENABLE_LIVE_LOCATION_SHARING]; } - */ [sectionLabs addRowWithTag:LABS_ENABLE_NEW_SESSION_MANAGER]; /* bwi: disabled for our apps [sectionLabs addRowWithTag:LABS_ENABLE_NEW_CLIENT_INFO_FEATURE]; diff --git a/RiotSwiftUI/Modules/Room/TimelinePoll/Coordinator/TimelinePollCoordinator.swift b/RiotSwiftUI/Modules/Room/TimelinePoll/Coordinator/TimelinePollCoordinator.swift index e2202524b..b033661dc 100644 --- a/RiotSwiftUI/Modules/Room/TimelinePoll/Coordinator/TimelinePollCoordinator.swift +++ b/RiotSwiftUI/Modules/Room/TimelinePoll/Coordinator/TimelinePollCoordinator.swift @@ -29,6 +29,7 @@ final class TimelinePollCoordinator: Coordinator, Presentable, PollAggregatorDel // MARK: Private + private let navigationRouter: NavigationRouterType? private let parameters: TimelinePollCoordinatorParameters private let selectedAnswerIdentifiersSubject = PassthroughSubject<[String], Never>() @@ -43,10 +44,11 @@ final class TimelinePollCoordinator: Coordinator, Presentable, PollAggregatorDel // MARK: - Setup - init(parameters: TimelinePollCoordinatorParameters) throws { + init(parameters: TimelinePollCoordinatorParameters, navigationRouter: NavigationRouterType? = nil) throws { self.parameters = parameters - viewModel = TimelinePollViewModel(timelinePollDetailsState: .loading) + self.navigationRouter = navigationRouter + viewModel = TimelinePollViewModel(timelinePollDetailsState: .loading) try pollAggregator = PollAggregator(session: parameters.session, room: parameters.room, pollEvent: parameters.pollEvent, delegate: self) viewModel.completion = { [weak self] result in @@ -55,6 +57,9 @@ final class TimelinePollCoordinator: Coordinator, Presentable, PollAggregatorDel switch result { case .selectedAnswerOptionsWithIdentifiers(let identifiers): self.selectedAnswerIdentifiersSubject.send(identifiers) + case .showParticipants: + self.showParticipantsView() + } } @@ -104,6 +109,23 @@ final class TimelinePollCoordinator: Coordinator, Presentable, PollAggregatorDel } } + func showParticipantsView() { + if let navigationRouter = navigationRouter, let poll = pollAggregator.poll { + let parameters = PollParticipantDetailsCoordinatorParameters(room: parameters.room, poll: poll) + let coordinator = PollParticipantDetailsCoordinator(parameters: parameters) + + add(childCoordinator: coordinator) + + if navigationRouter.modules.isEmpty == false { + navigationRouter.push(coordinator, animated: true, popCompletion: nil) + } else { + navigationRouter.setRootModule(coordinator, popCompletion: nil) + } + + coordinator.start() + } + } + // MARK: - PollAggregatorDelegate func pollAggregatorDidUpdateData(_ aggregator: PollAggregator) { @@ -142,7 +164,8 @@ extension TimelinePollDetails { text: pollAnswerOption.text, count: pollAnswerOption.count, winner: pollAnswerOption.isWinner, - selected: pollAnswerOption.isCurrentUserSelection) + selected: pollAnswerOption.isCurrentUserSelection, + voters:pollAnswerOption.voters) } self.init(id: poll.id, @@ -152,6 +175,7 @@ extension TimelinePollDetails { startDate: poll.startDate, totalAnswerCount: poll.totalAnswerCount, type: poll.kind.timelinePollType, + showParticipants: poll.showParticipants, eventType: eventType, maxAllowedSelections: poll.maxAllowedSelections, hasBeenEdited: poll.hasBeenEdited,