.setAbiTargeting( AbiTargeting.newBuilder() .addValue(targeting.getAbi()) .addAllAlternatives( Sets.difference( abisToGenerate, ImmutableSet.of(targeting.getAbi()))))
private static AbiTargeting mergeAbiTargetingsOf( ApkTargeting targeting1, ApkTargeting targeting2) { Set<Abi> universe = Sets.union(abiUniverse(targeting1), abiUniverse(targeting2)); Set<Abi> values = Sets.union(abiValues(targeting1), abiValues(targeting2)); return AbiTargeting.newBuilder() .addAllValue(values) .addAllAlternatives(Sets.difference(universe, values)) .build(); }
/** Moves targeting values to the alternatives. */ public static AssetsDirectoryTargeting toAlternativeTargeting( AssetsDirectoryTargeting targeting) { AssetsDirectoryTargeting.Builder alternativeTargeting = AssetsDirectoryTargeting.newBuilder(); if (targeting.hasTextureCompressionFormat()) { alternativeTargeting .getTextureCompressionFormatBuilder() .addAllAlternatives(targeting.getTextureCompressionFormat().getValueList()); } if (targeting.hasGraphicsApi()) { alternativeTargeting .getGraphicsApiBuilder() .addAllAlternatives(targeting.getGraphicsApi().getValueList()); } if (targeting.hasAbi()) { alternativeTargeting.getAbiBuilder().addAllAlternatives(targeting.getAbi().getValueList()); } if (targeting.hasLanguage()) { alternativeTargeting .getLanguageBuilder() .addAllAlternatives(targeting.getLanguage().getValueList()); } return alternativeTargeting.build(); }
@Test public void notPossibleToTargetMultipleDimensions() { String fakeAssetPath = "testModule/assets/secret.txt"; ModuleSplit.Builder builder = ModuleSplit.builder() .setModuleName(BundleModuleName.create("testModule")) .setEntries(ImmutableList.of(InMemoryModuleEntry.ofFile(fakeAssetPath, DUMMY_CONTENT))) .setVariantTargeting(lPlusVariantTargeting()) .setApkTargeting( ApkTargeting.newBuilder() .setAbiTargeting( AbiTargeting.newBuilder().addValue(Abi.newBuilder().setAlias(AbiAlias.X86))) .setScreenDensityTargeting( ScreenDensityTargeting.newBuilder() .addValue( ScreenDensity.newBuilder().setDensityAlias(DensityAlias.HDPI))) .build()); assertThrows(IllegalStateException.class, () -> builder.build()); }
@Override protected void setDimensionAlternatives( VariantTargeting.Builder targetingBuilder, ImmutableCollection<Abi> alternatives) { targetingBuilder .getAbiTargetingBuilder() .clearAlternatives() .addAllAlternatives(alternatives); } }
public static VariantTargeting variantAbiTargeting(Abi value, ImmutableSet<Abi> alternatives) { return VariantTargeting.newBuilder() .setAbiTargeting(AbiTargeting.newBuilder().addValue(value).addAllAlternatives(alternatives)) .build(); }
public static AbiTargeting abiTargeting( ImmutableSet<AbiAlias> abiAliases, ImmutableSet<AbiAlias> alternatives) { return AbiTargeting.newBuilder() .addAllValue(abiAliases.stream().map(TargetingUtils::toAbi).collect(toImmutableList())) .addAllAlternatives( alternatives.stream().map(TargetingUtils::toAbi).collect(toImmutableList())) .build(); }