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

Commit 5b052265 authored by Jaewan Kim's avatar Jaewan Kim Committed by Android (Google) Code Review
Browse files

Merge "DO NOT MERGE Check caller for sending media key to telephony service" into klp-dev

parents c119a677 d1641e8c
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
import android.os.PowerManager;
import android.os.Process;
import android.os.RemoteException;
import android.os.UserHandle;
import android.os.IBinder.DeathRecipient;
@@ -750,7 +751,13 @@ public class MediaFocusControl implements OnFinished {
            synchronized(mRCStack) {
                if ((mMediaReceiverForCalls != null) &&
                        (mIsRinging || (mAudioService.getMode() == AudioSystem.MODE_IN_CALL))) {
                    if (Binder.getCallingUid() != Process.SYSTEM_UID) {
                        // Prevent dispatching key event to the global priority session.
                        Slog.i(TAG, "Only the system can dispatch media key event "
                                + "to the global priority session.");
                    } else {
                        dispatchMediaKeyEventForCalls(keyEvent, needWakeLock);
                    }
                    return;
                }
            }
+12 −0
Original line number Diff line number Diff line
@@ -4044,6 +4044,18 @@ public class PhoneWindowManager implements WindowManagerPolicy {
            case KeyEvent.KEYCODE_MEDIA_RECORD:
            case KeyEvent.KEYCODE_MEDIA_FAST_FORWARD:
            case KeyEvent.KEYCODE_MEDIA_AUDIO_TRACK: {
                ITelephony telephonyService = getTelephonyService();
                if (telephonyService != null) {
                    try {
                        if (!telephonyService.isIdle()) {
                            // When phone is ringing or in-call, pass all media keys to it.
                            result &= ~ACTION_PASS_TO_USER;
                        }
                    } catch (RemoteException ex) {
                        Log.w(TAG, "ITelephony threw RemoteException", ex);
                    }
                }

                if ((result & ACTION_PASS_TO_USER) == 0) {
                    // Only do this if we would otherwise not pass it to the user. In that
                    // case, the PhoneWindow class will do the same thing, except it will