Skip to content

Commit c99f168

Browse files
committed
Add AndroidSdkInfo.DetectAndSetPreferredJavaSdkPathToLatest()
Context: https://paper.dropbox.com/doc/OpenJDK-and-You--AH1yWKdVXgno~uXYfmcUAZTwAg-NoECAe2XkBQeoxFfGL6ea Add `AndroidSdkInfo.DetectAndSetPreferredJavaSdkPathToLatest()`.
1 parent 07c4c2b commit c99f168

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

src/Xamarin.Android.Tools.AndroidSdk/AndroidSdkInfo.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,5 +171,20 @@ public static void SetPreferredJavaSdkPath (string path, Action<TraceLevel, stri
171171
var sdk = CreateSdk (logger);
172172
sdk.SetPreferredJavaSdkPath (path);
173173
}
174+
175+
public static void DetectAndSetPreferredJavaSdkPathToLatest (Action<TraceLevel, string> logger = null)
176+
{
177+
if (OS.IsWindows)
178+
throw new NotSupportedException ("Windows is not supported at this time.");
179+
180+
logger = logger ?? DefaultConsoleLogger;
181+
182+
var latestJdk = JdkInfo.GetMacOSMicrosoftJdks (logger).FirstOrDefault ();
183+
if (latestJdk == null)
184+
throw new NotSupportedException ("No preferred Java SDK could be found.");
185+
186+
var sdk = CreateSdk (logger);
187+
sdk.SetPreferredJavaSdkPath (latestJdk.HomePath);
188+
}
174189
}
175190
}

src/Xamarin.Android.Tools.AndroidSdk/JdkInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ static IEnumerable<string> GetConfiguredJdkPaths (Action<TraceLevel, string> log
236236
}
237237
}
238238

239-
static IEnumerable<JdkInfo> GetMacOSMicrosoftJdks (Action<TraceLevel, string> logger)
239+
internal static IEnumerable<JdkInfo> GetMacOSMicrosoftJdks (Action<TraceLevel, string> logger)
240240
{
241241
return GetMacOSMicrosoftJdkPaths ()
242242
.Select (p => TryGetJdkInfo (p, logger))

0 commit comments

Comments
 (0)