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

Side by Side Diff: chrome/browser/ui/android/autofill/credit_card_scanner_view_android.cc

Issue 2274693004: Separate credit card scanner from native bridge. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 3 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
« no previous file with comments | « chrome/browser/android/chrome_jni_registrar.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/android/autofill/credit_card_scanner_view_android.h" 5 #include "chrome/browser/ui/android/autofill/credit_card_scanner_view_android.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/android/context_utils.h" 9 #include "base/android/context_utils.h"
10 #include "base/android/jni_android.h" 10 #include "base/android/jni_android.h"
11 #include "base/android/jni_string.h" 11 #include "base/android/jni_string.h"
12 #include "base/feature_list.h" 12 #include "base/feature_list.h"
13 #include "base/memory/ptr_util.h" 13 #include "base/memory/ptr_util.h"
14 #include "chrome/browser/ui/android/view_android_helper.h" 14 #include "chrome/browser/ui/android/view_android_helper.h"
15 #include "chrome/browser/ui/autofill/credit_card_scanner_view_delegate.h" 15 #include "chrome/browser/ui/autofill/credit_card_scanner_view_delegate.h"
16 #include "components/autofill/core/browser/autofill_experiments.h" 16 #include "components/autofill/core/browser/autofill_experiments.h"
17 #include "components/autofill/core/browser/credit_card.h" 17 #include "components/autofill/core/browser/credit_card.h"
18 #include "components/autofill/core/browser/field_types.h" 18 #include "components/autofill/core/browser/field_types.h"
19 #include "content/public/browser/android/content_view_core.h" 19 #include "content/public/browser/android/content_view_core.h"
20 #include "jni/CreditCardScanner_jni.h" 20 #include "jni/CreditCardScannerBridge_jni.h"
21 #include "ui/android/view_android.h" 21 #include "ui/android/view_android.h"
22 #include "ui/android/window_android.h" 22 #include "ui/android/window_android.h"
23 23
24 using base::android::JavaParamRef; 24 using base::android::JavaParamRef;
25 25
26 namespace autofill { 26 namespace autofill {
27 27
28 // static 28 // static
29 bool CreditCardScannerView::CanShow() { 29 bool CreditCardScannerView::CanShow() {
30 JNIEnv* env = base::android::AttachCurrentThread(); 30 JNIEnv* env = base::android::AttachCurrentThread();
31 base::android::ScopedJavaGlobalRef<jobject> java_object( 31 base::android::ScopedJavaGlobalRef<jobject> java_object(
32 Java_CreditCardScanner_create( 32 Java_CreditCardScannerBridge_create(
33 env, 0, base::android::GetApplicationContext(), nullptr)); 33 env, 0, base::android::GetApplicationContext(), nullptr));
34 return Java_CreditCardScanner_canScan(env, java_object); 34 return Java_CreditCardScannerBridge_canScan(env, java_object);
35 } 35 }
36 36
37 // static 37 // static
38 std::unique_ptr<CreditCardScannerView> CreditCardScannerView::Create( 38 std::unique_ptr<CreditCardScannerView> CreditCardScannerView::Create(
39 const base::WeakPtr<CreditCardScannerViewDelegate>& delegate, 39 const base::WeakPtr<CreditCardScannerViewDelegate>& delegate,
40 content::WebContents* web_contents) { 40 content::WebContents* web_contents) {
41 return base::WrapUnique( 41 return base::WrapUnique(
42 new CreditCardScannerViewAndroid(delegate, web_contents)); 42 new CreditCardScannerViewAndroid(delegate, web_contents));
43 } 43 }
44 44
45 // static 45 // static
46 bool CreditCardScannerViewAndroid::Register(JNIEnv* env) { 46 bool CreditCardScannerViewAndroid::Register(JNIEnv* env) {
47 return RegisterNativesImpl(env); 47 return RegisterNativesImpl(env);
48 } 48 }
49 49
50 CreditCardScannerViewAndroid::CreditCardScannerViewAndroid( 50 CreditCardScannerViewAndroid::CreditCardScannerViewAndroid(
51 const base::WeakPtr<CreditCardScannerViewDelegate>& delegate, 51 const base::WeakPtr<CreditCardScannerViewDelegate>& delegate,
52 content::WebContents* web_contents) 52 content::WebContents* web_contents)
53 : delegate_(delegate), 53 : delegate_(delegate),
54 java_object_(Java_CreditCardScanner_create( 54 java_object_(Java_CreditCardScannerBridge_create(
55 base::android::AttachCurrentThread(), 55 base::android::AttachCurrentThread(),
56 reinterpret_cast<intptr_t>(this), 56 reinterpret_cast<intptr_t>(this),
57 base::android::GetApplicationContext(), 57 base::android::GetApplicationContext(),
58 ViewAndroidHelper::FromWebContents(web_contents) 58 ViewAndroidHelper::FromWebContents(web_contents)
59 ->GetViewAndroid() 59 ->GetViewAndroid()
60 ->GetWindowAndroid() 60 ->GetWindowAndroid()
61 ->GetJavaObject())) {} 61 ->GetJavaObject())) {}
62 62
63 CreditCardScannerViewAndroid::~CreditCardScannerViewAndroid() {} 63 CreditCardScannerViewAndroid::~CreditCardScannerViewAndroid() {}
64 64
65 void CreditCardScannerViewAndroid::ScanCancelled( 65 void CreditCardScannerViewAndroid::ScanCancelled(
66 JNIEnv* env, 66 JNIEnv* env,
67 const JavaParamRef<jobject>& object) { 67 const JavaParamRef<jobject>& object) {
68 delegate_->ScanCancelled(); 68 delegate_->ScanCancelled();
69 } 69 }
70 70
71 void CreditCardScannerViewAndroid::ScanCompleted( 71 void CreditCardScannerViewAndroid::ScanCompleted(
72 JNIEnv* env, 72 JNIEnv* env,
73 const JavaParamRef<jobject>& object, 73 const JavaParamRef<jobject>& object,
74 const JavaParamRef<jstring>& card_holder_name, 74 const JavaParamRef<jstring>& card_holder_name,
75 const JavaParamRef<jstring>& card_number, 75 const JavaParamRef<jstring>& card_number,
76 jint expiration_month, 76 jint expiration_month,
77 jint expiration_year) { 77 jint expiration_year) {
78 CreditCard card; 78 CreditCard card;
79 card.SetNumber(base::android::ConvertJavaStringToUTF16(env, card_number)); 79 card.SetNumber(base::android::ConvertJavaStringToUTF16(env, card_number));
80 card.SetExpirationMonth(static_cast<int>(expiration_month)); 80 card.SetExpirationMonth(static_cast<int>(expiration_month));
81 card.SetExpirationYear(static_cast<int>(expiration_year)); 81 card.SetExpirationYear(static_cast<int>(expiration_year));
82 82 card.SetRawInfo(
83 if (base::FeatureList::IsEnabled(kAutofillScanCardholderName)) { 83 CREDIT_CARD_NAME_FULL,
msw 2016/08/26 22:37:07 Where exactly is this checked now? I don't see it
please use gerrit instead 2016/08/29 17:58:31 I was going to rely on the implementation of the s
msw 2016/08/29 18:19:19 Can we just DCHECK that the cardholder name is bla
please use gerrit instead 2016/08/29 18:50:49 Done.
84 card.SetRawInfo( 84 base::android::ConvertJavaStringToUTF16(env, card_holder_name));
85 CREDIT_CARD_NAME_FULL,
86 base::android::ConvertJavaStringToUTF16(env, card_holder_name));
87 }
88
89 delegate_->ScanCompleted(card); 85 delegate_->ScanCompleted(card);
90 } 86 }
91 87
92 void CreditCardScannerViewAndroid::Show() { 88 void CreditCardScannerViewAndroid::Show() {
93 JNIEnv* env = base::android::AttachCurrentThread(); 89 JNIEnv* env = base::android::AttachCurrentThread();
94 Java_CreditCardScanner_scan(env, java_object_); 90 Java_CreditCardScannerBridge_scan(env, java_object_);
95 } 91 }
96 92
97 } // namespace autofill 93 } // namespace autofill
OLDNEW
« no previous file with comments | « chrome/browser/android/chrome_jni_registrar.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698