private ModuleTargeting getModuleTargeting() { return getAndroidManifest() .getManifestDeliveryElement() .map(ManifestDeliveryElement::getModuleConditions) .map(ModuleConditions::toTargeting) .orElse(ModuleTargeting.getDefaultInstance()); }
public ModuleTargeting toTargeting() { ModuleTargeting.Builder moduleTargeting = ModuleTargeting.newBuilder(); for (DeviceFeatureCondition condition : getDeviceFeatureConditions()) { DeviceFeature.Builder feature = DeviceFeature.newBuilder().setFeatureName(condition.getFeatureName()); condition.getFeatureVersion().ifPresent(feature::setFeatureVersion); moduleTargeting.addDeviceFeatureTargeting( DeviceFeatureTargeting.newBuilder().setRequiredFeature(feature)); } if (getMinSdkVersion().isPresent()) { moduleTargeting.setSdkVersionTargeting( sdkVersionTargeting(sdkVersionFrom(getMinSdkVersion().get()))); } if (getUserCountriesCondition().isPresent()) { UserCountriesCondition condition = getUserCountriesCondition().get(); moduleTargeting.setUserCountriesTargeting( UserCountriesTargeting.newBuilder() .addAllCountryCodes(condition.getCountries()) .setExclude(condition.getExclude()) .build()); } return moduleTargeting.build(); }
@Override protected ImmutableList<DeviceFeatureTargeting> getTargetingValue( ModuleTargeting moduleTargeting) { return ImmutableList.copyOf(moduleTargeting.getDeviceFeatureTargetingList()); }
public boolean isEmpty() { return toTargeting().equals(ModuleTargeting.getDefaultInstance()); }
@Override protected SdkVersionTargeting getTargetingValue(ModuleTargeting moduleTargeting) { return moduleTargeting.getSdkVersionTargeting(); }
public static ModuleTargeting moduleFeatureTargeting(String featureName) { return ModuleTargeting.newBuilder() .addDeviceFeatureTargeting(deviceFeatureTargeting(featureName)) .build(); }
@Test public void matchesModuleTargeting_noConditions() { DeviceSpec deviceSpec = mergeSpecs(deviceWithSdk(22), deviceFeatures("feature1")); ModuleMatcher moduleMatcher = new ModuleMatcher(deviceSpec); assertThat(moduleMatcher.matchesModuleTargeting(ModuleTargeting.getDefaultInstance())).isTrue(); }
public static ModuleTargeting moduleMinSdkVersionTargeting(int minSdkVersion) { return ModuleTargeting.newBuilder() .setSdkVersionTargeting(sdkVersionTargeting(sdkVersionFrom(minSdkVersion))) .build(); }
public static ModuleTargeting moduleCountriesTargeting(boolean exclude, String... countries) { return ModuleTargeting.newBuilder() .setUserCountriesTargeting( UserCountriesTargeting.newBuilder() .addAllCountryCodes(Arrays.asList(countries)) .setExclude(exclude)) .build(); }
public static ModuleTargeting moduleFeatureTargeting(String featureName, int featureVersion) { return ModuleTargeting.newBuilder() .addDeviceFeatureTargeting(deviceFeatureTargeting(featureName, featureVersion)) .build(); }