Loading policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java +15 −2 Original line number Diff line number Diff line Loading @@ -221,6 +221,11 @@ public class KeyguardHostView extends KeyguardViewBase { mViewMediatorCallback.keyguardDoneDrawing(); } @Override public void setOnDismissRunnable(Runnable runnable) { KeyguardHostView.this.setOnDismissRunnable(runnable); } }; public void takeEmergencyCallAction() { Loading Loading @@ -273,7 +278,7 @@ public class KeyguardHostView extends KeyguardViewBase { final android.app.PendingIntent pendingIntent, final Intent fillInIntent) { if (pendingIntent.isActivity()) { mLaunchRunnable = new Runnable() { setOnDismissRunnable(new Runnable() { public void run() { try { // TODO: Unregister this handler if PendingIntent.FLAG_ONE_SHOT? Loading @@ -292,7 +297,7 @@ public class KeyguardHostView extends KeyguardViewBase { "unknown exception: ", e); } } }; }); mCallback.dismiss(false); return true; Loading @@ -307,6 +312,14 @@ public class KeyguardHostView extends KeyguardViewBase { requestFocus(); } /** * Sets a runnable to run when keyguard is dismissed * @param runnable */ protected void setOnDismissRunnable(Runnable runnable) { mLaunchRunnable = runnable; } private KeyguardSecurityView getSecurityView(int securitySelectorId) { final int children = mViewFlipper.getChildCount(); for (int child = 0; child < children; child++) { Loading policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityCallback.java +9 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,15 @@ public interface KeyguardSecurityCallback { */ void showBackupUnlock(); /** * Used to inform keyguard when the current view is done drawing. */ void keyguardDoneDrawing(); /** * Sets a runnable to launch after the user enters their * @param runnable */ void setOnDismissRunnable(Runnable runnable); } policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java +37 −12 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri ((SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE)) .getAssistIntent(mContext, UserHandle.USER_CURRENT); if (assistIntent != null) { launchActivity(assistIntent); launchActivity(assistIntent, false); } else { Log.w(TAG, "Failed to get intent for assist activity"); } Loading @@ -69,7 +69,7 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri break; case com.android.internal.R.drawable.ic_lockscreen_camera: launchActivity(new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA)); launchCamera(); mCallback.userActivity(0); break; Loading Loading @@ -128,6 +128,16 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri this(context, null); } protected void launchCamera() { if (mLockPatternUtils.isSecure()) { // Launch the secure version of the camera launchActivity(new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE), true); } else { // Launch the normal camera launchActivity(new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA), false); } } public KeyguardSelectorView(Context context, AttributeSet attrs) { super(context, attrs); mLockPatternUtils = new LockPatternUtils(getContext()); Loading Loading @@ -217,13 +227,17 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri /** * Launches the said intent for the current foreground user. * @param intent * @param showsWhileLocked true if the activity can be run on top of keyguard. * See {@link WindowManager#FLAG_SHOW_WHEN_LOCKED} */ private void launchActivity(Intent intent) { private void launchActivity(final Intent intent, boolean showsWhileLocked) { intent.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); try { boolean isSecure = mLockPatternUtils.isSecure(); if (!isSecure || showsWhileLocked) { if (!isSecure) try { ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity(); } catch (RemoteException e) { Log.w(TAG, "can't dismiss keyguard on launch"); Loading @@ -233,6 +247,17 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri } catch (ActivityNotFoundException e) { Log.w(TAG, "Activity not found for intent + " + intent.getAction()); } } else { // Create a runnable to start the activity and ask the user to enter their // credentials. mCallback.setOnDismissRunnable(new Runnable() { @Override public void run() { mContext.startActivityAsUser(intent, new UserHandle(UserHandle.USER_CURRENT)); } }); mCallback.dismiss(false); } } @Override Loading Loading
policy/src/com/android/internal/policy/impl/keyguard/KeyguardHostView.java +15 −2 Original line number Diff line number Diff line Loading @@ -221,6 +221,11 @@ public class KeyguardHostView extends KeyguardViewBase { mViewMediatorCallback.keyguardDoneDrawing(); } @Override public void setOnDismissRunnable(Runnable runnable) { KeyguardHostView.this.setOnDismissRunnable(runnable); } }; public void takeEmergencyCallAction() { Loading Loading @@ -273,7 +278,7 @@ public class KeyguardHostView extends KeyguardViewBase { final android.app.PendingIntent pendingIntent, final Intent fillInIntent) { if (pendingIntent.isActivity()) { mLaunchRunnable = new Runnable() { setOnDismissRunnable(new Runnable() { public void run() { try { // TODO: Unregister this handler if PendingIntent.FLAG_ONE_SHOT? Loading @@ -292,7 +297,7 @@ public class KeyguardHostView extends KeyguardViewBase { "unknown exception: ", e); } } }; }); mCallback.dismiss(false); return true; Loading @@ -307,6 +312,14 @@ public class KeyguardHostView extends KeyguardViewBase { requestFocus(); } /** * Sets a runnable to run when keyguard is dismissed * @param runnable */ protected void setOnDismissRunnable(Runnable runnable) { mLaunchRunnable = runnable; } private KeyguardSecurityView getSecurityView(int securitySelectorId) { final int children = mViewFlipper.getChildCount(); for (int child = 0; child < children; child++) { Loading
policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityCallback.java +9 −0 Original line number Diff line number Diff line Loading @@ -57,6 +57,15 @@ public interface KeyguardSecurityCallback { */ void showBackupUnlock(); /** * Used to inform keyguard when the current view is done drawing. */ void keyguardDoneDrawing(); /** * Sets a runnable to launch after the user enters their * @param runnable */ void setOnDismissRunnable(Runnable runnable); }
policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java +37 −12 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri ((SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE)) .getAssistIntent(mContext, UserHandle.USER_CURRENT); if (assistIntent != null) { launchActivity(assistIntent); launchActivity(assistIntent, false); } else { Log.w(TAG, "Failed to get intent for assist activity"); } Loading @@ -69,7 +69,7 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri break; case com.android.internal.R.drawable.ic_lockscreen_camera: launchActivity(new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA)); launchCamera(); mCallback.userActivity(0); break; Loading Loading @@ -128,6 +128,16 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri this(context, null); } protected void launchCamera() { if (mLockPatternUtils.isSecure()) { // Launch the secure version of the camera launchActivity(new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE), true); } else { // Launch the normal camera launchActivity(new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA), false); } } public KeyguardSelectorView(Context context, AttributeSet attrs) { super(context, attrs); mLockPatternUtils = new LockPatternUtils(getContext()); Loading Loading @@ -217,13 +227,17 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri /** * Launches the said intent for the current foreground user. * @param intent * @param showsWhileLocked true if the activity can be run on top of keyguard. * See {@link WindowManager#FLAG_SHOW_WHEN_LOCKED} */ private void launchActivity(Intent intent) { private void launchActivity(final Intent intent, boolean showsWhileLocked) { intent.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP); try { boolean isSecure = mLockPatternUtils.isSecure(); if (!isSecure || showsWhileLocked) { if (!isSecure) try { ActivityManagerNative.getDefault().dismissKeyguardOnNextActivity(); } catch (RemoteException e) { Log.w(TAG, "can't dismiss keyguard on launch"); Loading @@ -233,6 +247,17 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri } catch (ActivityNotFoundException e) { Log.w(TAG, "Activity not found for intent + " + intent.getAction()); } } else { // Create a runnable to start the activity and ask the user to enter their // credentials. mCallback.setOnDismissRunnable(new Runnable() { @Override public void run() { mContext.startActivityAsUser(intent, new UserHandle(UserHandle.USER_CURRENT)); } }); mCallback.dismiss(false); } } @Override Loading