1 /*
2  * Copyright (C) 2016 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file
5  * except in compliance with the License. You may obtain a copy of the License at
6  *
7  *      http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software distributed under the
10  * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
11  * KIND, either express or implied. See the License for the specific language governing
12  * permissions and limitations under the License.
13  */
14 
15 package com.android.systemui.statusbar.policy;
16 
17 import com.android.systemui.Dumpable;
18 import com.android.systemui.statusbar.policy.FlashlightController.FlashlightListener;
19 import com.android.systemui.util.annotations.WeaklyReferencedCallback;
20 
21 public interface FlashlightController extends CallbackController<FlashlightListener>, Dumpable {
22 
hasFlashlight()23     boolean hasFlashlight();
setFlashlight(boolean newState)24     void setFlashlight(boolean newState);
isAvailable()25     boolean isAvailable();
isEnabled()26     boolean isEnabled();
27 
28     @WeaklyReferencedCallback
29     public interface FlashlightListener {
30 
31         /**
32          * Called when the flashlight was turned off or on.
33          * @param enabled true if the flashlight is currently turned on.
34          */
onFlashlightChanged(boolean enabled)35         void onFlashlightChanged(boolean enabled);
36 
37 
38         /**
39          * Called when there is an error that turns the flashlight off.
40          */
onFlashlightError()41         void onFlashlightError();
42 
43         /**
44          * Called when there is a change in availability of the flashlight functionality
45          * @param available true if the flashlight is currently available.
46          */
onFlashlightAvailabilityChanged(boolean available)47         void onFlashlightAvailabilityChanged(boolean available);
48     }
49 }
50