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

Side by Side Diff: components/payments/content/android/journey_logger_android.cc

Issue 2750103005: [Payments] Move journey logger to native. (Closed)
Patch Set: Add the component_jni_registrar files Created 3 years, 8 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 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 "components/payments/content/android/currency_formatter_android.h" 5 #include "components/payments/content/android/journey_logger_android.h"
6 6
7 #include "base/android/jni_string.h" 7 #include "base/android/jni_string.h"
8 #include "base/strings/string16.h" 8 #include "jni/JourneyLogger_jni.h"
9 #include "components/payments/core/currency_formatter.h"
10 #include "jni/CurrencyFormatter_jni.h"
11 9
12 namespace payments { 10 namespace payments {
13 namespace { 11 namespace {
14 12
15 using ::base::android::JavaParamRef; 13 using ::base::android::JavaParamRef;
16 using ::base::android::ConvertJavaStringToUTF8; 14 using ::base::android::ConvertJavaStringToUTF8;
17 15
18 } // namespace 16 } // namespace
19 17
20 CurrencyFormatterAndroid::CurrencyFormatterAndroid( 18 // static
21 JNIEnv* env, 19 bool JourneyLoggerAndroid::Register(JNIEnv* env) {
22 jobject unused_obj, 20 return RegisterNativesImpl(env);
23 const JavaParamRef<jstring>& currency_code,
24 const JavaParamRef<jstring>& currency_system,
25 const JavaParamRef<jstring>& locale_name) {
26 std::string currency_system_str =
27 ConvertJavaStringToUTF8(env, currency_system);
28
29 currency_formatter_.reset(new CurrencyFormatter(
30 ConvertJavaStringToUTF8(env, currency_code), currency_system_str,
31 ConvertJavaStringToUTF8(env, locale_name)));
32 } 21 }
33 22
34 CurrencyFormatterAndroid::~CurrencyFormatterAndroid() {} 23 JourneyLoggerAndroid::JourneyLoggerAndroid() {}
35 24
36 void CurrencyFormatterAndroid::Destroy(JNIEnv* env, 25 JourneyLoggerAndroid::~JourneyLoggerAndroid() {}
37 const JavaParamRef<jobject>& obj) { 26
27 void JourneyLoggerAndroid::Destroy(JNIEnv* env,
28 const JavaParamRef<jobject>& jcaller) {
38 delete this; 29 delete this;
39 } 30 }
40 31
41 base::android::ScopedJavaLocalRef<jstring> CurrencyFormatterAndroid::Format( 32 void JourneyLoggerAndroid::SetNumberOfSuggestionsShown(
42 JNIEnv* env, 33 JNIEnv* env,
43 const JavaParamRef<jobject>& unused_obj, 34 const base::android::JavaParamRef<jobject>& jcaller,
44 const JavaParamRef<jstring>& amount) { 35 jint jsection,
45 base::string16 result = 36 jint jnumber) {
46 currency_formatter_->Format(ConvertJavaStringToUTF8(env, amount)); 37 DCHECK_GE(jsection, 0);
47 return base::android::ConvertUTF16ToJavaString(env, result); 38 DCHECK_LT(jsection, JourneyLogger::Section::SECTION_MAX);
39 journey_logger_.SetNumberOfSuggestionsShown(
40 static_cast<JourneyLogger::Section>(jsection), jnumber);
48 } 41 }
49 42
50 base::android::ScopedJavaLocalRef<jstring> 43 void JourneyLoggerAndroid::IncrementSelectionChanges(
51 CurrencyFormatterAndroid::GetFormattedCurrencyCode(
52 JNIEnv* env, 44 JNIEnv* env,
53 const JavaParamRef<jobject>& unused_obj) { 45 const base::android::JavaParamRef<jobject>& jcaller,
54 return base::android::ConvertUTF8ToJavaString( 46 jint jsection) {
55 env, currency_formatter_->formatted_currency_code()); 47 DCHECK_GE(jsection, 0);
48 DCHECK_LT(jsection, JourneyLogger::Section::SECTION_MAX);
49 journey_logger_.IncrementSelectionChanges(
50 static_cast<JourneyLogger::Section>(jsection));
56 } 51 }
57 52
58 // static 53 void JourneyLoggerAndroid::IncrementSelectionEdits(
59 bool CurrencyFormatterAndroid::Register(JNIEnv* env) { 54 JNIEnv* env,
60 return RegisterNativesImpl(env); 55 const base::android::JavaParamRef<jobject>& jcaller,
56 jint jsection) {
57 DCHECK_GE(jsection, 0);
58 DCHECK_LT(jsection, JourneyLogger::Section::SECTION_MAX);
59 journey_logger_.IncrementSelectionEdits(
60 static_cast<JourneyLogger::Section>(jsection));
61 } 61 }
62 62
63 static jlong InitCurrencyFormatterAndroid( 63 void JourneyLoggerAndroid::IncrementSelectionAdds(
64 JNIEnv* env, 64 JNIEnv* env,
65 const JavaParamRef<jobject>& obj, 65 const base::android::JavaParamRef<jobject>& jcaller,
66 const JavaParamRef<jstring>& currency_code, 66 jint jsection) {
67 const JavaParamRef<jstring>& currency_system, 67 DCHECK_GE(jsection, 0);
68 const JavaParamRef<jstring>& locale_name) { 68 DCHECK_LT(jsection, JourneyLogger::Section::SECTION_MAX);
69 CurrencyFormatterAndroid* currency_formatter_android = 69 journey_logger_.IncrementSelectionAdds(
70 new CurrencyFormatterAndroid(env, obj, currency_code, currency_system, 70 static_cast<JourneyLogger::Section>(jsection));
71 locale_name); 71 }
72 return reinterpret_cast<intptr_t>(currency_formatter_android); 72
73 void JourneyLoggerAndroid::SetCanMakePaymentValue(
74 JNIEnv* env,
75 const base::android::JavaParamRef<jobject>& jcaller,
76 jboolean jvalue) {
77 journey_logger_.SetCanMakePaymentValue(jvalue);
78 }
79
80 void JourneyLoggerAndroid::SetShowCalled(
81 JNIEnv* env,
82 const base::android::JavaParamRef<jobject>& jcaller) {
83 journey_logger_.SetShowCalled();
84 }
85
86 void JourneyLoggerAndroid::RecordJourneyStatsHistograms(
87 JNIEnv* env,
88 const base::android::JavaParamRef<jobject>& jcaller,
89 jint jcompletion_status) {
90 DCHECK_GE(jcompletion_status, 0);
91 DCHECK_LT(jcompletion_status,
92 JourneyLogger::CompletionStatus::COMPLETION_STATUS_MAX);
93 journey_logger_.RecordJourneyStatsHistograms(
94 static_cast<JourneyLogger::CompletionStatus>(jcompletion_status));
95 }
96
97 static jlong InitJourneyLoggerAndroid(JNIEnv* env,
98 const JavaParamRef<jobject>& jcaller) {
99 return reinterpret_cast<jlong>(new JourneyLoggerAndroid());
73 } 100 }
74 101
75 } // namespace payments 102 } // namespace payments
OLDNEW
« no previous file with comments | « components/payments/content/android/journey_logger_android.h ('k') | components/payments/core/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698