DevicePolicyManagerServiceTestable.java revision 3f3657a61b54d495bf2e692289eb92a48fe5a0b2
1cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki/*
2cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki * Copyright (C) 2015 The Android Open Source Project
3cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki *
4cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki * Licensed under the Apache License, Version 2.0 (the "License");
5cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki * you may not use this file except in compliance with the License.
6cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki * You may obtain a copy of the License at
7cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki *
8cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki *      http://www.apache.org/licenses/LICENSE-2.0
9cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki *
10cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki * Unless required by applicable law or agreed to in writing, software
11cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki * distributed under the License is distributed on an "AS IS" BASIS,
12cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki * See the License for the specific language governing permissions and
14cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki * limitations under the License.
15cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki */
16cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onukipackage com.android.server.devicepolicy;
17cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
18cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onukiimport com.android.internal.widget.LockPatternUtils;
19cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
20cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onukiimport android.app.IActivityManager;
21cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onukiimport android.app.NotificationManager;
22b643fb0e67460344ade2e3db92738999f8168496Makoto Onukiimport android.app.backup.IBackupManager;
23f76b06a6b546f430cf85e561858ed12eedc32b81Makoto Onukiimport android.content.pm.IPackageManager;
24cb6fd80721253ffa9dcab5cf8c2f4e9b9cd17cccFyodor Kupolovimport android.content.pm.PackageManagerInternal;
25b643fb0e67460344ade2e3db92738999f8168496Makoto Onukiimport android.media.IAudioService;
26cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onukiimport android.os.Looper;
27cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onukiimport android.os.PowerManagerInternal;
28cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onukiimport android.os.UserHandle;
29cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onukiimport android.os.UserManager;
30068c54a5be697c3df4657dcda33cd17c4b547710Makoto Onukiimport android.os.UserManagerInternal;
31cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onukiimport android.view.IWindowManager;
32cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
33cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onukiimport java.io.File;
34cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
35cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onukiimport static org.mockito.Matchers.eq;
36cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onukiimport static org.mockito.Mockito.when;
37cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
38cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki/**
39cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki * Overrides {@link #DevicePolicyManagerService} for dependency injection.
40cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki */
41cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onukipublic class DevicePolicyManagerServiceTestable extends DevicePolicyManagerService {
42cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki    /**
43cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki     * Overrides {@link #Owners} for dependency injection.
44cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki     */
45cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki    public static class OwnersTestable extends Owners {
46cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki        public static final String LEGACY_FILE = "legacy.xml";
47cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki        public static final String DEVICE_OWNER_FILE = "device_owner2.xml";
48cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki        public static final String PROFILE_OWNER_FILE_BASE = "profile_owner.xml";
49cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
50f76b06a6b546f430cf85e561858ed12eedc32b81Makoto Onuki        private final File mLegacyFile;
51f76b06a6b546f430cf85e561858ed12eedc32b81Makoto Onuki        private final File mDeviceOwnerFile;
52f76b06a6b546f430cf85e561858ed12eedc32b81Makoto Onuki        private final File mProfileOwnerBase;
53cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
54d932f7689d799b07a6776bc7c59749f672528239Makoto Onuki        public OwnersTestable(DpmMockContext context) {
55e7927da1b6dc4f96714aa9bc4fbb71b3659f8ceaMakoto Onuki            super(context, context.userManager, context.userManagerInternal);
56d932f7689d799b07a6776bc7c59749f672528239Makoto Onuki            mLegacyFile = new File(context.dataDir, LEGACY_FILE);
57d932f7689d799b07a6776bc7c59749f672528239Makoto Onuki            mDeviceOwnerFile = new File(context.dataDir, DEVICE_OWNER_FILE);
58d932f7689d799b07a6776bc7c59749f672528239Makoto Onuki            mProfileOwnerBase = new File(context.dataDir, PROFILE_OWNER_FILE_BASE);
59cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki        }
60cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
61cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki        @Override
62cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki        File getLegacyConfigFileWithTestOverride() {
63cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki            return mLegacyFile;
64cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki        }
65cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
66cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki        @Override
67cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki        File getDeviceOwnerFileWithTestOverride() {
68cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki            return mDeviceOwnerFile;
69cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki        }
70cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
71cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki        @Override
72cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki        File getProfileOwnerFileWithTestOverride(int userId) {
73cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki            return new File(mDeviceOwnerFile.getAbsoluteFile() + "-" + userId);
74cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki        }
75cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki    }
76cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
77b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki    public final DpmMockContext context;
78cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
79cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki    public DevicePolicyManagerServiceTestable(DpmMockContext context, File dataDir) {
80b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        this(new MockInjector(context, dataDir));
81b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki    }
82cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
83b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki    private DevicePolicyManagerServiceTestable(MockInjector injector) {
84b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        super(injector);
85b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        this.context = injector.context;
86b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki    }
87cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
88b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki    private static class MockInjector extends Injector {
89cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
90b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        public final DpmMockContext context;
91cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
92b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        public final File dataDir;
93cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
94b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        private MockInjector(DpmMockContext context, File dataDir) {
95b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            super(context);
96b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            this.context = context;
97b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            this.dataDir = dataDir;
98b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
99cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
100b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
101b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        Owners newOwners() {
102d932f7689d799b07a6776bc7c59749f672528239Makoto Onuki            return new OwnersTestable(context);
103b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
104cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
105b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
106b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        UserManager getUserManager() {
107b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.userManager;
108b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
109cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
110b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
111068c54a5be697c3df4657dcda33cd17c4b547710Makoto Onuki        UserManagerInternal getUserManagerInternal() {
112068c54a5be697c3df4657dcda33cd17c4b547710Makoto Onuki            return context.userManagerInternal;
113068c54a5be697c3df4657dcda33cd17c4b547710Makoto Onuki        }
114068c54a5be697c3df4657dcda33cd17c4b547710Makoto Onuki
115068c54a5be697c3df4657dcda33cd17c4b547710Makoto Onuki        @Override
116cb6fd80721253ffa9dcab5cf8c2f4e9b9cd17cccFyodor Kupolov        PackageManagerInternal getPackageManagerInternal() {
117cb6fd80721253ffa9dcab5cf8c2f4e9b9cd17cccFyodor Kupolov            return context.packageManagerInternal;
118cb6fd80721253ffa9dcab5cf8c2f4e9b9cd17cccFyodor Kupolov        }
119cb6fd80721253ffa9dcab5cf8c2f4e9b9cd17cccFyodor Kupolov
120cb6fd80721253ffa9dcab5cf8c2f4e9b9cd17cccFyodor Kupolov        @Override
121b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        PowerManagerInternal getPowerManagerInternal() {
122b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.powerManagerInternal;
123b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
124f76b06a6b546f430cf85e561858ed12eedc32b81Makoto Onuki
125b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
126b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        NotificationManager getNotificationManager() {
127b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.notificationManager;
128b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
129cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
130b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
131b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        IWindowManager getIWindowManager() {
132b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.iwindowManager;
133b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
134cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
135b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
136219bbafc3fa40dae163d652365cc4a97d613011fMakoto Onuki        IActivityManager getIActivityManager() {
137b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.iactivityManager;
138b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
139cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
140b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
141b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        IPackageManager getIPackageManager() {
142b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.ipackageManager;
143b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
144cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
145b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
146b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        IBackupManager getIBackupManager() {
147b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.ibackupManager;
148b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
149cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
150b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
151b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        IAudioService getIAudioService() {
152b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.iaudioService;
153b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
154cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
155b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
156b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        Looper getMyLooper() {
157b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return Looper.getMainLooper();
158b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
159cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
160b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
161b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        LockPatternUtils newLockPatternUtils() {
162b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.lockPatternUtils;
163b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
164cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
165b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
166b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        String getDevicePolicyFilePathForSystemUser() {
167068c54a5be697c3df4657dcda33cd17c4b547710Makoto Onuki            return context.systemUserDataDir.getAbsolutePath() + "/";
168b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
169cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
170b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
171b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        long binderClearCallingIdentity() {
172b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.binder.clearCallingIdentity();
173b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
174cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
175b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
176b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        void binderRestoreCallingIdentity(long token) {
177b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            context.binder.restoreCallingIdentity(token);
178b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
179f76b06a6b546f430cf85e561858ed12eedc32b81Makoto Onuki
180b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
181b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        int binderGetCallingUid() {
182b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.binder.getCallingUid();
183b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
184cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki
185b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
186b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        int binderGetCallingPid() {
187b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.binder.getCallingPid();
188b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
189f76b06a6b546f430cf85e561858ed12eedc32b81Makoto Onuki
190b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
191b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        UserHandle binderGetCallingUserHandle() {
192b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.binder.getCallingUserHandle();
193b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
194f76b06a6b546f430cf85e561858ed12eedc32b81Makoto Onuki
195b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
196b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        boolean binderIsCallingUidMyUid() {
197b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.binder.isCallerUidMyUid();
198b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
199b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki
200b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
201b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        File environmentGetUserSystemDirectory(int userId) {
202b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.environment.getUserSystemDirectory(userId);
203b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
204b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki
205b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
206b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        void powerManagerGoToSleep(long time, int reason, int flags) {
207b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            context.powerManager.goToSleep(time, reason, flags);
208b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
209b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki
210b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
211f8373b5afc6dd25350bbca7093178807f1cc9ed6Mahaver Chopra        void powerManagerReboot(String reason) {
212f8373b5afc6dd25350bbca7093178807f1cc9ed6Mahaver Chopra            context.powerManager.reboot(reason);
213f8373b5afc6dd25350bbca7093178807f1cc9ed6Mahaver Chopra        }
214f8373b5afc6dd25350bbca7093178807f1cc9ed6Mahaver Chopra
215f8373b5afc6dd25350bbca7093178807f1cc9ed6Mahaver Chopra        @Override
216b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        boolean systemPropertiesGetBoolean(String key, boolean def) {
217b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.systemProperties.getBoolean(key, def);
218b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
219b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki
220b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
221b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        long systemPropertiesGetLong(String key, long def) {
222b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.systemProperties.getLong(key, def);
223b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
224f76b06a6b546f430cf85e561858ed12eedc32b81Makoto Onuki
225b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
226b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        String systemPropertiesGet(String key, String def) {
227b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.systemProperties.get(key, def);
228b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
229b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki
230b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
231b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        String systemPropertiesGet(String key) {
232b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.systemProperties.get(key);
233b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
234b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki
235b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
236b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        void systemPropertiesSet(String key, String value) {
237b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            context.systemProperties.set(key, value);
238b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
239b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki
240b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        @Override
241b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        boolean userManagerIsSplitSystemUser() {
242b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki            return context.userManagerForMock.isSplitSystemUser();
243b643fb0e67460344ade2e3db92738999f8168496Makoto Onuki        }
244a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki
245a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        @Override
246a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        int settingsSecureGetIntForUser(String name, int def, int userHandle) {
247a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki            return context.settings.settingsSecureGetIntForUser(name, def, userHandle);
248a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        }
249a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki
250a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        @Override
251a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        void settingsSecurePutIntForUser(String name, int value, int userHandle) {
252a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki            context.settings.settingsSecurePutIntForUser(name, value, userHandle);
253a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        }
254a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki
255a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        @Override
256a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        void settingsSecurePutStringForUser(String name, String value, int userHandle) {
257a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki            context.settings.settingsSecurePutStringForUser(name, value, userHandle);
258a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        }
259a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki
260a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        @Override
261a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        void settingsGlobalPutStringForUser(String name, String value, int userHandle) {
262a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki            context.settings.settingsGlobalPutStringForUser(name, value, userHandle);
263a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        }
264a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki
265a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        @Override
266a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        void settingsSecurePutInt(String name, int value) {
267a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki            context.settings.settingsSecurePutInt(name, value);
268a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        }
269a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki
270a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        @Override
271a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        void settingsGlobalPutInt(String name, int value) {
272a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki            context.settings.settingsGlobalPutInt(name, value);
273a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        }
274a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki
275a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        @Override
276a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        void settingsSecurePutString(String name, String value) {
277a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki            context.settings.settingsSecurePutString(name, value);
278a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        }
279a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki
280a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        @Override
281a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        void settingsGlobalPutString(String name, String value) {
282a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki            context.settings.settingsGlobalPutString(name, value);
283a4f119790e32fcce56586e7324d508e35cb30a2aMakoto Onuki        }
2843f3657a61b54d495bf2e692289eb92a48fe5a0b2Makoto Onuki
2853f3657a61b54d495bf2e692289eb92a48fe5a0b2Makoto Onuki        @Override
2863f3657a61b54d495bf2e692289eb92a48fe5a0b2Makoto Onuki        int settingsGlobalGetInt(String name, int def) {
2873f3657a61b54d495bf2e692289eb92a48fe5a0b2Makoto Onuki            return context.settings.settingsGlobalGetInt(name, def);
2883f3657a61b54d495bf2e692289eb92a48fe5a0b2Makoto Onuki        }
2893f3657a61b54d495bf2e692289eb92a48fe5a0b2Makoto Onuki
2903f3657a61b54d495bf2e692289eb92a48fe5a0b2Makoto Onuki        @Override
2913f3657a61b54d495bf2e692289eb92a48fe5a0b2Makoto Onuki        void securityLogSetLoggingEnabledProperty(boolean enabled) {
2923f3657a61b54d495bf2e692289eb92a48fe5a0b2Makoto Onuki            context.settings.securityLogSetLoggingEnabledProperty(enabled);
2933f3657a61b54d495bf2e692289eb92a48fe5a0b2Makoto Onuki        }
294cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki    }
295cc4bbeb76af92a8484fe05f37c4ff412b4c47cccMakoto Onuki}
296