distilled_page_prefs_android.h 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  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. #ifndef COMPONENTS_DOM_DISTILLER_CORE_DISTILLED_PAGE_PREFS_ANDROID_H_
  5. #define COMPONENTS_DOM_DISTILLER_CORE_DISTILLED_PAGE_PREFS_ANDROID_H_
  6. #include <jni.h>
  7. #include "base/android/scoped_java_ref.h"
  8. #include "base/memory/raw_ptr.h"
  9. #include "components/dom_distiller/core/distilled_page_prefs.h"
  10. namespace dom_distiller {
  11. namespace android {
  12. class DistilledPagePrefsAndroid {
  13. public:
  14. DistilledPagePrefsAndroid(JNIEnv* env,
  15. jobject obj,
  16. DistilledPagePrefs* distilled_page_prefs_ptr);
  17. DistilledPagePrefsAndroid(const DistilledPagePrefsAndroid&) = delete;
  18. DistilledPagePrefsAndroid& operator=(const DistilledPagePrefsAndroid&) =
  19. delete;
  20. virtual ~DistilledPagePrefsAndroid();
  21. void SetFontFamily(JNIEnv* env,
  22. const base::android::JavaParamRef<jobject>& obj,
  23. jint font_family);
  24. jint GetFontFamily(JNIEnv* env,
  25. const base::android::JavaParamRef<jobject>& obj);
  26. void SetTheme(JNIEnv* env,
  27. const base::android::JavaParamRef<jobject>& obj,
  28. jint theme);
  29. jint GetTheme(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj);
  30. void SetFontScaling(JNIEnv* env,
  31. const base::android::JavaParamRef<jobject>& obj,
  32. jfloat scaling);
  33. jfloat GetFontScaling(JNIEnv* env,
  34. const base::android::JavaParamRef<jobject>& obj);
  35. void AddObserver(JNIEnv* env,
  36. const base::android::JavaParamRef<jobject>& obj,
  37. jlong obs);
  38. void RemoveObserver(JNIEnv* env,
  39. const base::android::JavaParamRef<jobject>& obj,
  40. jlong obs);
  41. private:
  42. raw_ptr<DistilledPagePrefs> distilled_page_prefs_;
  43. };
  44. class DistilledPagePrefsObserverAndroid : public DistilledPagePrefs::Observer {
  45. public:
  46. DistilledPagePrefsObserverAndroid(JNIEnv* env, jobject obj);
  47. virtual ~DistilledPagePrefsObserverAndroid();
  48. // DistilledPagePrefs::Observer implementation.
  49. void OnChangeFontFamily(mojom::FontFamily new_font_family) override;
  50. void OnChangeTheme(mojom::Theme new_theme) override;
  51. void OnChangeFontScaling(float scaling) override;
  52. virtual void DestroyObserverAndroid(JNIEnv* env);
  53. private:
  54. base::android::ScopedJavaGlobalRef<jobject> java_ref_;
  55. };
  56. } // namespace android
  57. } // namespace dom_distiller
  58. #endif // COMPONENTS_DOM_DISTILLER_CORE_DISTILLED_PAGE_PREFS_ANDROID_H_