From f7178d3cadfeb0101491eeea7d7f3b0d7c26dbe6 Mon Sep 17 00:00:00 2001 From: Daniel Sandler Date: Fri, 10 Aug 2012 10:24:05 -0400 Subject: [PATCH] Allow the secure keyguard to engage behind Dreams. TYPE_DREAM windows are now considered for relevant window flags alongside application windows. Bug: 6961616 Change-Id: Idee3303276a8b69c7f07de1d6acdce64c6e1b863 --- core/java/android/service/dreams/Dream.java | 5 +++++ .../com/android/internal/policy/impl/PhoneWindowManager.java | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/core/java/android/service/dreams/Dream.java b/core/java/android/service/dreams/Dream.java index 5a3fad6de15f9..69db97c29562f 100644 --- a/core/java/android/service/dreams/Dream.java +++ b/core/java/android/service/dreams/Dream.java @@ -346,6 +346,11 @@ public class Dream extends Service implements Window.Callback { lp.type = WindowManager.LayoutParams.TYPE_DREAM; lp.token = windowToken; lp.windowAnimations = com.android.internal.R.style.Animation_Dream; + lp.flags |= ( WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED + | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD + | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON + ); + mWindow.setAttributes(lp); //WindowManagerImpl.getDefault().addView(mWindow.getDecorView(), lp); diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 5d4159a578310..8c627a3d6f3b9 100755 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -2854,8 +2854,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { if ((attrs.flags & FLAG_FORCE_NOT_FULLSCREEN) != 0) { mForceStatusBar = true; } - if (attrs.type >= FIRST_APPLICATION_WINDOW - && attrs.type <= LAST_APPLICATION_WINDOW + if (((attrs.type >= FIRST_APPLICATION_WINDOW && attrs.type <= LAST_APPLICATION_WINDOW) + || attrs.type == TYPE_DREAM) && attrs.x == 0 && attrs.y == 0 && attrs.width == WindowManager.LayoutParams.MATCH_PARENT && attrs.height == WindowManager.LayoutParams.MATCH_PARENT) {