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

Commit 178683ba authored by Jean-Michel Trivi's avatar Jean-Michel Trivi
Browse files

APM: invert priority of sonification and enforced routing strategies

On device where the SONIFICATION (alarm, ringtone) strategy is
  supported by SPEAKER_SAFE, prevent switching output devices
  when the ENFORCED_AUDIBLE (shutter sound) strategy starts
  by having SONIFICATION at a higher priority than
  ENFORCED_AUDIBLE.

Test: take photos while phone rings
Bug: 64386853
Change-Id: I2f7bb45599bd51b2142611eefb84789a985e8841
parent aba0e98b
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -4721,10 +4721,10 @@ audio_devices_t AudioPolicyManager::getNewOutputDevice(const sp<AudioOutputDescr
    //      use device for strategy enforced audible
    // 2: we are in call or the strategy phone is active on the output:
    //      use device for strategy phone
    // 3: the strategy for enforced audible is active but not enforced on the output:
    //      use the device for strategy enforced audible
    // 4: the strategy sonification is active on the output:
    // 3: the strategy sonification is active on the output:
    //      use device for strategy sonification
    // 4: the strategy for enforced audible is active but not enforced on the output:
    //      use the device for strategy enforced audible
    // 5: the strategy accessibility is active on the output:
    //      use device for strategy accessibility
    // 6: the strategy "respectful" sonification is active on the output:
@@ -4741,10 +4741,10 @@ audio_devices_t AudioPolicyManager::getNewOutputDevice(const sp<AudioOutputDescr
    } else if (isInCall() ||
                    isStrategyActive(outputDesc, STRATEGY_PHONE)) {
        device = getDeviceForStrategy(STRATEGY_PHONE, fromCache);
    } else if (isStrategyActive(outputDesc, STRATEGY_ENFORCED_AUDIBLE)) {
        device = getDeviceForStrategy(STRATEGY_ENFORCED_AUDIBLE, fromCache);
    } else if (isStrategyActive(outputDesc, STRATEGY_SONIFICATION)) {
        device = getDeviceForStrategy(STRATEGY_SONIFICATION, fromCache);
    } else if (isStrategyActive(outputDesc, STRATEGY_ENFORCED_AUDIBLE)) {
        device = getDeviceForStrategy(STRATEGY_ENFORCED_AUDIBLE, fromCache);
    } else if (isStrategyActive(outputDesc, STRATEGY_ACCESSIBILITY)) {
        device = getDeviceForStrategy(STRATEGY_ACCESSIBILITY, fromCache);
    } else if (isStrategyActive(outputDesc, STRATEGY_SONIFICATION_RESPECTFUL)) {