Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(117)

Side by Side Diff: chrome/browser/ui/views/autofill/save_card_bubble_views.cc

Issue 1540423004: Add card details and legal message to Android save credit card infobar. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix android compiles Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/views/autofill/save_card_bubble_views.h" 5 #include "chrome/browser/ui/views/autofill/save_card_bubble_views.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "build/build_config.h" 10 #include "build/build_config.h"
11 #include "chrome/browser/ui/autofill/autofill_dialog_types.h" 11 #include "chrome/browser/ui/autofill/autofill_dialog_types.h"
12 #include "chrome/browser/ui/autofill/save_card_bubble_controller.h" 12 #include "chrome/browser/ui/autofill/save_card_bubble_controller.h"
13 #include "components/autofill/core/browser/legal_message_line.h"
13 #include "grit/components_strings.h" 14 #include "grit/components_strings.h"
14 #include "ui/base/l10n/l10n_util.h" 15 #include "ui/base/l10n/l10n_util.h"
15 #include "ui/views/bubble/bubble_frame_view.h" 16 #include "ui/views/bubble/bubble_frame_view.h"
16 #include "ui/views/controls/button/blue_button.h" 17 #include "ui/views/controls/button/blue_button.h"
17 #include "ui/views/controls/button/label_button.h" 18 #include "ui/views/controls/button/label_button.h"
18 #include "ui/views/controls/label.h" 19 #include "ui/views/controls/label.h"
19 #include "ui/views/controls/link.h" 20 #include "ui/views/controls/link.h"
20 #include "ui/views/controls/styled_label.h" 21 #include "ui/views/controls/styled_label.h"
21 #include "ui/views/layout/box_layout.h" 22 #include "ui/views/layout/box_layout.h"
22 #include "ui/views/layout/grid_layout.h" 23 #include "ui/views/layout/grid_layout.h"
(...skipping 11 matching lines...) Expand all
34 // TODO(bondd): BubbleManager will eventually move this logic somewhere else, 35 // TODO(bondd): BubbleManager will eventually move this logic somewhere else,
35 // and then kIsOkButtonOnLeftSide can be removed from here and 36 // and then kIsOkButtonOnLeftSide can be removed from here and
36 // dialog_client_view.cc. 37 // dialog_client_view.cc.
37 #if defined(OS_WIN) || defined(OS_CHROMEOS) 38 #if defined(OS_WIN) || defined(OS_CHROMEOS)
38 const bool kIsOkButtonOnLeftSide = true; 39 const bool kIsOkButtonOnLeftSide = true;
39 #else 40 #else
40 const bool kIsOkButtonOnLeftSide = false; 41 const bool kIsOkButtonOnLeftSide = false;
41 #endif 42 #endif
42 43
43 scoped_ptr<views::StyledLabel> CreateLegalMessageLineLabel( 44 scoped_ptr<views::StyledLabel> CreateLegalMessageLineLabel(
44 const SaveCardBubbleController::LegalMessageLine& line, 45 const LegalMessageLine& line,
45 views::StyledLabelListener* listener) { 46 views::StyledLabelListener* listener) {
46 scoped_ptr<views::StyledLabel> label( 47 scoped_ptr<views::StyledLabel> label(
47 new views::StyledLabel(line.text, listener)); 48 new views::StyledLabel(line.text(), listener));
48 for (const SaveCardBubbleController::LegalMessageLine::Link& link : 49 for (const LegalMessageLine::Link& link : line.links()) {
49 line.links) {
50 label->AddStyleRange(link.range, 50 label->AddStyleRange(link.range,
51 views::StyledLabel::RangeStyleInfo::CreateForLink()); 51 views::StyledLabel::RangeStyleInfo::CreateForLink());
52 } 52 }
53 return label; 53 return label;
54 } 54 }
55 55
56 } // namespace 56 } // namespace
57 57
58 SaveCardBubbleViews::SaveCardBubbleViews(views::View* anchor_view, 58 SaveCardBubbleViews::SaveCardBubbleViews(views::View* anchor_view,
59 content::WebContents* web_contents, 59 content::WebContents* web_contents,
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 const gfx::Range& range, 115 const gfx::Range& range,
116 int event_flags) { 116 int event_flags) {
117 // Index of |label| within its parent's view hierarchy is the same as the 117 // Index of |label| within its parent's view hierarchy is the same as the
118 // legal message line index. DCHECK this assumption to guard against future 118 // legal message line index. DCHECK this assumption to guard against future
119 // layout changes. 119 // layout changes.
120 DCHECK_EQ(static_cast<size_t>(label->parent()->child_count()), 120 DCHECK_EQ(static_cast<size_t>(label->parent()->child_count()),
121 controller_->GetLegalMessageLines().size()); 121 controller_->GetLegalMessageLines().size());
122 122
123 const auto& links = 123 const auto& links =
124 controller_->GetLegalMessageLines()[label->parent()->GetIndexOf(label)] 124 controller_->GetLegalMessageLines()[label->parent()->GetIndexOf(label)]
125 .links; 125 ->links();
126 for (const SaveCardBubbleController::LegalMessageLine::Link& link : links) { 126 for (const LegalMessageLine::Link& link : links) {
127 if (link.range == range) { 127 if (link.range == range) {
128 controller_->OnLegalMessageLinkClicked(link.url); 128 controller_->OnLegalMessageLinkClicked(link.url);
129 return; 129 return;
130 } 130 }
131 } 131 }
132 132
133 // |range| was not found. 133 // |range| was not found.
134 NOTREACHED(); 134 NOTREACHED();
135 } 135 }
136 136
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 view->SetLayoutManager( 222 view->SetLayoutManager(
223 new views::BoxLayout(views::BoxLayout::kVertical, 223 new views::BoxLayout(views::BoxLayout::kVertical,
224 GetBubbleFrameView()->GetTitleInsets().left(), 224 GetBubbleFrameView()->GetTitleInsets().left(),
225 views::kRelatedControlVerticalSpacing, 0)); 225 views::kRelatedControlVerticalSpacing, 0));
226 view->SetBorder( 226 view->SetBorder(
227 views::Border::CreateSolidSidedBorder(1, 0, 0, 0, kSubtleBorderColor)); 227 views::Border::CreateSolidSidedBorder(1, 0, 0, 0, kSubtleBorderColor));
228 view->set_background( 228 view->set_background(
229 views::Background::CreateSolidBackground(kLightShadingColor)); 229 views::Background::CreateSolidBackground(kLightShadingColor));
230 230
231 // Add a StyledLabel for each line of the legal message. 231 // Add a StyledLabel for each line of the legal message.
232 for (const SaveCardBubbleController::LegalMessageLine& line : 232 for (const auto& line : controller_->GetLegalMessageLines())
Evan Stade 2016/01/13 04:09:19 remove auto
please use gerrit instead 2016/01/13 21:22:09 Done.
Peter Kasting 2016/01/13 22:10:25 Seems like we debated this already?: https://coder
Evan Stade 2016/01/13 22:52:40 Yes, we did, and I abandoned the debate because I
Peter Kasting 2016/01/13 23:25:31 The previous debate was about this same line in th
please use gerrit instead 2016/01/14 02:39:40 Now that LegalMessageLines is a plain old std::vec
Peter Kasting 2016/01/14 04:19:24 Yeah, in that situation I think we're good without
233 controller_->GetLegalMessageLines()) { 233 view->AddChildView(CreateLegalMessageLineLabel(*line, this).release());
234 view->AddChildView(CreateLegalMessageLineLabel(line, this).release());
235 }
236 234
237 return view; 235 return view;
238 } 236 }
239 237
240 void SaveCardBubbleViews::Init() { 238 void SaveCardBubbleViews::Init() {
241 SetLayoutManager(new views::BoxLayout(views::BoxLayout::kVertical, 0, 0, 0)); 239 SetLayoutManager(new views::BoxLayout(views::BoxLayout::kVertical, 0, 0, 0));
242 AddChildView(CreateMainContentView().release()); 240 AddChildView(CreateMainContentView().release());
243 if (!controller_->GetLegalMessageLines().empty()) 241 if (!controller_->GetLegalMessageLines().empty())
244 AddChildView(CreateFootnoteView().release()); 242 AddChildView(CreateFootnoteView().release());
245 243
246 set_margins(gfx::Insets(1, 0, 1, 0)); 244 set_margins(gfx::Insets(1, 0, 1, 0));
247 } 245 }
248 246
249 } // namespace autofill 247 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698