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}