# Copyright 2017 The Fuchsia 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("//third_party/cobalt_config/metrics_registry.gni")
import("//topaz/runtime/dart/dart_test.gni")
import("//topaz/runtime/flutter_runner/flutter_app.gni")

metrics_registry("sysui_metrics_config") {
  project_id = 103
}

flutter_app("userpicker_base_shell") {

  main_dart = "lib/main.dart"

  meta = [
    {
      path = rebase_path("meta/userpicker_base_shell.cmx")
      dest = "userpicker_base_shell.cmx"
    },
  ]

  resources = [
    {
      path = rebase_path(
              get_label_info(":sysui_metrics_config", "target_gen_dir") +
              "/sysui_metrics_config.pb")
      dest = "sysui_metrics_config.pb"
    },
  ]

  package_name = "userpicker_base_shell"

  manifest = "pubspec.yaml"

  sources = [
    "authentication_overlay.dart",
    "authentication_overlay_model.dart",
    "authentication_ui_context_impl.dart",
    "circular_button.dart",
    "clock.dart",
    "user_list.dart",
    "user_picker_base_shell_model.dart",
    "user_picker_base_shell_screen.dart",
    "user_picker_screen.dart",
  ]

  non_dart_deps = [ ":sysui_metrics_config" ]

  deps = [
    "$garnet_sdk_fidl/fuchsia.timezone",
    "$garnet_sdk_fidl/fuchsia.ui.input",
    "$garnet_sdk_fidl/fuchsia.ui.viewsv1",
    "$peridot_sdk_fidl/fuchsia.modular",
    "$peridot_sdk_fidl/fuchsia.modular.auth",
    "//third_party/dart-pkg/git/flutter/packages/flutter",
    "//third_party/dart-pkg/pub/http",
    "//topaz/lib/base_shell:lib.base_shell",
    "//topaz/lib/settings:lib.settings",
    "//topaz/public/dart/fidl",
    "//topaz/public/dart/widgets:lib.widgets",
    "//topaz/public/lib/app/dart",
    "//topaz/public/lib/ui/flutter",
    "//topaz/shell/widgets",
  ]
}
