/// <summary>
 /// Determine the current state of the project.
 /// </summary>
 /// <returns>DependencyState instance with data derived from the current
 /// project.</returns>
 public static DependencyState GetState()
 {
     return(new DependencyState {
         Packages = new HashSet <string>(PlayServicesSupport.GetAllDependencies().Keys),
         Files = new HashSet <string>(PlayServicesResolver.FindLabeledAssets())
     });
 }
 /// <summary>
 /// Delete the full set of assets managed from this plugin.
 /// This is used for uninstalling or switching between resolvers which maintain a different
 /// set of assets.
 /// </summary>
 internal static void DeleteLabeledAssets()
 {
     foreach (var assetPath in PlayServicesResolver.FindLabeledAssets())
     {
         PlayServicesSupport.DeleteExistingFileOrDirectory(assetPath,
                                                           includeMetaFiles: true);
     }
     AssetDatabase.Refresh();
 }