OLD | NEW |
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/android/omnibox/autocomplete_controller_android.h" | 5 #include "chrome/browser/android/omnibox/autocomplete_controller_android.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/android/jni_android.h" | 9 #include "base/android/jni_android.h" |
10 #include "base/android/jni_array.h" | 10 #include "base/android/jni_array.h" |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
283 return ConvertUTF8ToJavaString(env, match.destination_url.spec()); | 283 return ConvertUTF8ToJavaString(env, match.destination_url.spec()); |
284 } | 284 } |
285 | 285 |
286 void AutocompleteControllerAndroid::Shutdown() { | 286 void AutocompleteControllerAndroid::Shutdown() { |
287 autocomplete_controller_.reset(); | 287 autocomplete_controller_.reset(); |
288 | 288 |
289 JNIEnv* env = AttachCurrentThread(); | 289 JNIEnv* env = AttachCurrentThread(); |
290 ScopedJavaLocalRef<jobject> java_bridge = | 290 ScopedJavaLocalRef<jobject> java_bridge = |
291 weak_java_autocomplete_controller_android_.get(env); | 291 weak_java_autocomplete_controller_android_.get(env); |
292 if (java_bridge.obj()) | 292 if (java_bridge.obj()) |
293 Java_AutocompleteController_notifyNativeDestroyed(env, java_bridge.obj()); | 293 Java_AutocompleteController_notifyNativeDestroyed(env, java_bridge); |
294 | 294 |
295 weak_java_autocomplete_controller_android_.reset(); | 295 weak_java_autocomplete_controller_android_.reset(); |
296 } | 296 } |
297 | 297 |
298 // static | 298 // static |
299 AutocompleteControllerAndroid* | 299 AutocompleteControllerAndroid* |
300 AutocompleteControllerAndroid::Factory::GetForProfile( | 300 AutocompleteControllerAndroid::Factory::GetForProfile( |
301 Profile* profile, JNIEnv* env, jobject obj) { | 301 Profile* profile, JNIEnv* env, jobject obj) { |
302 AutocompleteControllerAndroid* bridge = | 302 AutocompleteControllerAndroid* bridge = |
303 static_cast<AutocompleteControllerAndroid*>( | 303 static_cast<AutocompleteControllerAndroid*>( |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
378 if (!java_bridge.obj()) | 378 if (!java_bridge.obj()) |
379 return; | 379 return; |
380 | 380 |
381 ScopedJavaLocalRef<jobject> suggestion_list_obj = | 381 ScopedJavaLocalRef<jobject> suggestion_list_obj = |
382 Java_AutocompleteController_createOmniboxSuggestionList( | 382 Java_AutocompleteController_createOmniboxSuggestionList( |
383 env, autocomplete_result.size()); | 383 env, autocomplete_result.size()); |
384 for (size_t i = 0; i < autocomplete_result.size(); ++i) { | 384 for (size_t i = 0; i < autocomplete_result.size(); ++i) { |
385 ScopedJavaLocalRef<jobject> j_omnibox_suggestion = | 385 ScopedJavaLocalRef<jobject> j_omnibox_suggestion = |
386 BuildOmniboxSuggestion(env, autocomplete_result.match_at(i)); | 386 BuildOmniboxSuggestion(env, autocomplete_result.match_at(i)); |
387 Java_AutocompleteController_addOmniboxSuggestionToList( | 387 Java_AutocompleteController_addOmniboxSuggestionToList( |
388 env, suggestion_list_obj.obj(), j_omnibox_suggestion.obj()); | 388 env, suggestion_list_obj, j_omnibox_suggestion); |
389 } | 389 } |
390 | 390 |
391 // Get the inline-autocomplete text. | 391 // Get the inline-autocomplete text. |
392 const AutocompleteResult::const_iterator default_match( | 392 const AutocompleteResult::const_iterator default_match( |
393 autocomplete_result.default_match()); | 393 autocomplete_result.default_match()); |
394 base::string16 inline_autocomplete_text; | 394 base::string16 inline_autocomplete_text; |
395 if (default_match != autocomplete_result.end()) { | 395 if (default_match != autocomplete_result.end()) { |
396 inline_autocomplete_text = default_match->inline_autocompletion; | 396 inline_autocomplete_text = default_match->inline_autocompletion; |
397 } | 397 } |
398 ScopedJavaLocalRef<jstring> inline_text = | 398 ScopedJavaLocalRef<jstring> inline_text = |
399 ConvertUTF16ToJavaString(env, inline_autocomplete_text); | 399 ConvertUTF16ToJavaString(env, inline_autocomplete_text); |
400 jlong j_autocomplete_result = | 400 jlong j_autocomplete_result = |
401 reinterpret_cast<intptr_t>(&(autocomplete_result)); | 401 reinterpret_cast<intptr_t>(&(autocomplete_result)); |
402 Java_AutocompleteController_onSuggestionsReceived(env, | 402 Java_AutocompleteController_onSuggestionsReceived( |
403 java_bridge.obj(), | 403 env, java_bridge, suggestion_list_obj, inline_text, |
404 suggestion_list_obj.obj(), | 404 j_autocomplete_result); |
405 inline_text.obj(), | |
406 j_autocomplete_result); | |
407 } | 405 } |
408 | 406 |
409 OmniboxEventProto::PageClassification | 407 OmniboxEventProto::PageClassification |
410 AutocompleteControllerAndroid::ClassifyPage(const GURL& gurl, | 408 AutocompleteControllerAndroid::ClassifyPage(const GURL& gurl, |
411 bool focused_from_fakebox) const { | 409 bool focused_from_fakebox) const { |
412 if (!gurl.is_valid()) | 410 if (!gurl.is_valid()) |
413 return OmniboxEventProto::INVALID_SPEC; | 411 return OmniboxEventProto::INVALID_SPEC; |
414 | 412 |
415 const std::string& url = gurl.spec(); | 413 const std::string& url = gurl.spec(); |
416 | 414 |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
527 ConvertUTF16ToJavaString(env, match.answer_contents); | 525 ConvertUTF16ToJavaString(env, match.answer_contents); |
528 ScopedJavaLocalRef<jstring> answer_type = | 526 ScopedJavaLocalRef<jstring> answer_type = |
529 ConvertUTF16ToJavaString(env, match.answer_type); | 527 ConvertUTF16ToJavaString(env, match.answer_type); |
530 ScopedJavaLocalRef<jstring> fill_into_edit = | 528 ScopedJavaLocalRef<jstring> fill_into_edit = |
531 ConvertUTF16ToJavaString(env, match.fill_into_edit); | 529 ConvertUTF16ToJavaString(env, match.fill_into_edit); |
532 ScopedJavaLocalRef<jstring> destination_url = | 530 ScopedJavaLocalRef<jstring> destination_url = |
533 ConvertUTF8ToJavaString(env, match.destination_url.spec()); | 531 ConvertUTF8ToJavaString(env, match.destination_url.spec()); |
534 BookmarkModel* bookmark_model = | 532 BookmarkModel* bookmark_model = |
535 BookmarkModelFactory::GetForBrowserContext(profile_); | 533 BookmarkModelFactory::GetForBrowserContext(profile_); |
536 return Java_AutocompleteController_buildOmniboxSuggestion( | 534 return Java_AutocompleteController_buildOmniboxSuggestion( |
537 env, | 535 env, match.type, AutocompleteMatch::IsSearchType(match.type), |
538 match.type, | 536 match.relevance, match.transition, jcontents, |
539 AutocompleteMatch::IsSearchType(match.type), | 537 ToJavaIntArray(env, contents_class_offsets), |
540 match.relevance, | 538 ToJavaIntArray(env, contents_class_styles), description, |
541 match.transition, | 539 ToJavaIntArray(env, description_class_offsets), |
542 jcontents.obj(), | 540 ToJavaIntArray(env, description_class_styles), answer_contents, |
543 ToJavaIntArray(env, contents_class_offsets).obj(), | 541 answer_type, fill_into_edit, destination_url, |
544 ToJavaIntArray(env, contents_class_styles).obj(), | |
545 description.obj(), | |
546 ToJavaIntArray(env, description_class_offsets).obj(), | |
547 ToJavaIntArray(env, description_class_styles).obj(), | |
548 answer_contents.obj(), | |
549 answer_type.obj(), | |
550 fill_into_edit.obj(), | |
551 destination_url.obj(), | |
552 bookmark_model && bookmark_model->IsBookmarked(match.destination_url), | 542 bookmark_model && bookmark_model->IsBookmarked(match.destination_url), |
553 match.SupportsDeletion()); | 543 match.SupportsDeletion()); |
554 } | 544 } |
555 | 545 |
556 ScopedJavaLocalRef<jobject> | 546 ScopedJavaLocalRef<jobject> |
557 AutocompleteControllerAndroid::GetTopSynchronousResult( | 547 AutocompleteControllerAndroid::GetTopSynchronousResult( |
558 JNIEnv* env, | 548 JNIEnv* env, |
559 const JavaRef<jobject>& obj, | 549 const JavaRef<jobject>& obj, |
560 const JavaRef<jstring>& j_text, | 550 const JavaRef<jstring>& j_text, |
561 bool prevent_inline_autocomplete) { | 551 bool prevent_inline_autocomplete) { |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
633 return; | 623 return; |
634 | 624 |
635 // ZeroSuggestPrefetcher deletes itself after it's done prefetching. | 625 // ZeroSuggestPrefetcher deletes itself after it's done prefetching. |
636 new ZeroSuggestPrefetcher(profile); | 626 new ZeroSuggestPrefetcher(profile); |
637 } | 627 } |
638 | 628 |
639 // Register native methods | 629 // Register native methods |
640 bool RegisterAutocompleteControllerAndroid(JNIEnv* env) { | 630 bool RegisterAutocompleteControllerAndroid(JNIEnv* env) { |
641 return RegisterNativesImpl(env); | 631 return RegisterNativesImpl(env); |
642 } | 632 } |
OLD | NEW |