public override bool Execute() { foreach (var disabled in disabledIssues) { if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains(disabled)) { DisabledIssues = disabled + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : ""); } } Log.LogDebugMessage("Lint Task"); Log.LogDebugMessage(" TargetDirectory: {0}", TargetDirectory); Log.LogDebugMessage(" EnabledChecks: {0}", EnabledIssues); Log.LogDebugMessage(" DisabledChecks: {0}", DisabledIssues); Log.LogDebugMessage(" CheckIssues: {0}", CheckIssues); Log.LogDebugTaskItems(" ConfigFiles:", ConfigFiles); Log.LogDebugTaskItems(" ResourceDirectories:", ResourceDirectories); Log.LogDebugTaskItems(" SourceDirectories:", SourceDirectories); Log.LogDebugTaskItems(" ClassDirectories:", ClassDirectories); Log.LogDebugTaskItems(" LibraryDirectories:", LibraryDirectories); Log.LogDebugTaskItems(" LibraryJars:", LibraryJars); if (string.IsNullOrEmpty(ToolPath) || !File.Exists(GenerateFullPathToTool())) { Log.LogCodedError("XA5205", $"Cannot find `{ToolName}` in the Android SDK. Please set its path via /p:LintToolPath."); return(false); } base.Execute(); return(!Log.HasLoggedErrors); }
public override bool Execute() { // We need to hard code this test in because Lint will issue an Error // if android:debuggable appears in the manifest. We actually need that // in debug mode. It seems the android tools do some magic to // decide if its needed or not. if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains("HardcodedDebugMode")) { DisabledIssues = "HardcodedDebugMode" + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : ""); } // We need to hard code this test as disabled in because Lint will issue a warning // for all the resources not used. Now because we don't have any Java code // that means for EVERYTHING! Which will be a HUGE amount of warnings for a large project if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains("UnusedResources")) { DisabledIssues = "UnusedResources" + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : ""); } Log.LogDebugMessage("Lint Task"); Log.LogDebugMessage(" TargetDirectory: {0}", TargetDirectory); Log.LogDebugMessage(" EnabledChecks: {0}", EnabledIssues); Log.LogDebugMessage(" DisabledChecks: {0}", DisabledIssues); Log.LogDebugMessage(" CheckIssues: {0}", CheckIssues); Log.LogDebugTaskItems(" ConfigFiles:", ConfigFiles); Log.LogDebugTaskItems(" ResourceDirectories:", ResourceDirectories); Log.LogDebugTaskItems(" SourceDirectories:", SourceDirectories); Log.LogDebugTaskItems(" ClassDirectories:", ClassDirectories); Log.LogDebugTaskItems(" LibraryDirectories:", LibraryDirectories); Log.LogDebugTaskItems(" LibraryJars:", LibraryJars); base.Execute(); return(!Log.HasLoggedErrors); }
public override bool Execute() { Log.LogDebugMessage("Lint Task"); if (string.IsNullOrEmpty(ToolPath) || !File.Exists(GenerateFullPathToTool())) { Log.LogCodedError("XA5205", $"Cannot find `{ToolName}` in the Android SDK. Please set its path via /p:LintToolPath."); return(false); } Version lintToolVersion = GetLintVersion(GenerateFullPathToTool()); Log.LogDebugMessage(" LintVersion: {0}", lintToolVersion); foreach (var issue in DisabledIssuesByVersion) { if (lintToolVersion >= issue.Value) { if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains(issue.Key)) { DisabledIssues = issue.Key + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : ""); } } } Log.LogDebugMessage(" TargetDirectory: {0}", TargetDirectory); Log.LogDebugMessage(" JavaSdkPath: {0}", JavaSdkPath); Log.LogDebugMessage(" EnabledChecks: {0}", EnabledIssues); Log.LogDebugMessage(" DisabledChecks: {0}", DisabledIssues); Log.LogDebugMessage(" CheckIssues: {0}", CheckIssues); Log.LogDebugTaskItems(" ConfigFiles:", ConfigFiles); Log.LogDebugTaskItems(" ResourceDirectories:", ResourceDirectories); Log.LogDebugTaskItems(" SourceDirectories:", SourceDirectories); Log.LogDebugTaskItems(" ClassDirectories:", ClassDirectories); Log.LogDebugTaskItems(" LibraryDirectories:", LibraryDirectories); Log.LogDebugTaskItems(" LibraryJars:", LibraryJars); foreach (var issue in DisabledIssuesByVersion) { if (lintToolVersion < issue.Value) { DisabledIssues = CleanIssues(issue.Key, lintToolVersion, DisabledIssues, nameof(DisabledIssues)); EnabledIssues = CleanIssues(issue.Key, lintToolVersion, EnabledIssues, nameof(EnabledIssues)); } } EnvironmentVariables = new [] { "JAVA_HOME=" + JavaSdkPath }; base.Execute(); return(!Log.HasLoggedErrors); }
public override bool Execute() { // We need to hard code this test in because Lint will issue an Error // if android:debuggable appears in the manifest. We actually need that // in debug mode. It seems the android tools do some magic to // decide if its needed or not. if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains("HardcodedDebugMode")) { DisabledIssues = "HardcodedDebugMode" + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : ""); } // We need to hard code this test as disabled in because Lint will issue a warning // for all the resources not used. Now because we don't have any Java code // that means for EVERYTHING! Which will be a HUGE amount of warnings for a large project if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains("UnusedResources")) { DisabledIssues = "UnusedResources" + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : ""); } // We need to hard code this test as disabled in because Lint will issue a warning // for the MonoPackageManager.java since we have to use a static to keep track of the // application instance. if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains("StaticFieldLeak")) { DisabledIssues = "StaticFieldLeak" + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : ""); } Log.LogDebugMessage("Lint Task"); Log.LogDebugMessage(" TargetDirectory: {0}", TargetDirectory); Log.LogDebugMessage(" EnabledChecks: {0}", EnabledIssues); Log.LogDebugMessage(" DisabledChecks: {0}", DisabledIssues); Log.LogDebugMessage(" CheckIssues: {0}", CheckIssues); Log.LogDebugTaskItems(" ConfigFiles:", ConfigFiles); Log.LogDebugTaskItems(" ResourceDirectories:", ResourceDirectories); Log.LogDebugTaskItems(" SourceDirectories:", SourceDirectories); Log.LogDebugTaskItems(" ClassDirectories:", ClassDirectories); Log.LogDebugTaskItems(" LibraryDirectories:", LibraryDirectories); Log.LogDebugTaskItems(" LibraryJars:", LibraryJars); if (string.IsNullOrEmpty(ToolPath) || !File.Exists(GenerateFullPathToTool())) { Log.LogCodedError("XA5205", $"Cannot find `{ToolName}` in the Android SDK. Please set its path via /p:LintToolPath."); return(false); } base.Execute(); return(!Log.HasLoggedErrors); }
public override bool RunTask() { if (string.IsNullOrEmpty(ToolPath) || !File.Exists(GenerateFullPathToTool())) { Log.LogCodedError("XA5205", Properties.Resources.XA5205_Lint, ToolName); return(false); } bool fromCmdlineTools = ToolPath.IndexOf("cmdline-tools", StringComparison.OrdinalIgnoreCase) >= 0; Version lintToolVersion = GetLintVersion(GenerateFullPathToTool()); Log.LogDebugMessage(" LintVersion: {0}", lintToolVersion); foreach (var issue in DisabledIssuesByVersion) { if (fromCmdlineTools || lintToolVersion >= issue.Value) { if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains(issue.Key)) { DisabledIssues = issue.Key + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : ""); } } } foreach (var issue in DisabledIssuesByVersion) { if (!fromCmdlineTools || (lintToolVersion < issue.Value)) { DisabledIssues = CleanIssues(issue.Key, lintToolVersion, DisabledIssues, nameof(DisabledIssues)); EnabledIssues = CleanIssues(issue.Key, lintToolVersion, EnabledIssues, nameof(EnabledIssues)); } } EnvironmentVariables = new [] { "JAVA_HOME=" + JavaSdkPath }; resource_name_case_map = MonoAndroidHelper.LoadResourceCaseMap(ResourceNameCaseMap); base.RunTask(); return(!Log.HasLoggedErrors); }
public override bool Execute() { if (string.IsNullOrEmpty(ToolPath) || !File.Exists(GenerateFullPathToTool())) { Log.LogCodedError("XA5205", $"Cannot find `{ToolName}` in the Android SDK. Please set its path via /p:LintToolPath."); return(false); } Version lintToolVersion = GetLintVersion(GenerateFullPathToTool()); Log.LogDebugMessage(" LintVersion: {0}", lintToolVersion); foreach (var issue in DisabledIssuesByVersion) { if (lintToolVersion >= issue.Value) { if (string.IsNullOrEmpty(DisabledIssues) || !DisabledIssues.Contains(issue.Key)) { DisabledIssues = issue.Key + (!string.IsNullOrEmpty(DisabledIssues) ? "," + DisabledIssues : ""); } } } foreach (var issue in DisabledIssuesByVersion) { if (lintToolVersion < issue.Value) { DisabledIssues = CleanIssues(issue.Key, lintToolVersion, DisabledIssues, nameof(DisabledIssues)); EnabledIssues = CleanIssues(issue.Key, lintToolVersion, EnabledIssues, nameof(EnabledIssues)); } } EnvironmentVariables = new [] { "JAVA_HOME=" + JavaSdkPath }; resource_name_case_map = MonoAndroidHelper.LoadResourceCaseMap(ResourceNameCaseMap); base.Execute(); return(!Log.HasLoggedErrors); }