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

Commit 953af4ed authored by ryanywlin's avatar ryanywlin Committed by android-build-merger
Browse files

Merge "Identify cast mode properly in audio switch" into pi-dev

am: 16f00964

Change-Id: I14d7c5cf940565bd4171ba23e93b4f2521756fd9
parents b8e04863 16f00964
Loading
Loading
Loading
Loading
+4 −13
Original line number Diff line number Diff line
@@ -16,14 +16,13 @@

package com.android.settings.sound;

import static android.media.AudioManager.STREAM_VOICE_CALL;
import static android.media.AudioManager.STREAM_MUSIC;
import static android.media.AudioSystem.DEVICE_OUT_REMOTE_SUBMIX;
import static android.media.AudioSystem.DEVICE_OUT_USB_HEADSET;
import static android.media.MediaRouter.ROUTE_TYPE_REMOTE_DISPLAY;

import android.bluetooth.BluetoothDevice;
import android.content.Context;
import android.media.AudioManager;
import android.media.MediaRouter;
import android.support.v7.preference.Preference;

import com.android.internal.util.ArrayUtils;
@@ -51,8 +50,7 @@ public class MediaOutputPreferenceController extends AudioSwitchPreferenceContro
            return;
        }

        if (mAudioManager.isMusicActiveRemotely() || isCastDevice(mMediaRouter)) {
            // TODO(76455906): Workaround for cast mode, need a solid way to identify cast mode.
        if (isStreamFromOutputDevice(STREAM_MUSIC, DEVICE_OUT_REMOTE_SUBMIX)) {
            // In cast mode, disable switch entry.
            preference.setEnabled(false);
            preference.setSummary(mContext.getText(R.string.media_output_summary_unavailable));
@@ -93,7 +91,7 @@ public class MediaOutputPreferenceController extends AudioSwitchPreferenceContro
        // Setup devices entries, select active connected device
        setupPreferenceEntries(mediaOutputs, mediaValues, activeDevice);

        if (isStreamFromOutputDevice(STREAM_VOICE_CALL, DEVICE_OUT_USB_HEADSET)) {
        if (isStreamFromOutputDevice(STREAM_MUSIC, DEVICE_OUT_USB_HEADSET)) {
            // If wired headset is plugged in and active, select to default device.
            mSelectedIndex = getDefaultDeviceIndex();
        }
@@ -108,11 +106,4 @@ public class MediaOutputPreferenceController extends AudioSwitchPreferenceContro
            mProfileManager.getA2dpProfile().setActiveDevice(device);
        }
    }

    private static boolean isCastDevice(MediaRouter mediaRouter) {
        final MediaRouter.RouteInfo selected = mediaRouter.getSelectedRoute(
                ROUTE_TYPE_REMOTE_DISPLAY);
        return selected != null && selected.getPresentationDisplay() != null
                && selected.getPresentationDisplay().isValid();
    }
}
+2 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.settings.sound;


import static android.media.AudioSystem.DEVICE_OUT_REMOTE_SUBMIX;
import static android.media.AudioSystem.DEVICE_OUT_USB_HEADSET;

import static com.google.common.truth.Truth.assertThat;
@@ -198,7 +199,7 @@ public class MediaOutputPreferenceControllerTest {
     */
    @Test
    public void updateState_mediaStreamIsCapturedByCast_shouldDisableAndSetDefaultSummary() {
        mShadowAudioManager.setMusicActiveRemotely(true);
        mShadowAudioManager.setStream(DEVICE_OUT_REMOTE_SUBMIX);

        mController.updateState(mPreference);