From 4994c66c0982a29898c7d1bf74f6777c0d4dd559 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Wed, 23 Sep 2009 22:21:23 -0700 Subject: [PATCH] Fix issue #2133206: dialogs/menus should auto-dismiss when screen turns off Perform clear system dialogs when turning on the lock screen. Change-Id: I2a3104a9df942d59308a94377f93787f17dbb2ce --- .../internal/policy/impl/KeyguardViewMediator.java | 8 +++++++- policy/com/android/internal/policy/impl/PhoneWindow.java | 7 +++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/policy/com/android/internal/policy/impl/KeyguardViewMediator.java b/policy/com/android/internal/policy/impl/KeyguardViewMediator.java index 0cb69e3479655..f8bc3e67fb00b 100644 --- a/policy/com/android/internal/policy/impl/KeyguardViewMediator.java +++ b/policy/com/android/internal/policy/impl/KeyguardViewMediator.java @@ -19,6 +19,7 @@ package com.android.internal.policy.impl; import com.android.internal.telephony.IccCard; import com.android.internal.widget.LockPatternUtils; +import android.app.ActivityManagerNative; import android.app.AlarmManager; import android.app.PendingIntent; import android.app.StatusBarManager; @@ -32,6 +33,7 @@ import android.os.Handler; import android.os.LocalPowerManager; import android.os.Message; import android.os.PowerManager; +import android.os.RemoteException; import android.os.SystemClock; import android.telephony.TelephonyManager; import android.util.Config; @@ -123,7 +125,7 @@ public class KeyguardViewMediator implements KeyguardViewCallback, * turning on the keyguard (i.e, the user has this much time to turn * the screen back on without having to face the keyguard). */ - private static final int KEYGUARD_DELAY_MS = 0; + private static final int KEYGUARD_DELAY_MS = 5000; /** * How long we'll wait for the {@link KeyguardViewCallback#keyguardDoneDrawing()} @@ -869,6 +871,10 @@ public class KeyguardViewMediator implements KeyguardViewCallback, mKeyguardViewManager.show(); mShowing = true; + try { + ActivityManagerNative.getDefault().closeSystemDialogs("lock"); + } catch (RemoteException e) { + } } } diff --git a/policy/com/android/internal/policy/impl/PhoneWindow.java b/policy/com/android/internal/policy/impl/PhoneWindow.java index 05dc936d0fd9d..3d6fdeb4b4a7e 100644 --- a/policy/com/android/internal/policy/impl/PhoneWindow.java +++ b/policy/com/android/internal/policy/impl/PhoneWindow.java @@ -1998,6 +1998,13 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { cb.onDetachedFromWindow(); } } + + @Override + public void onCloseSystemDialogs(String reason) { + if (mFeatureId >= 0) { + closeAllPanels(); + } + } } protected DecorView generateDecor() {