@@ -18,6 +18,7 @@ namespace GooglePlayServices {
1818 using System ;
1919 using System . Collections . Generic ;
2020 using System . IO ;
21+ using System . Linq ;
2122 using System . Text . RegularExpressions ;
2223 using System . Threading ;
2324 using System . Xml ;
@@ -992,7 +993,7 @@ private static bool Initialize() {
992993 }
993994
994995 // Monitor Android dependency XML files to perform auto-resolution.
995- AddAutoResolutionFilePatterns ( xmlDependencies . fileRegularExpressions ) ;
996+ autoResolveFilePatterns . Add ( XmlDependencies . IsDependenciesFile ) ;
996997
997998 svcSupport = PlayServicesSupport . CreateInstance (
998999 "PlayServicesResolver" ,
@@ -1079,15 +1080,16 @@ internal static void Log(string message, Google.LogLevel level = LogLevel.Info)
10791080 /// <summary>
10801081 /// Patterns of files that are monitored to trigger auto resolution.
10811082 /// </summary>
1082- private static HashSet < Regex > autoResolveFilePatterns = new HashSet < Regex > ( ) ;
1083+ private static HashSet < FileMatchPattern > autoResolveFilePatterns = new HashSet < FileMatchPattern > ( ) ;
10831084
10841085 /// <summary>
10851086 /// Add file patterns to monitor to trigger auto resolution.
10861087 /// </summary>
10871088 /// <param name="patterns">Set of file patterns to monitor to trigger auto
10881089 /// resolution.</param>
10891090 public static void AddAutoResolutionFilePatterns ( IEnumerable < Regex > patterns ) {
1090- autoResolveFilePatterns . UnionWith ( patterns ) ;
1091+ // Only regex patterns are supported in the public API, but a more performant default is used internally.
1092+ autoResolveFilePatterns . UnionWith ( patterns . Select < Regex , FileMatchPattern > ( p => p . IsMatch ) ) ;
10911093 }
10921094
10931095 /// <summary>
@@ -1099,7 +1101,7 @@ private static bool CheckFilesForAutoResolution(HashSet<string> filesToCheck) {
10991101 bool resolve = false ;
11001102 foreach ( var asset in filesToCheck ) {
11011103 foreach ( var pattern in autoResolveFilePatterns ) {
1102- if ( pattern . Match ( asset ) . Success ) {
1104+ if ( pattern . Invoke ( asset ) ) {
11031105 Log ( String . Format ( "Found asset {0} matching {1}, attempting " +
11041106 "auto-resolution." ,
11051107 asset , pattern . ToString ( ) ) ,
0 commit comments