/* Copyright 2024 New Vector Ltd. Copyright 2017 Vector Creations Ltd Copyright 2016 OpenMarket Ltd SPDX-License-Identifier: AGPL-3.0-only Please see LICENSE in the repository root for full details. */ #import "AttachmentsViewController.h" #import "GeneratedInterface-Swift.h" @interface AttachmentsViewController () { // Observe kThemeServiceDidChangeThemeNotification to handle user interface theme change. id kThemeServiceDidChangeThemeNotificationObserver; } @end @implementation AttachmentsViewController #pragma mark - - (void)finalizeInit { [super finalizeInit]; // Setup `MXKViewControllerHandling` properties. self.enableBarTintColorStatusChange = NO; self.rageShakeManager = [RageShakeManager sharedManager]; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. self.attachmentsCollection.accessibilityIdentifier =@"AttachmentsVC"; // Observe user interface theme change. kThemeServiceDidChangeThemeNotificationObserver = [[NSNotificationCenter defaultCenter] addObserverForName:kThemeServiceDidChangeThemeNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification *notif) { [self userInterfaceThemeDidChange]; }]; [self userInterfaceThemeDidChange]; } - (void)userInterfaceThemeDidChange { [ThemeService.shared.theme applyStyleOnNavigationBar:self.navigationBar]; // Remove the background effect as that won't match the container. self.navigationBar.standardAppearance.backgroundEffect = nil; self.navigationBar.standardAppearance.backgroundColor = ThemeService.shared.theme.colors.system; self.navigationBarContainer.backgroundColor = ThemeService.shared.theme.colors.system; self.view.backgroundColor = ThemeService.shared.theme.backgroundColor; self.activityIndicator.backgroundColor = ThemeService.shared.theme.overlayBackgroundColor; self.backButton.tintColor = ThemeService.shared.theme.tintColor; [self setNeedsStatusBarAppearanceUpdate]; } - (UIStatusBarStyle)preferredStatusBarStyle { return ThemeService.shared.theme.statusBarStyle; } - (void)destroy { [super destroy]; if (kThemeServiceDidChangeThemeNotificationObserver) { [[NSNotificationCenter defaultCenter] removeObserver:kThemeServiceDidChangeThemeNotificationObserver]; kThemeServiceDidChangeThemeNotificationObserver = nil; } } - (void)dismissViewControllerAnimated:(BOOL)flag completion:(void (^)(void))completion { BOOL animated = flag && !self.presentingViewController.presentingViewController; [super dismissViewControllerAnimated:animated completion:completion]; } @end