16da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang/* 26da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang * Copyright (C) 2018 The Android Open Source Project 36da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang * 46da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang * Licensed under the Apache License, Version 2.0 (the "License"); 56da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang * you may not use this file except in compliance with the License. 66da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang * You may obtain a copy of the License at 76da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang * 86da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang * http://www.apache.org/licenses/LICENSE-2.0 96da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang * 106da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang * Unless required by applicable law or agreed to in writing, software 116da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang * distributed under the License is distributed on an "AS IS" BASIS, 126da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang * See the License for the specific language governing permissions and 146da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang * limitations under the License. 156da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang */ 166da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang 176da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhangpackage com.android.settingslib.testutils.shadow; 186da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang 196da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhangimport android.content.Context; 2010e7b471581e20d85750effed672544278bb2510Leif Hendrik Wildenimport android.content.pm.UserInfo; 216da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhangimport android.os.UserManager; 226da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang 236da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhangimport org.robolectric.RuntimeEnvironment; 246da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhangimport org.robolectric.annotation.Implementation; 256da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhangimport org.robolectric.annotation.Implements; 266da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhangimport org.robolectric.annotation.Resetter; 276da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhangimport org.robolectric.shadow.api.Shadow; 286da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang 2910e7b471581e20d85750effed672544278bb2510Leif Hendrik Wildenimport java.util.ArrayList; 3010e7b471581e20d85750effed672544278bb2510Leif Hendrik Wildenimport java.util.List; 3110e7b471581e20d85750effed672544278bb2510Leif Hendrik Wilden 325c50dc11b857dfdc265a4e0aa80fd7d17a62e7f6James Lemieux@Implements(value = UserManager.class, inheritImplementationMethods = true) 336da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhangpublic class ShadowUserManager extends org.robolectric.shadows.ShadowUserManager { 346da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang 356da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang private boolean mAdminUser; 366da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang 376da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang public void setIsAdminUser(boolean isAdminUser) { 386da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang mAdminUser = isAdminUser; 396da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang } 406da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang 416da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang @Resetter 426da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang public void reset() { 436da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang mAdminUser = false; 446da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang } 456da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang 466da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang @Implementation 476da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang public boolean isAdminUser() { 486da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang return mAdminUser; 496da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang } 506da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang 516da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang @Implementation 526da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang public static UserManager get(Context context) { 536da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang return (UserManager) context.getSystemService(Context.USER_SERVICE); 546da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang } 556da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang 5610e7b471581e20d85750effed672544278bb2510Leif Hendrik Wilden @Implementation 5710e7b471581e20d85750effed672544278bb2510Leif Hendrik Wilden public int[] getProfileIdsWithDisabled(int userId) { 5810e7b471581e20d85750effed672544278bb2510Leif Hendrik Wilden return new int[] { 0 }; 5910e7b471581e20d85750effed672544278bb2510Leif Hendrik Wilden } 6010e7b471581e20d85750effed672544278bb2510Leif Hendrik Wilden 6110e7b471581e20d85750effed672544278bb2510Leif Hendrik Wilden @Implementation 6210e7b471581e20d85750effed672544278bb2510Leif Hendrik Wilden public List<UserInfo> getProfiles() { 6310e7b471581e20d85750effed672544278bb2510Leif Hendrik Wilden UserInfo userInfo = new UserInfo(); 6410e7b471581e20d85750effed672544278bb2510Leif Hendrik Wilden userInfo.id = 0; 6510e7b471581e20d85750effed672544278bb2510Leif Hendrik Wilden List<UserInfo> userInfos = new ArrayList<>(); 6610e7b471581e20d85750effed672544278bb2510Leif Hendrik Wilden userInfos.add(userInfo); 6710e7b471581e20d85750effed672544278bb2510Leif Hendrik Wilden return userInfos; 6810e7b471581e20d85750effed672544278bb2510Leif Hendrik Wilden } 6910e7b471581e20d85750effed672544278bb2510Leif Hendrik Wilden 706da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang public static ShadowUserManager getShadow() { 716da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang return (ShadowUserManager) Shadow.extract( 726da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang RuntimeEnvironment.application.getSystemService(UserManager.class)); 736da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang } 746da958a999ed8f26f48fab03ea09893cfcfcec5cFan Zhang}