1 /*
2  * Copyright (C) 2014 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.systemui.statusbar.policy;
18 
19 import com.android.systemui.statusbar.policy.LocationController.LocationChangeCallback;
20 
21 public interface LocationController extends CallbackController<LocationChangeCallback> {
isLocationActive()22     boolean isLocationActive();
isLocationEnabled()23     boolean isLocationEnabled();
setLocationEnabled(boolean enabled)24     boolean setLocationEnabled(boolean enabled);
25 
26     /**
27      * A callback for change in location settings (the user has enabled/disabled location).
28      */
29     public interface LocationChangeCallback {
30         /**
31          * Called whenever location's state changes.
32          * @param active
33          */
onLocationActiveChanged(boolean active)34         default void onLocationActiveChanged(boolean active) {}
35 
36         /**
37          * Called whenever location settings change.
38          *
39          * @param locationEnabled A value of true indicates that at least one type of location
40          *                        is enabled in settings.
41          */
onLocationSettingsChanged(boolean locationEnabled)42         default void onLocationSettingsChanged(boolean locationEnabled) {}
43     }
44 }
45