blob: c7ef7420ff3bc2ee2590088759eeccf754ab2600 [file] [log] [blame]
// Copyright 2020 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.settings;
/// Modify or watch Night Mode setting. Night mode puts the device in a
/// restricted mode which can be overrided if the user prefers. During night
/// mode, the following settings apply as per night mode parameters:
/// 1. DoNotDisturb is enabled/not.
/// 2. System volume is set to an override maximum.
/// 3. LED Brightness is set to an overridable maximum.
/// 4. Sleep mode is enabled/not.
///
/// Supported SettingsEpitaph enums:
/// REQUEST_NOT_SUPPORTED, INTERNAL_SERVICE_ERROR, PERSISTENT_STORAGE_ERROR
[Discoverable]
protocol NightMode {
/// Gets the current [`NightModeSettings`]. Returns immediately on first
/// call; subsequent calls return when the values change.
///
/// If this call fails, it is considered a fatal error and the channel
/// will be closed.
Watch() -> (NightModeSettings settings);
/// Sets [`NightModeSettings`] settings. Any field not explicitly set in
/// the table performs a no-op, and will not make any changes.
Set(NightModeSettings settings) -> () error Error;
};
/// Settings related to Night mode.
table NightModeSettings {
/// If true, the device/user have opted in for NightMode routine.
1: bool night_mode_enabled;
};