1258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani/*
2258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani**
3258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani** Copyright 2012, The Android Open Source Project
4258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani**
5258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani** Licensed under the Apache License, Version 2.0 (the "License");
6258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani** you may not use this file except in compliance with the License.
7258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani** You may obtain a copy of the License at
8258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani**
9258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani**     http://www.apache.org/licenses/LICENSE-2.0
10258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani**
11258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani** Unless required by applicable law or agreed to in writing, software
12258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani** distributed under the License is distributed on an "AS IS" BASIS,
13258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani** See the License for the specific language governing permissions and
15258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani** limitations under the License.
16258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani*/
17258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani
18258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasanipackage android.os;
19258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani
20e4cf73437a18c1444055f88a1fcc0d146ec23ac5Amith Yamasaniimport android.os.Bundle;
2112747879b0204b9dfee997eddc981d09289e8b77Amith Yamasaniimport android.os.PersistableBundle;
22258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasaniimport android.content.pm.UserInfo;
23f02420c5e1bcc8b2c278f272aca633fe6d2b4e88Benjamin Franzimport android.content.IntentSender;
24df2e92a535e19c00edd37318d974dab992ccc2c1Amith Yamasaniimport android.content.RestrictionEntry;
25e928d7d95dbb64627e6ff3a0572190c555b59d96Amith Yamasaniimport android.graphics.Bitmap;
261bdff9139fd412b36d5d2d783574b6418fcb198aAdrian Roosimport android.os.ParcelFileDescriptor;
27258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani
28258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani/**
29258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani *  {@hide}
30258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani */
31258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasaniinterface IUserManager {
32c5548c02fe0aa768ebfce88ac09393dabe61ec06Andres Morales
33c5548c02fe0aa768ebfce88ac09393dabe61ec06Andres Morales    /*
34c5548c02fe0aa768ebfce88ac09393dabe61ec06Andres Morales     * DO NOT MOVE - UserManager.h depends on the ordering of this function.
35c5548c02fe0aa768ebfce88ac09393dabe61ec06Andres Morales     */
36c5548c02fe0aa768ebfce88ac09393dabe61ec06Andres Morales    int getCredentialOwnerProfile(int userHandle);
37c5548c02fe0aa768ebfce88ac09393dabe61ec06Andres Morales
38258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani    UserInfo createUser(in String name, int flags);
392a764949c943681a4d25a17a0b203a0127a4a486Kenny Guy    UserInfo createProfileForUser(in String name, int flags, int userHandle);
4012747879b0204b9dfee997eddc981d09289e8b77Amith Yamasani    UserInfo createRestrictedProfile(String name, int parentUserHandle);
41df35d570ed25257c6782e632ab1bae5e1603855aAlexandra Gherghina    void setUserEnabled(int userHandle);
42258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani    boolean removeUser(int userHandle);
43258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani    void setUserName(int userHandle, String name);
44e928d7d95dbb64627e6ff3a0572190c555b59d96Amith Yamasani    void setUserIcon(int userHandle, in Bitmap icon);
451bdff9139fd412b36d5d2d783574b6418fcb198aAdrian Roos    ParcelFileDescriptor getUserIcon(int userHandle);
4670f6c38644a4a6e28c016c265e6987bf00dd61f1Xiaohui Chen    UserInfo getPrimaryUser();
47920ace0bbc2d4133dbec991d2636c99a57d6245eAmith Yamasani    List<UserInfo> getUsers(boolean excludeDying);
48385124d8cee38dee00d4fac31e8fbe46fb30565bAlexandra Gherghina    List<UserInfo> getProfiles(int userHandle, boolean enabledOnly);
497f98aa4aa93497692f200c553d2d6fff402e3de2Fyodor Kupolov    int[] getProfileIds(int userId, boolean enabledOnly);
5012747879b0204b9dfee997eddc981d09289e8b77Amith Yamasani    boolean canAddMoreManagedProfiles(int userHandle, boolean allowedToRemoveOne);
51be81c800ae6216e30b6008b4c73172b36531c405Jessica Hummel    UserInfo getProfileParent(int userHandle);
5212747879b0204b9dfee997eddc981d09289e8b77Amith Yamasani    boolean isSameProfileGroup(int userHandle, int otherUserHandle);
53258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani    UserInfo getUserInfo(int userHandle);
5412747879b0204b9dfee997eddc981d09289e8b77Amith Yamasani    String getUserAccount(int userHandle);
5512747879b0204b9dfee997eddc981d09289e8b77Amith Yamasani    void setUserAccount(int userHandle, String accountName);
56ff7233e2e3df4965b9ecadabfd78bb991fd1e102Fyodor Kupolov    long getUserCreationTime(int userHandle);
5771e6c697e54a43d357cc25d87a446d140f17396aAmith Yamasani    boolean isRestricted();
5812747879b0204b9dfee997eddc981d09289e8b77Amith Yamasani    boolean canHaveRestrictedProfile(int userHandle);
592a00329c6d55c6cd9166e01963d7410e95d80d21Amith Yamasani    int getUserSerialNumber(int userHandle);
602a00329c6d55c6cd9166e01963d7410e95d80d21Amith Yamasani    int getUserHandle(int userSerialNumber);
61e783460274047ab38e3b9c4294339ff130fe566cZoltan Szatmary-Ban    int getUserRestrictionSource(String restrictionKey, int userHandle);
62e4cf73437a18c1444055f88a1fcc0d146ec23ac5Amith Yamasani    Bundle getUserRestrictions(int userHandle);
633bbceddb94d627495c0022d6e3f92a5cb16aebeaZoltan Szatmary-Ban    boolean hasBaseUserRestriction(String restrictionKey, int userHandle);
648cd28b57ed732656d002d97879e15c5695b54fffAmith Yamasani    boolean hasUserRestriction(in String restrictionKey, int userHandle);
6512747879b0204b9dfee997eddc981d09289e8b77Amith Yamasani    void setUserRestriction(String key, boolean value, int userHandle);
667e99bc02c8e2f44dd92d70bfa6e654297e5286d8Amith Yamasani    void setApplicationRestrictions(in String packageName, in Bundle restrictions,
67df2e92a535e19c00edd37318d974dab992ccc2c1Amith Yamasani            int userHandle);
687e99bc02c8e2f44dd92d70bfa6e654297e5286d8Amith Yamasani    Bundle getApplicationRestrictions(in String packageName);
697e99bc02c8e2f44dd92d70bfa6e654297e5286d8Amith Yamasani    Bundle getApplicationRestrictionsForUser(in String packageName, int userHandle);
70e4afaa3a3d7c2885b82fe43f51bcf04e036f7462Amith Yamasani    void setDefaultGuestRestrictions(in Bundle restrictions);
71e4afaa3a3d7c2885b82fe43f51bcf04e036f7462Amith Yamasani    Bundle getDefaultGuestRestrictions();
721df1473008c24487701c5bc15f39ed9f9697f421Amith Yamasani    boolean markGuestForDeletion(int userHandle);
730a29ecd8a53b5ac63b628e870a344650ff34c4b0Rubin Xu    void setQuietModeEnabled(int userHandle, boolean enableQuietMode);
740a29ecd8a53b5ac63b628e870a344650ff34c4b0Rubin Xu    boolean isQuietModeEnabled(int userHandle);
75f02420c5e1bcc8b2c278f272aca633fe6d2b4e88Benjamin Franz    boolean trySetQuietModeDisabled(int userHandle, in IntentSender target);
7612747879b0204b9dfee997eddc981d09289e8b77Amith Yamasani    void setSeedAccountData(int userHandle, in String accountName,
7712747879b0204b9dfee997eddc981d09289e8b77Amith Yamasani            in String accountType, in PersistableBundle accountOptions, boolean persist);
7812747879b0204b9dfee997eddc981d09289e8b77Amith Yamasani    String getSeedAccountName();
7912747879b0204b9dfee997eddc981d09289e8b77Amith Yamasani    String getSeedAccountType();
8012747879b0204b9dfee997eddc981d09289e8b77Amith Yamasani    PersistableBundle getSeedAccountOptions();
8112747879b0204b9dfee997eddc981d09289e8b77Amith Yamasani    void clearSeedAccountData();
8212747879b0204b9dfee997eddc981d09289e8b77Amith Yamasani    boolean someUserHasSeedAccount(in String accountName, in String accountType);
838673b2899e775014336efff44ea88dcac2b25bddTony Mak    boolean isManagedProfile(int userId);
84258848d2ae04f447ff1c18023fa76b139fcc0862Amith Yamasani}
85