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

Side by Side Diff: chrome/browser/interests/android/interests_service.cc

Issue 2122993003: Remove unused Interests code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Forgot unit test target. Created 4 years, 5 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 2015 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/interests/android/interests_service.h"
6
7 #include <stddef.h>
8 #include <utility>
9
10 #include "base/android/jni_android.h"
11 #include "base/android/jni_array.h"
12 #include "base/android/jni_string.h"
13 #include "base/android/scoped_java_ref.h"
14 #include "chrome/browser/interests/interests_fetcher.h"
15 #include "chrome/browser/profiles/profile.h"
16 #include "chrome/browser/profiles/profile_android.h"
17 #include "jni/InterestsService_jni.h"
18
19 using base::android::AttachCurrentThread;
20 using base::android::ConvertUTF8ToJavaString;
21 using base::android::ScopedJavaGlobalRef;
22 using base::android::ScopedJavaLocalRef;
23
24 namespace {
25
26 ScopedJavaLocalRef<jobjectArray> ConvertInterestsToJava(
27 JNIEnv* env,
28 std::unique_ptr<std::vector<InterestsFetcher::Interest>> interests) {
29 if (!interests)
30 return ScopedJavaLocalRef<jobjectArray>();
31
32 ScopedJavaLocalRef<jobjectArray> j_interests =
33 Java_InterestsService_createInterestsArray(env, interests->size());
34
35 for (size_t i = 0; i != interests->size(); i++) {
36 const InterestsFetcher::Interest& interest = (*interests)[i];
37 ScopedJavaLocalRef<jobject> j_interest =
38 Java_InterestsService_createInterest(
39 env,
40 ConvertUTF8ToJavaString(env, interest.name).obj(),
41 ConvertUTF8ToJavaString(env, interest.image_url.spec()).obj(),
42 interest.relevance);
43
44 env->SetObjectArrayElement(j_interests.obj(), i, j_interest.obj());
45 }
46
47 return j_interests;
48 }
49
50 } // namespace
51
52 InterestsService::InterestsService(Profile* profile)
53 : profile_(profile), weak_ptr_factory_(this) {}
54
55 InterestsService::~InterestsService() {}
56
57 void InterestsService::Destroy(JNIEnv* env, const JavaParamRef<jobject>& obj) {
58 delete this;
59 }
60
61 void InterestsService::GetInterests(
62 JNIEnv* env,
63 const JavaParamRef<jobject>& obj,
64 const JavaParamRef<jobject>& j_callback_obj) {
65 ScopedJavaGlobalRef<jobject> j_callback(env, j_callback_obj);
66
67 std::unique_ptr<InterestsFetcher> fetcher =
68 InterestsFetcher::CreateFromProfile(profile_);
69 InterestsFetcher* fetcher_raw_ptr = fetcher.get();
70
71 InterestsFetcher::InterestsCallback callback = base::Bind(
72 &InterestsService::OnObtainedInterests, weak_ptr_factory_.GetWeakPtr(),
73 base::Passed(std::move(fetcher)), j_callback);
74
75 fetcher_raw_ptr->FetchInterests(callback);
76 }
77
78 // static
79 bool InterestsService::Register(JNIEnv* env) {
80 return RegisterNativesImpl(env);
81 }
82
83 void InterestsService::OnObtainedInterests(
84 std::unique_ptr<InterestsFetcher> fetcher,
85 const ScopedJavaGlobalRef<jobject>& j_callback,
86 std::unique_ptr<std::vector<InterestsFetcher::Interest>> interests) {
87 JNIEnv* env = AttachCurrentThread();
88 ScopedJavaLocalRef<jobjectArray> j_interests =
89 ConvertInterestsToJava(env, std::move(interests));
90 Java_GetInterestsCallback_onInterestsAvailable(env,
91 j_callback.obj(),
92 j_interests.obj());
93 }
94
95 static jlong Init(JNIEnv* env,
96 const JavaParamRef<jobject>& jobj,
97 const JavaParamRef<jobject>& jprofile) {
98 InterestsService* interests_service =
99 new InterestsService(ProfileAndroid::FromProfileAndroid(jprofile));
100 return reinterpret_cast<intptr_t>(interests_service);
101 }
OLDNEW
« no previous file with comments | « chrome/browser/interests/android/interests_service.h ('k') | chrome/browser/interests/interests_fetcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698