# 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",
    "edge_effect.cc",
    "edge_effect.h",
    "edge_effect_base.cc",
    "edge_effect_base.h",
    "edge_effect_l.cc",
    "edge_effect_l.h",
    "overscroll_glow.cc",
    "overscroll_glow.h",
    "overscroll_refresh.cc",
    "overscroll_refresh.h",
    "resources/crushed_sprite_resource.cc",
    "resources/crushed_sprite_resource.h",
    "resources/resource_manager.cc",
    "resources/resource_manager.h",
    "resources/resource_manager_impl.cc",
    "resources/resource_manager_impl.h",
    "resources/ui_resource_provider.h",
    "ui_android_export.h",
    "ui_android_jni_registrar.cc",
    "ui_android_jni_registrar.h",
    "view_android.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",
    "//skia",
    "//ui/gfx",
    "//ui/gfx/geometry",
  ]
}

generate_jni("ui_android_jni_headers") {
  sources = [
    "java/src/org/chromium/ui/base/WindowAndroid.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/window_open_disposition.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/android_ui_strings.xml",
  ]
}

android_resources("ui_java_resources") {
  custom_package = "org.chromium.ui"
  resource_dirs = [ "java/res" ]
  deps = [
    ":ui_strings_grd",
  ]
}

android_library("ui_java") {
  java_files = [
    "java/src/org/chromium/ui/ColorPickerAdvanced.java",
    "java/src/org/chromium/ui/ColorPickerAdvancedComponent.java",
    "java/src/org/chromium/ui/ColorPickerDialog.java",
    "java/src/org/chromium/ui/ColorPickerMoreButton.java",
    "java/src/org/chromium/ui/ColorPickerSimple.java",
    "java/src/org/chromium/ui/ColorSuggestion.java",
    "java/src/org/chromium/ui/ColorSuggestionListAdapter.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/DropdownPopupWindow.java",
    "java/src/org/chromium/ui/OnColorChangedListener.java",
    "java/src/org/chromium/ui/UiUtils.java",
    "java/src/org/chromium/ui/VSyncMonitor.java",
    "java/src/org/chromium/ui/autofill/AutofillDelegate.java",
    "java/src/org/chromium/ui/autofill/AutofillKeyboardAccessory.java",
    "java/src/org/chromium/ui/autofill/AutofillPopup.java",
    "java/src/org/chromium/ui/autofill/AutofillSuggestion.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/LocalizationUtils.java",
    "java/src/org/chromium/ui/base/ResourceBundle.java",
    "java/src/org/chromium/ui/base/SelectFileDialog.java",
    "java/src/org/chromium/ui/base/TouchDevice.java",
    "java/src/org/chromium/ui/base/ViewAndroidDelegate.java",
    "java/src/org/chromium/ui/base/WindowAndroid.java",
    "java/src/org/chromium/ui/gfx/BitmapHelper.java",
    "java/src/org/chromium/ui/gfx/DeviceDisplayInfo.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/picker/ChromeDatePickerDialog.java",
    "java/src/org/chromium/ui/picker/DateDialogNormalizer.java",
    "java/src/org/chromium/ui/picker/DateTimePickerDialog.java",
    "java/src/org/chromium/ui/picker/DateTimeSuggestion.java",
    "java/src/org/chromium/ui/picker/DateTimeSuggestionListAdapter.java",
    "java/src/org/chromium/ui/picker/InputDialogContainer.java",
    "java/src/org/chromium/ui/picker/MonthPicker.java",
    "java/src/org/chromium/ui/picker/MonthPickerDialog.java",
    "java/src/org/chromium/ui/picker/MultiFieldTimePickerDialog.java",
    "java/src/org/chromium/ui/picker/TwoFieldDatePicker.java",
    "java/src/org/chromium/ui/picker/TwoFieldDatePickerDialog.java",
    "java/src/org/chromium/ui/picker/WeekPicker.java",
    "java/src/org/chromium/ui/picker/WeekPickerDialog.java",
    "java/src/org/chromium/ui/resources/LayoutResource.java",
    "java/src/org/chromium/ui/resources/Resource.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/sprites/CrushedSpriteResource.java",
    "java/src/org/chromium/ui/resources/sprites/CrushedSpriteResourceLoader.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",
    "//base:base_java",
  ]
  srcjar_deps = [ ":java_enums_srcjar" ]
}

android_library("ui_javatests") {
  java_files = [
    "javatests/src/org/chromium/ui/picker/DateTimePickerDialogTest.java",
    "javatests/src/org/chromium/ui/resources/sprites/CrushedSpriteResourceTest.java",
  ]
  testonly = true
  deps = [
    ":ui_java",
    "//base:base_java",
    "//base:base_java_test_support",
  ]
}

# GYP: //ui/android/ui_android.gyp:ui_junit_tests
junit_binary("ui_junit_tests") {
  java_files = [
    "junit/src/org/chromium/ui/picker/DateDialogNormalizerTest.java",
    "junit/src/org/chromium/ui/text/SpanApplierTest.java",
  ]
  deps = [
    "//base:base_java",
    "//base:base_junit_test_support",
    "//ui/android:ui_java",
  ]
}

test("ui_android_unittests") {
  sources = [
    "overscroll_refresh_unittest.cc",
    "resources/resource_manager_impl_unittest.cc",
    "run_all_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/gfx",
    "//ui/resources:ui_test_pak",
  ]
}
