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

Side by Side Diff: chrome/browser/android/contextualsearch/ctr_suppression.cc

Issue 2285633004: [TTS] Record CTR by week and 28-day intervals. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ctr
Patch Set: Reworked the cache to use a stored preference instead of session static data. Created 4 years, 2 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/android/contextualsearch/ctr_suppression.h>
6 #include <set>
7
8 #include "base/android/jni_string.h"
9 #include "base/android/scoped_java_ref.h"
10 #include "jni/CtrSuppression_jni.h"
11
12 using base::android::AttachCurrentThread;
13 using base::android::ConvertUTF8ToJavaString;
14 using base::android::JavaParamRef;
15 using base::android::ScopedJavaLocalRef;
16 using contextual_search::CtrAggregator;
17
18 CtrSuppression::CtrSuppression(JNIEnv* env, jobject obj)
19 : WeeklyActivityStorage(contextual_search::kNumWeeksNeededFor28DayData) {
20 java_object_.Reset(env, obj);
21
22 // NOTE: Creating the aggregator needs to be done after setting up the Java
23 // object because the constructor will call back through the Java object
24 // to access storage.
25 aggregator_.reset(new CtrAggregator(*this));
26 DCHECK(aggregator_);
27 }
28
29 CtrSuppression::~CtrSuppression() {
30 JNIEnv* env = AttachCurrentThread();
31 Java_CtrSuppression_clearNativePointer(env, java_object_.obj());
32 }
33
34 // Java conduit
35
36 void CtrSuppression::RecordImpression(JNIEnv* env,
37 const JavaParamRef<jobject>& obj,
38 jboolean did_click) {
39 aggregator_->RecordImpression(did_click);
40 }
41
42 jint CtrSuppression::GetCurrentWeekNumber(JNIEnv* env,
43 const JavaParamRef<jobject>& obj) {
44 return aggregator_->GetCurrentWeekNumber();
45 }
46
47 jboolean CtrSuppression::HasPreviousWeekData(JNIEnv* env,
48 const JavaParamRef<jobject>& obj) {
49 return aggregator_->HasPreviousWeekData();
50 }
51
52 jint CtrSuppression::GetPreviousWeekImpressions(
53 JNIEnv* env,
54 const JavaParamRef<jobject>& obj) {
55 return aggregator_->GetPreviousWeekImpressions();
56 }
57
58 jfloat CtrSuppression::GetPreviousWeekCtr(JNIEnv* env,
59 const JavaParamRef<jobject>& obj) {
60 return aggregator_->GetPreviousWeekCtr();
61 }
62
63 jboolean CtrSuppression::HasPrevious28DayData(
64 JNIEnv* env,
65 const JavaParamRef<jobject>& obj) {
66 return aggregator_->HasPrevious28DayData();
67 }
68
69 jint CtrSuppression::GetPrevious28DayImpressions(
70 JNIEnv* env,
71 const JavaParamRef<jobject>& obj) {
72 return aggregator_->GetPrevious28DayImpressions();
73 }
74
75 jfloat CtrSuppression::GetPrevious28DayCtr(JNIEnv* env,
76 const JavaParamRef<jobject>& obj) {
77 return aggregator_->GetPrevious28DayCtr();
78 }
79
80 // WeeklyActivityStorage overrides
81
82 int CtrSuppression::ReadStorage(std::string storage_bucket) {
83 JNIEnv* env = AttachCurrentThread();
84 ScopedJavaLocalRef<jstring> j_storage_bucket =
85 ConvertUTF8ToJavaString(env, storage_bucket.c_str());
86 return Java_CtrSuppression_readInt(env, java_object_, j_storage_bucket);
87 }
88
89 void CtrSuppression::WriteStorage(std::string storage_bucket, int value) {
90 JNIEnv* env = AttachCurrentThread();
91 ScopedJavaLocalRef<jstring> j_storage_bucket =
92 ConvertUTF8ToJavaString(env, storage_bucket.c_str());
93 Java_CtrSuppression_writeInt(env, java_object_, j_storage_bucket, value);
94 }
95
96 // Java wrapper boilerplate
97
98 void CtrSuppression::Destroy(JNIEnv* env, const JavaParamRef<jobject>& obj) {
99 delete this;
100 }
101
102 bool RegisterCtrSuppression(JNIEnv* env) {
103 return RegisterNativesImpl(env);
104 }
105
106 jlong Init(JNIEnv* env, const JavaParamRef<jobject>& obj) {
107 CtrSuppression* suppression = new CtrSuppression(env, obj);
108 return reinterpret_cast<intptr_t>(suppression);
109 }
OLDNEW
« no previous file with comments | « chrome/browser/android/contextualsearch/ctr_suppression.h ('k') | components/contextual_search/browser/ctr_aggregator.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698