blob: fcfe47f94cad703bac57f2ee28bbb69429fb6e07 [file] [log] [blame]
// Copyright 2018 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.
module ash.mojom;
import "chromeos/services/assistant/public/mojom/assistant_notification.mojom";
import "mojo/public/mojom/base/time.mojom";
import "ui/gfx/geometry/mojom/geometry.mojom";
// Represents the current state of an Assistant timer.
enum AssistantTimerState {
kUnknown,
// The timer is scheduled to fire at some future date.
kScheduled,
// The timer will not fire but is kept in the queue of scheduled events;
// it can be resumed after which it will fire in |remaining_time|.
kPaused,
// The timer has fired. In the simplest case this means the timer has
// begun ringing.
kFired,
};
// Models an Assistant timer.
struct AssistantTimer {
string id;
string label;
AssistantTimerState state;
mojo_base.mojom.Time fire_time;
mojo_base.mojom.TimeDelta remaining_time;
};
// Interface to the AssistantAlarmTimerController which is owned by the
// AssistantController. Currently used by the Assistant service to notify Ash
// of changes to the underlying alarm/timer state in LibAssistant.
interface AssistantAlarmTimerController {
// Invoked when timer state has changed. Note that |timers| may be empty.
OnTimerStateChanged(array<AssistantTimer> timers);
};
// Interface to the AssistantNotificationController which is owned by the
// AssistantController. Currently used by the Assistant service to modify
// Assistant notification state in Ash in response to LibAssistant events.
interface AssistantNotificationController {
// Requests that the specified |notification| be added or updated. If the
// |client_id| for |notification| matches that of an existing notification,
// an update will occur. Otherwise, a new notification will be added.
AddOrUpdateNotification(
chromeos.assistant.mojom.AssistantNotification notification);
// Requests that the notification uniquely identified by |id| be removed. If
// |from_server| is true the request to remove was initiated by the server.
RemoveNotificationById(string id, bool from_server);
// Requests that all notifications associated with the given |grouping_key|
// be removed. If |from_server| is true the request to remove was initiated
// by the server.
RemoveNotificationByGroupingKey(string grouping_key, bool from_server);
// Requests that all notifications be removed. If |from_server| is true the
// request was initiated by the server.
RemoveAllNotifications(bool from_server);
// Changes the quiet mode state in the message center.
SetQuietMode(bool enabled);
};
// Interface to the AssistantScreenContextController which is owned by the
// AssistantController. Currently used by the Assistant service to request
// screenshots.
interface AssistantScreenContextController {
// Requests a screenshot of the region enclosed by |rect| and returns the
// screenshot encoded in JPEG format. If |rect| is empty, it returns a
// fullscreen screenshot.
RequestScreenshot(gfx.mojom.Rect rect) => (array<uint8> screenshot);
};