Index: chrome/browser/accessibility/font_size_prefs_android.cc |
diff --git a/chrome/browser/accessibility/font_size_prefs_android.cc b/chrome/browser/accessibility/font_size_prefs_android.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9d4f0f9235208be9bb5420b4906771839c305a9b |
--- /dev/null |
+++ b/chrome/browser/accessibility/font_size_prefs_android.cc |
@@ -0,0 +1,109 @@ |
+// Copyright (c) 2014 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "chrome/browser/accessibility/font_size_prefs_android.h" |
+#include "base/android/jni_weak_ref.h" |
+ |
+#include "base/observer_list.h" |
+#include "base/prefs/pref_service.h" |
+#include "base/values.h" |
+#include "chrome/browser/profiles/profile.h" |
+#include "chrome/browser/profiles/profile_android.h" |
+#include "chrome/browser/profiles/profile_manager.h" |
+#include "chrome/common/pref_names.h" |
+#include "jni/FontSizePrefs_jni.h" |
+ |
+FontSizePrefsAndroid::FontSizePrefsAndroid(JNIEnv* env, |
+ jobject obj, |
+ Profile* profile) { |
+ font_size_prefs_ = new FontSizePrefs(profile); |
+} |
+ |
+FontSizePrefsAndroid::~FontSizePrefsAndroid() { |
+} |
+ |
+void FontSizePrefsAndroid::SetFontScaleFactor(JNIEnv* env, |
+ jobject obj, |
+ jfloat font_size) { |
+ font_size_prefs_->SetFontScaleFactor(font_size); |
+} |
+ |
+float FontSizePrefsAndroid::GetFontScaleFactor(JNIEnv* env, jobject obj) { |
+ return font_size_prefs_->GetFontScaleFactor(); |
+} |
+ |
+void FontSizePrefsAndroid::SetForceEnableZoom(JNIEnv* env, |
+ jobject obj, |
+ jboolean enabled) { |
+ font_size_prefs_->SetForceEnableZoom(enabled); |
+} |
+ |
+bool FontSizePrefsAndroid::GetForceEnableZoom(JNIEnv* env, jobject obj) { |
+ return font_size_prefs_->GetForceEnableZoom(); |
+} |
+ |
+void FontSizePrefsAndroid::Destroy(JNIEnv* env, jobject obj) { |
+ font_size_prefs_->Destroy(); |
+} |
+ |
+bool FontSizePrefsAndroid::Register(JNIEnv* env) { |
+ return RegisterNativesImpl(env); |
+} |
+ |
+jlong Init(JNIEnv* env, jobject obj, jobject j_profile) { |
+ FontSizePrefsAndroid* font_size_prefs_android = new FontSizePrefsAndroid( |
+ env, obj, ProfileAndroid::FromProfileAndroid(j_profile)); |
+ return reinterpret_cast<intptr_t>(font_size_prefs_android); |
+} |
+ |
+void FontSizePrefsAndroid::RemoveObserver(JNIEnv* env, |
+ jobject obj, |
+ jlong observerPtr) { |
+ FontSizePrefsObserverAndroid* font_size_prefs_observer_android = |
+ reinterpret_cast<FontSizePrefsObserverAndroid*>(observerPtr); |
+ font_size_prefs_->RemoveObserver(font_size_prefs_observer_android); |
+} |
+ |
+void FontSizePrefsAndroid::AddObserver(JNIEnv* env, |
+ jobject obj, |
+ jlong observerPtr) { |
+ FontSizePrefsObserverAndroid* font_size_prefs_observer_android = |
+ reinterpret_cast<FontSizePrefsObserverAndroid*>(observerPtr); |
+ font_size_prefs_->AddObserver(font_size_prefs_observer_android); |
+} |
+ |
+FontSizePrefsObserverAndroid::FontSizePrefsObserverAndroid(JNIEnv* env, |
+ jobject obj) { |
+ java_ref_.Reset(env, obj); |
+} |
+ |
+FontSizePrefsObserverAndroid::~FontSizePrefsObserverAndroid() { |
+} |
+ |
+bool FontSizePrefsObserverAndroid::Register(JNIEnv* env) { |
+ return RegisterNativesImpl(env); |
+} |
+ |
+void FontSizePrefsObserverAndroid::DestroyObserverAndroid(JNIEnv* env, |
+ jobject obj) { |
+ delete this; |
+} |
+ |
+jlong InitObserverAndroid(JNIEnv* env, jobject obj) { |
+ FontSizePrefsObserverAndroid* observer_wrapper = |
+ new FontSizePrefsObserverAndroid(env, obj); |
+ return reinterpret_cast<intptr_t>(observer_wrapper); |
+} |
+ |
+void FontSizePrefsObserverAndroid::OnChangeFontSize(float font_size) { |
+ JNIEnv* env = base::android::AttachCurrentThread(); |
+ Java_FontSizePrefsObserverWrapper_onChangeFontSize( |
+ env, java_ref_.obj(), font_size); |
+} |
+ |
+void FontSizePrefsObserverAndroid::OnChangeForceEnableZoom(bool enabled) { |
+ JNIEnv* env = base::android::AttachCurrentThread(); |
+ Java_FontSizePrefsObserverWrapper_onChangeForceEnableZoom( |
+ env, java_ref_.obj(), enabled); |
+} |