1 /* 2 * Copyright (C) 2017 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License 15 */ 16 17 package com.android.server.locksettings; 18 19 import android.app.KeyguardManager; 20 import android.app.NotificationManager; 21 import android.app.admin.DevicePolicyManager; 22 import android.app.trust.TrustManager; 23 import android.content.BroadcastReceiver; 24 import android.content.ContentResolver; 25 import android.content.Context; 26 import android.content.ContextWrapper; 27 import android.content.Intent; 28 import android.content.IntentFilter; 29 import android.content.pm.PackageManager; 30 import android.content.res.Resources; 31 import android.hardware.face.FaceManager; 32 import android.hardware.fingerprint.FingerprintManager; 33 import android.os.Handler; 34 import android.os.UserHandle; 35 import android.os.UserManager; 36 import android.os.storage.StorageManager; 37 38 public class MockLockSettingsContext extends ContextWrapper { 39 40 private final Resources mResources; 41 private final ContentResolver mContentResolver; 42 private final UserManager mUserManager; 43 private final NotificationManager mNotificationManager; 44 private final DevicePolicyManager mDevicePolicyManager; 45 private final StorageManager mStorageManager; 46 private final TrustManager mTrustManager; 47 private final KeyguardManager mKeyguardManager; 48 private final FingerprintManager mFingerprintManager; 49 private final FaceManager mFaceManager; 50 private final PackageManager mPackageManager; 51 MockLockSettingsContext(Context base, Resources resources, ContentResolver contentResolver, UserManager userManager, NotificationManager notificationManager, DevicePolicyManager devicePolicyManager, StorageManager storageManager, TrustManager trustManager, KeyguardManager keyguardManager, FingerprintManager fingerprintManager, FaceManager faceManager, PackageManager packageManager)52 public MockLockSettingsContext(Context base, Resources resources, 53 ContentResolver contentResolver, UserManager userManager, 54 NotificationManager notificationManager, DevicePolicyManager devicePolicyManager, 55 StorageManager storageManager, TrustManager trustManager, 56 KeyguardManager keyguardManager, FingerprintManager fingerprintManager, 57 FaceManager faceManager, PackageManager packageManager) { 58 super(base); 59 mResources = resources; 60 mContentResolver = contentResolver; 61 mUserManager = userManager; 62 mNotificationManager = notificationManager; 63 mDevicePolicyManager = devicePolicyManager; 64 mStorageManager = storageManager; 65 mTrustManager = trustManager; 66 mKeyguardManager = keyguardManager; 67 mFingerprintManager = fingerprintManager; 68 mFaceManager = faceManager; 69 mPackageManager = packageManager; 70 } 71 72 @Override getResources()73 public Resources getResources() { 74 return mResources; 75 } 76 77 @Override getContentResolver()78 public ContentResolver getContentResolver() { 79 return mContentResolver; 80 } 81 82 @Override getSystemService(String name)83 public Object getSystemService(String name) { 84 if (USER_SERVICE.equals(name)) { 85 return mUserManager; 86 } else if (NOTIFICATION_SERVICE.equals(name)) { 87 return mNotificationManager; 88 } else if (DEVICE_POLICY_SERVICE.equals(name)) { 89 return mDevicePolicyManager; 90 } else if (STORAGE_SERVICE.equals(name)) { 91 return mStorageManager; 92 } else if (TRUST_SERVICE.equals(name)) { 93 return mTrustManager; 94 } else if (KEYGUARD_SERVICE.equals(name)) { 95 return mKeyguardManager; 96 } else if (FINGERPRINT_SERVICE.equals(name)) { 97 return mFingerprintManager; 98 } else if (FACE_SERVICE.equals(name)) { 99 return mFaceManager; 100 } else { 101 throw new RuntimeException("System service not mocked: " + name); 102 } 103 } 104 105 @Override getPackageManager()106 public PackageManager getPackageManager() { 107 return mPackageManager; 108 } 109 110 @Override enforceCallingOrSelfPermission(String permission, String message)111 public void enforceCallingOrSelfPermission(String permission, String message) { 112 // Skip permission checks for unit tests. 113 } 114 115 @Override checkCallingOrSelfPermission(String permission)116 public int checkCallingOrSelfPermission(String permission) { 117 return PackageManager.PERMISSION_GRANTED; 118 } 119 120 @Override registerReceiverAsUser(BroadcastReceiver receiver, UserHandle user, IntentFilter filter, String broadcastPermission, Handler scheduler)121 public Intent registerReceiverAsUser(BroadcastReceiver receiver, 122 UserHandle user, IntentFilter filter, String broadcastPermission, 123 Handler scheduler) { 124 return null; 125 } 126 } 127