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

Commit 36d8cd18 authored by Eric Laurent's avatar Eric Laurent Committed by Android (Google) Code Review
Browse files

Merge "AudioService: fix device spatial audio state persistence" into main

parents 5dc2d8e4 edc200db
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -2820,6 +2820,10 @@ public class AudioDeviceBroker {
        return mDeviceInventory.isBluetoothAudioDeviceCategoryFixed(address);
    }

    /*package*/ boolean isSADevice(AdiDeviceState deviceState) {
        return mAudioService.isSADevice(deviceState);
    }

    //------------------------------------------------
    // for testing purposes only
    void clearDeviceInventory() {
+17 −10
Original line number Diff line number Diff line
@@ -307,9 +307,12 @@ public class AudioDeviceInventory {
                            && di.mPeerDeviceAddress.equals(ads2.getDeviceAddress()))) {
                        continue;
                    }
                    if (mDeviceBroker.isSADevice(updatedDevice)
                            == mDeviceBroker.isSADevice(ads2)) {
                        ads2.setHasHeadTracker(updatedDevice.hasHeadTracker());
                        ads2.setHeadTrackerEnabled(updatedDevice.isHeadTrackerEnabled());
                        ads2.setSAEnabled(updatedDevice.isSAEnabled());
                    }
                    ads2.setAudioDeviceCategory(updatedDevice.getAudioDeviceCategory());

                    mDeviceBroker.postUpdatedAdiDeviceState(ads2);
@@ -325,9 +328,12 @@ public class AudioDeviceInventory {
                            && di.mDeviceAddress.equals(ads2.getDeviceAddress()))) {
                        continue;
                    }
                    if (mDeviceBroker.isSADevice(updatedDevice)
                            == mDeviceBroker.isSADevice(ads2)) {
                        ads2.setHasHeadTracker(updatedDevice.hasHeadTracker());
                        ads2.setHeadTrackerEnabled(updatedDevice.isHeadTrackerEnabled());
                        ads2.setSAEnabled(updatedDevice.isSAEnabled());
                    }
                    ads2.setAudioDeviceCategory(updatedDevice.getAudioDeviceCategory());

                    mDeviceBroker.postUpdatedAdiDeviceState(ads2);
@@ -348,10 +354,11 @@ public class AudioDeviceInventory {
                    || !updatedDevice.getDeviceAddress().equals(ads.getDeviceAddress())) {
                continue;
            }

            if (mDeviceBroker.isSADevice(updatedDevice) == mDeviceBroker.isSADevice(ads)) {
                ads.setHasHeadTracker(updatedDevice.hasHeadTracker());
                ads.setHeadTrackerEnabled(updatedDevice.isHeadTrackerEnabled());
                ads.setSAEnabled(updatedDevice.isSAEnabled());
            }
            ads.setAudioDeviceCategory(updatedDevice.getAudioDeviceCategory());

            mDeviceBroker.postUpdatedAdiDeviceState(ads);
+5 −1
Original line number Diff line number Diff line
@@ -7855,7 +7855,7 @@ public class AudioService extends IAudioService.Stub
        sDeviceLogger.enqueue(new EventLogger.StringEvent("BlutoothActiveDeviceChanged for "
                + BluetoothProfile.getProfileName(profile) + ", device update " + previousDevice
                + " -> " + newDevice));
                + " -> " + newDevice).printLog(TAG));
        AudioDeviceBroker.BtDeviceChangedData data =
                new AudioDeviceBroker.BtDeviceChangedData(newDevice, previousDevice, info,
                        "AudioService");
@@ -10638,6 +10638,10 @@ public class AudioService extends IAudioService.Stub
        mSpatializerHelper.setFeatureEnabled(mHasSpatializerEffect);
    }
    /*package*/ boolean isSADevice(AdiDeviceState deviceState) {
        return mSpatializerHelper.isSADevice(deviceState);
    }
    private boolean isBluetoothPrividged() {
        if (!bluetoothMacAddressAnonymization()) {
            return true;
+1 −1
Original line number Diff line number Diff line
@@ -813,7 +813,7 @@ public class SpatializerHelper {
        return false;
    }

    private boolean isSADevice(AdiDeviceState deviceState) {
    /*package*/ boolean isSADevice(AdiDeviceState deviceState) {
        return deviceState.getDeviceType() == getCanonicalDeviceType(deviceState.getDeviceType(),
                deviceState.getInternalDeviceType()) && isDeviceCompatibleWithSpatializationModes(
                deviceState.getAudioDeviceAttributes());