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

Commit 31743714 authored by Bishoy Gendy's avatar Bishoy Gendy Committed by Automerger Merge Worker
Browse files

Merge changes from topic "fix-volume-slider-during-phone-call" into tm-qpr-dev am: 270620a6

parents d806bf89 270620a6
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -823,6 +823,11 @@ public abstract class Window {
    /** @hide */
    public final void destroy() {
        mDestroyed = true;
        onDestroy();
    }

    /** @hide */
    protected void onDestroy() {
    }

    /** @hide */
+24 −11
Original line number Diff line number Diff line
@@ -295,6 +295,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
    private boolean mClosingActionMenu;

    private int mVolumeControlStreamType = AudioManager.USE_DEFAULT_STREAM_TYPE;
    private int mAudioMode = AudioManager.MODE_NORMAL;
    private MediaController mMediaController;

    private AudioManager mAudioManager;
@@ -317,6 +318,8 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
        }
    };

    private AudioManager.OnModeChangedListener mOnModeChangedListener;

    private Transition mEnterTransition = null;
    private Transition mReturnTransition = USE_DEFAULT_TRANSITION;
    private Transition mExitTransition = null;
@@ -1952,7 +1955,7 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
            case KeyEvent.KEYCODE_VOLUME_MUTE: {
                // If we have a session and no active phone call send it the volume command,
                // otherwise use the suggested stream.
                if (mMediaController != null && !isActivePhoneCallKnown()) {
                if (mMediaController != null && !isActivePhoneCallOngoing()) {
                    getMediaSessionManager().dispatchVolumeKeyEventToSessionAsSystemService(event,
                            mMediaController.getSessionToken());
                } else {
@@ -2003,16 +2006,9 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
        return false;
    }

    private boolean isActivePhoneCallKnown() {
        boolean isActivePhoneCallKnown = false;
        AudioManager audioManager =
                (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
        int audioManagerMode = audioManager.getMode();
        if (audioManagerMode == AudioManager.MODE_IN_CALL
                || audioManagerMode == AudioManager.MODE_IN_COMMUNICATION) {
            isActivePhoneCallKnown = true;
        }
        return isActivePhoneCallKnown;
    private boolean isActivePhoneCallOngoing() {
        return mAudioMode == AudioManager.MODE_IN_CALL
                || mAudioMode == AudioManager.MODE_IN_COMMUNICATION;
    }

    private KeyguardManager getKeyguardManager() {
@@ -2338,6 +2334,14 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
        }
    }

    @Override
    protected void onDestroy() {
        if (mOnModeChangedListener != null) {
            getAudioManager().removeOnModeChangedListener(mOnModeChangedListener);
            mOnModeChangedListener = null;
        }
    }

    private class PanelMenuPresenterCallback implements MenuPresenter.Callback {
        @Override
        public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) {
@@ -3220,6 +3224,15 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback {
    @Override
    public void setMediaController(MediaController controller) {
        mMediaController = controller;
        if (controller != null && mOnModeChangedListener == null) {
            mAudioMode = getAudioManager().getMode();
            mOnModeChangedListener = mode -> mAudioMode = mode;
            getAudioManager().addOnModeChangedListener(getContext().getMainExecutor(),
                    mOnModeChangedListener);
        } else if (mOnModeChangedListener != null) {
            getAudioManager().removeOnModeChangedListener(mOnModeChangedListener);
            mOnModeChangedListener = null;
        }
    }

    @Override