1d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn/*
2d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn**
3d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** Copyright 2010, The Android Open Source Project
4d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn**
5d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** Licensed under the Apache License, Version 2.0 (the "License");
6d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** you may not use this file except in compliance with the License.
7d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** You may obtain a copy of the License at
8d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn**
9d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn**     http://www.apache.org/licenses/LICENSE-2.0
10d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn**
11d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** Unless required by applicable law or agreed to in writing, software
12d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** distributed under the License is distributed on an "AS IS" BASIS,
13d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** See the License for the specific language governing permissions and
15d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn** limitations under the License.
16d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn*/
17d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn
1887bba1ee14279bb14a28d42e27c4ef66d9967bf8Dianne Hackbornpackage android.app.admin;
19d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn
20d68478467e3f837511196c80891d7245d0e163dfDianne Hackbornimport android.content.ComponentName;
218ea138cbf12b140d43fd81f4f12fe1a9234f1f25Dianne Hackbornimport android.os.RemoteCallback;
22d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn
23d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn/**
24d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn * Internal IPC interface to the device policy service.
25d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn * {@hide}
26d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn */
27d68478467e3f837511196c80891d7245d0e163dfDianne Hackborninterface IDevicePolicyManager {
289327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn    void setPasswordQuality(in ComponentName who, int quality);
299327f4f671de3cbb795612bf4f314ceff88de865Dianne Hackborn    int getPasswordQuality(in ComponentName who);
30a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev
31254cb446faa7cb13699d8150eb4cc4f44cb61a2dDianne Hackborn    void setPasswordMinimumLength(in ComponentName who, int length);
32254cb446faa7cb13699d8150eb4cc4f44cb61a2dDianne Hackborn    int getPasswordMinimumLength(in ComponentName who);
33a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev
34a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev    void setPasswordMinimumUpperCase(in ComponentName who, int length);
35a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev    int getPasswordMinimumUpperCase(in ComponentName who);
36a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev
37a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev    void setPasswordMinimumLowerCase(in ComponentName who, int length);
38a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev    int getPasswordMinimumLowerCase(in ComponentName who);
39a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev
40a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev    void setPasswordMinimumLetters(in ComponentName who, int length);
41a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev    int getPasswordMinimumLetters(in ComponentName who);
42a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev
43a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev    void setPasswordMinimumNumeric(in ComponentName who, int length);
44a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev    int getPasswordMinimumNumeric(in ComponentName who);
45a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev
46a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev    void setPasswordMinimumSymbols(in ComponentName who, int length);
47a15dcfaf2bc7cbd13b30db6766afe3bbaa01db97Konstantin Lopyrev    int getPasswordMinimumSymbols(in ComponentName who);
48c857740f242169f2ca7fd42f0d1268661b399ad6Konstantin Lopyrev
49c857740f242169f2ca7fd42f0d1268661b399ad6Konstantin Lopyrev    void setPasswordMinimumNonLetter(in ComponentName who, int length);
50c857740f242169f2ca7fd42f0d1268661b399ad6Konstantin Lopyrev    int getPasswordMinimumNonLetter(in ComponentName who);
51d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn
523255823de062e981f7bfc7994919207988697e45Konstantin Lopyrev    void setPasswordHistoryLength(in ComponentName who, int length);
533255823de062e981f7bfc7994919207988697e45Konstantin Lopyrev    int getPasswordHistoryLength(in ComponentName who);
543255823de062e981f7bfc7994919207988697e45Konstantin Lopyrev
55a4e28d181942018ba8759989799a28fa88764ce3Jim Miller    void setPasswordExpirationTimeout(in ComponentName who, long expiration);
56a4e28d181942018ba8759989799a28fa88764ce3Jim Miller    long getPasswordExpirationTimeout(in ComponentName who);
57a4e28d181942018ba8759989799a28fa88764ce3Jim Miller
58a4e28d181942018ba8759989799a28fa88764ce3Jim Miller    long getPasswordExpiration(in ComponentName who);
59a4e28d181942018ba8759989799a28fa88764ce3Jim Miller
60df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn    boolean isActivePasswordSufficient();
61d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn    int getCurrentFailedPasswordAttempts();
62254cb446faa7cb13699d8150eb4cc4f44cb61a2dDianne Hackborn
638ea138cbf12b140d43fd81f4f12fe1a9234f1f25Dianne Hackborn    void setMaximumFailedPasswordsForWipe(in ComponentName admin, int num);
64254cb446faa7cb13699d8150eb4cc4f44cb61a2dDianne Hackborn    int getMaximumFailedPasswordsForWipe(in ComponentName admin);
65d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn
6687bba1ee14279bb14a28d42e27c4ef66d9967bf8Dianne Hackborn    boolean resetPassword(String password, int flags);
67df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn
68d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn    void setMaximumTimeToLock(in ComponentName who, long timeMs);
69254cb446faa7cb13699d8150eb4cc4f44cb61a2dDianne Hackborn    long getMaximumTimeToLock(in ComponentName who);
70d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn
71df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn    void lockNow();
72df83afaf299666e99c519aa86e7e082b7c116e95Dianne Hackborn
73d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn    void wipeData(int flags);
7469238c6a37ae43c748ad9cd7613f2209149ee7daOscar Montemayor
7569238c6a37ae43c748ad9cd7613f2209149ee7daOscar Montemayor    ComponentName setGlobalProxy(in ComponentName admin, String proxySpec, String exclusionList);
7669238c6a37ae43c748ad9cd7613f2209149ee7daOscar Montemayor    ComponentName getGlobalProxyAdmin();
777b0f8f08ac7b3ed5cf462b92283713b033d6a64aAndy Stadler
787b0f8f08ac7b3ed5cf462b92283713b033d6a64aAndy Stadler    int setStorageEncryption(in ComponentName who, boolean encrypt);
7922dbfda976aab9ae897eed0625e2e64ead32bbc4Andy Stadler    boolean getStorageEncryption(in ComponentName who);
8022dbfda976aab9ae897eed0625e2e64ead32bbc4Andy Stadler    int getStorageEncryptionStatus();
817b0f8f08ac7b3ed5cf462b92283713b033d6a64aAndy Stadler
822447edd85baac3225a12b868ef40f76cfdc6ec11Ben Komalo    void setCameraDisabled(in ComponentName who, boolean disabled);
832447edd85baac3225a12b868ef40f76cfdc6ec11Ben Komalo    boolean getCameraDisabled(in ComponentName who);
842447edd85baac3225a12b868ef40f76cfdc6ec11Ben Komalo
85c25f70a440ef9468085b8d98c8416c7e8b116753Andy Stadler    void setActiveAdmin(in ComponentName policyReceiver, boolean refreshing);
86d47c6ed4a9f2b5bd31f6c806b74701428efe458bDianne Hackborn    boolean isAdminActive(in ComponentName policyReceiver);
87d47c6ed4a9f2b5bd31f6c806b74701428efe458bDianne Hackborn    List<ComponentName> getActiveAdmins();
8821f1bd17b2dfe361acbb28453b3f3b1a110932faDianne Hackborn    boolean packageHasActiveAdmins(String packageName);
898ea138cbf12b140d43fd81f4f12fe1a9234f1f25Dianne Hackborn    void getRemoveWarning(in ComponentName policyReceiver, in RemoteCallback result);
90d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn    void removeActiveAdmin(in ComponentName policyReceiver);
91c25f70a440ef9468085b8d98c8416c7e8b116753Andy Stadler    boolean hasGrantedPolicy(in ComponentName policyReceiver, int usesPolicy);
92d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn
93c857740f242169f2ca7fd42f0d1268661b399ad6Konstantin Lopyrev    void setActivePasswordState(int quality, int length, int letters, int uppercase, int lowercase,
94c857740f242169f2ca7fd42f0d1268661b399ad6Konstantin Lopyrev        int numbers, int symbols, int nonletter);
95d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn    void reportFailedPasswordAttempt();
96d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn    void reportSuccessfulPasswordAttempt();
97d68478467e3f837511196c80891d7245d0e163dfDianne Hackborn}
98