summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jim Miller <jaggies@google.com> 2012-09-21 19:55:27 -0700
committer Jim Miller <jaggies@google.com> 2012-09-21 20:06:50 -0700
commit3fd47af32d6be8971445f4da8deba0fadae688d3 (patch)
treeb523c1ad1f1f30e246db5e35615c82a22806b844
parent6eeff850b245bd3be3a0e782cd9f28daadf922dc (diff)
Send USER_PRESENT for keyguard choice "None"
This enables sending ACTION_USER_PRESENT when the user has selected "None" for their keyguard screen. When this happens, we delegate sending the event to onScreenTurnedOn(). Tested: - None -> sends broadcast in onSystemReady() the first time after boot and in onScreenTurnedOn() there after. - Slide -> sends broadcast only once when screen is dismissed - Pattern -> sends broadcast only once when screen is dismissed Fixes bug 7029707 Change-Id: I785c3255b15e2ee598a10d7d3580ba5c03dd0068
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java
index 416a0bbe110d..212a6bb72f27 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java
@@ -339,7 +339,7 @@ public class KeyguardViewMediator {
@Override
public void onDeviceProvisioned() {
- mContext.sendBroadcast(mUserPresentIntent);
+ sendUserPresentBroadcast();
}
@Override
@@ -511,6 +511,9 @@ public class KeyguardViewMediator {
mUpdateMonitor.registerCallback(mUpdateCallback);
doKeyguardLocked();
}
+ // Most services aren't available until the system reaches the ready state, so we
+ // send it here when the device first boots.
+ maybeSendUserPresentBroadcast();
}
/**
@@ -606,6 +609,17 @@ public class KeyguardViewMediator {
notifyScreenOnLocked(showListener);
}
}
+ maybeSendUserPresentBroadcast();
+ }
+
+ private void maybeSendUserPresentBroadcast() {
+ if (mSystemReady && mLockPatternUtils.isLockScreenDisabled()
+ && mUserManager.getUsers(true).size() == 1) {
+ // Lock screen is disabled because the user has set the preference to "None".
+ // In this case, send out ACTION_USER_PRESENT here instead of in
+ // handleKeyguardDone()
+ sendUserPresentBroadcast();
+ }
}
/**
@@ -1093,6 +1107,10 @@ public class KeyguardViewMediator {
}
mWakeLock.release();
+ sendUserPresentBroadcast();
+ }
+
+ private void sendUserPresentBroadcast() {
if (!(mContext instanceof Activity)) {
final UserHandle currentUser = new UserHandle(mLockPatternUtils.getCurrentUser());
mContext.sendBroadcastAsUser(mUserPresentIntent, currentUser);