@@ -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 ;
@@ -985,7 +986,7 @@ private static bool Initialize() {
985986 }
986987
987988 // Monitor Android dependency XML files to perform auto-resolution.
988- AddAutoResolutionFilePatterns ( xmlDependencies . fileRegularExpressions ) ;
989+ autoResolveFilePatterns . Add ( XmlDependencies . IsDependenciesFile ) ;
989990
990991 svcSupport = PlayServicesSupport . CreateInstance (
991992 "PlayServicesResolver" ,
@@ -1072,15 +1073,16 @@ internal static void Log(string message, Google.LogLevel level = LogLevel.Info)
10721073 /// <summary>
10731074 /// Patterns of files that are monitored to trigger auto resolution.
10741075 /// </summary>
1075- private static HashSet < Regex > autoResolveFilePatterns = new HashSet < Regex > ( ) ;
1076+ private static HashSet < FileMatchPattern > autoResolveFilePatterns = new HashSet < FileMatchPattern > ( ) ;
10761077
10771078 /// <summary>
10781079 /// Add file patterns to monitor to trigger auto resolution.
10791080 /// </summary>
10801081 /// <param name="patterns">Set of file patterns to monitor to trigger auto
10811082 /// resolution.</param>
10821083 public static void AddAutoResolutionFilePatterns ( IEnumerable < Regex > patterns ) {
1083- autoResolveFilePatterns . UnionWith ( patterns ) ;
1084+ // Only regex patterns are supported in the public API, but a more performant default is used internally.
1085+ autoResolveFilePatterns . UnionWith ( patterns . Select < Regex , FileMatchPattern > ( p => p . IsMatch ) ) ;
10841086 }
10851087
10861088 /// <summary>
@@ -1092,7 +1094,7 @@ private static bool CheckFilesForAutoResolution(HashSet<string> filesToCheck) {
10921094 bool resolve = false ;
10931095 foreach ( var asset in filesToCheck ) {
10941096 foreach ( var pattern in autoResolveFilePatterns ) {
1095- if ( pattern . Match ( asset ) . Success ) {
1097+ if ( pattern . Invoke ( asset ) ) {
10961098 Log ( String . Format ( "Found asset {0} matching {1}, attempting " +
10971099 "auto-resolution." ,
10981100 asset , pattern . ToString ( ) ) ,
0 commit comments