blob: 672ade2655a3dfc72e91a9fa183a1607c6df03f3 [file] [log] [blame]
/*
* 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<String> NO_COMMANDS = new ArrayList<>();
/** Provide a set of commands to listen to, only acceptable values are the COMMAND_* keys */
default List<String> 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<String> COMMANDS = Lists.newArrayList(
COMMAND_BARS,
COMMAND_BATTERY,
COMMAND_CLOCK,
COMMAND_NETWORK,
COMMAND_NOTIFICATIONS,
COMMAND_OPERATOR,
COMMAND_STATUS,
COMMAND_VOLUME
);
}