/** Extracts screen density alternatives from the targeting. */ public static ImmutableSet<ScreenDensity> densityAlternatives(ApkTargeting targeting) { return ImmutableSet.copyOf(targeting.getScreenDensityTargeting().getAlternativesList()); }
/** Extracts screen density values from the targeting. */ public static ImmutableSet<ScreenDensity> densityValues(ApkTargeting targeting) { return ImmutableSet.copyOf(targeting.getScreenDensityTargeting().getValueList()); }
.getScreenDensityTargeting() .getValueList() .forEach(
shard.getApkTargeting().getScreenDensityTargeting().getValue(0).getDensityAlias(); switch (density) { case LDPI:
shard .getApkTargeting() .getScreenDensityTargeting() .getValueList() .get(0)
switch (densitySplit .getApkTargeting() .getScreenDensityTargeting() .getValue(0) .getDensityAlias()) {
switch (densitySplit .getApkTargeting() .getScreenDensityTargeting() .getValue(0) .getDensityAlias()) {
assertThat(fatShard.getApkTargeting().getAbiTargeting()) .isEqualTo(abiTargeting(X86, ImmutableSet.of(ARMEABI))); assertThat(fatShard.getApkTargeting().getScreenDensityTargeting().getValueList()) .containsExactly(toScreenDensity(DensityAlias.MDPI)); assertThat(fatShard.getVariantTargeting()).isEqualToDefaultInstance();
.getScreenDensityTargeting() .getValueList() .contains(toScreenDensity(DensityAlias.MDPI))) {
assertThat(fatShard.getApkTargeting().getScreenDensityTargeting().getValueList()) .containsExactly(toScreenDensity(DensityAlias.MDPI)); assertThat(fatShard.getVariantTargeting()).isEqualToDefaultInstance();
ModuleSplit moduleSplit = moduleSplits.get(0); assertThat(moduleSplit.getApkTargeting().getAbiTargeting()).isEqualTo(abiTargeting(X86)); assertThat(moduleSplit.getApkTargeting().getScreenDensityTargeting().getValueList()) .containsExactly(toScreenDensity(DensityAlias.MDPI)); assertThat(moduleSplits.stream().map(ModuleSplit::getSplitType).collect(toImmutableSet()))
private static VariantTargeting standaloneApkVariantTargeting(ModuleSplit standaloneApk) { ApkTargeting apkTargeting = standaloneApk.getApkTargeting(); VariantTargeting.Builder variantTargeting = VariantTargeting.newBuilder(); if (apkTargeting.hasAbiTargeting()) { variantTargeting.setAbiTargeting(apkTargeting.getAbiTargeting()); } if (apkTargeting.hasScreenDensityTargeting()) { variantTargeting.setScreenDensityTargeting(apkTargeting.getScreenDensityTargeting()); } if (apkTargeting.hasMultiAbiTargeting()) { variantTargeting.setMultiAbiTargeting(apkTargeting.getMultiAbiTargeting()); } variantTargeting.setSdkVersionTargeting(sdkVersionTargeting(standaloneApk)); return variantTargeting.build(); }
@Override protected ScreenDensityTargeting getTargetingValue(ApkTargeting apkTargeting) { return apkTargeting.getScreenDensityTargeting(); }
private static ModuleSplit findModuleSplitWithScreenDensityTargeting( ImmutableCollection<ModuleSplit> moduleSplits, ScreenDensity density) { return moduleSplits.stream() .filter( split -> split.getApkTargeting().getScreenDensityTargeting().getValueCount() > 0 && density.equals( split.getApkTargeting().getScreenDensityTargeting().getValue(0))) .collect(onlyElement()); }