| # Copyright 2015 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. |
| |
| import("//build/buildflag_header.gni") |
| import("//build/config/android/rules.gni") |
| import("//build/config/locales.gni") |
| import("//testing/test.gni") |
| import("//ui/android/features.gni") |
| |
| assert(is_android) |
| |
| # Generate a buildflag header for compile-time checking of android night mode support. |
| buildflag_header("buildflags") { |
| header = "buildflags.h" |
| flags = [ "ENABLE_ANDROID_NIGHT_MODE=$enable_android_night_mode" ] |
| } |
| |
| component("android") { |
| output_name = "ui_android" |
| sources = [ |
| "animation_utils.h", |
| "delegated_frame_host_android.cc", |
| "delegated_frame_host_android.h", |
| "display_android_manager.cc", |
| "display_android_manager.h", |
| "edge_effect.cc", |
| "edge_effect.h", |
| "edge_effect_base.cc", |
| "edge_effect_base.h", |
| "edge_effect_l.cc", |
| "edge_effect_l.h", |
| "event_forwarder.cc", |
| "event_forwarder.h", |
| "handle_view_resources.cc", |
| "handle_view_resources.h", |
| "overscroll_glow.cc", |
| "overscroll_glow.h", |
| "overscroll_refresh.cc", |
| "overscroll_refresh.h", |
| "overscroll_refresh_handler.cc", |
| "overscroll_refresh_handler.h", |
| "resources/nine_patch_resource.cc", |
| "resources/nine_patch_resource.h", |
| "resources/resource.cc", |
| "resources/resource.h", |
| "resources/resource_factory.cc", |
| "resources/resource_manager.h", |
| "resources/resource_manager_impl.cc", |
| "resources/resource_manager_impl.h", |
| "resources/ui_resource_provider.h", |
| "screen_android.h", |
| "ui_android_export.h", |
| "view_android.cc", |
| "view_android.h", |
| "view_android_observer.h", |
| "window_android.cc", |
| "window_android.h", |
| "window_android_compositor.h", |
| "window_android_observer.h", |
| ] |
| |
| defines = [ "UI_ANDROID_IMPLEMENTATION" ] |
| |
| deps = [ |
| ":buildflags", |
| ":java_enums_srcjar", |
| ":ui_android_jni_headers", |
| "//base", |
| "//cc", |
| "//components/viz/client", |
| "//components/viz/common", |
| "//components/viz/host", |
| "//components/viz/service", |
| "//services/viz/public/mojom", |
| "//skia", |
| "//third_party/blink/public:blink_headers", |
| "//ui/base", |
| "//ui/compositor", |
| "//ui/display", |
| "//ui/events", |
| "//ui/events/devices", |
| "//ui/gfx", |
| "//ui/gfx/geometry", |
| "//ui/touch_selection", |
| "//url", |
| ] |
| } |
| |
| static_library("test_support") { |
| testonly = true |
| sources = [ |
| "dummy_screen_android.cc", |
| "dummy_screen_android.h", |
| ] |
| |
| deps = [ |
| "//ui/android", |
| "//ui/display", |
| ] |
| } |
| |
| generate_jni("ui_android_jni_headers") { |
| sources = [ |
| "java/src/org/chromium/ui/OverscrollRefreshHandler.java", |
| "java/src/org/chromium/ui/base/EventForwarder.java", |
| "java/src/org/chromium/ui/base/ViewAndroidDelegate.java", |
| "java/src/org/chromium/ui/base/WindowAndroid.java", |
| "java/src/org/chromium/ui/display/DisplayAndroidManager.java", |
| "java/src/org/chromium/ui/resources/HandleViewResources.java", |
| "java/src/org/chromium/ui/resources/ResourceFactory.java", |
| "java/src/org/chromium/ui/resources/ResourceManager.java", |
| ] |
| } |
| |
| java_cpp_enum("java_enums_srcjar") { |
| sources = [ |
| "../base/ime/text_input_action.h", |
| "../base/ime/text_input_type.h", |
| "../base/page_transition_types.h", |
| "../base/pointer/pointer_device.h", |
| "../base/ui_base_types.h", |
| "../events/android/gesture_event_type.h", |
| "../gfx/android/java_bitmap.h", |
| "overscroll_refresh.h", |
| "resources/resource_manager.h", |
| "resources/system_ui_resource_type.h", |
| ] |
| } |
| |
| java_strings_grd("ui_strings_grd") { |
| grd_file = "java/strings/android_ui_strings.grd" |
| outputs = [ |
| "values/android_ui_strings.xml", |
| "values-am/android_ui_strings.xml", |
| "values-ar/android_ui_strings.xml", |
| "values-bg/android_ui_strings.xml", |
| "values-bn/android_ui_strings.xml", |
| "values-ca/android_ui_strings.xml", |
| "values-cs/android_ui_strings.xml", |
| "values-da/android_ui_strings.xml", |
| "values-de/android_ui_strings.xml", |
| "values-el/android_ui_strings.xml", |
| "values-en-rGB/android_ui_strings.xml", |
| "values-es/android_ui_strings.xml", |
| "values-es-rUS/android_ui_strings.xml", |
| "values-et/android_ui_strings.xml", |
| "values-fa/android_ui_strings.xml", |
| "values-fi/android_ui_strings.xml", |
| "values-fr/android_ui_strings.xml", |
| "values-gu/android_ui_strings.xml", |
| "values-hi/android_ui_strings.xml", |
| "values-hr/android_ui_strings.xml", |
| "values-hu/android_ui_strings.xml", |
| "values-in/android_ui_strings.xml", |
| "values-it/android_ui_strings.xml", |
| "values-iw/android_ui_strings.xml", |
| "values-ja/android_ui_strings.xml", |
| "values-kn/android_ui_strings.xml", |
| "values-ko/android_ui_strings.xml", |
| "values-lt/android_ui_strings.xml", |
| "values-lv/android_ui_strings.xml", |
| "values-ml/android_ui_strings.xml", |
| "values-mr/android_ui_strings.xml", |
| "values-ms/android_ui_strings.xml", |
| "values-nb/android_ui_strings.xml", |
| "values-nl/android_ui_strings.xml", |
| "values-pl/android_ui_strings.xml", |
| "values-pt-rBR/android_ui_strings.xml", |
| "values-pt-rPT/android_ui_strings.xml", |
| "values-ro/android_ui_strings.xml", |
| "values-ru/android_ui_strings.xml", |
| "values-sk/android_ui_strings.xml", |
| "values-sl/android_ui_strings.xml", |
| "values-sr/android_ui_strings.xml", |
| "values-sv/android_ui_strings.xml", |
| "values-sw/android_ui_strings.xml", |
| "values-ta/android_ui_strings.xml", |
| "values-te/android_ui_strings.xml", |
| "values-th/android_ui_strings.xml", |
| "values-tl/android_ui_strings.xml", |
| "values-tr/android_ui_strings.xml", |
| "values-uk/android_ui_strings.xml", |
| "values-vi/android_ui_strings.xml", |
| "values-zh-rCN/android_ui_strings.xml", |
| "values-zh-rTW/android_ui_strings.xml", |
| ] |
| } |
| |
| android_resources("ui_java_resources") { |
| custom_package = "org.chromium.ui" |
| resource_dirs = [ "java/res" ] |
| |
| if (enable_android_night_mode) { |
| resource_dirs += [ "//ui/android/java/res_night" ] |
| } |
| |
| deps = [ |
| ":ui_strings_grd", |
| ] |
| } |
| |
| java_group("ui_java") { |
| deps = [ |
| ":ui_full_java", |
| ":ui_utils_java", |
| ] |
| } |
| |
| # This is created explicitly for remoting_apk to avoid including |
| # unused JNI functions. |
| android_library("ui_utils_java") { |
| java_files = [ |
| "java/src/org/chromium/ui/ContactsPickerListener.java", |
| "java/src/org/chromium/ui/KeyboardVisibilityDelegate.java", |
| "java/src/org/chromium/ui/PhotoPickerListener.java", |
| "java/src/org/chromium/ui/UiUtils.java", |
| ] |
| deps = [ |
| "//base:base_java", |
| "//third_party/android_deps:android_support_v7_appcompat_java", |
| ] |
| } |
| |
| android_library("ui_full_java") { |
| java_files = [ |
| "java/src/org/chromium/ui/AsyncViewStub.java", |
| "java/src/org/chromium/ui/AsyncViewProvider.java", |
| "java/src/org/chromium/ui/DeferredViewStubInflationProvider.java", |
| "java/src/org/chromium/ui/DropdownAdapter.java", |
| "java/src/org/chromium/ui/DropdownDividerDrawable.java", |
| "java/src/org/chromium/ui/DropdownItem.java", |
| "java/src/org/chromium/ui/DropdownItemBase.java", |
| "java/src/org/chromium/ui/DropdownPopupWindowImpl.java", |
| "java/src/org/chromium/ui/DropdownPopupWindow.java", |
| "java/src/org/chromium/ui/DropdownPopupWindowJellyBean.java", |
| "java/src/org/chromium/ui/DropdownPopupWindowInterface.java", |
| "java/src/org/chromium/ui/HorizontalListDividerDrawable.java", |
| "java/src/org/chromium/ui/OverscrollRefreshHandler.java", |
| "java/src/org/chromium/ui/UiSwitches.java", |
| "java/src/org/chromium/ui/ViewProvider.java", |
| "java/src/org/chromium/ui/VSyncMonitor.java", |
| "java/src/org/chromium/ui/base/ActivityAndroidPermissionDelegate.java", |
| "java/src/org/chromium/ui/base/ActivityKeyboardVisibilityDelegate.java", |
| "java/src/org/chromium/ui/base/ActivityWindowAndroid.java", |
| "java/src/org/chromium/ui/base/AndroidPermissionDelegate.java", |
| "java/src/org/chromium/ui/base/Clipboard.java", |
| "java/src/org/chromium/ui/base/DeviceFormFactor.java", |
| "java/src/org/chromium/ui/base/EventForwarder.java", |
| "java/src/org/chromium/ui/base/IdleDetector.java", |
| "java/src/org/chromium/ui/base/LocalizationUtils.java", |
| "java/src/org/chromium/ui/base/PermissionCallback.java", |
| "java/src/org/chromium/ui/base/ResourceBundle.java", |
| "java/src/org/chromium/ui/base/SelectFileDialog.java", |
| "java/src/org/chromium/ui/base/SPenSupport.java", |
| "java/src/org/chromium/ui/base/TouchDevice.java", |
| "java/src/org/chromium/ui/base/ViewAndroidDelegate.java", |
| "java/src/org/chromium/ui/base/ViewUtils.java", |
| "java/src/org/chromium/ui/base/WindowAndroid.java", |
| "java/src/org/chromium/ui/display/DisplayAndroid.java", |
| "java/src/org/chromium/ui/display/DisplayAndroidManager.java", |
| "java/src/org/chromium/ui/display/DisplaySwitches.java", |
| "java/src/org/chromium/ui/display/DisplayUtil.java", |
| "java/src/org/chromium/ui/display/PhysicalDisplayAndroid.java", |
| "java/src/org/chromium/ui/display/VirtualDisplayAndroid.java", |
| "java/src/org/chromium/ui/drawable/AnimationLooper.java", |
| "java/src/org/chromium/ui/drawable/StateListDrawableBuilder.java", |
| "java/src/org/chromium/ui/events/devices/InputDeviceObserver.java", |
| "java/src/org/chromium/ui/gfx/Animation.java", |
| "java/src/org/chromium/ui/gfx/BitmapHelper.java", |
| "java/src/org/chromium/ui/gfx/ViewConfigurationHelper.java", |
| "java/src/org/chromium/ui/gl/SurfaceTextureListener.java", |
| "java/src/org/chromium/ui/gl/SurfaceTexturePlatformWrapper.java", |
| "java/src/org/chromium/ui/interpolators/BakedBezierInterpolator.java", |
| "java/src/org/chromium/ui/modaldialog/DialogDismissalCause.java", |
| "java/src/org/chromium/ui/modaldialog/ModalDialogManager.java", |
| "java/src/org/chromium/ui/modaldialog/ModalDialogManagerHolder.java", |
| "java/src/org/chromium/ui/modaldialog/ModalDialogProperties.java", |
| "java/src/org/chromium/ui/modelutil/ForwardingListObservable.java", |
| "java/src/org/chromium/ui/modelutil/LazyConstructionPropertyMcp.java", |
| "java/src/org/chromium/ui/modelutil/ListModel.java", |
| "java/src/org/chromium/ui/modelutil/ListModelBase.java", |
| "java/src/org/chromium/ui/modelutil/ListModelChangeProcessor.java", |
| "java/src/org/chromium/ui/modelutil/ListObservable.java", |
| "java/src/org/chromium/ui/modelutil/ListObservableImpl.java", |
| "java/src/org/chromium/ui/modelutil/MVCListAdapter.java", |
| "java/src/org/chromium/ui/modelutil/ModelListAdapter.java", |
| "java/src/org/chromium/ui/modelutil/PropertyKey.java", |
| "java/src/org/chromium/ui/modelutil/PropertyListModel.java", |
| "java/src/org/chromium/ui/modelutil/PropertyModel.java", |
| "java/src/org/chromium/ui/modelutil/PropertyModelChangeProcessor.java", |
| "java/src/org/chromium/ui/modelutil/PropertyObservable.java", |
| "java/src/org/chromium/ui/modelutil/RecyclerViewAdapter.java", |
| "java/src/org/chromium/ui/modelutil/SimpleList.java", |
| "java/src/org/chromium/ui/modelutil/SimpleRecyclerViewAdapter.java", |
| "java/src/org/chromium/ui/modelutil/SimpleRecyclerViewMcp.java", |
| "java/src/org/chromium/ui/modelutil/SimpleRecyclerViewMcpBase.java", |
| "java/src/org/chromium/ui/resources/HandleViewResources.java", |
| "java/src/org/chromium/ui/resources/LayoutResource.java", |
| "java/src/org/chromium/ui/resources/Resource.java", |
| "java/src/org/chromium/ui/resources/ResourceExtractor.java", |
| "java/src/org/chromium/ui/resources/ResourceFactory.java", |
| "java/src/org/chromium/ui/resources/ResourceLoader.java", |
| "java/src/org/chromium/ui/resources/ResourceManager.java", |
| "java/src/org/chromium/ui/resources/async/AsyncPreloadResourceLoader.java", |
| "java/src/org/chromium/ui/resources/dynamics/BitmapDynamicResource.java", |
| "java/src/org/chromium/ui/resources/dynamics/DynamicResource.java", |
| "java/src/org/chromium/ui/resources/dynamics/DynamicResourceLoader.java", |
| "java/src/org/chromium/ui/resources/dynamics/ViewResourceAdapter.java", |
| "java/src/org/chromium/ui/resources/dynamics/ViewResourceInflater.java", |
| "java/src/org/chromium/ui/resources/statics/NinePatchData.java", |
| "java/src/org/chromium/ui/resources/statics/StaticResource.java", |
| "java/src/org/chromium/ui/resources/statics/StaticResourceLoader.java", |
| "java/src/org/chromium/ui/resources/system/SystemResourceLoader.java", |
| "java/src/org/chromium/ui/text/NoUnderlineClickableSpan.java", |
| "java/src/org/chromium/ui/text/SpanApplier.java", |
| "java/src/org/chromium/ui/touchless/CursorObserver.java", |
| "java/src/org/chromium/ui/touchless/TouchlessEventHandler.java", |
| "java/src/org/chromium/ui/widget/AnchoredPopupWindow.java", |
| "java/src/org/chromium/ui/widget/ButtonCompat.java", |
| "java/src/org/chromium/ui/widget/CheckableImageView.java", |
| "java/src/org/chromium/ui/widget/ChipView.java", |
| "java/src/org/chromium/ui/widget/ChromeBulletSpan.java", |
| "java/src/org/chromium/ui/widget/ChromeImageView.java", |
| "java/src/org/chromium/ui/widget/ChromeImageButton.java", |
| "java/src/org/chromium/ui/widget/OptimizedFrameLayout.java", |
| "java/src/org/chromium/ui/widget/RectProvider.java", |
| "java/src/org/chromium/ui/widget/RippleBackgroundHelper.java", |
| "java/src/org/chromium/ui/widget/TextViewWithClickableSpans.java", |
| "java/src/org/chromium/ui/widget/TextViewWithLeading.java", |
| "java/src/org/chromium/ui/widget/Toast.java", |
| "java/src/org/chromium/ui/widget/UiWidgetFactory.java", |
| "java/src/org/chromium/ui/widget/ViewLookupCachingFrameLayout.java", |
| "java/src/org/chromium/ui/widget/ViewRectProvider.java", |
| ] |
| deps = [ |
| ":ui_java_resources", |
| ":ui_utils_java", |
| "//base:base_java", |
| "//base:jni_java", |
| "//third_party/android_deps:android_support_v7_appcompat_java", |
| "//third_party/android_deps:androidx_annotation_annotation_java", |
| "//third_party/android_deps:com_android_support_asynclayoutinflater_java", |
| "//third_party/android_deps:com_android_support_recyclerview_v7_java", |
| ] |
| annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ] |
| srcjar_deps = [ |
| ":java_enums_srcjar", |
| "//ui/base:ui_base_cursor_type_java_enums_srcjar", |
| ] |
| } |
| |
| android_library("ui_java_test_support") { |
| testonly = true |
| java_files = [ |
| "javatests/src/org/chromium/ui/test/util/UiDisableIf.java", |
| "javatests/src/org/chromium/ui/test/util/UiDisableIfSkipCheck.java", |
| "javatests/src/org/chromium/ui/test/util/UiRestriction.java", |
| "javatests/src/org/chromium/ui/test/util/UiRestrictionSkipCheck.java", |
| "javatests/src/org/chromium/ui/test/util/modelutil/FakeViewProvider.java", |
| ] |
| deps = [ |
| ":ui_java", |
| "//base:base_java", |
| "//base:base_java_test_support", |
| "//third_party/junit", |
| ] |
| } |
| |
| android_resources("ui_javatest_resources") { |
| custom_package = "org.chromium.test.ui" |
| resource_dirs = [ "junit/res" ] |
| } |
| |
| junit_binary("ui_junit_tests") { |
| package_name = "org.chromium.test.ui" |
| java_files = [ |
| "junit/src/org/chromium/ui/AsyncViewStubTest.java", |
| "junit/src/org/chromium/ui/AsyncViewProviderTest.java", |
| "junit/src/org/chromium/ui/base/ClipboardTest.java", |
| "junit/src/org/chromium/ui/base/LocalizationUtilsTest.java", |
| "junit/src/org/chromium/ui/base/SelectFileDialogTest.java", |
| "junit/src/org/chromium/ui/drawable/StateListDrawableBuilderTest.java", |
| "junit/src/org/chromium/ui/modaldialog/ModalDialogManagerTest.java", |
| "junit/src/org/chromium/ui/modelutil/LazyConstructionPropertyMcpTest.java", |
| "junit/src/org/chromium/ui/modelutil/ListModelBaseTest.java", |
| "junit/src/org/chromium/ui/modelutil/ModelListAdapterTest.java", |
| "junit/src/org/chromium/ui/modelutil/PropertyListModelTest.java", |
| "junit/src/org/chromium/ui/modelutil/PropertyModelTest.java", |
| "junit/src/org/chromium/ui/modelutil/SimpleListObservableTest.java", |
| "junit/src/org/chromium/ui/resources/dynamics/BitmapDynamicResourceTest.java", |
| "junit/src/org/chromium/ui/resources/dynamics/ViewResourceAdapterTest.java", |
| "junit/src/org/chromium/ui/shadows/ShadowAsyncLayoutInflater.java", |
| "junit/src/org/chromium/ui/shadows/ShadowAppCompatResources.java", |
| "junit/src/org/chromium/ui/shadows/ShadowAppCompatResourcesTest.java", |
| "junit/src/org/chromium/ui/shadows/ShadowAnimatedStateListDrawable.java", |
| "junit/src/org/chromium/ui/text/SpanApplierTest.java", |
| "junit/src/org/chromium/ui/widget/AnchoredPopupWindowTest.java", |
| "junit/src/org/chromium/ui/widget/ViewLookupCachingFrameLayoutTest.java", |
| ] |
| deps = [ |
| ":ui_java", |
| ":ui_java_test_support", |
| ":ui_javatest_resources", |
| "//base:base_java", |
| "//base:base_java_test_support", |
| "//base:base_junit_test_support", |
| "//base/test:test_support_java", |
| ] |
| } |
| |
| test("ui_android_unittests") { |
| sources = [ |
| "overscroll_refresh_unittest.cc", |
| "resources/resource_manager_impl_unittest.cc", |
| "run_all_unittests.cc", |
| "view_android_unittests.cc", |
| ] |
| deps = [ |
| ":android", |
| ":java_enums_srcjar", |
| ":ui_java", |
| "//base", |
| "//base/test:test_support", |
| "//cc", |
| "//cc:test_support", |
| "//components/viz/host:host", |
| "//components/viz/service:service", |
| "//components/viz/test:test_support", |
| "//skia", |
| "//testing/gmock", |
| "//testing/gtest", |
| "//ui/base", |
| "//ui/compositor", |
| "//ui/events", |
| "//ui/gfx", |
| "//ui/resources:ui_test_pak", |
| ] |
| } |