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

Commit e065c7fd authored by Mikhail Naganov's avatar Mikhail Naganov
Browse files

audio: Allow built-in strategies to omit the 'id' attribute

For built-in strategies, the 'id' can be set from the name.
This corrects the behavior introduced by aosp/3016651 which
requires product strategies to have the 'id' field, however
restricting it to the IDs from the vendor pool only.

Bug: 385268928
Test: atest VtsHalAudioCoreTargetTest
Change-Id: I3262b626bdbc2b3552695193aaaaa657befec06d
parent b7ba9a5d
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -179,8 +179,13 @@ ConversionResult<AudioHalProductStrategy> EngineConfigXmlConverter::convertProdu
        const eng_xsd::ProductStrategies::ProductStrategy& xsdcProductStrategy) {
    AudioHalProductStrategy aidlProductStrategy;

    if (xsdcProductStrategy.hasId()) {
        aidlProductStrategy.id =
                VALUE_OR_FATAL(convertProductStrategyIdToAidl(xsdcProductStrategy.getId()));
    } else {
        aidlProductStrategy.id =
                VALUE_OR_FATAL(convertProductStrategyNameToAidl(xsdcProductStrategy.getName()));
    }
    aidlProductStrategy.name = xsdcProductStrategy.getName();

    if (xsdcProductStrategy.hasAttributesGroup()) {
+2 −1
Original line number Diff line number Diff line
@@ -105,7 +105,8 @@
                        <xs:element name="AttributesGroup" type="AttributesGroup" minOccurs="1" maxOccurs="unbounded"/>
                    </xs:sequence>
                    <xs:attribute name="name" type="xs:string" use="required"/>
                    <xs:attribute name="id" type="xs:int" use="required"/>
                    <!-- Only needs to be specified for vendor strategies. -->
                    <xs:attribute name="id" type="xs:int" use="optional"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
+1 −1
Original line number Diff line number Diff line
@@ -105,7 +105,7 @@
                        <xs:element name="AttributesGroup" type="AttributesGroup" minOccurs="1" maxOccurs="unbounded"/>
                    </xs:sequence>
                    <xs:attribute name="name" type="xs:string" use="required"/>
                    <xs:attribute name="id" type="xs:int" use="required"/>
                    <xs:attribute name="id" type="xs:int" use="optional"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>