14d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown/*
24d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown * Copyright (C) 2014 The Android Open Source Project
34d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown *
44d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown * Licensed under the Apache License, Version 2.0 (the "License");
54d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown * you may not use this file except in compliance with the License.
64d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown * You may obtain a copy of the License at
74d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown *
84d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown *      http://www.apache.org/licenses/LICENSE-2.0
94d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown *
104d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown * Unless required by applicable law or agreed to in writing, software
114d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown * distributed under the License is distributed on an "AS IS" BASIS,
124d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown * See the License for the specific language governing permissions and
144d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown * limitations under the License
154d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown */
164d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown
174d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brownpackage com.android.systemui.doze;
184d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown
194d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brownimport android.annotation.NonNull;
204d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown
214d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown/**
224d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown * Interface the doze service uses to communicate with the rest of system UI.
234d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown */
244d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brownpublic interface DozeHost {
254d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown    void addCallback(@NonNull Callback callback);
264d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown    void removeCallback(@NonNull Callback callback);
274d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown    void startDozing(@NonNull Runnable ready);
28eab28e660223b6e02f2fbd8dc31c8bde3ce5b22dJohn Spurlock    void pulseWhileDozing(@NonNull PulseCallback callback, int reason);
294d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown    void stopDozing();
304d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown    boolean isPowerSaveActive();
311f32c65697c22f423c2888cf4c53da1c95d602c1Christoph Studer    boolean isNotificationLightOn();
32007f0e8f207d3d6d2f47d725b72459edf317cce9Jorim Jaggi    boolean isPulsingBlocked();
334d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown
344d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown    public interface Callback {
354d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown        void onNewNotifications();
364d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown        void onBuzzBeepBlinked();
374d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown        void onNotificationLight(boolean on);
384d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown        void onPowerSaveChanged(boolean active);
394d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown    }
404d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown
414d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown    public interface PulseCallback {
424d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown        void onPulseStarted();
434d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown        void onPulseFinished();
444d69e2219390bce567b0d2c986d0bd3a3182eda5Jeff Brown    }
4527ef018846fc88122bcb2c30ba86e99a5b3039d6Christoph Studer}
46