| Index: ui/android/java/src/org/chromium/ui/ViewAndroid.java
|
| diff --git a/ui/android/java/src/org/chromium/ui/ViewAndroid.java b/ui/android/java/src/org/chromium/ui/ViewAndroid.java
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0f0ca116a79c753f2058de2842c15b91ae4ebc2c
|
| --- /dev/null
|
| +++ b/ui/android/java/src/org/chromium/ui/ViewAndroid.java
|
| @@ -0,0 +1,60 @@
|
| +// Copyright (c) 2013 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.
|
| +
|
| +package org.chromium.ui;
|
| +
|
| +import org.chromium.base.JNINamespace;
|
| +import org.chromium.ui.ViewAndroidDelegate;
|
| +import org.chromium.ui.WindowAndroid;
|
| +
|
| +/**
|
| + * From the Chromium architecture point of view, ViewAndroid and its native counterpart
|
| + * serve purpose of representing Android view where Chrome expects to have a cross platform
|
| + * handle to the system view type. As Views are Java object on Android, this ViewAndroid
|
| + * and its native counterpart provide the expected abstractions on the C++ side and allow
|
| + * it to be flexibly glued to an actual Android Java View at runtime.
|
| + *
|
| + * It should only be used where access to Android Views is needed from the C++ code.
|
| + */
|
| +@JNINamespace("ui")
|
| +public class ViewAndroid {
|
| + // Native pointer to the c++ ViewAndroid object.
|
| + private int mNativeViewAndroid = 0;
|
| + private final ViewAndroidDelegate mViewAndroidDelegate;
|
| + private final WindowAndroid mWindowAndroid;
|
| +
|
| + /**
|
| + * Constructs a View object.
|
| + */
|
| + public ViewAndroid(WindowAndroid nativeWindow, ViewAndroidDelegate viewAndroidDelegate) {
|
| + mWindowAndroid = nativeWindow;
|
| + mViewAndroidDelegate = viewAndroidDelegate;
|
| + mNativeViewAndroid = nativeInit(mWindowAndroid.getNativePointer());
|
| + }
|
| +
|
| + public ViewAndroidDelegate getViewAndroidDelegate() {
|
| + return mViewAndroidDelegate;
|
| + }
|
| +
|
| + /**
|
| + * Destroys the c++ ViewAndroid object if one has been created.
|
| + */
|
| + public void destroy() {
|
| + if (mNativeViewAndroid != 0) {
|
| + nativeDestroy(mNativeViewAndroid);
|
| + mNativeViewAndroid = 0;
|
| + }
|
| + }
|
| +
|
| + /**
|
| + * Returns a pointer to the c++ AndroidWindow object.
|
| + * @return A pointer to the c++ AndroidWindow.
|
| + */
|
| + public int getNativePointer() {
|
| + return mNativeViewAndroid;
|
| + }
|
| +
|
| + private native int nativeInit(int windowPtr);
|
| + private native void nativeDestroy(int nativeViewAndroid);
|
| +}
|
|
|