.setScreenDensityTargeting( ScreenDensityTargeting.newBuilder() .addValue(toScreenDensity(density)) .addAllAlternatives( allBut(densityBuckets, density).stream() .map(ScreenDensityResourcesSplitter::toScreenDensity)
public static ScreenDensityTargeting screenDensityTargeting( ImmutableSet<DensityAlias> densities, Set<DensityAlias> alternativeDensities) { return ScreenDensityTargeting.newBuilder() .addAllValue( densities.stream().map(TargetingUtils::toScreenDensity).collect(toImmutableList())) .addAllAlternatives( alternativeDensities .stream() .map(TargetingUtils::toScreenDensity) .collect(toImmutableList())) .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<ScreenDensity> alternatives) { targetingBuilder .getScreenDensityTargetingBuilder() .clearAlternatives() .addAllAlternatives(alternatives); } }
private static ScreenDensityTargeting mergeDensityTargetingsOf( ApkTargeting targeting1, ApkTargeting targeting2) { Set<ScreenDensity> universe = Sets.union(densityUniverse(targeting1), densityUniverse(targeting2)); Set<ScreenDensity> values = Sets.union(densityValues(targeting1), densityValues(targeting2)); return ScreenDensityTargeting.newBuilder() .addAllValue(values) .addAllAlternatives(Sets.difference(universe, values)) .build(); }
public static VariantTargeting variantDensityTargeting( ScreenDensity value, ImmutableSet<ScreenDensity> alternatives) { return VariantTargeting.newBuilder() .setScreenDensityTargeting( ScreenDensityTargeting.newBuilder().addValue(value).addAllAlternatives(alternatives)) .build(); }
public static ScreenDensityTargeting screenDensityTargeting( int densityDpiValue, ImmutableSet<DensityAlias> alternativeDensities) { return ScreenDensityTargeting.newBuilder() .addValue(toScreenDensity(densityDpiValue)) .addAllAlternatives( alternativeDensities .stream() .map(TargetingUtils::toScreenDensity) .collect(toImmutableList())) .build(); }