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