private void OkButton_OnClick(object sender, RoutedEventArgs e) { string expectedDir; if (!Gradle.HasLocalRepositories(PathTextBox.Text, out expectedDir)) { ErrorTextBlock.Text = string.Format("Error: {0} was not found!", expectedDir); ErrorTextBlock.Visibility = Visibility.Visible; return; } OkButton.IsEnabled = false; DialogResult = true; }
static void LogGradleVersionByParsingFileName() { if (!Gradle.TryGetFullPathToGradleLauncher(out var fullPathToGradleLauncher, out var diagnosticMessage)) { Debug.LogError($"{k_LogPrefix} {diagnosticMessage}"); return; } Debug.Log($"{k_LogPrefix} Path to gradle launcher: {fullPathToGradleLauncher}"); if (Gradle.TryParseVersion(Path.GetFileNameWithoutExtension(fullPathToGradleLauncher), out var gradleVersion, out diagnosticMessage)) { Debug.Log($"{k_LogPrefix} Detected gradle version: {gradleVersion}"); }
private static async void MainAsync() { var androidSdk = SystemPaths.GetAndroidSdkPath(); string repositoriesDir; if (!Gradle.HasLocalRepositories(androidSdk, out repositoriesDir)) { throw new Exception("Android SDK path is invalid or repositories are not installed via Android SDK Manager."); } //Let's test: resolve all recommended dependencies! var deps = await new RecommendedDpendenciesService().GetAsync(); var failed = deps.Where(dep => !ResolveAndPrintDependencies(dep.DependencyId, androidSdk)).ToList(); System.Console.WriteLine("Done. Failed: {0}\n{1}", failed.Count, string.Join("\n", failed.Select(f => f.DependencyId))); }
public async Task <string> AskAsync() { //try guess it var userDir = Environment.GetEnvironmentVariable("USERPROFILE"); if (!string.IsNullOrEmpty(userDir)) { var androidSdkHome = Path.Combine(userDir, @"AppData\Local\Android\sdk"); string expectedDir; if (Gradle.HasLocalRepositories(androidSdkHome, out expectedDir)) { PathTextBox.Text = expectedDir; } } if (ShowModal() == true) { return(PathTextBox.Text); } return(null); }
private void DependencyIdTextBox_OnTextChanged(object sender, TextChangedEventArgs e) { //let's try to help user and generate a name for the assembly from Dependency String //com.afollestad:material-dialogs:0.7.6.0 --> Binding_MaterialDialogs var readableName = Gradle.GetReadableDependencyName(DependencyIdTextBox.Text); if (!string.IsNullOrEmpty(readableName)) { ProjectNameTextBox.Text = BindingProjectDefaultPrefix + readableName; } UpdateSubmitVisibility(); if (_allSuggestions != null) { var query = DependencyIdTextBox.Text.ToLower(); var suggestions = _allSuggestions.Where(s => s.DependencyId.ToLower().Contains(query) || s.Name.ToLower().Contains(query)).ToList(); SuggestionsBox.ItemsSource = suggestions; SuggestionsBox.SelectedIndex = -1; SuggestionsBox.Visibility = suggestions.Any() ? Visibility.Visible : Visibility.Collapsed; } else { SuggestionsBox.Visibility = Visibility.Collapsed; } if (!string.IsNullOrEmpty(DependencyIdTextBox.Text)) { DependencyIdTextBox.Background = Gradle.ValidDependencyIdString(DependencyIdTextBox.Text) ? ValidIdBrush : InvalidIdBrush; } else { DependencyIdTextBox.Background = NeutralIdBrush; } }
public static bool ResolveAndPrintDependencies(string dependencyId, string androidSdk) { try { System.Console.WriteLine("\nResolving '{0}'...", dependencyId); string workingDir; var result = Gradle.ExtractDependencies(dependencyId, androidSdk, out workingDir) .OrderBy(f => f.IsTransitive) .ToList(); foreach (var file in result.OrderBy(f => f.IsTransitive)) { System.Console.WriteLine("{1}{0}", Path.GetFileName(file.File), file.IsTransitive ? "\t" : ""); } return(true); } catch (Exception) { System.Console.WriteLine("FAILED!"); return(false); } }
static bool TryParse(Version testVersion, out Version parsedVersion, out string diagnosticMessage) => Gradle.TryParseVersion(GetGradleLauncherForVersion(testVersion), out parsedVersion, out diagnosticMessage);