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

Unified Diff: chrome/browser/android/contextualsearch/contextual_search_context.cc

Issue 2706333002: [TTS] Add a Java Context linked to existing native (Closed)
Patch Set: Nothing, I think. Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/android/contextualsearch/contextual_search_context.cc
diff --git a/chrome/browser/android/contextualsearch/contextual_search_context.cc b/chrome/browser/android/contextualsearch/contextual_search_context.cc
index e0db7ccd9fad109ebae3a8f91615029c4ed2dc0d..82900a65f358be97c7626a0f4f66268e413c548b 100644
--- a/chrome/browser/android/contextualsearch/contextual_search_context.cc
+++ b/chrome/browser/android/contextualsearch/contextual_search_context.cc
@@ -2,7 +2,20 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "chrome/browser/android/contextualsearch/contextual_search_context.h"
+#include <chrome/browser/android/contextualsearch/contextual_search_context.h>
+
+#include "base/android/jni_string.h"
+#include "content/public/browser/browser_thread.h"
+
+#include "jni/ContextualSearchContext_jni.h"
+
+ContextualSearchContext::ContextualSearchContext(JNIEnv* env, jobject obj)
+ : can_resolve(false),
+ can_send_base_page_url(false),
+ start_offset(0),
+ end_offset(0) {
+ java_object_.Reset(env, obj);
+}
ContextualSearchContext::ContextualSearchContext(
const std::string& selected_text,
@@ -11,8 +24,111 @@ ContextualSearchContext::ContextualSearchContext(
const std::string& encoding)
: selected_text(selected_text),
home_country(home_country),
- page_url(page_url),
- encoding(encoding) {}
+ base_page_url(page_url),
+ base_page_encoding(encoding) {
+ java_object_ = nullptr;
+}
ContextualSearchContext::~ContextualSearchContext() {
}
+
+// static
+ContextualSearchContext*
+ContextualSearchContext::FromJavaContextualSearchContext(
+ const base::android::JavaRef<jobject>& j_contextual_search_context) {
+ DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
+ if (j_contextual_search_context.is_null())
+ return NULL;
+
+ ContextualSearchContext* contextual_search_context =
+ reinterpret_cast<ContextualSearchContext*>(
+ Java_ContextualSearchContext_getNativePointer(
+ base::android::AttachCurrentThread(),
+ j_contextual_search_context));
+ return contextual_search_context;
+}
+
+void ContextualSearchContext::SetResolveProperties(
+ JNIEnv* env,
+ jobject obj,
+ const base::android::JavaParamRef<jstring>& j_selection,
+ const base::android::JavaParamRef<jstring>& j_home_country,
+ jboolean j_may_send_base_page_url) {
+ can_resolve = true;
+ selected_text = base::android::ConvertJavaStringToUTF8(env, j_selection);
+ home_country = base::android::ConvertJavaStringToUTF8(env, j_home_country);
+ can_send_base_page_url = j_may_send_base_page_url;
+}
+
+// Accessors
+
+bool ContextualSearchContext::CanResolve() const {
+ return can_resolve;
+}
+
+bool ContextualSearchContext::CanSendBasePageUrl() const {
+ return can_send_base_page_url;
+}
+
+const GURL ContextualSearchContext::GetBasePageUrl() const {
+ return base_page_url;
+}
+
+void ContextualSearchContext::SetBasePageUrl(const GURL& base_page_url) {
+ this->base_page_url = base_page_url;
+}
+
+const std::string ContextualSearchContext::GetBasePageEncoding() const {
+ return base_page_encoding;
+}
+
+void ContextualSearchContext::SetBasePageEncoding(
+ const std::string& base_page_encoding) {
+ this->base_page_encoding = base_page_encoding;
+}
+
+const std::string ContextualSearchContext::GetHomeCountry() const {
+ return home_country;
+}
+
+void ContextualSearchContext::SetSelectionSurroundings(
+ int start_offset,
+ int end_offset,
+ const base::string16& surrounding_text) {
+ this->start_offset = start_offset;
+ this->end_offset = end_offset;
+ this->surrounding_text = surrounding_text;
+}
+
+const std::string ContextualSearchContext::GetOriginalSelectedText() const {
+ return selected_text;
+}
+
+const base::string16 ContextualSearchContext::GetSurroundingText() const {
+ return surrounding_text;
+}
+
+int ContextualSearchContext::GetStartOffset() const {
+ return start_offset;
+}
+
+int ContextualSearchContext::GetEndOffset() const {
+ return end_offset;
+}
+
+// Java wrapper boilerplate
+
+void ContextualSearchContext::Destroy(
+ JNIEnv* env,
+ const base::android::JavaParamRef<jobject>& obj) {
+ delete this;
+}
+
+bool RegisterContextualSearchContext(JNIEnv* env) {
+ return RegisterNativesImpl(env);
+}
+
+jlong Init(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj) {
+ ContextualSearchContext* context = new ContextualSearchContext(env, obj);
+ return reinterpret_cast<intptr_t>(context);
+}

Powered by Google App Engine
This is Rietveld 408576698