[go: nahoru, domu]

blob: 994f5424e99639d15fbc99fa06f55291fb5d0a6a [file] [log] [blame]
// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#import "ios/chrome/browser/ui/settings/elements/info_popover_view_controller.h"
#import "base/apple/foundation_util.h"
#import "base/strings/sys_string_conversions.h"
#import "ios/chrome/browser/ui/settings/elements/elements_constants.h"
#import "ios/chrome/common/string_util.h"
#import "ios/chrome/common/ui/colors/semantic_color_names.h"
#import "ios/chrome/common/ui/util/constraints_ui_util.h"
#import "ios/chrome/grit/ios_strings.h"
namespace {
NSAttributedString* PrimaryMessage(NSString* full_text) {
DCHECK(full_text);
NSDictionary* general_attributes = @{
NSForegroundColorAttributeName : [UIColor colorNamed:kTextPrimaryColor],
NSFontAttributeName :
[UIFont preferredFontForTextStyle:UIFontTextStyleSubheadline]
};
return [[NSAttributedString alloc] initWithString:full_text
attributes:general_attributes];
}
} // namespace
@interface InfoPopoverViewController ()
@end
@implementation InfoPopoverViewController {
// YES if it is presented by a UIButton.
BOOL _isPresentingFromButton;
}
- (instancetype)initWithMessage:(NSString*)message {
return [self initWithPrimaryAttributedString:PrimaryMessage(message)
secondaryAttributedString:nil
icon:nil
isPresentingFromButton:YES];
}
- (instancetype)initWithPrimaryAttributedString:
(NSAttributedString*)primaryAttributedString
secondaryAttributedString:
(NSAttributedString*)secondaryAttributedString
icon:(UIImage*)icon
isPresentingFromButton:(BOOL)isPresentingFromButton {
self = [super initWithPrimaryAttributedString:primaryAttributedString
secondaryAttributedString:secondaryAttributedString
icon:icon];
if (self) {
_isPresentingFromButton = isPresentingFromButton;
}
return self;
}
#pragma mark - UIViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.accessibilityIdentifier = kEnterpriseInfoBubbleViewId;
}
#pragma mark - UIPopoverPresentationControllerDelegate
- (void)popoverPresentationControllerDidDismissPopover:
(UIPopoverPresentationController*)popoverPresentationController {
if (_isPresentingFromButton) {
UIButton* buttonView = base::apple::ObjCCastStrict<UIButton>(
popoverPresentationController.sourceView);
buttonView.enabled = YES;
}
}
@end