summaryrefslogtreecommitdiff
path: root/InCallUI
diff options
context:
space:
mode:
authorChiao Cheng <chiaocheng@google.com>2013-11-14 15:44:44 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2013-11-14 15:44:44 -0800
commit3ce49172bf45607990d1e791e99fcd5670c6b217 (patch)
treedecc0b5c7589946beec78c23d9afc0e5c77432e0 /InCallUI
parent604099d5d826a90d513ceb46d77b3701ac7cddc9 (diff)
parent178ede8b23633d3144faa429dd098b755f6c7663 (diff)
am fa7dd751: am 59517317: Merge "Add logic to dynamic dismiss keyguard." into klp-dev
* commit 'fa7dd7517d9330abb0750763b6466f2bfa536243': Add logic to dynamic dismiss keyguard.
Diffstat (limited to 'InCallUI')
-rw-r--r--InCallUI/src/com/android/incallui/InCallActivity.java15
-rw-r--r--InCallUI/src/com/android/incallui/InCallPresenter.java10
2 files changed, 22 insertions, 3 deletions
diff --git a/InCallUI/src/com/android/incallui/InCallActivity.java b/InCallUI/src/com/android/incallui/InCallActivity.java
index 64e856c93..08a8f12d0 100644
--- a/InCallUI/src/com/android/incallui/InCallActivity.java
+++ b/InCallUI/src/com/android/incallui/InCallActivity.java
@@ -62,10 +62,11 @@ public class InCallActivity extends Activity {
// 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 @@ public class InCallActivity extends Activity {
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 80c47395f..8bec492d9 100644
--- a/InCallUI/src/com/android/incallui/InCallPresenter.java
+++ b/InCallUI/src/com/android/incallui/InCallPresenter.java
@@ -241,6 +241,12 @@ public class InCallPresenter implements CallList.Listener {
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 @@ public class InCallPresenter implements CallList.Listener {
// We need to do the run the same code as onCallListChange.
onCallListChange(CallList.getInstance());
+
+ if (isActivityStarted()) {
+ mInCallActivity.dismissKeyguard(false);
+ }
}
/**