Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 51255010 authored by Jaewan Kim's avatar Jaewan Kim
Browse files

MediaSessionService: Synchronize isGlobalPriorityActive()

Test: Manual test (Press the headset button while the phone is ringing)
Change-Id: I682d4d07a1e238892afe8b03b2b824bb40345ab8
parent e20e7ebb
Loading
Loading
Loading
Loading
+12 −9
Original line number Diff line number Diff line
@@ -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.

                synchronized (mLock) {
                    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;
                    }

                synchronized (mLock) {
                    if (!isGlobalPriorityActive() && isVoiceKey(keyEvent.getKeyCode())) {
                    if (!isGlobalPriorityActive && isVoiceKey(keyEvent.getKeyCode())) {
                        handleVoiceKeyEventLocked(keyEvent, needWakeLock);
                    } else {
                        dispatchMediaKeyEventLocked(keyEvent, needWakeLock, true);
@@ -1080,8 +1081,10 @@ public class MediaSessionService extends SystemService implements Monitor {

        @Override
        public boolean isGlobalPriorityActive() {
            synchronized (mLock) {
                return mPriorityStack.isGlobalPriorityActive();
            }
        }

        @Override
        public void dump(FileDescriptor fd, final PrintWriter pw, String[] args) {