@Nullable private static String resolvePlaceHolder(@NonNull XmlContext context, @NonNull String hostname) { assert hostname.startsWith(SdkConstants.MANIFEST_PLACEHOLDER_PREFIX); Variant variant = context.getProject().getCurrentVariant(); if (variant != null) { Map<String, Object> placeHolders = variant.getMergedFlavor().getManifestPlaceholders(); String name = hostname.substring(MANIFEST_PLACEHOLDER_PREFIX.length(), hostname.length() - MANIFEST_PLACEHOLDER_SUFFIX.length()); Object value = placeHolders.get(name); if (value instanceof String) { return value.toString(); } } return null; }
@Nullable private static List<String> getResConfigLanguages(@NonNull Project project) { if (project.isGradleProject() && project.getGradleProjectModel() != null && project.getCurrentVariant() != null) { Set<String> relevantDensities = Sets.newHashSet(); Variant variant = project.getCurrentVariant(); List<String> variantFlavors = variant.getProductFlavors(); AndroidProject gradleProjectModel = project.getGradleProjectModel(); addResConfigsFromFlavor(relevantDensities, null, project.getGradleProjectModel().getDefaultConfig()); for (ProductFlavorContainer container : gradleProjectModel.getProductFlavors()) { addResConfigsFromFlavor(relevantDensities, variantFlavors, container); } if (!relevantDensities.isEmpty()) { ArrayList<String> strings = Lists.newArrayList(relevantDensities); Collections.sort(strings); return strings; } } return null; }
private static boolean usingSupportLibVectors(@NonNull Project project) { GradleVersion version = project.getGradleModelVersion(); if (version == null || version.getMajor() < 2) { return false; } Variant currentVariant = project.getCurrentVariant(); return currentVariant != null && Boolean.TRUE.equals( currentVariant.getMergedFlavor().getVectorDrawables().getUseSupportLibrary()); }
@Nullable private static List<String> getResConfigLanguages(@NonNull Project project) { if (project.isGradleProject() && project.getGradleProjectModel() != null && project.getCurrentVariant() != null) { Set<String> relevantDensities = Sets.newHashSet(); Variant variant = project.getCurrentVariant(); List<String> variantFlavors = variant.getProductFlavors(); AndroidProject gradleProjectModel = project.getGradleProjectModel(); addResConfigsFromFlavor(relevantDensities, null, project.getGradleProjectModel().getDefaultConfig()); for (ProductFlavorContainer container : gradleProjectModel.getProductFlavors()) { addResConfigsFromFlavor(relevantDensities, variantFlavors, container); } if (!relevantDensities.isEmpty()) { ArrayList<String> strings = Lists.newArrayList(relevantDensities); Collections.sort(strings); return strings; } } return null; }
@Nullable public static Dependencies getCompileDependencies(@NonNull Project project) { if (!project.isGradleProject()) { return null; } Variant variant = project.getCurrentVariant(); if (variant == null) { return null; } AndroidArtifact artifact = variant.getMainArtifact(); return artifact.getDependencies(); } }
@Nullable @Override public Dependencies getDependencies() { Project project = context.getProject(); if (project.isAndroidProject()) { Variant variant = project.getCurrentVariant(); if (variant != null) { return variant.getMainArtifact().getDependencies(); } } return null; }
final Variant variant = project.getCurrentVariant(); if (variant != null) { Collection<AndroidLibrary> libraries = variant.getMainArtifact()
@Override public void visitElement(@NonNull XmlContext context, @NonNull Element layout) { Variant variant = context.getMainProject().getCurrentVariant(); GradleCoordinate latestAvailable = null;
getCurrentVariant() != null) { Set<String> relevantDensities = Sets.newHashSet(); Variant variant = getCurrentVariant(); List<String> variantFlavors = variant.getProductFlavors(); AndroidProject gradleProjectModel = getGradleProjectModel();
Attr attribute = element.getAttributeNodeNS(ANDROID_URI, attributeName); if (project.isGradleProject() && attribute != null && context.isEnabled(GRADLE_OVERRIDES)) { Variant variant = project.getCurrentVariant(); if (variant != null) { ProductFlavor flavor = variant.getMergedFlavor();
Attr attribute = element.getAttributeNodeNS(ANDROID_URI, attributeName); if (project.isGradleProject() && attribute != null && context.isEnabled(GRADLE_OVERRIDES)) { Variant variant = project.getCurrentVariant(); if (variant != null) { ProductFlavor flavor = variant.getMergedFlavor();
for (Project project : projects) { if (project.isGradleProject()) { Variant variant = project.getCurrentVariant(); AndroidProject model = project.getGradleProjectModel(); if (model != null && variant != null) {
@Nullable private static GradleCoordinate resolveCoordinate(@NonNull Context context, @NonNull GradleCoordinate gc) { assert gc.getFullRevision().contains("$") : gc.getFullRevision(); Variant variant = context.getProject().getCurrentVariant(); if (variant != null) { Dependencies dependencies = variant.getMainArtifact().getDependencies(); for (AndroidLibrary library : dependencies.getLibraries()) { MavenCoordinates mc = library.getResolvedCoordinates(); if (mc != null && mc.getGroupId().equals(gc.getGroupId()) && mc.getArtifactId().equals(gc.getArtifactId())) { List<RevisionComponent> revisions = GradleCoordinate.parseRevisionNumber(mc.getVersion()); if (!revisions.isEmpty()) { return new GradleCoordinate(mc.getGroupId(), mc.getArtifactId(), revisions, null); } break; } } } return null; }
@Nullable private static GradleCoordinate resolveCoordinate(@NonNull Context context, @NonNull GradleCoordinate gc) { assert gc.getRevision().contains("$") : gc.getRevision(); Project project = context.getProject(); Variant variant = project.getCurrentVariant(); if (variant != null) { Dependencies dependencies = variant.getMainArtifact().getDependencies(); for (AndroidLibrary library : dependencies.getLibraries()) { MavenCoordinates mc = library.getResolvedCoordinates(); // Even though the method is annotated as non-null, this code can run // after a failed sync and there are observed scenarios where it returns // null in that ase //noinspection ConstantConditions if (mc != null && mc.getGroupId().equals(gc.getGroupId()) && mc.getArtifactId().equals(gc.getArtifactId())) { List<RevisionComponent> revisions = GradleCoordinate.parseRevisionNumber(mc.getVersion()); if (!revisions.isEmpty()) { return new GradleCoordinate(mc.getGroupId(), mc.getArtifactId(), revisions, null); } break; } } } return null; }
private void addDynamicResources( @NonNull Context context) { Project project = context.getProject(); AndroidProject model = project.getGradleProjectModel(); if (model != null) { Variant selectedVariant = project.getCurrentVariant(); if (selectedVariant != null) { for (BuildTypeContainer container : model.getBuildTypes()) { if (selectedVariant.getBuildType().equals(container.getBuildType().getName())) { addDynamicResources(project, container.getBuildType().getResValues()); } } } ProductFlavor flavor = model.getDefaultConfig().getProductFlavor(); addDynamicResources(project, flavor.getResValues()); } }
@Override public void beforeCheckProject(@NonNull Context context) { AndroidProject model = context.getProject().getGradleProjectModel(); if (model == null) { mSkipChecks = true; return; } if (context.getProject().getMinSdk() >= 21) { mSkipChecks = true; return; } GradleVersion version = context.getProject().getGradleModelVersion(); if (version == null || version.getMajor() < 2) { mSkipChecks = true; return; } Variant currentVariant = context.getProject().getCurrentVariant(); if (currentVariant == null) { mSkipChecks = true; return; } if (Boolean.TRUE.equals( currentVariant.getMergedFlavor().getVectorDrawables().getUseSupportLibrary())) { mUseSupportLibrary = true; } }
/** * Returns a shared {@link ResourceVisibilityLookup} * * @return a shared provider for looking up resource visibility */ @NonNull public ResourceVisibilityLookup getResourceVisibility() { if (resourceVisibility == null) { if (isGradleProject()) { AndroidProject project = getGradleProjectModel(); Variant variant = getCurrentVariant(); if (project != null && variant != null) { resourceVisibility = client.getResourceVisibilityProvider().get(project, variant); } else if (getGradleLibraryModel() != null) { try { resourceVisibility = client.getResourceVisibilityProvider() .get(getGradleLibraryModel()); } catch (Exception ignore) { // Handle talking to older Gradle plugins (where we don't // have access to the model version to check up front } } } if (resourceVisibility == null) { resourceVisibility = ResourceVisibilityLookup.NONE; } } return resourceVisibility; }
Project project = context.getProject(); AndroidProject model = project.getGradleProjectModel(); Variant variant = project.getCurrentVariant(); if (model != null && variant != null) { task.mockModifier.modify(model, variant);
if (context.getProject().isGradleProject() && !isFramework) { Project project = context.getProject(); if (project.getGradleProjectModel() != null && project.getCurrentVariant() != null) { if (isPrivate(context, resourceType, name)) {
@Override public void visitResourceReference( @NonNull JavaContext context, @Nullable AstVisitor visitor, @NonNull Node node, @NonNull String type, @NonNull String name, boolean isFramework) { if (context.getProject().isGradleProject() && !isFramework) { Project project = context.getProject(); if (project.getGradleProjectModel() != null && project.getCurrentVariant() != null) { ResourceType resourceType = ResourceType.getEnum(type); if (resourceType != null && isPrivate(context, resourceType, name)) { String message = createUsageErrorMessage(context, resourceType, name); context.report(ISSUE, node, context.getLocation(node), message); } } } }