@Override public boolean matchesTargeting(ScreenDensityTargeting targeting) { ImmutableList<ScreenDensity> allDensities = ImmutableList.<ScreenDensity>builder() .addAll(targeting.getValueList()) .addAll(targeting.getAlternativesList()) .build(); if (allDensities.isEmpty()) { return true; } int bestMatchingDensity = new ScreenDensitySelector() .selectBestDensity( Iterables.transform(allDensities, ResourcesUtils::convertToDpi), getDeviceSpec().getScreenDensity()); return targeting .getValueList() .stream() .map(ResourcesUtils::convertToDpi) .anyMatch(isEqual(bestMatchingDensity)); }
public static Optional<String> getScreenDensityName( ScreenDensityTargeting screenDensityTargeting) { if (screenDensityTargeting.getValueList().isEmpty()) { return Optional.empty(); } ScreenDensity screenDensity = Iterables.getOnlyElement(screenDensityTargeting.getValueList()); return Optional.of( screenDensity.getDensityOneofCase().equals(DENSITY_ALIAS) ? screenDensity.getDensityAlias().name() : Integer.toString(screenDensity.getDensityDpi())); }
public static Optional<Integer> getScreenDensityDpi( ScreenDensityTargeting screenDensityTargeting) { if (screenDensityTargeting.getValueList().isEmpty()) { return Optional.empty(); } ScreenDensity densityTargeting = screenDensityTargeting.getValueList().stream() // For now we only support one value in ScreenDensityTargeting. .collect(MoreCollectors.onlyElement()); return Optional.of( densityTargeting.getDensityOneofCase().equals(DENSITY_ALIAS) ? DENSITY_ALIAS_TO_DPI_MAP.get(densityTargeting.getDensityAlias()) : densityTargeting.getDensityDpi()); } }
.getApkTargeting() .getScreenDensityTargeting() .getValueList() .get(0) .getDensityAlias();
.getApkTargeting() .getScreenDensityTargeting() .getValueList() .contains(toScreenDensity(DensityAlias.MDPI))) { assertThat(shard.getResourceTable().get())
assertThat(fatShard.getApkTargeting().getAbiTargeting()) .isEqualTo(abiTargeting(X86, ImmutableSet.of(ARMEABI))); assertThat(fatShard.getApkTargeting().getScreenDensityTargeting().getValueList()) .containsExactly(toScreenDensity(DensityAlias.MDPI)); assertThat(fatShard.getVariantTargeting()).isEqualToDefaultInstance();
.getValueList() .forEach( value ->
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()))
@Override protected ImmutableList<ScreenDensity> getValues(VariantTargeting targeting) { return ImmutableList.copyOf(targeting.getScreenDensityTargeting().getValueList()); }
/** Extracts screen density values from the targeting. */ public static ImmutableSet<ScreenDensity> densityValues(ApkTargeting targeting) { return ImmutableSet.copyOf(targeting.getScreenDensityTargeting().getValueList()); }