diff options
author | Dianne Hackborn <hackbod@google.com> | 2012-09-19 13:28:11 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-09-19 13:28:11 -0700 |
commit | 52716deb4008da1d566dfd711edc0a9c6de5f79f (patch) | |
tree | ce04a84d74a25d387cd0a96af3c465c9bd3de516 /services | |
parent | 8f301e666873e4a9feaace38a0b184a5f3ce7003 (diff) | |
parent | f1b674197577e815040cd75ef86d611965d603ad (diff) | |
download | frameworks_base-52716deb4008da1d566dfd711edc0a9c6de5f79f.zip frameworks_base-52716deb4008da1d566dfd711edc0a9c6de5f79f.tar.gz frameworks_base-52716deb4008da1d566dfd711edc0a9c6de5f79f.tar.bz2 |
Merge "Fix deadlock in LockPatternUtils by using local id." into jb-mr1-dev
Diffstat (limited to 'services')
3 files changed, 12 insertions, 8 deletions
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index b8c72f8..1f5fa4d 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -13982,6 +13982,8 @@ public final class ActivityManagerService extends ActivityManagerNative mUserLru.remove(userIdInt); mUserLru.add(userIdInt); + mWindowManager.setCurrentUser(userId); + final UserStartedState uss = mStartedUsers.get(userId); mHandler.removeMessages(REPORT_USER_SWITCH_MSG); @@ -14020,7 +14022,7 @@ public final class ActivityManagerService extends ActivityManagerNative if (!haveActivities) { startHomeActivityLocked(userId); } - + sendUserSwitchBroadcastsLocked(oldUserId, userId); } } finally { diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java index 55a7c46..1eea9b1 100755 --- a/services/java/com/android/server/wm/WindowManagerService.java +++ b/services/java/com/android/server/wm/WindowManagerService.java @@ -292,9 +292,6 @@ public class WindowManagerService extends IWindowManager.Stub if (DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED.equals(action)) { mKeyguardDisableHandler.sendEmptyMessage( KeyguardDisableHandler.KEYGUARD_POLICY_CHANGED); - } else if (Intent.ACTION_USER_SWITCHED.equals(action)) { - final int newUserId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0); - mCurrentUserId = newUserId; } } }; @@ -811,8 +808,6 @@ public class WindowManagerService extends IWindowManager.Stub // Track changes to DevicePolicyManager state so we can enable/disable keyguard. IntentFilter filter = new IntentFilter(); filter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED); - // Track user switching. - filter.addAction(Intent.ACTION_USER_SWITCHED); mContext.registerReceiver(mBroadcastReceiver, filter); mHoldingScreenWakeLock = pmc.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK @@ -5396,6 +5391,13 @@ public class WindowManagerService extends IWindowManager.Stub mInputManager.setInputFilter(filter); } + public void setCurrentUser(final int newUserId) { + synchronized (mWindowMap) { + mCurrentUserId = newUserId; + mPolicy.setCurrentUserLw(newUserId); + } + } + public void enableScreenAfterBoot() { synchronized(mWindowMap) { if (DEBUG_BOOT) { diff --git a/services/java/com/android/server/wm/WindowState.java b/services/java/com/android/server/wm/WindowState.java index b62028e..ac958b8 100644 --- a/services/java/com/android/server/wm/WindowState.java +++ b/services/java/com/android/server/wm/WindowState.java @@ -518,11 +518,11 @@ final class WindowState implements WindowManagerPolicy.WindowState { MagnificationSpec spec = mDisplayContent.mMagnificationSpec; if (spec != null && !spec.isNop()) { if (mAttachedWindow != null) { - if (!mPolicy.canMagnifyWindow(mAttachedWindow.mAttrs)) { + if (!mPolicy.canMagnifyWindowLw(mAttachedWindow.mAttrs)) { return null; } } - if (!mPolicy.canMagnifyWindow(mAttrs)) { + if (!mPolicy.canMagnifyWindowLw(mAttrs)) { return null; } } |