summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2012-10-03 20:03:18 -0700
committerAdam Cohen <adamcohen@google.com>2012-10-04 17:53:01 -0700
commitf752202bee88e31ce765483ba2efa6999ae9c9ad (patch)
treebdab562d4383a67f3806617d2ca3aa3e53862d67 /services
parent17f36d154f1a8ebe72fc35af332f5c0069503364 (diff)
downloadframeworks_base-f752202bee88e31ce765483ba2efa6999ae9c9ad.zip
frameworks_base-f752202bee88e31ce765483ba2efa6999ae9c9ad.tar.gz
frameworks_base-f752202bee88e31ce765483ba2efa6999ae9c9ad.tar.bz2
Plumbing to allow keyguard to be shown with user switcher (issue 7175023)
-> Also reduced calls to lockNow, and moved this call in ActivityManagerService Change-Id: I9ba34ca902f7c0f71fa4ec302104688ca8d11f55
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/DevicePolicyManagerService.java3
-rw-r--r--services/java/com/android/server/am/ActivityManagerService.java6
-rwxr-xr-xservices/java/com/android/server/wm/WindowManagerService.java4
3 files changed, 9 insertions, 4 deletions
diff --git a/services/java/com/android/server/DevicePolicyManagerService.java b/services/java/com/android/server/DevicePolicyManagerService.java
index b2de963..a5e26a8 100644
--- a/services/java/com/android/server/DevicePolicyManagerService.java
+++ b/services/java/com/android/server/DevicePolicyManagerService.java
@@ -46,6 +46,7 @@ import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
import android.os.Binder;
+import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.IBinder;
@@ -1832,7 +1833,7 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
getIPowerManager().goToSleep(SystemClock.uptimeMillis(),
PowerManager.GO_TO_SLEEP_REASON_DEVICE_ADMIN);
// Ensure the device is locked
- getWindowManager().lockNow();
+ getWindowManager().lockNow(null);
} catch (RemoteException e) {
} finally {
Binder.restoreCallingIdentity(ident);
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java
index 3ef6767..d91edcd 100644
--- a/services/java/com/android/server/am/ActivityManagerService.java
+++ b/services/java/com/android/server/am/ActivityManagerService.java
@@ -21,6 +21,7 @@ import static android.content.pm.PackageManager.PERMISSION_GRANTED;
import com.android.internal.R;
import com.android.internal.os.BatteryStatsImpl;
import com.android.internal.os.ProcessStats;
+import com.android.internal.widget.LockPatternUtils;
import com.android.server.AttributeCache;
import com.android.server.IntentResolver;
import com.android.server.ProcessMap;
@@ -14102,7 +14103,6 @@ public final class ActivityManagerService extends ActivityManagerNative
return false;
}
- mWindowManager.lockNow();
mWindowManager.startFreezingScreen(R.anim.screen_user_exit,
R.anim.screen_user_enter);
@@ -14121,6 +14121,10 @@ public final class ActivityManagerService extends ActivityManagerNative
mWindowManager.setCurrentUser(userId);
+ // Once the internal notion of the active user has switched, we lock the device
+ // with the option to show the user switcher on the keyguard.
+ mWindowManager.lockNow(LockPatternUtils.USER_SWITCH_LOCK_OPTIONS);
+
final UserStartedState uss = mStartedUsers.get(userId);
mHandler.removeMessages(REPORT_USER_SWITCH_MSG);
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index 180579d..8cc3d61 100755
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -10155,8 +10155,8 @@ public class WindowManagerService extends IWindowManager.Stub
return mPolicy.hasNavigationBar();
}
- public void lockNow() {
- mPolicy.lockNow();
+ public void lockNow(Bundle options) {
+ mPolicy.lockNow(options);
}
void dumpPolicyLocked(PrintWriter pw, String[] args, boolean dumpAll) {