# 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/config/android/rules.gni")
import("//testing/test.gni")

assert(is_android)

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",
    "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",
    "view_client.cc",
    "view_client.h",
    "window_android.cc",
    "window_android.h",
    "window_android_compositor.h",
    "window_android_observer.h",
  ]

  defines = [ "UI_ANDROID_IMPLEMENTATION" ]

  deps = [
    ":java_enums_srcjar",
    ":ui_android_jni_headers",
    "//base",
    "//cc",
    "//components/viz/common",
    "//components/viz/host",
    "//components/viz/service",
    "//services/viz/public/interfaces",
    "//skia",
    "//third_party/WebKit/public:blink_headers",
    "//ui/base",
    "//ui/display",
    "//ui/events",
    "//ui/events/devices",
    "//ui/gfx",
    "//ui/gfx/geometry",
    "//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/ResourceFactory.java",
    "java/src/org/chromium/ui/resources/ResourceManager.java",
  ]
  jni_package = "ui_android"
}

java_cpp_enum("java_enums_srcjar") {
  sources = [
    "../base/ime/text_input_type.h",
    "../base/page_transition_types.h",
    "../base/touch/touch_device.h",
    "../base/ui_base_types.h",
    "../events/android/gesture_event_type.h",
    "../gfx/android/java_bitmap.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-am/android_ui_strings.xml",
    "values-ar/android_ui_strings.xml",
    "values-bg/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/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-fa/android_ui_strings.xml",
    "values-fi/android_ui_strings.xml",
    "values-tl/android_ui_strings.xml",
    "values-fr/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-ko/android_ui_strings.xml",
    "values-lt/android_ui_strings.xml",
    "values-lv/android_ui_strings.xml",
    "values-nl/android_ui_strings.xml",
    "values-nb/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-th/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" ]
  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/PhotoPickerListener.java",
    "java/src/org/chromium/ui/UiUtils.java",
  ]
  deps = [
    "//base:base_java",
  ]
}

android_library("ui_full_java") {
  java_files = [
    "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/DropdownPopupWindow.java",
    "java/src/org/chromium/ui/HorizontalListDividerDrawable.java",
    "java/src/org/chromium/ui/OverscrollRefreshHandler.java",
    "java/src/org/chromium/ui/VSyncMonitor.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/LocalizationUtils.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/PhysicalDisplayAndroid.java",
    "java/src/org/chromium/ui/display/VirtualDisplayAndroid.java",
    "java/src/org/chromium/ui/events/devices/InputDeviceObserver.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/resources/LayoutResource.java",
    "java/src/org/chromium/ui/resources/Resource.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/widget/ButtonCompat.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",
  ]
  deps = [
    ":ui_java_resources",
    ":ui_utils_java",
    "//base:base_java",
    "//third_party/android_tools:android_support_annotations_java",
    "//third_party/android_tools:android_support_v7_appcompat_java",
  ]
  srcjar_deps = [
    ":java_enums_srcjar",
    "//third_party/WebKit/public:blink_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",
  ]
  deps = [
    ":ui_java",
    "//base:base_java",
    "//base:base_java_test_support",
  ]
}

junit_binary("ui_junit_tests") {
  java_files = [
    "junit/src/org/chromium/ui/base/ClipboardTest.java",
    "junit/src/org/chromium/ui/base/SelectFileDialogTest.java",
    "junit/src/org/chromium/ui/text/SpanApplierTest.java",
  ]
  deps = [
    ":ui_java",
    "//base:base_java",
    "//base:base_java_test_support",
  ]
}

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",
    "//skia",
    "//testing/gmock",
    "//testing/gtest",
    "//ui/base",
    "//ui/events",
    "//ui/gfx",
    "//ui/resources:ui_test_pak",
  ]
}
