private void updateTargets() { int currentUserHandle = mLockPatternUtils.getCurrentUser(); DevicePolicyManager dpm = mLockPatternUtils.getDevicePolicyManager(); int disabledFeatures = dpm.getKeyguardDisabledFeatures(null, currentUserHandle); boolean secureCameraDisabled = mLockPatternUtils.isSecure() && (disabledFeatures & DevicePolicyManager.KEYGUARD_DISABLE_SECURE_CAMERA) != 0; boolean cameraDisabledByAdmin = dpm.getCameraDisabled(null, currentUserHandle) || secureCameraDisabled; final KeyguardUpdateMonitor monitor = KeyguardUpdateMonitor.getInstance(getContext()); boolean disabledBySimState = monitor.isSimLocked(); boolean cameraTargetPresent = isTargetPresent(com.android.internal.R.drawable.ic_lockscreen_camera); boolean searchTargetPresent = isTargetPresent(com.android.internal.R.drawable.ic_action_assist_generic); if (cameraDisabledByAdmin) { Log.v(TAG, "Camera disabled by Device Policy"); } else if (disabledBySimState) { Log.v(TAG, "Camera disabled by Sim State"); } boolean currentUserSetup = 0 != Settings.Secure.getIntForUser( mContext.getContentResolver(), Settings.Secure.USER_SETUP_COMPLETE, 0 /*default */, currentUserHandle); boolean searchActionAvailable = ((SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE)) .getAssistIntent(mContext, UserHandle.USER_CURRENT) != null; mCameraDisabled = cameraDisabledByAdmin || disabledBySimState || !cameraTargetPresent || !currentUserSetup; mSearchDisabled = disabledBySimState || !searchActionAvailable || !searchTargetPresent || !currentUserSetup; updateResources(); }