| 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 |