Merge "Decrease the timeout for unknown endcall screen from 5 to 2 sec." into klp-dev
diff --git a/InCallUI/src/com/android/incallui/InCallActivity.java b/InCallUI/src/com/android/incallui/InCallActivity.java
index 64e856c..08a8f12 100644
--- a/InCallUI/src/com/android/incallui/InCallActivity.java
+++ b/InCallUI/src/com/android/incallui/InCallActivity.java
@@ -62,10 +62,11 @@
 
         // set this flag so this activity will stay in front of the keyguard
         // Have the WindowManager filter out touch events that are "too fat".
-        getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
+        int flags = WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
                 | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
-                | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
-                | WindowManager.LayoutParams.FLAG_IGNORE_CHEEK_PRESSES);
+                | WindowManager.LayoutParams.FLAG_IGNORE_CHEEK_PRESSES;
+
+        getWindow().addFlags(flags);
 
         requestWindowFeature(Window.FEATURE_NO_TITLE);
 
@@ -388,6 +389,14 @@
         mCallButtonFragment.displayDialpad(false);
     }
 
+    public void dismissKeyguard(boolean dismiss) {
+        if (dismiss) {
+            getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
+        } else {
+            getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
+        }
+    }
+
     public void displayDialpad(boolean showDialpad) {
         if (showDialpad) {
             mDialpadFragment.setVisible(true);
diff --git a/InCallUI/src/com/android/incallui/InCallPresenter.java b/InCallUI/src/com/android/incallui/InCallPresenter.java
index 80c4739..8bec492 100644
--- a/InCallUI/src/com/android/incallui/InCallPresenter.java
+++ b/InCallUI/src/com/android/incallui/InCallPresenter.java
@@ -241,6 +241,12 @@
             Log.d(this, "Notify " + listener + " of state " + mInCallState.toString());
             listener.onStateChange(mInCallState, callList);
         }
+
+        if (isActivityStarted()) {
+            final boolean hasCall = callList.getActiveOrBackgroundCall() != null ||
+                    callList.getOutgoingCall() != null;
+            mInCallActivity.dismissKeyguard(hasCall);
+        }
     }
 
     /**
@@ -276,6 +282,10 @@
 
         // We need to do the run the same code as onCallListChange.
         onCallListChange(CallList.getInstance());
+
+        if (isActivityStarted()) {
+            mInCallActivity.dismissKeyguard(false);
+        }
     }
 
     /**
diff --git a/InCallUI/src/com/android/incallui/StatusBarNotifier.java b/InCallUI/src/com/android/incallui/StatusBarNotifier.java
index 6d9fd60..2de1b2d 100644
--- a/InCallUI/src/com/android/incallui/StatusBarNotifier.java
+++ b/InCallUI/src/com/android/incallui/StatusBarNotifier.java
@@ -236,7 +236,6 @@
                         mNotificationTimer.getState() == NotificationTimer.State.FIRED);
 
         if (showNotificationNow) {
-            Log.e(this, "showNotificationNow == true case", new Exception());
             showNotification(call, allowFullScreenIntent);
         } else {
             cancelInCall();