# Copyright 2024 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

source_set("ui") {
  sources = []
  public_deps = [
    ":accessibility_identifier_constants",
    ":consent_presenter",
    ":container_presenter",
    ":lvf_transition_manager",
    ":network_issue_alert_presenter",
    ":protocols",
    ":results_page_presenter",
    ":view_controller",
  ]
}

source_set("protocols") {
  sources = [
    "lens_overlay_bottom_sheet_presentation_commands.h",
    "lens_overlay_error_handler.h",
    "lens_overlay_result_consumer.h",
    "lens_overlay_results_page_presenting.h",
    "lens_result_page_mutator.h",
    "lens_toolbar_consumer.h",
    "lens_toolbar_mutator.h",
  ]
  public_deps =
      [ "//ios/chrome/browser/lens_overlay/model:detent_state_header" ]
  frameworks = [ "UIKit.framework" ]
}

source_set("results_page_presenter") {
  sources = [
    "lens_overlay_info_message_animator.h",
    "lens_overlay_info_message_animator.mm",
    "lens_overlay_results_page_presenter.h",
    "lens_overlay_results_page_presenter.mm",
    "lens_overlay_results_page_presenter_delegate.h",
  ]
  deps = [
    ":protocols",
    ":view_controller",
    "//base",
    "//ios/chrome/browser/lens_overlay/model",
    "//ios/chrome/browser/lens_overlay/public:lens_overlay_availability",
    "//ios/chrome/browser/shared/coordinator/scene:scene_state_header",
    "//ios/chrome/common/ui/colors",
    "//ios/chrome/common/ui/util",
    "//ui/base",
  ]
  frameworks = [ "UIKit.framework" ]
}

source_set("container_presenter") {
  sources = [
    "lens_overlay_container_presenter.h",
    "lens_overlay_container_presenter.mm",
  ]
  deps = [
    ":protocols",
    ":view_controller",
    "//base",
    "//ios/chrome/app/application_delegate:app_state",
    "//ios/chrome/app/profile",
    "//ios/chrome/browser/device_orientation/ui_bundled",
    "//ios/chrome/browser/lens_overlay/model",
    "//ios/chrome/browser/shared/coordinator/scene:scene_state_header",
    "//ios/chrome/browser/shared/model/profile",
    "//ios/chrome/browser/shared/public/features",
    "//ios/chrome/common/ui/util",
    "//ui/base",
  ]
  frameworks = [ "UIKit.framework" ]
}

source_set("view_controller") {
  sources = [
    "info_message/lens_translate_error_view_controller.h",
    "info_message/lens_translate_error_view_controller.mm",
    "info_message/lens_translate_indication_view_controller.h",
    "info_message/lens_translate_indication_view_controller.mm",
    "lens_overlay_bottom_sheet_view_controller.h",
    "lens_overlay_bottom_sheet_view_controller.mm",
    "lens_overlay_consent_view_controller.h",
    "lens_overlay_consent_view_controller.mm",
    "lens_overlay_container_view_controller.h",
    "lens_overlay_container_view_controller.mm",
    "lens_result_page_consumer.h",
    "lens_result_page_view_controller.h",
    "lens_result_page_view_controller.mm",
  ]
  deps = [
    ":accessibility_identifier_constants",
    ":panel",
    ":protocols",
    "//base",
    "//components/strings",
    "//ios/chrome/app/strings",
    "//ios/chrome/browser/keyboard/ui_bundled",
    "//ios/chrome/browser/lens/ui_bundled:features",
    "//ios/chrome/browser/lens_overlay/model",
    "//ios/chrome/browser/lens_overlay/public",
    "//ios/chrome/browser/lens_overlay/public:lens_overlay_availability",
    "//ios/chrome/browser/lens_overlay/ui/resources",
    "//ios/chrome/browser/lens_overlay/ui/resources:animation_files",
    "//ios/chrome/browser/omnibox/ui:omnibox_internal",
    "//ios/chrome/browser/omnibox/ui/popup",
    "//ios/chrome/browser/shared/public/commands",
    "//ios/chrome/browser/shared/public/features",
    "//ios/chrome/browser/shared/ui/animated_promo:utils",
    "//ios/chrome/browser/shared/ui/elements",
    "//ios/chrome/browser/shared/ui/symbols",
    "//ios/chrome/browser/shared/ui/util",
    "//ios/chrome/browser/toolbar/legacy/ui_bundled:ui",
    "//ios/chrome/common",
    "//ios/chrome/common/ui/button_stack",
    "//ios/chrome/common/ui/colors",
    "//ios/chrome/common/ui/promo_style",
    "//ios/chrome/common/ui/promo_style:utils",
    "//ios/chrome/common/ui/util",
    "//ios/components/ui_util",
    "//ios/public/provider/chrome/browser/font:font_api",
    "//ios/public/provider/chrome/browser/lens:lens_overlay_api",
    "//ios/public/provider/chrome/browser/lottie:lottie_animation_api",
    "//url",
  ]
  frameworks = [ "UIKit.framework" ]
}

