MediaSessionService: Synchronize isGlobalPriorityActive()
Test: Manual test (Press the headset button while the phone is ringing) Change-Id: I682d4d07a1e238892afe8b03b2b824bb40345ab8
This commit is contained in:
@@ -801,16 +801,17 @@ public class MediaSessionService extends SystemService implements Monitor {
|
||||
+ "setup is in progress.");
|
||||
return;
|
||||
}
|
||||
if (isGlobalPriorityActive() && uid != Process.SYSTEM_UID) {
|
||||
// Prevent dispatching key event through reflection while the global priority
|
||||
// session is active.
|
||||
Slog.i(TAG, "Only the system can dispatch media key event "
|
||||
+ "to the global priority session.");
|
||||
return;
|
||||
}
|
||||
|
||||
synchronized (mLock) {
|
||||
if (!isGlobalPriorityActive() && isVoiceKey(keyEvent.getKeyCode())) {
|
||||
boolean isGlobalPriorityActive = mPriorityStack.isGlobalPriorityActive();
|
||||
if (isGlobalPriorityActive && uid != Process.SYSTEM_UID) {
|
||||
// Prevent dispatching key event through reflection while the global
|
||||
// priority session is active.
|
||||
Slog.i(TAG, "Only the system can dispatch media key event "
|
||||
+ "to the global priority session.");
|
||||
return;
|
||||
}
|
||||
if (!isGlobalPriorityActive && isVoiceKey(keyEvent.getKeyCode())) {
|
||||
handleVoiceKeyEventLocked(keyEvent, needWakeLock);
|
||||
} else {
|
||||
dispatchMediaKeyEventLocked(keyEvent, needWakeLock, true);
|
||||
@@ -1080,7 +1081,9 @@ public class MediaSessionService extends SystemService implements Monitor {
|
||||
|
||||
@Override
|
||||
public boolean isGlobalPriorityActive() {
|
||||
return mPriorityStack.isGlobalPriorityActive();
|
||||
synchronized (mLock) {
|
||||
return mPriorityStack.isGlobalPriorityActive();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user