element-ios/Riot/Modules/Room/Attachements/AttachmentsViewController.m

91 lines
2.7 KiB
Objective-C

/*
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