public ImmutableList processProject()

in analyzer/src/main/java/com/android/tools/sizereduction/analyzer/suggesters/bundles/BundleSplitSuggester.java [138:210]


  public ImmutableList<Suggestion> processProject(GradleContext context, File projectDir) {
    ImmutableList.Builder<Suggestion> suggestions = ImmutableList.builder();
    if (context.getPluginType() != GradleContext.PluginType.APPLICATION) {
      return suggestions.build();
    }

    AndroidPluginVersion pluginVersion = context.getAndroidPluginVersion();
    if (pluginVersion != null) {
      System.out.println(pluginVersion.getMajorVersion());
      System.out.println(pluginVersion.getMinorVersion());
    }
    System.out.println(pluginVersion);
    if (pluginVersion != null
        && pluginVersion.compareTo(AndroidPluginVersion.create("3.2.0")) < 0) {
      suggestions.add(
          Suggestion.create(
              IssueType.BUNDLES_OLD_GRADLE_PLUGIN,
              Category.BUNDLE_CONFIG,
              Payload.getDefaultInstance(),
              OLD_GRADLE_PLUGIN_MESSAGE,
              /* estimatedBytesSaved= */ null,
              /* autoFix= */ null));
      return suggestions.build();
    }

    BundleConfig bundleConfig = context.getBundleConfig();
    if (!bundleConfig.getAbiSplitEnabled()) {
      suggestions.add(
          Suggestion.create(
              IssueType.BUNDLES_NO_ABI_SPLITTING,
              Category.BUNDLE_CONFIG,
              Payload.getDefaultInstance(),
              NO_ABI_SPLITTING_MESSAGE,
              /* estimatedBytesSaved= */ null,
              new BundleSplitAutoFix(
                  projectDir,
                  context.getBundleConfig().getBundleConfigLocation().getAbiSplitLineNumber())));
    }

    if (!bundleConfig.getDensitySplitEnabled()) {
      suggestions.add(
          Suggestion.create(
              IssueType.BUNDLES_NO_DENSITY_SPLITTING,
              Category.BUNDLE_CONFIG,
              Payload.getDefaultInstance(),
              NO_DISPLAY_DENSITY_SPLITTING_MESSAGE,
              /* estimatedBytesSaved= */ null,
              new BundleSplitAutoFix(
                  projectDir,
                  context
                      .getBundleConfig()
                      .getBundleConfigLocation()
                      .getDensitySplitLineNumber())));
    }

    if (!bundleConfig.getLanguageSplitEnabled()) {
      suggestions.add(
          Suggestion.create(
              IssueType.BUNDLES_NO_LANGUAGE_SPLITTING,
              Category.BUNDLE_CONFIG,
              Payload.getDefaultInstance(),
              NO_LANGUAGE_SPLITTING_MESSAGE,
              /* estimatedBytesSaved= */ null,
              new BundleSplitAutoFix(
                  projectDir,
                  context
                      .getBundleConfig()
                      .getBundleConfigLocation()
                      .getLanguageSplitLineNumber())));
    }

    return suggestions.build();
  }