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