summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2012-09-19 13:28:11 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-09-19 13:28:11 -0700
commit52716deb4008da1d566dfd711edc0a9c6de5f79f (patch)
treece04a84d74a25d387cd0a96af3c465c9bd3de516 /services
parent8f301e666873e4a9feaace38a0b184a5f3ce7003 (diff)
parentf1b674197577e815040cd75ef86d611965d603ad (diff)
downloadframeworks_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')
-rw-r--r--services/java/com/android/server/am/ActivityManagerService.java4
-rwxr-xr-xservices/java/com/android/server/wm/WindowManagerService.java12
-rw-r--r--services/java/com/android/server/wm/WindowState.java4
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;
}
}