public void launchCamera(Handler worker, Runnable onSecureCameraStarted) { LockPatternUtils lockPatternUtils = getLockPatternUtils(); // Workaround to avoid camera release/acquisition race when resuming face unlock // after showing lockscreen camera (bug 11063890). KeyguardUpdateMonitor updateMonitor = KeyguardUpdateMonitor.getInstance(getContext()); updateMonitor.setAlternateUnlockEnabled(false); if (mustLaunchSecurely()) { // Launch the secure version of the camera if (wouldLaunchResolverActivity(SECURE_CAMERA_INTENT)) { // TODO: Show disambiguation dialog instead. // For now, we'll treat this like launching any other app from secure keyguard. // When they do, user sees the system's ResolverActivity which lets them choose // which secure camera to use. launchActivity(SECURE_CAMERA_INTENT, false, false, null, null); } else { launchActivity(SECURE_CAMERA_INTENT, true, false, worker, onSecureCameraStarted); } } else { // Launch the normal camera launchActivity(INSECURE_CAMERA_INTENT, false, false, null, null); } }