/** * Checks to see if the build target associated with the provided target * corresponds to an Amazon build target. * * @param context the context used for analyzing the AndroidManifest.xml * @return true if compileSdkVersion is set to an Amazon build target, otherwise false. */ private static boolean isAmznBuildTarget(@NonNull XmlContext context) { Project project = context.getProject(); if (project.isGradleProject()) { AndroidProject ap = project.getGradleProjectModel(); if (ap != null) { String targetHash = ap.getCompileTarget(); if (targetHash != null) { int index = targetHash.indexOf(':'); if (index != -1 && targetHash.substring(0,index).equals(AMZN_SDK_VENDOR_NAME)) { return true; } } } } return false; } /** AMAZON_EDIT_END */
private static boolean isModelOlderThan011(@NonNull Context context) { return LintUtils.isModelOlderThan(context.getProject().getGradleProjectModel(), 0, 11, 0); }
@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 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 private static String computeResourcePrefix(@NonNull Project project) { if (project.isGradleProject()) { return LintUtils.computeResourcePrefix(project.getGradleProjectModel()); } return null; }
@Nullable private static String computeResourcePrefix(@NonNull Project project) { if (project.isGradleProject()) { return LintUtils.computeResourcePrefix(project.getGradleProjectModel()); } return null; }
/** Returns true iff the given manifest file is the main manifest file */ private static boolean isMainManifest(XmlContext context, File manifestFile) { if (!context.getProject().isGradleProject()) { // In non-gradle projects, just one manifest per project return true; } AndroidProject model = context.getProject().getGradleProjectModel(); return model == null || manifestFile .equals(model.getDefaultConfig().getSourceProvider().getManifestFile()); }
context.report(ISSUE, element, context.getLocation(element), message); } else if ("group".equals(tag)) { AndroidProject model = context.getMainProject().getGradleProjectModel(); if (model != null && model.getModelVersion().startsWith("1.4.")) { String message = "Update Gradle plugin version to 1.5+ to correctly handle "
/** Returns true iff the given manifest file is the main manifest file */ private static boolean isMainManifest(XmlContext context, File manifestFile) { if (!context.getProject().isGradleProject()) { // In non-gradle projects, just one manifest per project return true; } AndroidProject model = context.getProject().getGradleProjectModel(); return model == null || manifestFile .equals(model.getDefaultConfig().getSourceProvider().getManifestFile()); }
/** * If this is a Gradle project with a valid Gradle model, return the version * of the model/plugin. * * @return the Gradle plugin version, or null if invalid or not a Gradle project */ @Nullable public GradleVersion getGradleModelVersion() { if (gradleVersion == null && isGradleProject()) { AndroidProject gradleProjectModel = getGradleProjectModel(); if (gradleProjectModel != null) { gradleVersion = GradleVersion.tryParse(gradleProjectModel.getModelVersion()); } } return gradleVersion; }
@SuppressWarnings("SpellCheckingInspection") private static boolean isMinifying(@NonNull JavaContext context) { Project project = context.getMainProject(); if (!project.isGradleProject()) { // Not a Gradle project: assume project may be using ProGuard/other shrinking return true; } AndroidProject model = project.getGradleProjectModel(); if (model != null) { for (BuildTypeContainer buildTypeContainer : model.getBuildTypes()) { if (buildTypeContainer.getBuildType().isMinifyEnabled()) { return true; } } } else { // No model? Err on the side of caution. return true; } return false; } }
AndroidProject gradleProjectModel = project.getGradleProjectModel(); if (gradleProjectModel != null) { LintOptions lintOptions = gradleProjectModel.getLintOptions();
AndroidProject model = context.getProject().getGradleProjectModel(); if (model != null) { String javaSource = context.file.getPath();
@NonNull XmlContext context, @NonNull File manifestFile) { AndroidProject model = context.getProject().getGradleProjectModel(); if (model != null) {
@NonNull XmlContext context, @NonNull File manifestFile) { AndroidProject model = context.getProject().getGradleProjectModel(); if (model != 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; }
@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); } } } }
if (context.getProject().isGradleProject() && !isFramework) { Project project = context.getProject(); if (project.getGradleProjectModel() != null && project.getCurrentVariant() != null) { if (isPrivate(context, resourceType, name)) {