source_set("panel") {
  sources = [
    "lens_overlay_panel.h",
    "lens_overlay_panel.mm",
  ]
  deps = [
    "//base",
    "//components/strings",
    "//ios/chrome/common/ui/colors",
    "//ios/chrome/common/ui/util",
    "//ios/components/ui_util",
    "//url",
  ]
  frameworks = [ "UIKit.framework" ]
}

source_set("entry_point") {
  sources = [
    "lens_overlay_entrypoint_view.h",
    "lens_overlay_entrypoint_view.mm",
  ]
  deps = [
    "//ios/chrome/app/strings",
    "//ios/chrome/browser/lens_overlay/public:lens_overlay_availability",
    "//ios/chrome/browser/shared/public/commands",
    "//ios/chrome/browser/shared/ui/elements",
    "//ios/chrome/browser/shared/ui/symbols",
    "//ios/chrome/browser/shared/ui/util",
    "//ios/chrome/common/ui/colors",
    "//ios/chrome/common/ui/util",
  ]
}

source_set("accessibility_identifier_constants") {
  sources = [
    "lens_overlay_accessibility_identifier_constants.h",
    "lens_overlay_accessibility_identifier_constants.mm",
  ]
}

source_set("network_issue_alert_presenter") {
  sources = [
    "lens_overlay_network_issue_alert_presenter.h",
    "lens_overlay_network_issue_alert_presenter.mm",
  ]
  deps = [
    ":protocols",
    "//base",
    "//ios/chrome/app/strings:ios_strings_grit",
    "//ios/chrome/browser/lens_overlay/model",
    "//ui/base",
    "//url",
  ]
}

source_set("consent_presenter") {
  sources = [
    "lens_overlay_consent_presenter.h",
    "lens_overlay_consent_presenter.mm",
  ]
  deps = [
    ":protocols",
    ":view_controller",
    "//base",
    "//ios/chrome/app/strings:ios_strings_grit",
    "//ios/chrome/browser/lens_overlay/model",
    "//ui/base",
    "//url",
  ]
}

source_set("lvf_transition_manager") {
  sources = [
    "lens_view_finder_transition_manager.h",
    "lens_view_finder_transition_manager.mm",
  ]
  deps = []
}

source_set("eg2_tests") {
  configs += [ "//build/config/ios:xctest_config" ]
  testonly = true
  sources = [ "lens_overlay_container_egtest.mm" ]
  deps = [
    ":accessibility_identifier_constants",
    "//ios/chrome/browser/shared/public/features",
    "//ios/chrome/test/earl_grey:eg_test_support+eg2",
    "//ios/testing/earl_grey:eg_test_support+eg2",
  ]
  frameworks = [ "UIKit.framework" ]
}
