1// Copyright 2020 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#import "ios/chrome/browser/overlays/public/infobar_banner/confirm_infobar_banner_overlay_request_config.h"
6
7#include "components/infobars/core/confirm_infobar_delegate.h"
8#include "components/infobars/core/infobar.h"
9#include "ios/chrome/browser/infobars/infobar_ios.h"
10#import "ios/chrome/browser/infobars/overlays/infobar_overlay_type.h"
11#import "ios/chrome/browser/overlays/public/common/infobars/infobar_overlay_request_config.h"
12#include "ios/chrome/browser/ui/authentication/signin_notification_infobar_delegate.h"
13
14#if !defined(__has_feature) || !__has_feature(objc_arc)
15#error "This file requires ARC support."
16#endif
17
18namespace confirm_infobar_overlays {
19
20OVERLAY_USER_DATA_SETUP_IMPL(ConfirmBannerRequestConfig);
21
22ConfirmBannerRequestConfig::ConfirmBannerRequestConfig(
23    infobars::InfoBar* infobar)
24    : infobar_(infobar) {
25  DCHECK(infobar_);
26  ConfirmInfoBarDelegate* delegate =
27      static_cast<ConfirmInfoBarDelegate*>(infobar_->delegate());
28  title_text_ = delegate->GetTitleText();
29  message_text_ = delegate->GetMessageText();
30  button_label_text_ =
31      delegate->GetButtonLabel(ConfirmInfoBarDelegate::BUTTON_OK);
32  icon_image_ = delegate->GetIcon();
33  is_high_priority_ = static_cast<InfoBarIOS*>(infobar)->high_priority();
34  use_icon_background_tint_ = delegate->UseIconBackgroundTint();
35}
36
37ConfirmBannerRequestConfig::~ConfirmBannerRequestConfig() = default;
38
39void ConfirmBannerRequestConfig::CreateAuxiliaryData(
40    base::SupportsUserData* user_data) {
41  InfobarOverlayRequestConfig::CreateForUserData(
42      user_data, static_cast<InfoBarIOS*>(infobar_),
43      InfobarOverlayType::kBanner, is_high_priority_);
44}
45
46}  // namespace confirm_infobar_overlays
47