1 /**
2  * Copyright (c) 2022, 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.devicelockcontroller;
18 
19 import android.os.RemoteCallback;
20 
21 /**
22  * Binder interface to communicate with DeviceLockController.
23  * {@hide}
24  */
25 oneway interface IDeviceLockControllerService {
26     /**
27      * Key used to store the result (return value) of a call.
28      */
29     const String KEY_RESULT = "KEY_RESULT";
30 
31     /**
32      * Key used to store a ParcelableException.
33      */
34     const String KEY_PARCELABLE_EXCEPTION = "KEY_PARCELABLE_EXCEPTION";
35 
36     /**
37      * Locks the device.
38      */
lockDevice(in RemoteCallback callback)39     void lockDevice(in RemoteCallback callback);
40 
41     /**
42      * Unlocks the device.
43      */
unlockDevice(in RemoteCallback callback)44     void unlockDevice(in RemoteCallback callback);
45 
46     /**
47      * Outputs true result if device is locked.
48      */
isDeviceLocked(in RemoteCallback callback)49     void isDeviceLocked(in RemoteCallback callback);
50 
51     /**
52      * Gets the device identifier.
53      */
getDeviceIdentifier(in RemoteCallback callback)54     void getDeviceIdentifier(in RemoteCallback callback);
55 
56     /**
57      * Clears all device restrictions which removes the device from further policy management.
58      */
clearDeviceRestrictions(in RemoteCallback callback)59     void clearDeviceRestrictions(in RemoteCallback callback);
60 
61     /**
62      * Called when a user has just been switched to.
63      *
64      * Unlike the system service equivalent, this is NOT guaranteed to called in order with other
65      * lifecycle events (e.g. before onUserUnlocked).
66      */
onUserSwitching(in RemoteCallback callback)67     void onUserSwitching(in RemoteCallback callback);
68 
69     /**
70      * Called when a user has been unlocked and credential encrypted storage is available.
71      *
72      * Unlike the system service equivalent, this is NOT guaranteed to called in order with other
73      * lifecycle events (e.g. after onUserSwitching).
74      */
onUserUnlocked(in RemoteCallback callback)75     void onUserUnlocked(in RemoteCallback callback);
76 
77     /**
78      * Called when a user has completed set-up wizard.
79      */
onUserSetupCompleted(in RemoteCallback callback)80     void onUserSetupCompleted(in RemoteCallback callback);
81 
82     /**
83      * Called when the controller or kiosk app has crashed.
84      */
onAppCrashed(in boolean isKiosk, in RemoteCallback callback)85     void onAppCrashed(in boolean isKiosk, in RemoteCallback callback);
86 }
87