From f7c4c2733bdcd78a67748fb8444c58df9bad7354 Mon Sep 17 00:00:00 2001 From: "tfarina@chromium.org" Date: Thu, 31 Oct 2013 07:36:00 +0000 Subject: ui: Move android C++ source files into base/android directory. BUG=299841 TEST=None, no functional changes. R=ben@chromium.org,bulach@chromium.org Review URL: https://codereview.chromium.org/51663003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232036 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/android/testshell/testshell_tab.cc | 2 +- chrome/browser/platform_util_android.cc | 2 +- .../autofill/autofill_dialog_controller_android.cc | 2 +- .../autofill/autofill_popup_view_android.cc | 4 +- .../android/javascript_app_modal_dialog_android.cc | 2 +- chrome/browser/ui/android/window_android_helper.cc | 2 +- chrome/test/base/chrome_test_suite.cc | 2 +- content/app/android/library_loader_hooks.cc | 2 +- content/browser/android/content_view_core_impl.cc | 4 +- content/browser/power_save_blocker_android.cc | 2 +- content/public/test/content_test_suite_base.cc | 2 +- ui/android/DEPS | 5 -- ui/android/ui_jni_registrar.cc | 32 ----------- ui/android/ui_jni_registrar.h | 21 -------- ui/android/view_android.cc | 51 ------------------ ui/android/view_android.h | 41 -------------- ui/android/window_android.cc | 62 ---------------------- ui/android/window_android.h | 48 ----------------- ui/base/DEPS | 3 +- ui/base/android/OWNERS | 4 ++ ui/base/android/ui_jni_registrar.cc | 32 +++++++++++ ui/base/android/ui_jni_registrar.h | 21 ++++++++ ui/base/android/view_android.cc | 51 ++++++++++++++++++ ui/base/android/view_android.h | 41 ++++++++++++++ ui/base/android/window_android.cc | 62 ++++++++++++++++++++++ ui/base/android/window_android.h | 48 +++++++++++++++++ ui/shell_dialogs/select_file_dialog_android.cc | 2 +- ui/snapshot/snapshot_android.cc | 4 +- ui/test/test_suite.cc | 2 +- ui/ui.gyp | 24 ++++----- 30 files changed, 290 insertions(+), 290 deletions(-) delete mode 100644 ui/android/DEPS delete mode 100644 ui/android/ui_jni_registrar.cc delete mode 100644 ui/android/ui_jni_registrar.h delete mode 100644 ui/android/view_android.cc delete mode 100644 ui/android/view_android.h delete mode 100644 ui/android/window_android.cc delete mode 100644 ui/android/window_android.h create mode 100644 ui/base/android/OWNERS create mode 100644 ui/base/android/ui_jni_registrar.cc create mode 100644 ui/base/android/ui_jni_registrar.h create mode 100644 ui/base/android/view_android.cc create mode 100644 ui/base/android/view_android.h create mode 100644 ui/base/android/window_android.cc create mode 100644 ui/base/android/window_android.h diff --git a/chrome/android/testshell/testshell_tab.cc b/chrome/android/testshell/testshell_tab.cc index b625479..b6ceb47 100644 --- a/chrome/android/testshell/testshell_tab.cc +++ b/chrome/android/testshell/testshell_tab.cc @@ -13,7 +13,7 @@ #include "content/public/browser/android/content_view_core.h" #include "content/public/browser/web_contents.h" #include "jni/TestShellTab_jni.h" -#include "ui/android/window_android.h" +#include "ui/base/android/window_android.h" #include "url/gurl.h" using base::android::ConvertJavaStringToUTF8; diff --git a/chrome/browser/platform_util_android.cc b/chrome/browser/platform_util_android.cc index dded7bc..1476ffd 100644 --- a/chrome/browser/platform_util_android.cc +++ b/chrome/browser/platform_util_android.cc @@ -4,7 +4,7 @@ #include "base/logging.h" #include "chrome/browser/platform_util.h" -#include "ui/android/view_android.h" +#include "ui/base/android/view_android.h" namespace platform_util { diff --git a/chrome/browser/ui/android/autofill/autofill_dialog_controller_android.cc b/chrome/browser/ui/android/autofill/autofill_dialog_controller_android.cc index 9db3e43..bfacb8a 100644 --- a/chrome/browser/ui/android/autofill/autofill_dialog_controller_android.cc +++ b/chrome/browser/ui/android/autofill/autofill_dialog_controller_android.cc @@ -37,7 +37,7 @@ #include "content/public/browser/web_contents.h" #include "grit/generated_resources.h" #include "jni/AutofillDialogControllerAndroid_jni.h" -#include "ui/android/window_android.h" +#include "ui/base/android/window_android.h" #include "ui/base/l10n/l10n_util.h" #include "ui/base/models/combobox_model.h" #include "ui/base/models/menu_model.h" diff --git a/chrome/browser/ui/android/autofill/autofill_popup_view_android.cc b/chrome/browser/ui/android/autofill/autofill_popup_view_android.cc index 755947b..12b8121 100644 --- a/chrome/browser/ui/android/autofill/autofill_popup_view_android.cc +++ b/chrome/browser/ui/android/autofill/autofill_popup_view_android.cc @@ -10,8 +10,8 @@ #include "chrome/browser/ui/autofill/autofill_popup_controller.h" #include "content/public/browser/android/content_view_core.h" #include "jni/AutofillPopupGlue_jni.h" -#include "ui/android/view_android.h" -#include "ui/android/window_android.h" +#include "ui/base/android/view_android.h" +#include "ui/base/android/window_android.h" #include "ui/gfx/rect.h" namespace autofill { diff --git a/chrome/browser/ui/android/javascript_app_modal_dialog_android.cc b/chrome/browser/ui/android/javascript_app_modal_dialog_android.cc index 5d6242c..021f823 100644 --- a/chrome/browser/ui/android/javascript_app_modal_dialog_android.cc +++ b/chrome/browser/ui/android/javascript_app_modal_dialog_android.cc @@ -15,7 +15,7 @@ #include "content/public/browser/web_contents.h" #include "content/public/common/javascript_message_type.h" #include "jni/JavascriptAppModalDialog_jni.h" -#include "ui/android/window_android.h" +#include "ui/base/android/window_android.h" using base::android::AttachCurrentThread; using base::android::ConvertUTF16ToJavaString; diff --git a/chrome/browser/ui/android/window_android_helper.cc b/chrome/browser/ui/android/window_android_helper.cc index 9a6c0b9..e708d40 100644 --- a/chrome/browser/ui/android/window_android_helper.cc +++ b/chrome/browser/ui/android/window_android_helper.cc @@ -5,7 +5,7 @@ #include "chrome/browser/ui/android/window_android_helper.h" #include "content/public/browser/web_contents.h" -#include "ui/android/window_android.h" +#include "ui/base/android/window_android.h" DEFINE_WEB_CONTENTS_USER_DATA_KEY(WindowAndroidHelper); diff --git a/chrome/test/base/chrome_test_suite.cc b/chrome/test/base/chrome_test_suite.cc index e010054..7183b5c 100644 --- a/chrome/test/base/chrome_test_suite.cc +++ b/chrome/test/base/chrome_test_suite.cc @@ -36,7 +36,7 @@ #include "base/android/jni_android.h" #include "chrome/browser/android/chrome_jni_registrar.h" #include "net/android/net_jni_registrar.h" -#include "ui/android/ui_jni_registrar.h" +#include "ui/base/android/ui_jni_registrar.h" #include "ui/gfx/android/gfx_jni_registrar.h" #include "ui/gl/android/gl_jni_registrar.h" #endif diff --git a/content/app/android/library_loader_hooks.cc b/content/app/android/library_loader_hooks.cc index 074de12..5ef9461 100644 --- a/content/app/android/library_loader_hooks.cc +++ b/content/app/android/library_loader_hooks.cc @@ -27,7 +27,7 @@ #include "jni/LibraryLoader_jni.h" #include "media/base/android/media_jni_registrar.h" #include "net/android/net_jni_registrar.h" -#include "ui/android/ui_jni_registrar.h" +#include "ui/base/android/ui_jni_registrar.h" #include "ui/gfx/android/gfx_jni_registrar.h" #include "ui/gl/android/gl_jni_registrar.h" #include "ui/shell_dialogs/android/shell_dialogs_jni_registrar.h" diff --git a/content/browser/android/content_view_core_impl.cc b/content/browser/android/content_view_core_impl.cc index 1e296f1..8f09202 100644 --- a/content/browser/android/content_view_core_impl.cc +++ b/content/browser/android/content_view_core_impl.cc @@ -48,8 +48,8 @@ #include "jni/ContentViewCore_jni.h" #include "third_party/WebKit/public/web/WebBindings.h" #include "third_party/WebKit/public/web/WebInputEvent.h" -#include "ui/android/view_android.h" -#include "ui/android/window_android.h" +#include "ui/base/android/view_android.h" +#include "ui/base/android/window_android.h" #include "ui/gfx/android/java_bitmap.h" #include "ui/gfx/screen.h" #include "ui/gfx/size_conversions.h" diff --git a/content/browser/power_save_blocker_android.cc b/content/browser/power_save_blocker_android.cc index 720fbb2..ad9b24c 100644 --- a/content/browser/power_save_blocker_android.cc +++ b/content/browser/power_save_blocker_android.cc @@ -11,7 +11,7 @@ #include "content/public/browser/android/content_view_core.h" #include "content/public/browser/browser_thread.h" #include "jni/PowerSaveBlocker_jni.h" -#include "ui/android/view_android.h" +#include "ui/base/android/view_android.h" using base::android::AttachCurrentThread; using base::android::ScopedJavaLocalRef; diff --git a/content/public/test/content_test_suite_base.cc b/content/public/test/content_test_suite_base.cc index 2fe64ef..0532079 100644 --- a/content/public/test/content_test_suite_base.cc +++ b/content/public/test/content_test_suite_base.cc @@ -28,7 +28,7 @@ #include "content/common/android/common_jni_registrar.h" #include "media/base/android/media_jni_registrar.h" #include "net/android/net_jni_registrar.h" -#include "ui/android/ui_jni_registrar.h" +#include "ui/base/android/ui_jni_registrar.h" #include "ui/gfx/android/gfx_jni_registrar.h" #include "ui/gl/android/gl_jni_registrar.h" #include "ui/shell_dialogs/android/shell_dialogs_jni_registrar.h" diff --git a/ui/android/DEPS b/ui/android/DEPS deleted file mode 100644 index 5ad99de..0000000 --- a/ui/android/DEPS +++ /dev/null @@ -1,5 +0,0 @@ -include_rules = [ - "+jni", - "+ui/base", - "+ui/gfx", -] diff --git a/ui/android/ui_jni_registrar.cc b/ui/android/ui_jni_registrar.cc deleted file mode 100644 index 33aeeaf..0000000 --- a/ui/android/ui_jni_registrar.cc +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright (c) 2012 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/ui_jni_registrar.h" - -#include "base/android/jni_android.h" -#include "base/android/jni_registrar.h" -#include "ui/android/view_android.h" -#include "ui/android/window_android.h" -#include "ui/base/clipboard/clipboard_android_initialization.h" -#include "ui/base/l10n/l10n_util_android.h" -#include "ui/gfx/android/device_display_info.h" -#include "ui/gfx/android/java_bitmap.h" - -namespace ui { -namespace android { - -static base::android::RegistrationMethod kUiRegisteredMethods[] = { - { "Clipboard", ui::RegisterClipboardAndroid }, - { "LocalizationUtils", l10n_util::RegisterLocalizationUtil }, - { "ViewAndroid", ui::ViewAndroid::RegisterViewAndroid }, - { "WindowAndroid", ui::WindowAndroid::RegisterWindowAndroid }, -}; - -bool RegisterJni(JNIEnv* env) { - return RegisterNativeMethods(env, kUiRegisteredMethods, - arraysize(kUiRegisteredMethods)); -} - -} // namespace android -} // namespace ui diff --git a/ui/android/ui_jni_registrar.h b/ui/android/ui_jni_registrar.h deleted file mode 100644 index f40ed40..0000000 --- a/ui/android/ui_jni_registrar.h +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) 2012 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. - -#ifndef UI_ANDROID_UI_JNI_REGISTRAR_H_ -#define UI_ANDROID_UI_JNI_REGISTRAR_H_ - -#include - -#include "ui/base/ui_export.h" - -namespace ui { -namespace android { - -// Register all JNI bindings necessary for chrome. -UI_EXPORT bool RegisterJni(JNIEnv* env); - -} // namespace android -} // namespace ui - -#endif // UI_ANDROID_UI_JNI_REGISTRAR_H_ diff --git a/ui/android/view_android.cc b/ui/android/view_android.cc deleted file mode 100644 index adfd987..0000000 --- a/ui/android/view_android.cc +++ /dev/null @@ -1,51 +0,0 @@ -// 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. - -#include "ui/android/view_android.h" - -#include "base/android/jni_android.h" -#include "base/android/jni_helper.h" -#include "base/android/scoped_java_ref.h" -#include "jni/ViewAndroid_jni.h" -#include "ui/android/window_android.h" - -namespace ui { - -using base::android::AttachCurrentThread; -using base::android::ScopedJavaLocalRef; - -ViewAndroid::ViewAndroid(JNIEnv* env, jobject obj, WindowAndroid* window) - : weak_java_view_(env, obj), - window_android_(window) {} - -void ViewAndroid::Destroy(JNIEnv* env, jobject obj) { - DCHECK(obj && env->IsSameObject(weak_java_view_.get(env).obj(), obj)); - delete this; -} - -ScopedJavaLocalRef ViewAndroid::GetJavaObject() { - // It is mandatory to explicitly call destroy() before releasing the java - // side object. This could be changed in future by adding CleanupReference - // based destruct path; - return weak_java_view_.get(AttachCurrentThread()); -} - -WindowAndroid* ViewAndroid::GetWindowAndroid() { - return window_android_; -} - -bool ViewAndroid::RegisterViewAndroid(JNIEnv* env) { - return RegisterNativesImpl(env); -} - -ViewAndroid::~ViewAndroid() { -} - -jint Init(JNIEnv* env, jobject obj, jint window) { - ViewAndroid* view = new ViewAndroid( - env, obj, reinterpret_cast(window)); - return reinterpret_cast(view); -} - -} // namespace ui diff --git a/ui/android/view_android.h b/ui/android/view_android.h deleted file mode 100644 index c95608d..0000000 --- a/ui/android/view_android.h +++ /dev/null @@ -1,41 +0,0 @@ -// 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. - -#ifndef UI_ANDROID_VIEW_ANDROID_H_ -#define UI_ANDROID_VIEW_ANDROID_H_ - -#include -#include "base/android/jni_helper.h" -#include "base/android/scoped_java_ref.h" -#include "ui/base/ui_export.h" - -namespace ui { - -class WindowAndroid; - -// This class is the native counterpart for ViewAndroid. It is owned by the -// Java ViewAndroid object. -class UI_EXPORT ViewAndroid { - public: - ViewAndroid(JNIEnv* env, jobject obj, WindowAndroid* window); - - void Destroy(JNIEnv* env, jobject obj); - - WindowAndroid* GetWindowAndroid(); - - base::android::ScopedJavaLocalRef GetJavaObject(); - - static bool RegisterViewAndroid(JNIEnv* env); - - private: - ~ViewAndroid(); - JavaObjectWeakGlobalRef weak_java_view_; - WindowAndroid* window_android_; - - DISALLOW_COPY_AND_ASSIGN(ViewAndroid); -}; - -} // namespace ui - -#endif // UI_ANDROID_VIEW_ANDROID_H_ diff --git a/ui/android/window_android.cc b/ui/android/window_android.cc deleted file mode 100644 index 439268f..0000000 --- a/ui/android/window_android.cc +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright (c) 2012 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/window_android.h" - -#include "base/android/jni_android.h" -#include "base/android/jni_array.h" -#include "base/android/jni_helper.h" -#include "base/android/scoped_java_ref.h" -#include "jni/WindowAndroid_jni.h" - -namespace ui { - -using base::android::AttachCurrentThread; -using base::android::ScopedJavaLocalRef; - -WindowAndroid::WindowAndroid(JNIEnv* env, jobject obj) - : weak_java_window_(env, obj) { -} - -void WindowAndroid::Destroy(JNIEnv* env, jobject obj) { - delete this; -} - -ScopedJavaLocalRef WindowAndroid::GetJavaObject() { - return weak_java_window_.get(AttachCurrentThread()); -} - -bool WindowAndroid::RegisterWindowAndroid(JNIEnv* env) { - return RegisterNativesImpl(env); -} - -WindowAndroid::~WindowAndroid() { -} - -bool WindowAndroid::GrabSnapshot( - int content_x, int content_y, int width, int height, - std::vector* png_representation) { - JNIEnv* env = AttachCurrentThread(); - ScopedJavaLocalRef result = - Java_WindowAndroid_grabSnapshot(env, GetJavaObject().obj(), - content_x + content_offset_.x(), - content_y + content_offset_.y(), - width, height); - if (result.is_null()) - return false; - base::android::JavaByteArrayToByteVector( - env, result.obj(), png_representation); - return true; -} - -// ---------------------------------------------------------------------------- -// Native JNI methods -// ---------------------------------------------------------------------------- - -jint Init(JNIEnv* env, jobject obj) { - WindowAndroid* window = new WindowAndroid(env, obj); - return reinterpret_cast(window); -} - -} // namespace ui diff --git a/ui/android/window_android.h b/ui/android/window_android.h deleted file mode 100644 index 14b1f09..0000000 --- a/ui/android/window_android.h +++ /dev/null @@ -1,48 +0,0 @@ -// Copyright (c) 2012 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. - -#ifndef UI_ANDROID_WINDOW_ANDROID_H_ -#define UI_ANDROID_WINDOW_ANDROID_H_ - -#include -#include -#include "base/android/jni_helper.h" -#include "base/android/scoped_java_ref.h" -#include "ui/base/ui_export.h" -#include "ui/gfx/vector2d_f.h" - -namespace ui { - -// Android implementation of the activity window. -class UI_EXPORT WindowAndroid { - public: - WindowAndroid(JNIEnv* env, jobject obj); - - void Destroy(JNIEnv* env, jobject obj); - - base::android::ScopedJavaLocalRef GetJavaObject(); - - static bool RegisterWindowAndroid(JNIEnv* env); - - // The content offset is used to translate snapshots to the correct part of - // the window. - void set_content_offset(const gfx::Vector2dF& content_offset) { - content_offset_ = content_offset; - } - - bool GrabSnapshot(int content_x, int content_y, int width, int height, - std::vector* png_representation); - - private: - ~WindowAndroid(); - - JavaObjectWeakGlobalRef weak_java_window_; - gfx::Vector2dF content_offset_; - - DISALLOW_COPY_AND_ASSIGN(WindowAndroid); -}; - -} // namespace ui - -#endif // UI_ANDROID_WINDOW_ANDROID_H_ diff --git a/ui/base/DEPS b/ui/base/DEPS index cda1db3..99ec151 100644 --- a/ui/base/DEPS +++ b/ui/base/DEPS @@ -1,9 +1,10 @@ include_rules = [ "+grit/app_locale_settings.h", "+grit/ui_resources.h", - "+grit/ui_unscaled_resources.h", "+grit/ui_strings.h", + "+grit/ui_unscaled_resources.h", "+grit/webui_resources.h", + "+jni", "+net", "+skia/ext", "+third_party/skia", diff --git a/ui/base/android/OWNERS b/ui/base/android/OWNERS new file mode 100644 index 0000000..9535813 --- /dev/null +++ b/ui/base/android/OWNERS @@ -0,0 +1,4 @@ +bulach@chromium.org +tedchoc@chromium.org +yfriedman@chromium.org +newt@chromium.org diff --git a/ui/base/android/ui_jni_registrar.cc b/ui/base/android/ui_jni_registrar.cc new file mode 100644 index 0000000..6ab2174 --- /dev/null +++ b/ui/base/android/ui_jni_registrar.cc @@ -0,0 +1,32 @@ +// Copyright 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. + +#include "ui/base/android/ui_jni_registrar.h" + +#include "base/android/jni_android.h" +#include "base/android/jni_registrar.h" +#include "ui/base/android/view_android.h" +#include "ui/base/android/window_android.h" +#include "ui/base/clipboard/clipboard_android_initialization.h" +#include "ui/base/l10n/l10n_util_android.h" +#include "ui/gfx/android/device_display_info.h" +#include "ui/gfx/android/java_bitmap.h" + +namespace ui { +namespace android { + +static base::android::RegistrationMethod kUiRegisteredMethods[] = { + { "Clipboard", ui::RegisterClipboardAndroid }, + { "LocalizationUtils", l10n_util::RegisterLocalizationUtil }, + { "ViewAndroid", ui::ViewAndroid::RegisterViewAndroid }, + { "WindowAndroid", ui::WindowAndroid::RegisterWindowAndroid }, +}; + +bool RegisterJni(JNIEnv* env) { + return RegisterNativeMethods(env, kUiRegisteredMethods, + arraysize(kUiRegisteredMethods)); +} + +} // namespace android +} // namespace ui diff --git a/ui/base/android/ui_jni_registrar.h b/ui/base/android/ui_jni_registrar.h new file mode 100644 index 0000000..7e6da21 --- /dev/null +++ b/ui/base/android/ui_jni_registrar.h @@ -0,0 +1,21 @@ +// Copyright 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. + +#ifndef UI_BASE_ANDROID_UI_JNI_REGISTRAR_H_ +#define UI_BASE_ANDROID_UI_JNI_REGISTRAR_H_ + +#include + +#include "ui/base/ui_export.h" + +namespace ui { +namespace android { + +// Register all JNI bindings necessary for chrome. +UI_EXPORT bool RegisterJni(JNIEnv* env); + +} // namespace android +} // namespace ui + +#endif // UI_BASE_ANDROID_UI_JNI_REGISTRAR_H_ diff --git a/ui/base/android/view_android.cc b/ui/base/android/view_android.cc new file mode 100644 index 0000000..8ee832e --- /dev/null +++ b/ui/base/android/view_android.cc @@ -0,0 +1,51 @@ +// Copyright 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. + +#include "ui/base/android/view_android.h" + +#include "base/android/jni_android.h" +#include "base/android/jni_helper.h" +#include "base/android/scoped_java_ref.h" +#include "jni/ViewAndroid_jni.h" +#include "ui/base/android/window_android.h" + +namespace ui { + +using base::android::AttachCurrentThread; +using base::android::ScopedJavaLocalRef; + +ViewAndroid::ViewAndroid(JNIEnv* env, jobject obj, WindowAndroid* window) + : weak_java_view_(env, obj), + window_android_(window) {} + +void ViewAndroid::Destroy(JNIEnv* env, jobject obj) { + DCHECK(obj && env->IsSameObject(weak_java_view_.get(env).obj(), obj)); + delete this; +} + +ScopedJavaLocalRef ViewAndroid::GetJavaObject() { + // It is mandatory to explicitly call destroy() before releasing the java + // side object. This could be changed in future by adding CleanupReference + // based destruct path; + return weak_java_view_.get(AttachCurrentThread()); +} + +WindowAndroid* ViewAndroid::GetWindowAndroid() { + return window_android_; +} + +bool ViewAndroid::RegisterViewAndroid(JNIEnv* env) { + return RegisterNativesImpl(env); +} + +ViewAndroid::~ViewAndroid() { +} + +jint Init(JNIEnv* env, jobject obj, jint window) { + ViewAndroid* view = new ViewAndroid( + env, obj, reinterpret_cast(window)); + return reinterpret_cast(view); +} + +} // namespace ui diff --git a/ui/base/android/view_android.h b/ui/base/android/view_android.h new file mode 100644 index 0000000..7bd334d --- /dev/null +++ b/ui/base/android/view_android.h @@ -0,0 +1,41 @@ +// Copyright 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. + +#ifndef UI_BASE_ANDROID_VIEW_ANDROID_H_ +#define UI_BASE_ANDROID_VIEW_ANDROID_H_ + +#include +#include "base/android/jni_helper.h" +#include "base/android/scoped_java_ref.h" +#include "ui/base/ui_export.h" + +namespace ui { + +class WindowAndroid; + +// This class is the native counterpart for ViewAndroid. It is owned by the +// Java ViewAndroid object. +class UI_EXPORT ViewAndroid { + public: + ViewAndroid(JNIEnv* env, jobject obj, WindowAndroid* window); + + void Destroy(JNIEnv* env, jobject obj); + + WindowAndroid* GetWindowAndroid(); + + base::android::ScopedJavaLocalRef GetJavaObject(); + + static bool RegisterViewAndroid(JNIEnv* env); + + private: + ~ViewAndroid(); + JavaObjectWeakGlobalRef weak_java_view_; + WindowAndroid* window_android_; + + DISALLOW_COPY_AND_ASSIGN(ViewAndroid); +}; + +} // namespace ui + +#endif // UI_BASE_ANDROID_VIEW_ANDROID_H_ diff --git a/ui/base/android/window_android.cc b/ui/base/android/window_android.cc new file mode 100644 index 0000000..4b421f9 --- /dev/null +++ b/ui/base/android/window_android.cc @@ -0,0 +1,62 @@ +// Copyright 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. + +#include "ui/base/android/window_android.h" + +#include "base/android/jni_android.h" +#include "base/android/jni_array.h" +#include "base/android/jni_helper.h" +#include "base/android/scoped_java_ref.h" +#include "jni/WindowAndroid_jni.h" + +namespace ui { + +using base::android::AttachCurrentThread; +using base::android::ScopedJavaLocalRef; + +WindowAndroid::WindowAndroid(JNIEnv* env, jobject obj) + : weak_java_window_(env, obj) { +} + +void WindowAndroid::Destroy(JNIEnv* env, jobject obj) { + delete this; +} + +ScopedJavaLocalRef WindowAndroid::GetJavaObject() { + return weak_java_window_.get(AttachCurrentThread()); +} + +bool WindowAndroid::RegisterWindowAndroid(JNIEnv* env) { + return RegisterNativesImpl(env); +} + +WindowAndroid::~WindowAndroid() { +} + +bool WindowAndroid::GrabSnapshot( + int content_x, int content_y, int width, int height, + std::vector* png_representation) { + JNIEnv* env = AttachCurrentThread(); + ScopedJavaLocalRef result = + Java_WindowAndroid_grabSnapshot(env, GetJavaObject().obj(), + content_x + content_offset_.x(), + content_y + content_offset_.y(), + width, height); + if (result.is_null()) + return false; + base::android::JavaByteArrayToByteVector( + env, result.obj(), png_representation); + return true; +} + +// ---------------------------------------------------------------------------- +// Native JNI methods +// ---------------------------------------------------------------------------- + +jint Init(JNIEnv* env, jobject obj) { + WindowAndroid* window = new WindowAndroid(env, obj); + return reinterpret_cast(window); +} + +} // namespace ui diff --git a/ui/base/android/window_android.h b/ui/base/android/window_android.h new file mode 100644 index 0000000..6c16b45 --- /dev/null +++ b/ui/base/android/window_android.h @@ -0,0 +1,48 @@ +// Copyright 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. + +#ifndef UI_BASE_ANDROID_WINDOW_ANDROID_H_ +#define UI_BASE_ANDROID_WINDOW_ANDROID_H_ + +#include +#include +#include "base/android/jni_helper.h" +#include "base/android/scoped_java_ref.h" +#include "ui/base/ui_export.h" +#include "ui/gfx/vector2d_f.h" + +namespace ui { + +// Android implementation of the activity window. +class UI_EXPORT WindowAndroid { + public: + WindowAndroid(JNIEnv* env, jobject obj); + + void Destroy(JNIEnv* env, jobject obj); + + base::android::ScopedJavaLocalRef GetJavaObject(); + + static bool RegisterWindowAndroid(JNIEnv* env); + + // The content offset is used to translate snapshots to the correct part of + // the window. + void set_content_offset(const gfx::Vector2dF& content_offset) { + content_offset_ = content_offset; + } + + bool GrabSnapshot(int content_x, int content_y, int width, int height, + std::vector* png_representation); + + private: + ~WindowAndroid(); + + JavaObjectWeakGlobalRef weak_java_window_; + gfx::Vector2dF content_offset_; + + DISALLOW_COPY_AND_ASSIGN(WindowAndroid); +}; + +} // namespace ui + +#endif // UI_BASE_ANDROID_WINDOW_ANDROID_H_ diff --git a/ui/shell_dialogs/select_file_dialog_android.cc b/ui/shell_dialogs/select_file_dialog_android.cc index e2c29d6..6babe5c 100644 --- a/ui/shell_dialogs/select_file_dialog_android.cc +++ b/ui/shell_dialogs/select_file_dialog_android.cc @@ -13,7 +13,7 @@ #include "base/strings/string_util.h" #include "base/strings/utf_string_conversions.h" #include "jni/SelectFileDialog_jni.h" -#include "ui/android/window_android.h" +#include "ui/base/android/window_android.h" namespace ui { diff --git a/ui/snapshot/snapshot_android.cc b/ui/snapshot/snapshot_android.cc index 14c43ee..f175a87 100644 --- a/ui/snapshot/snapshot_android.cc +++ b/ui/snapshot/snapshot_android.cc @@ -4,8 +4,8 @@ #include "ui/snapshot/snapshot.h" -#include "ui/android/view_android.h" -#include "ui/android/window_android.h" +#include "ui/base/android/view_android.h" +#include "ui/base/android/window_android.h" #include "ui/gfx/display.h" #include "ui/gfx/rect.h" #include "ui/gfx/screen.h" diff --git a/ui/test/test_suite.cc b/ui/test/test_suite.cc index fc7c6b0..a61fd74 100644 --- a/ui/test/test_suite.cc +++ b/ui/test/test_suite.cc @@ -14,7 +14,7 @@ #if defined(OS_ANDROID) #include "base/android/jni_android.h" -#include "ui/android/ui_jni_registrar.h" +#include "ui/base/android/ui_jni_registrar.h" #include "ui/gfx/android/gfx_jni_registrar.h" #endif diff --git a/ui/ui.gyp b/ui/ui.gyp index a38f859..18ebe56 100644 --- a/ui/ui.gyp +++ b/ui/ui.gyp @@ -42,14 +42,10 @@ 'gfx/gfx.gyp:gfx', ], 'sources' : [ - 'android/ui_jni_registrar.cc', - 'android/ui_jni_registrar.h', - 'android/view_android.cc', - 'android/view_android.h', - 'android/window_android.cc', - 'android/window_android.h', 'base/accelerators/accelerator.cc', 'base/accelerators/accelerator.h', + 'base/accelerators/accelerator_manager.cc', + 'base/accelerators/accelerator_manager.h', 'base/accelerators/menu_label_accelerator_util_linux.cc', 'base/accelerators/menu_label_accelerator_util_linux.h', 'base/accelerators/platform_accelerator.h', @@ -57,13 +53,17 @@ 'base/accelerators/platform_accelerator_cocoa.mm', 'base/accelerators/platform_accelerator_gtk.cc', 'base/accelerators/platform_accelerator_gtk.h', - 'base/accelerators/accelerator_manager.cc', - 'base/accelerators/accelerator_manager.h', 'base/accessibility/accessibility_types.h', 'base/accessibility/accessible_text_utils.cc', 'base/accessibility/accessible_text_utils.h', 'base/accessibility/accessible_view_state.cc', 'base/accessibility/accessible_view_state.h', + 'base/android/ui_jni_registrar.cc', + 'base/android/ui_jni_registrar.h', + 'base/android/view_android.cc', + 'base/android/view_android.h', + 'base/android/window_android.cc', + 'base/android/window_android.h', 'base/base_window.cc', 'base/base_window.h', 'base/clipboard/clipboard.cc', @@ -134,10 +134,10 @@ 'base/cursor/cursor_loader_null.cc', 'base/cursor/cursor_loader_null.h', 'base/cursor/cursor_loader_win.cc', - 'base/cursor/cursor_null.cc', 'base/cursor/cursor_loader_win.h', 'base/cursor/cursor_loader_x11.cc', 'base/cursor/cursor_loader_x11.h', + 'base/cursor/cursor_null.cc', 'base/cursor/cursor_win.cc', 'base/cursor/cursor_x11.cc', 'base/cursor/cursors_aura.cc', @@ -163,10 +163,10 @@ 'base/dragdrop/gtk_dnd_util.h', 'base/dragdrop/os_exchange_data.cc', 'base/dragdrop/os_exchange_data.h', - 'base/dragdrop/os_exchange_data_provider_aurax11.cc', - 'base/dragdrop/os_exchange_data_provider_aurax11.h', 'base/dragdrop/os_exchange_data_provider_aura.cc', 'base/dragdrop/os_exchange_data_provider_aura.h', + 'base/dragdrop/os_exchange_data_provider_aurax11.cc', + 'base/dragdrop/os_exchange_data_provider_aurax11.h', 'base/dragdrop/os_exchange_data_provider_win.cc', 'base/dragdrop/os_exchange_data_provider_win.h', 'base/gtk/event_synthesis_gtk.cc', @@ -196,8 +196,8 @@ 'base/l10n/l10n_font_util.h', 'base/l10n/l10n_util.cc', 'base/l10n/l10n_util.h', - 'base/l10n/l10n_util_android.h', 'base/l10n/l10n_util_android.cc', + 'base/l10n/l10n_util_android.h', 'base/l10n/l10n_util_collator.h', 'base/l10n/l10n_util_mac.h', 'base/l10n/l10n_util_mac.mm', -- cgit v1.1