/* * Copyright (C) 2020 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.demomode; import com.google.android.collect.Lists; import java.util.ArrayList; import java.util.List; /** * Interface defining what it means to implement DemoMode. A DemoMode implementation should * register with DemoModeController, providing a list of commands for wish to listen. * * If you only need to listen to commands, but *do not* care about demo mode state changes, you * can implement DemoModeCommandReceiver instead */ public interface DemoMode extends DemoModeCommandReceiver { List NO_COMMANDS = new ArrayList<>(); /** Provide a set of commands to listen to, only acceptable values are the COMMAND_* keys */ default List demoCommands() { return NO_COMMANDS; } String ACTION_DEMO = "com.android.systemui.demo"; String EXTRA_COMMAND = "command"; /** Enter and exit are non-register-able; override started/finished to observe these states */ String COMMAND_ENTER = "enter"; String COMMAND_EXIT = "exit"; /** Observable commands to register a listener for */ String COMMAND_CLOCK = "clock"; String COMMAND_BATTERY = "battery"; String COMMAND_NETWORK = "network"; String COMMAND_BARS = "bars"; String COMMAND_STATUS = "status"; String COMMAND_NOTIFICATIONS = "notifications"; String COMMAND_VOLUME = "volume"; String COMMAND_OPERATOR = "operator"; /** New keys need to be added here */ List COMMANDS = Lists.newArrayList( COMMAND_BARS, COMMAND_BATTERY, COMMAND_CLOCK, COMMAND_NETWORK, COMMAND_NOTIFICATIONS, COMMAND_OPERATOR, COMMAND_STATUS, COMMAND_VOLUME ); }