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 /policy | |
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 'policy')
-rwxr-xr-x | policy/src/com/android/internal/policy/impl/PhoneWindowManager.java | 13 | ||||
-rw-r--r-- | policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java | 13 |
2 files changed, 22 insertions, 4 deletions
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 6c62680..7034264 100755 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -71,7 +71,6 @@ import android.util.EventLog; import android.util.Log; import android.util.Slog; import android.util.SparseArray; -import android.util.SparseIntArray; import android.view.Display; import android.view.Gravity; import android.view.HapticFeedbackConstants; @@ -722,6 +721,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } private final Runnable mPowerLongPress = new Runnable() { + @Override public void run() { // The context isn't read if (mLongPressOnPowerBehavior < 0) { @@ -4316,7 +4316,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { mLastInputMethodTargetWindow = target; } - public boolean canMagnifyWindow(WindowManager.LayoutParams attrs) { + @Override + public boolean canMagnifyWindowLw(WindowManager.LayoutParams attrs) { switch (attrs.type) { case WindowManager.LayoutParams.TYPE_INPUT_METHOD: case WindowManager.LayoutParams.TYPE_INPUT_METHOD_DIALOG: @@ -4328,6 +4329,14 @@ public class PhoneWindowManager implements WindowManagerPolicy { return true; } + @Override + public void setCurrentUserLw(int newUserId) { + if (mKeyguardMediator != null) { + mKeyguardMediator.setCurrentUser(newUserId); + } + } + + @Override public void dump(String prefix, PrintWriter pw, String[] args) { pw.print(prefix); pw.print("mSafeMode="); pw.print(mSafeMode); pw.print(" mSystemReady="); pw.print(mSystemReady); 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 7f45a40..50a7134 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java @@ -131,7 +131,7 @@ public class KeyguardViewMediator { private static final int KEYGUARD_LOCK_AFTER_DELAY_DEFAULT = 5000; /** - * How long we'll wait for the {@link KeyguardViewCallback#keyguardDoneDrawing()} + * How long we'll wait for the {@link ViewMediatorCallback#keyguardDoneDrawing()} * callback before unblocking a call to {@link #setKeyguardEnabled(boolean)} * that is reenabling the keyguard. */ @@ -297,7 +297,7 @@ public class KeyguardViewMediator { @Override public void onUserSwitched(int userId) { - mLockPatternUtils.setCurrentUser(userId); + // Note that the mLockPatternUtils user has already been updated from setCurrentUser. synchronized (KeyguardViewMediator.this) { resetStateLocked(); } @@ -465,6 +465,7 @@ public class KeyguardViewMediator { mLockPatternUtils = lockPatternUtils != null ? lockPatternUtils : new LockPatternUtils(mContext); + mLockPatternUtils.setCurrentUser(UserHandle.USER_OWNER); WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE); @@ -890,6 +891,14 @@ public class KeyguardViewMediator { || KeyguardUpdateMonitor.getInstance(mContext).isSimPinSecure(); } + /** + * Update the newUserId. Call while holding WindowManagerService lock. + * @param newUserId The id of the incoming user. + */ + public void setCurrentUser(int newUserId) { + mLockPatternUtils.setCurrentUser(newUserId); + } + private final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { |