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

Commit 115b9b11 authored by Jean-Michel Trivi's avatar Jean-Michel Trivi Committed by Automerger Merge Worker
Browse files

Merge "AudioService: setDeviceVolume no-op when for current device" into udc-dev am: 645d0899

parents 899d7410 645d0899
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -3989,8 +3989,15 @@ public class AudioService extends IAudioService.Stub
        // VOLUME_CHANGED_ACTION intent to see if the current device is the one being modified
        final int currDev = getDeviceForStream(vi.getStreamType());
        final boolean skipping = (currDev == ada.getInternalType());
        AudioService.sVolumeLogger.enqueue(new DeviceVolumeEvent(vi.getStreamType(), index, ada,
                currDev, callingPackage));
                currDev, callingPackage, skipping));
        if (skipping) {
            // setDeviceVolume was called on a device currently being used
            return;
        }
        // TODO handle unmuting of current audio device
        // if a stream is not muted but the VolumeInfo is for muting, set the volume index
+11 −5
Original line number Diff line number Diff line
@@ -175,15 +175,17 @@ public class AudioServiceEvents {
        final String mDeviceAddress;
        final String mCaller;
        final int mDeviceForStream;
        final boolean mSkipped;

        DeviceVolumeEvent(int streamType, int index, @NonNull AudioDeviceAttributes device,
                int deviceForStream, String callingPackage) {
                int deviceForStream, String callingPackage, boolean skipped) {
            mStream = streamType;
            mVolIndex = index;
            mDeviceNativeType = "0x" + Integer.toHexString(device.getInternalType());
            mDeviceAddress = device.getAddress();
            mDeviceForStream = deviceForStream;
            mCaller = callingPackage;
            mSkipped = skipped;
            // log metrics
            new MediaMetrics.Item(MediaMetrics.Name.AUDIO_VOLUME_EVENT)
                    .set(MediaMetrics.Property.EVENT, "setDeviceVolume")
@@ -198,14 +200,18 @@ public class AudioServiceEvents {

        @Override
        public String eventToString() {
            return new StringBuilder("setDeviceVolume(stream:")
            final StringBuilder sb = new StringBuilder("setDeviceVolume(stream:")
                    .append(AudioSystem.streamToString(mStream))
                    .append(" index:").append(mVolIndex)
                    .append(" device:").append(mDeviceNativeType)
                    .append(" addr:").append(mDeviceAddress)
                    .append(") from ").append(mCaller)
                    .append(" currDevForStream:Ox").append(Integer.toHexString(mDeviceForStream))
                    .toString();
                    .append(") from ").append(mCaller);
            if (mSkipped) {
                sb.append(" skipped [device in use]");
            } else {
                sb.append(" currDevForStream:Ox").append(Integer.toHexString(mDeviceForStream));
            }
            return sb.toString();
        }
    }