MediaSessionService: Synchronize isGlobalPriorityActive()

Test: Manual test (Press the headset button while the phone is ringing)
Change-Id: I682d4d07a1e238892afe8b03b2b824bb40345ab8
diff --git a/services/core/java/com/android/server/media/MediaSessionService.java b/services/core/java/com/android/server/media/MediaSessionService.java
index 36f3287..dfa2f86 100644
--- a/services/core/java/com/android/server/media/MediaSessionService.java
+++ b/services/core/java/com/android/server/media/MediaSessionService.java
@@ -801,16 +801,17 @@
                             + "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 @@
 
         @Override
         public boolean isGlobalPriorityActive() {
-            return mPriorityStack.isGlobalPriorityActive();
+            synchronized (mLock) {
+                return mPriorityStack.isGlobalPriorityActive();
+            }
         }
 
         @Override