Skip to content

Commit

Permalink
Added auto-resolution when the Android SDK path changes.
Browse files Browse the repository at this point in the history
Also:
* Cleaned up references to AndroidSdkRoot variable to use a common
  code path.
* Delayed Android auto-resolution when build settings and other
  settings change.
* Added progress bar when AARs are being post-processed after they're
  downloaded.

Bug: 110479237
Change-Id: I231e3eaa7f5e027e583c4ab860c0ae537fff3806
  • Loading branch information
Stewart Miles committed Jun 21, 2018
1 parent 49653f1 commit c53186a
Show file tree
Hide file tree
Showing 29 changed files with 316 additions and 172 deletions.
16 changes: 15 additions & 1 deletion CHANGELOG.md
@@ -1,4 +1,18 @@
# Version TBD
# Version 1.2.75 - Jun 20, 2018
## New Features
* Android Resolver now monitors the Android SDK path when
auto-resolution is enabled and triggers resolution when the path is
modified.

## Changed
* Android auto-resolution is now delayed by 3 seconds when the following build
settings are changed:
- Target ABI.
- Gradle build vs. internal build.
- Project export.
* Added a progress bar display when AARs are being processed during Android
resolution.

## Bug Fixes
* Fixed incorrect Android package version selection when a mix of
version-locked and non-version-locked packages are specified.
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Expand Up @@ -153,7 +153,7 @@ project.ext {
buildPath = file('build').absolutePath
exportPath = file('build/plugin.unitypackage').absolutePath
dllDir = 'Assets/PlayServicesResolver/Editor'
pluginVersion = '1.2.74.0'
pluginVersion = '1.2.75.0'
currentPluginPath = file('.').absolutePath
currentPluginBasename = 'play-services-resolver'
currentPluginName = (currentPluginBasename + '-' + pluginVersion +
Expand Down
2 changes: 1 addition & 1 deletion exploded/Assets/PlayServicesResolver/Editor.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

@@ -0,0 +1,4 @@
Assets/PlayServicesResolver/Editor/Google.IOSResolver_v1.2.75.0.dll
Assets/PlayServicesResolver/Editor/Google.VersionHandlerImpl_v1.2.75.0.dll
Assets/PlayServicesResolver/Editor/Google.VersionHandler.dll
Assets/PlayServicesResolver/Editor/Google.JarResolver_v1.2.75.0.dll

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.
2 changes: 1 addition & 1 deletion plugin/Assets/PlayServicesResolver.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion plugin/Assets/PlayServicesResolver/Editor.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Expand Up @@ -71,7 +71,7 @@ public class SampleDependencies : AssetPostprocessor {
playServicesSupport, "CreateInstance",
new object[] {
"GooglePlayGames",
EditorPrefs.GetString("AndroidSdkRoot"),
null /* No longer required. */,
"ProjectSettings"
});

Expand Down
Expand Up @@ -40,11 +40,6 @@ public class PlayServicesSupport
/// </summary>
private string clientName;

/// <summary>
/// The path to the Android SDK.
/// </summary>
private static string userSdkPath;

/// <summary>
/// Log severity.
/// </summary>
Expand Down Expand Up @@ -138,30 +133,6 @@ public enum LogLevel {
"extra-google-m2repository")
};

private static string SDKInternal
{
get
{
var sdkPath = userSdkPath;
#if UNITY_EDITOR
if (String.IsNullOrEmpty(sdkPath)) {
sdkPath = UnityEditor.EditorPrefs.GetString("AndroidSdkRoot");
}
#endif // UNITY_EDITOR
if (string.IsNullOrEmpty(sdkPath)) {
sdkPath = System.Environment.GetEnvironmentVariable("ANDROID_HOME");
}
return sdkPath;
}
}

/// <summary>
/// Gets the Android SDK. If it is not set, the environment
/// variable ANDROID_HOME is used.
/// </summary>
/// <value>The SD.</value>
public string SDK { get { return PlayServicesSupport.SDKInternal; } }

/// <summary>
/// Whether verbose logging is enabled.
/// </summary>
Expand All @@ -180,7 +151,7 @@ private static string SDKInternal
/// This is used to uniquely identify
/// the calling client so that dependencies can be associated with a specific
/// client to help in resetting dependencies.</param>
/// <param name="sdkPath">Sdk path for Android SDK.</param>
/// <param name="sdkPath">Sdk path for Android SDK (unused).</param>
/// <param name="settingsDirectory">This parameter is obsolete.</param>
/// <param name="logger">Delegate used to write messages to the log.</param>
/// <param name="logMessageWithLevel">Delegate used to write messages to the log. If
Expand All @@ -201,7 +172,7 @@ private static string SDKInternal
/// This is used to uniquely identify
/// the calling client so that dependencies can be associated with a specific
/// client to help in resetting dependencies.</param>
/// <param name="sdkPath">Sdk path for Android SDK.</param>
/// <param name="sdkPath">Sdk path for Android SDK (unused).</param>
/// <param name="additionalRepositories">Array of additional repository paths. can be
/// null</param>
/// <param name="settingsDirectory">This parameter is obsolete.</param>
Expand All @@ -220,12 +191,6 @@ private static string SDKInternal
PlayServicesSupport.logger =
PlayServicesSupport.logger ?? (logMessageWithLevel ??
(logger != null ? legacyLogger : null));
// Only set the SDK path if it differs to what is configured in the editor or
// via an environment variable. The SDK path can be changed by the user before
// this module is reloaded.
if (!String.IsNullOrEmpty(sdkPath) && sdkPath != PlayServicesSupport.SDKInternal) {
PlayServicesSupport.userSdkPath = sdkPath;
}
string badchars = new string(Path.GetInvalidFileNameChars());

foreach (char ch in clientName)
Expand Down
2 changes: 1 addition & 1 deletion source/PlayServicesResolver/src/AndroidXmlDependencies.cs
Expand Up @@ -144,7 +144,7 @@ internal class AndroidXmlDependencies : XmlDependencies {
svcSupport.ClearDependencies();
} else {
svcSupport = PlayServicesSupport.CreateInstance(
XML_DEPENDENCIES_INSTANCE, EditorPrefs.GetString("AndroidSdkRoot"),
XML_DEPENDENCIES_INSTANCE, PlayServicesResolver.AndroidSdkRoot,
"ProjectSettings", logMessageWithLevel: PlayServicesResolver.LogDelegate);
}
return base.ReadAll(logger);
Expand Down
4 changes: 2 additions & 2 deletions source/PlayServicesResolver/src/GradlePreBuildResolver.cs
Expand Up @@ -315,7 +315,7 @@ class GradlePreBuildResolver : DefaultResolver {
{"sdk_version", targetSdkVersion.ToString()},
{"min_sdk_version", minSdkVersion},
{"build_tools_version", buildToolsVersion},
{"android_sdk_dir", svcSupport.SDK}
{"android_sdk_dir", PlayServicesResolver.AndroidSdkRoot}
};

// This creates an enumerable of strings with the json lines for each dep like this:
Expand Down Expand Up @@ -398,7 +398,7 @@ class GradlePreBuildResolver : DefaultResolver {
public override void DoResolution(PlayServicesSupport svcSupport, string destinationDirectory,
System.Action resolutionComplete) {

var sdkPath = svcSupport.SDK;
var sdkPath = PlayServicesResolver.AndroidSdkRoot;
// Find / upgrade the Android SDK manager.
AndroidSdkManager.Create(
sdkPath,
Expand Down

0 comments on commit c53186a

Please sign in to comment.