// Copyright 2022 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.
{
    include: [ "syslog/client.shard.cml" ],
    children: [
        {
            name: "ui",
            url: "fuchsia-pkg://fuchsia.com/ui#meta/ui.cm",
            environment: "#full-resolver-env",
        },
    ],

    // Protocols listed in capabilities are routed from the v1 sys realm.
    // See also //src/sys/appmgr/meta/appmgr.core_shard.cml
    capabilities: [
        {
            protocol: [
                "fuchsia.accessibility.gesture.ListenerRegistry",
                "fuchsia.accessibility.tts.EngineRegistry",
                "fuchsia.accessibility.virtualkeyboard.Registry",
                "fuchsia.input.virtualkeyboard.ControllerCreator",
                "fuchsia.input.virtualkeyboard.Manager",
                "fuchsia.recovery.ui.FactoryResetCountdown",
                "fuchsia.ui.brightness.ColorAdjustmentHandler",
                "fuchsia.ui.input.ImeVisibilityService",
                "fuchsia.ui.policy.DisplayBacklight",
                "fuchsia.ui.shortcut.Manager",
                "fuchsia.ui.shortcut.Registry",
            ],
        },
    ],

    // Protocols used from a child are routed to the v1 sys realm.
    // See also //src/sys/appmgr/meta/appmgr.core_shard.cml
    use: [
        {
            protocol: "fuchsia.input.injection.InputDeviceRegistry",
            from: "#ui",
            dependency: "weak_for_migration",
        },
        {
            protocol: [
                "fuchsia.ui.shortcut.Manager",
                "fuchsia.ui.shortcut.Registry",
            ],
            from: "#ui",
            dependency: "weak_for_migration",
        },
        {
            protocol: [
                "fuchsia.ui.composition.Allocator",
                "fuchsia.ui.composition.Flatland",
                "fuchsia.ui.composition.ScreenCapture",
                "fuchsia.ui.display.internal.DisplayPower",
                "fuchsia.ui.display.singleton.Info",
                "fuchsia.ui.focus.FocusChainListenerRegistry",
                "fuchsia.ui.input.PointerCaptureListenerRegistry",
                "fuchsia.ui.lifecycle.LifecycleController",
                "fuchsia.ui.pointerinjector.Registry",
                "fuchsia.ui.scenic.Scenic",
                "fuchsia.ui.views.ViewRefInstalled",
            ],
            from: "#ui",
            dependency: "weak_for_migration",
        },
    ],
    offer: [
        {
            protocol: [
                "fuchsia.logger.LogSink",
                "fuchsia.scheduler.ProfileProvider",
            ],
            from: "parent",
            to: "#ui",
        },
        {
            protocol: [
                "fuchsia.intl.PropertyProvider",
                "fuchsia.tracing.provider.Registry",
            ],
            from: "self",
            to: "#ui",
        },
        {
            protocol: [ "fuchsia.metrics.MetricEventLoggerFactory" ],
            from: "#cobalt",
            to: "#ui",
        },
        {
            protocol: [
                "fuchsia.ui.input.ImeService",
                "fuchsia.ui.input3.Keyboard",
                "fuchsia.ui.input3.KeyEventInjector",
                "fuchsia.ui.keyboard.focus.Controller",
            ],

            // Always present in core.cml.
            from: "#text_manager",
            to: "#ui",
        },
        {
            protocol: [ "fuchsia.feedback.LastRebootInfoProvider" ],
            from: "#feedback",
            to: "#ui",
        },
        {
            protocol: [
                "fuchsia.settings.Accessibility",
                "fuchsia.settings.Keyboard",
            ],
            from: "#setui_service",
            to: "#ui",
        },
        {
            protocol: [ "fuchsia.stash.Store" ],
            from: "#stash",
            to: "#ui",
        },
        {
            protocol: [ "fuchsia.sysmem.Allocator" ],
            from: "#sysmem_connector",
            to: "#ui",
        },
        {
            protocol: [ "fuchsia.vulkan.loader.Loader" ],
            from: "#vulkan_loader",
            to: "#ui",
        },
        {
            protocol: [
                "fuchsia.accessibility.semantics.SemanticsManager",
                "fuchsia.session.scene.Manager",
            ],
            from: "#ui",
            to: "#session-manager",
        },
        {
            directory: "config-data",
            from: "parent",
            to: "#ui",
        },
        {
            directory: "dev",
            from: "parent",
            as: "dev-display-controller",
            to: [ "#ui" ],
            subdir: "class/display-controller",
        },
        {
            directory: "dev",
            from: "parent",
            as: "dev-input-report",
            to: [ "#ui" ],
            subdir: "class/input-report",
        },
        {
            storage: [ "tmp" ],
            from: "self",
            to: "#ui",
        },
    ],
}
