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.phone;
16 
17 import androidx.annotation.MainThread;
18 
19 import com.android.systemui.statusbar.phone.ManagedProfileController.Callback;
20 import com.android.systemui.statusbar.policy.CallbackController;
21 
22 public interface ManagedProfileController extends CallbackController<Callback> {
23 
setWorkModeEnabled(boolean enabled)24     void setWorkModeEnabled(boolean enabled);
25 
hasActiveProfile()26     boolean hasActiveProfile();
27 
isWorkModeEnabled()28     boolean isWorkModeEnabled();
29 
30     /**
31      * Callback to get updates about work profile status.
32      */
33     interface Callback {
34         /**
35          * Called when managed profile change is detected. This always runs on the main thread.
36          */
37         @MainThread
onManagedProfileChanged()38         void onManagedProfileChanged();
39 
40         /**
41          * Called when managed profile removal is detected. This always runs on the main thread.
42          */
43         @MainThread
onManagedProfileRemoved()44         void onManagedProfileRemoved();
45     }
46 }
47