blob: 35ef7e88c2dbe54628621d7f2b9d54cb75c1f504 [file] [log] [blame]
// Copyright 2016 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.
library fuchsia.modular;
using fuchsia.modular.auth;
using fuchsia.speech;
using fuchsia.ui.policy;
// This interface allows a |SessionShell| to request capabilities from its
// creator in a way that is more explicit about the services that are
// offered than a generic |ServiceProvider|.
[Discoverable]
interface SessionShellContext {
// The account associated with the currently logged-in user. It's NULL if
// logged into GUEST mode.
1: GetAccount() -> (fuchsia.modular.auth.Account? account);
2: GetAgentProvider(request<AgentProvider> request);
3: GetComponentContext(request<ComponentContext> request);
4: GetDeviceName() -> (string device_name);
5: GetFocusController(request<FocusController> request);
6: GetFocusProvider(request<FocusProvider> request);
8: GetLink(request<Link> request);
9: GetPresentation(request<fuchsia.ui.policy.Presentation> request);
10: GetSpeechToText(request<fuchsia.speech.SpeechToText> request);
11: GetStoryProvider(request<StoryProvider> request);
12: GetSuggestionProvider(request<SuggestionProvider> request);
13: GetVisibleStoriesController(request<VisibleStoriesController> request);
// Requests logout of the user. This causes the basemgr to tear down the
// |Sessionmgr| instance of the user.
16: Logout();
};
// Session shell provides this service to the framework which may plumb it to
// different subscribers, such as story shell and intelligence provider.
//
// EXPERIMENTAL Service that allows consumers of a given story to get a
// connection to a Presentation, and visual state services provided by the user
// shell. This allows story shell implementations to coordinate event and focus
// handling. An analog mechanism exists between BaseShell and SessionShell.
[Discoverable] // Created by session shell components.
interface SessionShellPresentationProvider {
// When a StoryShell calls StoryShellContext.GetPresentation(), this request
// arrives here.
1: GetPresentation(string story_id, request<fuchsia.ui.policy.Presentation> request);
// When a StoryShell calls StoryShellContext.WatchVisualState(), this request
// arrives here.
2: WatchVisualState(string story_id, StoryVisualStateWatcher watcher);
};