예제 #1
0
  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();
  }