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

Side by Side Diff: chrome/browser/ui/android/infobars/autofill_save_card_infobar.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: Mobile specific infobar delegate. 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
(Empty)
1 // Copyright 2016 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 #include "chrome/browser/ui/android/infobars/autofill_save_card_infobar.h"
6
7 #include <utility>
8
9 #include "base/android/jni_android.h"
10 #include "base/android/jni_string.h"
11 #include "chrome/browser/android/resource_mapper.h"
12 #include "chrome/browser/infobars/infobar_service.h"
13 #include "components/autofill/core/browser/autofill_save_card_infobar_delegate_m obile.h"
14 #include "components/autofill/core/browser/autofill_save_card_infobar_mobile.h"
15 #include "components/autofill/core/browser/legal_message_line.h"
16 #include "jni/AutofillSaveCardInfoBar_jni.h"
17 #include "ui/gfx/android/java_bitmap.h"
18 #include "ui/gfx/image/image.h"
19 #include "url/gurl.h"
20
21 namespace autofill {
22
23 scoped_ptr<infobars::InfoBar> CreateSaveCardInfoBarMobile(
24 scoped_ptr<AutofillSaveCardInfoBarDelegateMobile> delegate) {
25 return make_scoped_ptr(new AutofillSaveCardInfoBar(std::move(delegate)));
26 }
27
28 } // namespace autofill
29
30 AutofillSaveCardInfoBar::AutofillSaveCardInfoBar(
31 scoped_ptr<autofill::AutofillSaveCardInfoBarDelegateMobile> delegate)
32 : ConfirmInfoBar(std::move(delegate)) {}
33
34 AutofillSaveCardInfoBar::~AutofillSaveCardInfoBar() {}
35
36 void AutofillSaveCardInfoBar::OnLegalMessageLinkClicked(JNIEnv* env,
37 jobject obj,
38 jstring url) {
39 GetSaveCardDelegate()->OnLegalMessageLinkClicked(
40 GURL(base::android::ConvertJavaStringToUTF16(env, url)));
41 }
42
43 // static
44 bool AutofillSaveCardInfoBar::Register(JNIEnv* env) {
45 return RegisterNativesImpl(env);
46 }
47
48 base::android::ScopedJavaLocalRef<jobject>
49 AutofillSaveCardInfoBar::CreateRenderInfoBar(JNIEnv* env) {
50 autofill::AutofillSaveCardInfoBarDelegateMobile* delegate =
51 GetSaveCardDelegate();
52 ScopedJavaLocalRef<jobject> java_bitmap;
53 if (delegate->GetIconId() == infobars::InfoBarDelegate::kNoIconID &&
54 !delegate->GetIcon().IsEmpty()) {
55 java_bitmap = gfx::ConvertToJavaBitmap(delegate->GetIcon().ToSkBitmap());
56 }
57
58 base::android::ScopedJavaLocalRef<jobject> java_delegate =
59 Java_AutofillSaveCardInfoBar_create(
60 env, reinterpret_cast<intptr_t>(this), GetEnumeratedIconId(),
61 java_bitmap.obj(),
62 base::android::ConvertUTF16ToJavaString(
63 env, delegate->GetMessageText()).obj(),
64 base::android::ConvertUTF16ToJavaString(
65 env, delegate->GetLinkText()).obj(),
66 base::android::ConvertUTF16ToJavaString(
67 env, GetTextFor(ConfirmInfoBarDelegate::BUTTON_OK)).obj(),
68 base::android::ConvertUTF16ToJavaString(
69 env, GetTextFor(ConfirmInfoBarDelegate::BUTTON_CANCEL)).obj());
70
71 Java_AutofillSaveCardInfoBar_addDetail(
72 env, java_delegate.obj(),
73 ResourceMapper::MapFromChromiumId(delegate->issuer_icon_id()),
74 base::android::ConvertUTF16ToJavaString(
75 env, delegate->card_label()).obj(),
76 base::android::ConvertUTF16ToJavaString(
77 env, delegate->card_sub_label()).obj());
78
79 for (const auto& line : delegate->legal_messages()) {
80 Java_AutofillSaveCardInfoBar_addLegalMessageLine(
81 env, java_delegate.obj(),
82 base::android::ConvertUTF16ToJavaString(env, line->text()).obj());
83 for (const auto& link : line->links()) {
84 Java_AutofillSaveCardInfoBar_addLinkToLastLegalMessageLine(
85 env, java_delegate.obj(), link.range.start(), link.range.end(),
86 base::android::ConvertUTF8ToJavaString(env, link.url.spec()).obj());
87 }
88 }
89
90 return java_delegate;
91 }
92
93 autofill::AutofillSaveCardInfoBarDelegateMobile*
94 AutofillSaveCardInfoBar::GetSaveCardDelegate() {
95 return static_cast<autofill::AutofillSaveCardInfoBarDelegateMobile*>(
96 GetDelegate());
97 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698