Merge changes from topic "fix-volume-slider-during-phone-call" into tm-qpr-dev am: 270620a63c am: 3174371410
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21701416 Change-Id: I746168c7171e5bbde4011da844da2e469df44887 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -823,6 +823,11 @@ public abstract class Window {
|
||||
/** @hide */
|
||||
public final void destroy() {
|
||||
mDestroyed = true;
|
||||
onDestroy();
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
protected void onDestroy() {
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
|
||||
@@ -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;
|
||||
@@ -1944,7 +1947,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 {
|
||||
@@ -1995,16 +1998,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() {
|
||||
@@ -2331,6 +2327,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) {
|
||||
@@ -3229,6 +3233,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
|
||||
|
||||
Reference in New Issue
Block a user