| Index: ui/android/view_root.cc
|
| diff --git a/ui/android/view_root.cc b/ui/android/view_root.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..f7012ca16290459971ea75507cbaad017a72a5bd
|
| --- /dev/null
|
| +++ b/ui/android/view_root.cc
|
| @@ -0,0 +1,84 @@
|
| +// Copyright 2016 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 "ui/android/view_root.h"
|
| +
|
| +#include <jni.h>
|
| +#include <string>
|
| +#include <vector>
|
| +
|
| +#include "base/android/jni_weak_ref.h"
|
| +#include "base/android/scoped_java_ref.h"
|
| +#include "base/macros.h"
|
| +#include "base/observer_list.h"
|
| +#include "base/time/time.h"
|
| +#include "jni/ViewRoot_jni.h"
|
| +#include "ui/android/ui_android_export.h"
|
| +#include "ui/android/view_android.h"
|
| +#include "ui/gfx/geometry/vector2d_f.h"
|
| +
|
| +namespace ui {
|
| +
|
| +using base::android::JavaParamRef;
|
| +using base::android::JavaRef;
|
| +using base::android::ScopedJavaLocalRef;
|
| +
|
| +ViewRoot::ViewRoot() {}
|
| +
|
| +ViewRoot::ViewRoot(JNIEnv* env,
|
| + const base::android::JavaParamRef<jobject>& obj,
|
| + jlong jwindow_android) :
|
| + java_obj_(env, obj) {
|
| + WindowAndroid* window_android =
|
| + reinterpret_cast<WindowAndroid*>(jwindow_android);
|
| + DCHECK(window_android);
|
| + window_ = window_android;
|
| +}
|
| +
|
| +ViewRoot::~ViewRoot() {
|
| + JNIEnv* env = base::android::AttachCurrentThread();
|
| + const ScopedJavaLocalRef<jobject> view_root = java_obj_.get(env);
|
| + if (!view_root.is_null())
|
| + Java_ViewRoot_onDestroyNativeView(env, view_root);
|
| +}
|
| +
|
| +ViewAndroid* ViewRoot::GetViewRoot() {
|
| + return this;
|
| +}
|
| +
|
| +WindowAndroid* ViewRoot::GetWindowAndroid() const {
|
| + return window_;
|
| +}
|
| +
|
| +void ViewRoot::SetWindowAndroid(WindowAndroid* window) {
|
| + window_ = window;
|
| +}
|
| +
|
| +// static
|
| +void ViewRoot::OnPhysicalBackingSizeChanged(JNIEnv* env,
|
| + const JavaParamRef<jobject>& jobj,
|
| + int width,
|
| + int height) {
|
| + OnPhysicalBackingSizeChangedInternal(width, height);
|
| +}
|
| +
|
| +// static
|
| +ViewRoot* ViewRoot::FromJavaObject(JNIEnv* env,
|
| + const JavaParamRef<jobject>& obj) {
|
| + if (obj.is_null())
|
| + return nullptr;
|
| + return reinterpret_cast<ViewRoot*>(Java_ViewRoot_getNativePtr(env, obj));
|
| +}
|
| +
|
| +// static
|
| +jlong Init(JNIEnv* env,
|
| + const JavaParamRef<jobject>& obj,
|
| + jlong window_android) {
|
| + return reinterpret_cast<intptr_t>(new ViewRoot(env, obj, window_android));
|
| +}
|
| +
|
| +bool RegisterViewRoot(JNIEnv* env) {
|
| + return RegisterNativesImpl(env);
|
| +}
|
| +} // namespace ui
|
|
|