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

Commit def4a203 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "AudioService: logs for decision on ACTION_AUDIO_BECOMING_NOISY" into...

Merge "AudioService: logs for decision on ACTION_AUDIO_BECOMING_NOISY" into sc-v2-dev am: 3440697a am: ca906a0f

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16584443

Change-Id: Iac42c6b66cd180b6ab69621f93417b6c186d8006
parents b9425c2e ca906a0f
Loading
Loading
Loading
Loading
+21 −3
Original line number Original line Diff line number Diff line
@@ -238,6 +238,9 @@ public class AudioDeviceInventory {


    //------------------------------------------------------------
    //------------------------------------------------------------
    /*package*/ void dump(PrintWriter pw, String prefix) {
    /*package*/ void dump(PrintWriter pw, String prefix) {
        pw.println("\n" + prefix + "BECOMING_NOISY_INTENT_DEVICES_SET=");
        BECOMING_NOISY_INTENT_DEVICES_SET.forEach(device -> {
            pw.print(" 0x" +  Integer.toHexString(device)); });
        pw.println("\n" + prefix + "Preferred devices for strategy:");
        pw.println("\n" + prefix + "Preferred devices for strategy:");
        mPreferredDevices.forEach((strategy, device) -> {
        mPreferredDevices.forEach((strategy, device) -> {
            pw.println("  " + prefix + "strategy:" + strategy + " device:" + device); });
            pw.println("  " + prefix + "strategy:" + strategy + " device:" + device); });
@@ -1204,10 +1207,13 @@ public class AudioDeviceInventory {
                        state == AudioService.CONNECTION_STATE_CONNECTED
                        state == AudioService.CONNECTION_STATE_CONNECTED
                                ? MediaMetrics.Value.CONNECTED : MediaMetrics.Value.DISCONNECTED);
                                ? MediaMetrics.Value.CONNECTED : MediaMetrics.Value.DISCONNECTED);
        if (state != AudioService.CONNECTION_STATE_DISCONNECTED) {
        if (state != AudioService.CONNECTION_STATE_DISCONNECTED) {
            Log.i(TAG, "not sending NOISY: state=" + state);
            mmi.set(MediaMetrics.Property.DELAY_MS, 0).record(); // OK to return
            mmi.set(MediaMetrics.Property.DELAY_MS, 0).record(); // OK to return
            return 0;
            return 0;
        }
        }
        if (!BECOMING_NOISY_INTENT_DEVICES_SET.contains(device)) {
        if (!BECOMING_NOISY_INTENT_DEVICES_SET.contains(device)) {
            Log.i(TAG, "not sending NOISY: device=0x" + Integer.toHexString(device)
                    + " not in set " + BECOMING_NOISY_INTENT_DEVICES_SET);
            mmi.set(MediaMetrics.Property.DELAY_MS, 0).record(); // OK to return
            mmi.set(MediaMetrics.Property.DELAY_MS, 0).record(); // OK to return
            return 0;
            return 0;
        }
        }
@@ -1217,18 +1223,24 @@ public class AudioDeviceInventory {
            if (((di.mDeviceType & AudioSystem.DEVICE_BIT_IN) == 0)
            if (((di.mDeviceType & AudioSystem.DEVICE_BIT_IN) == 0)
                    && BECOMING_NOISY_INTENT_DEVICES_SET.contains(di.mDeviceType)) {
                    && BECOMING_NOISY_INTENT_DEVICES_SET.contains(di.mDeviceType)) {
                devices.add(di.mDeviceType);
                devices.add(di.mDeviceType);
                Log.i(TAG, "NOISY: adding 0x" + Integer.toHexString(di.mDeviceType));
            }
            }
        }
        }
        if (musicDevice == AudioSystem.DEVICE_NONE) {
        if (musicDevice == AudioSystem.DEVICE_NONE) {
            musicDevice = mDeviceBroker.getDeviceForStream(AudioSystem.STREAM_MUSIC);
            musicDevice = mDeviceBroker.getDeviceForStream(AudioSystem.STREAM_MUSIC);
            Log.i(TAG, "NOISY: musicDevice changing from NONE to 0x"
                    + Integer.toHexString(musicDevice));
        }
        }


        // always ignore condition on device being actually used for music when in communication
        // always ignore condition on device being actually used for music when in communication
        // because music routing is altered in this case.
        // because music routing is altered in this case.
        // also checks whether media routing if affected by a dynamic policy or mirroring
        // also checks whether media routing if affected by a dynamic policy or mirroring
        if (((device == musicDevice) || mDeviceBroker.isInCommunication())
        final boolean inCommunication = mDeviceBroker.isInCommunication();
                && AudioSystem.isSingleAudioDeviceType(devices, device)
        final boolean singleAudioDeviceType = AudioSystem.isSingleAudioDeviceType(devices, device);
                && !mDeviceBroker.hasMediaDynamicPolicy()
        final boolean hasMediaDynamicPolicy = mDeviceBroker.hasMediaDynamicPolicy();
        if (((device == musicDevice) || inCommunication)
                && singleAudioDeviceType
                && !hasMediaDynamicPolicy
                && (musicDevice != AudioSystem.DEVICE_OUT_REMOTE_SUBMIX)) {
                && (musicDevice != AudioSystem.DEVICE_OUT_REMOTE_SUBMIX)) {
            if (!mAudioSystem.isStreamActive(AudioSystem.STREAM_MUSIC, 0 /*not looking in past*/)
            if (!mAudioSystem.isStreamActive(AudioSystem.STREAM_MUSIC, 0 /*not looking in past*/)
                    && !mDeviceBroker.hasAudioFocusUsers()) {
                    && !mDeviceBroker.hasAudioFocusUsers()) {
@@ -1241,6 +1253,12 @@ public class AudioDeviceInventory {
            }
            }
            mDeviceBroker.postBroadcastBecomingNoisy();
            mDeviceBroker.postBroadcastBecomingNoisy();
            delay = AudioService.BECOMING_NOISY_DELAY_MS;
            delay = AudioService.BECOMING_NOISY_DELAY_MS;
        } else {
            Log.i(TAG, "not sending NOISY: device:0x" + Integer.toHexString(device)
                    + " musicDevice:0x" + Integer.toHexString(musicDevice)
                    + " inComm:" + inCommunication
                    + " mediaPolicy:" + hasMediaDynamicPolicy
                    + " singleDevice:" + singleAudioDeviceType);
        }
        }


        mmi.set(MediaMetrics.Property.DELAY_MS, delay).record();
        mmi.set(MediaMetrics.Property.DELAY_MS, delay).record();