distilled_page_prefs_android.cc 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  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
  3. // found in the LICENSE file.
  4. #include "components/dom_distiller/core/distilled_page_prefs_android.h"
  5. #include "components/dom_distiller/core/distilled_page_prefs.h"
  6. #include "components/dom_distiller/core/dom_distiller_service.h"
  7. #include "components/dom_distiller/core/jni_headers/DistilledPagePrefs_jni.h"
  8. using base::android::JavaParamRef;
  9. namespace dom_distiller {
  10. namespace android {
  11. DistilledPagePrefsAndroid::DistilledPagePrefsAndroid(
  12. JNIEnv* env,
  13. jobject obj,
  14. DistilledPagePrefs* distilled_page_prefs_ptr)
  15. : distilled_page_prefs_(distilled_page_prefs_ptr) {}
  16. DistilledPagePrefsAndroid::~DistilledPagePrefsAndroid() {}
  17. void DistilledPagePrefsAndroid::SetFontFamily(JNIEnv* env,
  18. const JavaParamRef<jobject>& obj,
  19. jint font_family) {
  20. distilled_page_prefs_->SetFontFamily(
  21. static_cast<mojom::FontFamily>(font_family));
  22. }
  23. jint DistilledPagePrefsAndroid::GetFontFamily(
  24. JNIEnv* env,
  25. const JavaParamRef<jobject>& obj) {
  26. return (int)distilled_page_prefs_->GetFontFamily();
  27. }
  28. void DistilledPagePrefsAndroid::SetTheme(JNIEnv* env,
  29. const JavaParamRef<jobject>& obj,
  30. jint theme) {
  31. distilled_page_prefs_->SetTheme(static_cast<mojom::Theme>(theme));
  32. }
  33. jint DistilledPagePrefsAndroid::GetTheme(JNIEnv* env,
  34. const JavaParamRef<jobject>& obj) {
  35. return (int)distilled_page_prefs_->GetTheme();
  36. }
  37. void DistilledPagePrefsAndroid::SetFontScaling(JNIEnv* env,
  38. const JavaParamRef<jobject>& obj,
  39. jfloat scaling) {
  40. distilled_page_prefs_->SetFontScaling(static_cast<float>(scaling));
  41. }
  42. jfloat DistilledPagePrefsAndroid::GetFontScaling(
  43. JNIEnv* env,
  44. const JavaParamRef<jobject>& obj) {
  45. return distilled_page_prefs_->GetFontScaling();
  46. }
  47. jlong JNI_DistilledPagePrefs_Init(JNIEnv* env,
  48. const JavaParamRef<jobject>& obj,
  49. jlong distilled_page_prefs_ptr) {
  50. DistilledPagePrefs* distilled_page_prefs =
  51. reinterpret_cast<DistilledPagePrefs*>(distilled_page_prefs_ptr);
  52. DistilledPagePrefsAndroid* distilled_page_prefs_android =
  53. new DistilledPagePrefsAndroid(env, obj, distilled_page_prefs);
  54. return reinterpret_cast<intptr_t>(distilled_page_prefs_android);
  55. }
  56. void DistilledPagePrefsAndroid::AddObserver(JNIEnv* env,
  57. const JavaParamRef<jobject>& obj,
  58. jlong observer_ptr) {
  59. DistilledPagePrefsObserverAndroid* distilled_page_prefs_observer_wrapper =
  60. reinterpret_cast<DistilledPagePrefsObserverAndroid*>(observer_ptr);
  61. distilled_page_prefs_->AddObserver(distilled_page_prefs_observer_wrapper);
  62. }
  63. void DistilledPagePrefsAndroid::RemoveObserver(JNIEnv* env,
  64. const JavaParamRef<jobject>& obj,
  65. jlong observer_ptr) {
  66. DistilledPagePrefsObserverAndroid* distilled_page_prefs_observer_wrapper =
  67. reinterpret_cast<DistilledPagePrefsObserverAndroid*>(observer_ptr);
  68. distilled_page_prefs_->RemoveObserver(distilled_page_prefs_observer_wrapper);
  69. }
  70. DistilledPagePrefsObserverAndroid::DistilledPagePrefsObserverAndroid(
  71. JNIEnv* env,
  72. jobject obj) {
  73. java_ref_.Reset(env, obj);
  74. }
  75. DistilledPagePrefsObserverAndroid::~DistilledPagePrefsObserverAndroid() {}
  76. void DistilledPagePrefsObserverAndroid::DestroyObserverAndroid(JNIEnv* env) {
  77. delete this;
  78. }
  79. void DistilledPagePrefsObserverAndroid::OnChangeFontFamily(
  80. mojom::FontFamily new_font_family) {
  81. JNIEnv* env = base::android::AttachCurrentThread();
  82. Java_DistilledPagePrefsObserverWrapper_onChangeFontFamily(
  83. env, java_ref_, (int)new_font_family);
  84. }
  85. void DistilledPagePrefsObserverAndroid::OnChangeTheme(mojom::Theme new_theme) {
  86. JNIEnv* env = base::android::AttachCurrentThread();
  87. Java_DistilledPagePrefsObserverWrapper_onChangeTheme(env, java_ref_,
  88. (int)new_theme);
  89. }
  90. void DistilledPagePrefsObserverAndroid::OnChangeFontScaling(float scaling) {
  91. JNIEnv* env = base::android::AttachCurrentThread();
  92. Java_DistilledPagePrefsObserverWrapper_onChangeFontScaling(env, java_ref_,
  93. scaling);
  94. }
  95. jlong JNI_DistilledPagePrefs_InitObserverAndroid(
  96. JNIEnv* env,
  97. const JavaParamRef<jobject>& obj) {
  98. DistilledPagePrefsObserverAndroid* observer_android =
  99. new DistilledPagePrefsObserverAndroid(env, obj);
  100. return reinterpret_cast<intptr_t>(observer_android);
  101. }
  102. } // namespace android
  103. } // namespace dom_distiller