1af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock/*
2af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * Copyright (C) 2014 The Android Open Source Project
3af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock *
4af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * Licensed under the Apache License, Version 2.0 (the "License");
5af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * you may not use this file except in compliance with the License.
6af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * You may obtain a copy of the License at
7af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock *
8af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock *      http://www.apache.org/licenses/LICENSE-2.0
9af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock *
10af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * Unless required by applicable law or agreed to in writing, software
11af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * distributed under the License is distributed on an "AS IS" BASIS,
12af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * See the License for the specific language governing permissions and
14af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock * limitations under the License.
15af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock */
16af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock
17af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlockpackage com.android.systemui.statusbar.policy;
18af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock
19b4782526f5600d9759baac64b23e0c0cd05e2050John Spurlockimport android.content.ComponentName;
20b2278d65714c0dd0a6f94d1913db1ebc8bfc8b06John Spurlockimport android.net.Uri;
21af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlockimport android.service.notification.Condition;
22b2278d65714c0dd0a6f94d1913db1ebc8bfc8b06John Spurlockimport android.service.notification.ZenModeConfig;
23b2278d65714c0dd0a6f94d1913db1ebc8bfc8b06John Spurlockimport android.service.notification.ZenModeConfig.ZenRule;
24af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock
258852905b0b3837e326127c6dfef6f699124ce715Jason Monkimport com.android.systemui.statusbar.policy.ZenModeController.Callback;
268852905b0b3837e326127c6dfef6f699124ce715Jason Monk
278852905b0b3837e326127c6dfef6f699124ce715Jason Monkpublic interface ZenModeController extends CallbackController<Callback> {
28b2278d65714c0dd0a6f94d1913db1ebc8bfc8b06John Spurlock    void setZen(int zen, Uri conditionId, String reason);
29ae641c9ccd3f81214cee54a5f13804f1765187adJohn Spurlock    int getZen();
30b2278d65714c0dd0a6f94d1913db1ebc8bfc8b06John Spurlock    ZenRule getManualRule();
31b2278d65714c0dd0a6f94d1913db1ebc8bfc8b06John Spurlock    ZenModeConfig getConfig();
3289f060a1e0fa48c497855d061b5c9ec44bb576c8John Spurlock    long getNextAlarm();
3345601d6b64f2117b0bee1d23d55d420bbf273c5cJohn Spurlock    boolean isZenAvailable();
34b4782526f5600d9759baac64b23e0c0cd05e2050John Spurlock    ComponentName getEffectsSuppressor();
35ad680d46be19cbee16d42cbed4d2ed250648ac0bJohn Spurlock    boolean isCountdownConditionSupported();
36d9c75dba75ad4742dbaadc34db99d2b76cebca91John Spurlock    int getCurrentUser();
37f0a60dd2060148e5f7fc915d5ad9c313c0626a79Jason Monk    boolean isVolumeRestricted();
38af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock
39aa573e9e8632552d1fa8bdd6b0ee408ff9a93a6bJason Monk    public static interface Callback {
40aa573e9e8632552d1fa8bdd6b0ee408ff9a93a6bJason Monk        default void onZenChanged(int zen) {}
41aa573e9e8632552d1fa8bdd6b0ee408ff9a93a6bJason Monk        default void onConditionsChanged(Condition[] conditions) {}
42aa573e9e8632552d1fa8bdd6b0ee408ff9a93a6bJason Monk        default void onNextAlarmChanged() {}
43aa573e9e8632552d1fa8bdd6b0ee408ff9a93a6bJason Monk        default void onZenAvailableChanged(boolean available) {}
44aa573e9e8632552d1fa8bdd6b0ee408ff9a93a6bJason Monk        default void onEffectsSupressorChanged() {}
45aa573e9e8632552d1fa8bdd6b0ee408ff9a93a6bJason Monk        default void onManualRuleChanged(ZenRule rule) {}
46aa573e9e8632552d1fa8bdd6b0ee408ff9a93a6bJason Monk        default void onConfigChanged(ZenModeConfig config) {}
47af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock    }
48d9c75dba75ad4742dbaadc34db99d2b76cebca91John Spurlock
49af8d6c44f06d2f8baac2c5774a9efdae3fc36797John Spurlock}