template_url_android.cc 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // Copyright 2019 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. #include "components/search_engines/android/template_url_android.h"
  5. #include "base/android/jni_android.h"
  6. #include "base/android/jni_string.h"
  7. #include "components/search_engines/template_url.h"
  8. #include "components/search_engines/android/jni_headers/TemplateUrl_jni.h"
  9. using base::android::JavaParamRef;
  10. using base::android::ScopedJavaLocalRef;
  11. TemplateURL* ToTemplateURL(jlong j_template_url) {
  12. return reinterpret_cast<TemplateURL*>(j_template_url);
  13. }
  14. ScopedJavaLocalRef<jstring> JNI_TemplateUrl_GetShortName(
  15. JNIEnv* env,
  16. jlong template_url_ptr) {
  17. TemplateURL* template_url = ToTemplateURL(template_url_ptr);
  18. return base::android::ConvertUTF16ToJavaString(env,
  19. template_url->short_name());
  20. }
  21. ScopedJavaLocalRef<jstring> JNI_TemplateUrl_GetKeyword(JNIEnv* env,
  22. jlong template_url_ptr) {
  23. TemplateURL* template_url = ToTemplateURL(template_url_ptr);
  24. return base::android::ConvertUTF16ToJavaString(env, template_url->keyword());
  25. }
  26. jboolean JNI_TemplateUrl_IsPrepopulatedOrCreatedByPolicy(
  27. JNIEnv* env,
  28. jlong template_url_ptr) {
  29. TemplateURL* template_url = ToTemplateURL(template_url_ptr);
  30. return template_url->prepopulate_id() > 0 ||
  31. template_url->created_by_policy() ||
  32. template_url->created_from_play_api();
  33. }
  34. jlong JNI_TemplateUrl_GetLastVisitedTime(JNIEnv* env, jlong template_url_ptr) {
  35. TemplateURL* template_url = ToTemplateURL(template_url_ptr);
  36. return template_url->last_visited().ToJavaTime();
  37. }
  38. jint JNI_TemplateUrl_GetPrepopulatedId(JNIEnv* env, jlong template_url_ptr) {
  39. TemplateURL* template_url = ToTemplateURL(template_url_ptr);
  40. return template_url->prepopulate_id();
  41. }
  42. ScopedJavaLocalRef<jobject> CreateTemplateUrlAndroid(
  43. JNIEnv* env,
  44. const TemplateURL* template_url) {
  45. return Java_TemplateUrl_create(env, reinterpret_cast<intptr_t>(template_url));
  46. }
  47. ScopedJavaLocalRef<jstring> JNI_TemplateUrl_GetURL(JNIEnv* env,
  48. jlong template_url_ptr) {
  49. TemplateURL* template_url = ToTemplateURL(template_url_ptr);
  50. return base::android::ConvertUTF8ToJavaString(env, template_url->url());
  51. }