diff options
author | Adam Cohen <adamcohen@google.com> | 2012-10-03 20:03:18 -0700 |
---|---|---|
committer | Adam Cohen <adamcohen@google.com> | 2012-10-04 17:53:01 -0700 |
commit | f752202bee88e31ce765483ba2efa6999ae9c9ad (patch) | |
tree | bdab562d4383a67f3806617d2ca3aa3e53862d67 /services | |
parent | 17f36d154f1a8ebe72fc35af332f5c0069503364 (diff) | |
download | frameworks_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')
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) { |